OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #include "SkAnimator.h" | 10 #include "SkAnimator.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 #endif | 35 #endif |
36 | 36 |
37 _static const char gMathPrimerText[] = | 37 _static const char gMathPrimerText[] = |
38 "<screenplay>" | 38 "<screenplay>" |
39 "<Math id=\"Math\"/>" | 39 "<Math id=\"Math\"/>" |
40 "<Number id=\"Number\"/>" | 40 "<Number id=\"Number\"/>" |
41 "</screenplay>"; | 41 "</screenplay>"; |
42 | 42 |
43 #define gMathPrimer gMathPrimerText | 43 #define gMathPrimer gMathPrimerText |
44 | 44 |
45 SkAnimator::SkAnimator() : fMaker(NULL) { | 45 SkAnimator::SkAnimator() : fMaker(nullptr) { |
46 initialize(); | 46 initialize(); |
47 } | 47 } |
48 | 48 |
49 SkAnimator::~SkAnimator() { delete fMaker; } | 49 SkAnimator::~SkAnimator() { delete fMaker; } |
50 | 50 |
51 void SkAnimator::addExtras(SkExtras* extras) { | 51 void SkAnimator::addExtras(SkExtras* extras) { |
52 *fMaker->fExtras.append() = extras; | 52 *fMaker->fExtras.append() = extras; |
53 } | 53 } |
54 | 54 |
55 bool SkAnimator::appendStream(SkStream* stream) { | 55 bool SkAnimator::appendStream(SkStream* stream) { |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 fMaker->notifyInval(); | 137 fMaker->notifyInval(); |
138 return result; | 138 return result; |
139 } | 139 } |
140 | 140 |
141 bool SkAnimator::doUserEvent(const SkEvent& evt) { | 141 bool SkAnimator::doUserEvent(const SkEvent& evt) { |
142 fMaker->fEnableTime = fMaker->getAppTime(); | 142 fMaker->fEnableTime = fMaker->getAppTime(); |
143 return onEvent(evt); | 143 return onEvent(evt); |
144 } | 144 } |
145 | 145 |
146 SkAnimator::DifferenceType SkAnimator::draw(SkCanvas* canvas, SkPaint* paint, Sk
MSec time) { | 146 SkAnimator::DifferenceType SkAnimator::draw(SkCanvas* canvas, SkPaint* paint, Sk
MSec time) { |
147 if (paint == NULL) | 147 if (paint == nullptr) |
148 return draw(canvas, time); | 148 return draw(canvas, time); |
149 fMaker->fScreenplay.time = time; | 149 fMaker->fScreenplay.time = time; |
150 fMaker->fCanvas = canvas; | 150 fMaker->fCanvas = canvas; |
151 fMaker->fPaint = paint; | 151 fMaker->fPaint = paint; |
152 fMaker->fDisplayList.fHasUnion = false; | 152 fMaker->fDisplayList.fHasUnion = false; |
153 int result = fMaker->fDisplayList.draw(*fMaker, time); | 153 int result = fMaker->fDisplayList.draw(*fMaker, time); |
154 if (result) | 154 if (result) |
155 result += fMaker->fDisplayList.fHasUnion; | 155 result += fMaker->fDisplayList.fHasUnion; |
156 return (DifferenceType) result; | 156 return (DifferenceType) result; |
157 } | 157 } |
(...skipping 14 matching lines...) Expand all Loading... |
172 state.fX = x; | 172 state.fX = x; |
173 state.fY = y; | 173 state.fY = y; |
174 fMaker->fEnableTime = fMaker->getAppTime(); | 174 fMaker->fEnableTime = fMaker->getAppTime(); |
175 bool result = fMaker->fEvents.doEvent(*fMaker, SkDisplayEvent::kMouseDown, &
state); | 175 bool result = fMaker->fEvents.doEvent(*fMaker, SkDisplayEvent::kMouseDown, &
state); |
176 fMaker->notifyInval(); | 176 fMaker->notifyInval(); |
177 return result; | 177 return result; |
178 } | 178 } |
179 | 179 |
180 const SkAnimator* SkAnimator::getAnimator(const SkDisplayable* displayable) cons
t { | 180 const SkAnimator* SkAnimator::getAnimator(const SkDisplayable* displayable) cons
t { |
181 if (displayable->getType() != SkType_Movie) | 181 if (displayable->getType() != SkType_Movie) |
182 return NULL; | 182 return nullptr; |
183 const SkDisplayMovie* movie = (const SkDisplayMovie*) displayable; | 183 const SkDisplayMovie* movie = (const SkDisplayMovie*) displayable; |
184 return movie->getAnimator(); | 184 return movie->getAnimator(); |
185 } | 185 } |
186 | 186 |
187 const SkDisplayable* SkAnimator::getElement(const char* id) { | 187 const SkDisplayable* SkAnimator::getElement(const char* id) { |
188 SkDisplayable* element; | 188 SkDisplayable* element; |
189 if (fMaker->find(id, &element) == false) | 189 if (fMaker->find(id, &element) == false) |
190 return NULL; | 190 return nullptr; |
191 return (const SkDisplayable*) element; | 191 return (const SkDisplayable*) element; |
192 } | 192 } |
193 | 193 |
194 SkElementType SkAnimator::getElementType(const SkDisplayable* ae) { | 194 SkElementType SkAnimator::getElementType(const SkDisplayable* ae) { |
195 SkDisplayable* element = (SkDisplayable*) ae; | 195 SkDisplayable* element = (SkDisplayable*) ae; |
196 const SkMemberInfo* info = SkDisplayType::GetMembers(fMaker, element->getTyp
e(), NULL); | 196 const SkMemberInfo* info = SkDisplayType::GetMembers(fMaker, element->getTyp
e(), nullptr); |
197 return (SkElementType) SkDisplayType::Find(fMaker, info); | 197 return (SkElementType) SkDisplayType::Find(fMaker, info); |
198 } | 198 } |
199 | 199 |
200 SkElementType SkAnimator::getElementType(const char* id) { | 200 SkElementType SkAnimator::getElementType(const char* id) { |
201 const SkDisplayable* element = getElement(id); | 201 const SkDisplayable* element = getElement(id); |
202 return getElementType(element); | 202 return getElementType(element); |
203 } | 203 } |
204 | 204 |
205 const SkMemberInfo* SkAnimator::getField(const SkDisplayable* ae, const char* fi
eld) { | 205 const SkMemberInfo* SkAnimator::getField(const SkDisplayable* ae, const char* fi
eld) { |
206 SkDisplayable* element = (SkDisplayable*) ae; | 206 SkDisplayable* element = (SkDisplayable*) ae; |
(...skipping 26 matching lines...) Expand all Loading... |
233 | 233 |
234 int32_t SkAnimator::getArrayInt(const SkDisplayable* ae, | 234 int32_t SkAnimator::getArrayInt(const SkDisplayable* ae, |
235 const SkMemberInfo* ai, int index) { | 235 const SkMemberInfo* ai, int index) { |
236 SkOperand operand; | 236 SkOperand operand; |
237 bool result = getArrayCommon(ae, ai, index, &operand); | 237 bool result = getArrayCommon(ae, ai, index, &operand); |
238 return result ? operand.fS32 : SK_NaN32; | 238 return result ? operand.fS32 : SK_NaN32; |
239 } | 239 } |
240 | 240 |
241 int32_t SkAnimator::getArrayInt(const char* id, const char* fieldID, int index)
{ | 241 int32_t SkAnimator::getArrayInt(const char* id, const char* fieldID, int index)
{ |
242 const SkDisplayable* element = getElement(id); | 242 const SkDisplayable* element = getElement(id); |
243 if (element == NULL) | 243 if (element == nullptr) |
244 return SK_NaN32; | 244 return SK_NaN32; |
245 const SkMemberInfo* field = getField(element, fieldID); | 245 const SkMemberInfo* field = getField(element, fieldID); |
246 if (field == NULL) | 246 if (field == nullptr) |
247 return SK_NaN32; | 247 return SK_NaN32; |
248 return getArrayInt(element, field, index); | 248 return getArrayInt(element, field, index); |
249 } | 249 } |
250 | 250 |
251 SkScalar SkAnimator::getArrayScalar(const SkDisplayable* ae, | 251 SkScalar SkAnimator::getArrayScalar(const SkDisplayable* ae, |
252 const SkMemberInfo* ai, int index) { | 252 const SkMemberInfo* ai, int index) { |
253 SkOperand operand; | 253 SkOperand operand; |
254 bool result = getArrayCommon(ae, ai, index, &operand); | 254 bool result = getArrayCommon(ae, ai, index, &operand); |
255 return result ? operand.fScalar : SK_ScalarNaN; | 255 return result ? operand.fScalar : SK_ScalarNaN; |
256 } | 256 } |
257 | 257 |
258 SkScalar SkAnimator::getArrayScalar(const char* id, const char* fieldID, int ind
ex) { | 258 SkScalar SkAnimator::getArrayScalar(const char* id, const char* fieldID, int ind
ex) { |
259 const SkDisplayable* element = getElement(id); | 259 const SkDisplayable* element = getElement(id); |
260 if (element == NULL) | 260 if (element == nullptr) |
261 return SK_ScalarNaN; | 261 return SK_ScalarNaN; |
262 const SkMemberInfo* field = getField(element, fieldID); | 262 const SkMemberInfo* field = getField(element, fieldID); |
263 if (field == NULL) | 263 if (field == nullptr) |
264 return SK_ScalarNaN; | 264 return SK_ScalarNaN; |
265 return getArrayScalar(element, field, index); | 265 return getArrayScalar(element, field, index); |
266 } | 266 } |
267 | 267 |
268 const char* SkAnimator::getArrayString(const SkDisplayable* ae, | 268 const char* SkAnimator::getArrayString(const SkDisplayable* ae, |
269 const SkMemberInfo* ai, int index) { | 269 const SkMemberInfo* ai, int index) { |
270 SkOperand operand; | 270 SkOperand operand; |
271 bool result = getArrayCommon(ae, ai, index, &operand); | 271 bool result = getArrayCommon(ae, ai, index, &operand); |
272 return result ? operand.fString->c_str() : NULL; | 272 return result ? operand.fString->c_str() : nullptr; |
273 } | 273 } |
274 | 274 |
275 const char* SkAnimator::getArrayString(const char* id, const char* fieldID, int
index) { | 275 const char* SkAnimator::getArrayString(const char* id, const char* fieldID, int
index) { |
276 const SkDisplayable* element = getElement(id); | 276 const SkDisplayable* element = getElement(id); |
277 if (element == NULL) | 277 if (element == nullptr) |
278 return NULL; | 278 return nullptr; |
279 const SkMemberInfo* field = getField(element, fieldID); | 279 const SkMemberInfo* field = getField(element, fieldID); |
280 if (field == NULL) | 280 if (field == nullptr) |
281 return NULL; | 281 return nullptr; |
282 return getArrayString(element, field, index); | 282 return getArrayString(element, field, index); |
283 } | 283 } |
284 | 284 |
285 SkMSec SkAnimator::getInterval() { | 285 SkMSec SkAnimator::getInterval() { |
286 return fMaker->fMinimumInterval == (SkMSec) -1 ? 0 : fMaker->fMinimumInterva
l; | 286 return fMaker->fMinimumInterval == (SkMSec) -1 ? 0 : fMaker->fMinimumInterva
l; |
287 } | 287 } |
288 | 288 |
289 void SkAnimator::getInvalBounds(SkRect* inval) { | 289 void SkAnimator::getInvalBounds(SkRect* inval) { |
290 if (fMaker->fDisplayList.fHasUnion) { | 290 if (fMaker->fDisplayList.fHasUnion) { |
291 inval->fLeft = SkIntToScalar(fMaker->fDisplayList.fInvalBounds.fLeft); | 291 inval->fLeft = SkIntToScalar(fMaker->fDisplayList.fInvalBounds.fLeft); |
(...skipping 27 matching lines...) Expand all Loading... |
319 } | 319 } |
320 SkScriptValue scriptValue; | 320 SkScriptValue scriptValue; |
321 bool success = element->getProperty(info->propertyIndex(), &scriptValue); | 321 bool success = element->getProperty(info->propertyIndex(), &scriptValue); |
322 if (success && scriptValue.fType == SkType_Int) | 322 if (success && scriptValue.fType == SkType_Int) |
323 return scriptValue.fOperand.fS32; | 323 return scriptValue.fOperand.fS32; |
324 return SK_NaN32; | 324 return SK_NaN32; |
325 } | 325 } |
326 | 326 |
327 int32_t SkAnimator::getInt(const char* id, const char* fieldID) { | 327 int32_t SkAnimator::getInt(const char* id, const char* fieldID) { |
328 const SkDisplayable* element = getElement(id); | 328 const SkDisplayable* element = getElement(id); |
329 if (element == NULL) | 329 if (element == nullptr) |
330 return SK_NaN32; | 330 return SK_NaN32; |
331 const SkMemberInfo* field = getField(element, fieldID); | 331 const SkMemberInfo* field = getField(element, fieldID); |
332 if (field == NULL) | 332 if (field == nullptr) |
333 return SK_NaN32; | 333 return SK_NaN32; |
334 return getInt(element, field); | 334 return getInt(element, field); |
335 } | 335 } |
336 | 336 |
337 SkScalar SkAnimator::getScalar(const SkDisplayable* element, const SkMemberInfo*
info) { | 337 SkScalar SkAnimator::getScalar(const SkDisplayable* element, const SkMemberInfo*
info) { |
338 if (info->fType != SkType_MemberProperty) { | 338 if (info->fType != SkType_MemberProperty) { |
339 SkOperand operand; | 339 SkOperand operand; |
340 if (info->getType() == SkType_Float) { | 340 if (info->getType() == SkType_Float) { |
341 info->getValue(element, &operand, 1); | 341 info->getValue(element, &operand, 1); |
342 return operand.fScalar; | 342 return operand.fScalar; |
343 } | 343 } |
344 return SK_ScalarNaN; | 344 return SK_ScalarNaN; |
345 } | 345 } |
346 SkScriptValue scriptValue; | 346 SkScriptValue scriptValue; |
347 bool success = element->getProperty(info->propertyIndex(), &scriptValue); | 347 bool success = element->getProperty(info->propertyIndex(), &scriptValue); |
348 if (success && scriptValue.fType == SkType_Float) | 348 if (success && scriptValue.fType == SkType_Float) |
349 return scriptValue.fOperand.fScalar; | 349 return scriptValue.fOperand.fScalar; |
350 return SK_ScalarNaN; | 350 return SK_ScalarNaN; |
351 } | 351 } |
352 | 352 |
353 SkScalar SkAnimator::getScalar(const char* id, const char* fieldID) { | 353 SkScalar SkAnimator::getScalar(const char* id, const char* fieldID) { |
354 const SkDisplayable* element = getElement(id); | 354 const SkDisplayable* element = getElement(id); |
355 if (element == NULL) | 355 if (element == nullptr) |
356 return SK_ScalarNaN; | 356 return SK_ScalarNaN; |
357 const SkMemberInfo* field = getField(element, fieldID); | 357 const SkMemberInfo* field = getField(element, fieldID); |
358 if (field == NULL) | 358 if (field == nullptr) |
359 return SK_ScalarNaN; | 359 return SK_ScalarNaN; |
360 return getScalar(element, field); | 360 return getScalar(element, field); |
361 } | 361 } |
362 | 362 |
363 const char* SkAnimator::getString(const SkDisplayable* ae, | 363 const char* SkAnimator::getString(const SkDisplayable* ae, |
364 const SkMemberInfo* ai) { | 364 const SkMemberInfo* ai) { |
365 const SkDisplayable* element = (const SkDisplayable*) ae; | 365 const SkDisplayable* element = (const SkDisplayable*) ae; |
366 const SkMemberInfo* info = (const SkMemberInfo*) ai; | 366 const SkMemberInfo* info = (const SkMemberInfo*) ai; |
367 SkString* temp; | 367 SkString* temp; |
368 info->getString(element, &temp); | 368 info->getString(element, &temp); |
369 return temp->c_str(); | 369 return temp->c_str(); |
370 } | 370 } |
371 | 371 |
372 const char* SkAnimator::getString(const char* id, const char* fieldID) { | 372 const char* SkAnimator::getString(const char* id, const char* fieldID) { |
373 const SkDisplayable* element = getElement(id); | 373 const SkDisplayable* element = getElement(id); |
374 if (element == NULL) | 374 if (element == nullptr) |
375 return NULL; | 375 return nullptr; |
376 const SkMemberInfo* field = getField(element, fieldID); | 376 const SkMemberInfo* field = getField(element, fieldID); |
377 if (field == NULL) | 377 if (field == nullptr) |
378 return NULL; | 378 return nullptr; |
379 return getString(element, field); | 379 return getString(element, field); |
380 } | 380 } |
381 | 381 |
382 const char* SkAnimator::getURIBase() { | 382 const char* SkAnimator::getURIBase() { |
383 return fMaker->fPrefix.c_str(); | 383 return fMaker->fPrefix.c_str(); |
384 } | 384 } |
385 | 385 |
386 void SkAnimator::initialize() { | 386 void SkAnimator::initialize() { |
387 delete fMaker; | 387 delete fMaker; |
388 fMaker = new SkAnimateMaker(this, NULL, NULL); | 388 fMaker = new SkAnimateMaker(this, nullptr, nullptr); |
389 decodeMemory(gMathPrimer, sizeof(gMathPrimer)-1); | 389 decodeMemory(gMathPrimer, sizeof(gMathPrimer)-1); |
390 #ifdef SK_BUILD_FOR_ANDROID | 390 #ifdef SK_BUILD_FOR_ANDROID |
391 InitializeSkExtraPathEffects(this); | 391 InitializeSkExtraPathEffects(this); |
392 #endif | 392 #endif |
393 } | 393 } |
394 | 394 |
395 | 395 |
396 #ifdef SK_DEBUG | 396 #ifdef SK_DEBUG |
397 bool SkAnimator::isTrackingEvents() { | 397 bool SkAnimator::isTrackingEvents() { |
398 return false; | 398 return false; |
399 } | 399 } |
400 #endif | 400 #endif |
401 | 401 |
402 bool SkAnimator::onEvent(const SkEvent& evt) { | 402 bool SkAnimator::onEvent(const SkEvent& evt) { |
403 #ifdef SK_DEBUG | 403 #ifdef SK_DEBUG |
404 SkAnimator* root = fMaker->getRoot(); | 404 SkAnimator* root = fMaker->getRoot(); |
405 if (root == NULL) | 405 if (root == nullptr) |
406 root = this; | 406 root = this; |
407 if (root->isTrackingEvents()) | 407 if (root->isTrackingEvents()) |
408 root->eventDone(evt); | 408 root->eventDone(evt); |
409 #endif | 409 #endif |
410 if (evt.isType(SK_EventType_OnEnd)) { | 410 if (evt.isType(SK_EventType_OnEnd)) { |
411 SkEventState eventState; | 411 SkEventState eventState; |
412 SkDEBUGCODE(bool success =) evt.findPtr("anim", (void**) &eventState.fDi
splayable); | 412 SkDEBUGCODE(bool success =) evt.findPtr("anim", (void**) &eventState.fDi
splayable); |
413 SkASSERT(success); | 413 SkASSERT(success); |
414 SkDEBUGCODE(success =) evt.findS32("time", (int32_t*) &fMaker->fEnableTi
me); | 414 SkDEBUGCODE(success =) evt.findS32("time", (int32_t*) &fMaker->fEnableTi
me); |
415 SkASSERT(success); | 415 SkASSERT(success); |
416 fMaker->fAdjustedStart = fMaker->getAppTime() - fMaker->fEnableTime; | 416 fMaker->fAdjustedStart = fMaker->getAppTime() - fMaker->fEnableTime; |
417 fMaker->fEvents.doEvent(*fMaker, SkDisplayEvent::kOnEnd, &eventState); | 417 fMaker->fEvents.doEvent(*fMaker, SkDisplayEvent::kOnEnd, &eventState); |
418 fMaker->fAdjustedStart = 0; | 418 fMaker->fAdjustedStart = 0; |
419 goto inval; | 419 goto inval; |
420 } | 420 } |
421 if (evt.isType(SK_EventType_Delay)) { | 421 if (evt.isType(SK_EventType_Delay)) { |
422 fMaker->doDelayedEvent(); | 422 fMaker->doDelayedEvent(); |
423 goto inval; | 423 goto inval; |
424 } | 424 } |
425 { | 425 { |
426 const char* id = evt.findString("id"); | 426 const char* id = evt.findString("id"); |
427 if (id == NULL) | 427 if (id == nullptr) |
428 return false; | 428 return false; |
429 SkDisplayable** firstMovie = fMaker->fMovies.begin(); | 429 SkDisplayable** firstMovie = fMaker->fMovies.begin(); |
430 SkDisplayable** endMovie = fMaker->fMovies.end(); | 430 SkDisplayable** endMovie = fMaker->fMovies.end(); |
431 for (SkDisplayable** ptr = firstMovie; ptr < endMovie; ptr++) { | 431 for (SkDisplayable** ptr = firstMovie; ptr < endMovie; ptr++) { |
432 SkDisplayMovie* movie = (SkDisplayMovie*) *ptr; | 432 SkDisplayMovie* movie = (SkDisplayMovie*) *ptr; |
433 movie->doEvent(evt); | 433 movie->doEvent(evt); |
434 } | 434 } |
435 { | 435 { |
436 SkDisplayable* event; | 436 SkDisplayable* event; |
437 if (fMaker->find(id, &event) == false) | 437 if (fMaker->find(id, &event) == false) |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 SkDisplayArray* dispArray = (SkDisplayArray*) element; | 548 SkDisplayArray* dispArray = (SkDisplayArray*) element; |
549 dispArray->values = array; | 549 dispArray->values = array; |
550 return true; | 550 return true; |
551 } | 551 } |
552 else | 552 else |
553 return false; //currently i don't care about this case | 553 return false; //currently i don't care about this case |
554 } | 554 } |
555 | 555 |
556 bool SkAnimator::setArray(const char* id, const char* fieldID, SkTypedArray arra
y) { | 556 bool SkAnimator::setArray(const char* id, const char* fieldID, SkTypedArray arra
y) { |
557 SkDisplayable* element = (SkDisplayable*) getElement(id); | 557 SkDisplayable* element = (SkDisplayable*) getElement(id); |
558 //should I go ahead and change all 'NULL's to 'NULL'? | 558 //should I go ahead and change all 'nullptr's to 'nullptr'? |
559 if (element == NULL) | 559 if (element == nullptr) |
560 return false; | 560 return false; |
561 const SkMemberInfo* field = getField(element, fieldID); | 561 const SkMemberInfo* field = getField(element, fieldID); |
562 if (field == NULL) | 562 if (field == nullptr) |
563 return false; | 563 return false; |
564 return setArray(element, field, array); | 564 return setArray(element, field, array); |
565 } | 565 } |
566 | 566 |
567 bool SkAnimator::setInt(SkDisplayable* element, const SkMemberInfo* info, int32_
t s32) { | 567 bool SkAnimator::setInt(SkDisplayable* element, const SkMemberInfo* info, int32_
t s32) { |
568 if (info->fType != SkType_MemberProperty) { | 568 if (info->fType != SkType_MemberProperty) { |
569 SkOperand operand; | 569 SkOperand operand; |
570 operand.fS32 = s32; | 570 operand.fS32 = s32; |
571 SkASSERT(info->getType() == SkType_Int); | 571 SkASSERT(info->getType() == SkType_Int); |
572 info->setValue(element, &operand, 1); | 572 info->setValue(element, &operand, 1); |
573 } else { | 573 } else { |
574 SkScriptValue scriptValue; | 574 SkScriptValue scriptValue; |
575 scriptValue.fType = SkType_Int; | 575 scriptValue.fType = SkType_Int; |
576 scriptValue.fOperand.fS32 = s32; | 576 scriptValue.fOperand.fS32 = s32; |
577 element->setProperty(info->propertyIndex(), scriptValue); | 577 element->setProperty(info->propertyIndex(), scriptValue); |
578 } | 578 } |
579 return true; | 579 return true; |
580 } | 580 } |
581 | 581 |
582 bool SkAnimator::setInt(const char* id, const char* fieldID, int32_t s32) { | 582 bool SkAnimator::setInt(const char* id, const char* fieldID, int32_t s32) { |
583 SkDisplayable* element = (SkDisplayable*) getElement(id); | 583 SkDisplayable* element = (SkDisplayable*) getElement(id); |
584 if (element == NULL) | 584 if (element == nullptr) |
585 return false; | 585 return false; |
586 const SkMemberInfo* field = getField(element, fieldID); | 586 const SkMemberInfo* field = getField(element, fieldID); |
587 if (field == NULL) | 587 if (field == nullptr) |
588 return false; | 588 return false; |
589 return setInt(element, field, s32); | 589 return setInt(element, field, s32); |
590 } | 590 } |
591 | 591 |
592 bool SkAnimator::setScalar(SkDisplayable* element, const SkMemberInfo* info, SkS
calar scalar) { | 592 bool SkAnimator::setScalar(SkDisplayable* element, const SkMemberInfo* info, SkS
calar scalar) { |
593 if (info->fType != SkType_MemberProperty) { | 593 if (info->fType != SkType_MemberProperty) { |
594 SkOperand operand; | 594 SkOperand operand; |
595 operand.fScalar = scalar; | 595 operand.fScalar = scalar; |
596 SkASSERT(info->getType() == SkType_Float); | 596 SkASSERT(info->getType() == SkType_Float); |
597 info->setValue(element, &operand, 1); | 597 info->setValue(element, &operand, 1); |
598 } else { | 598 } else { |
599 SkScriptValue scriptValue; | 599 SkScriptValue scriptValue; |
600 scriptValue.fType = SkType_Float; | 600 scriptValue.fType = SkType_Float; |
601 scriptValue.fOperand.fScalar = scalar; | 601 scriptValue.fOperand.fScalar = scalar; |
602 element->setProperty(info->propertyIndex(), scriptValue); | 602 element->setProperty(info->propertyIndex(), scriptValue); |
603 } | 603 } |
604 return true; | 604 return true; |
605 } | 605 } |
606 | 606 |
607 bool SkAnimator::setScalar(const char* id, const char* fieldID, SkScalar scalar)
{ | 607 bool SkAnimator::setScalar(const char* id, const char* fieldID, SkScalar scalar)
{ |
608 SkDisplayable* element = (SkDisplayable*) getElement(id); | 608 SkDisplayable* element = (SkDisplayable*) getElement(id); |
609 if (element == NULL) | 609 if (element == nullptr) |
610 return false; | 610 return false; |
611 const SkMemberInfo* field = getField(element, fieldID); | 611 const SkMemberInfo* field = getField(element, fieldID); |
612 if (field == NULL) | 612 if (field == nullptr) |
613 return false; | 613 return false; |
614 return setScalar(element, field, scalar); | 614 return setScalar(element, field, scalar); |
615 } | 615 } |
616 | 616 |
617 bool SkAnimator::setString(SkDisplayable* element, | 617 bool SkAnimator::setString(SkDisplayable* element, |
618 const SkMemberInfo* info, const char* str) { | 618 const SkMemberInfo* info, const char* str) { |
619 // !!! until this is fixed, can't call script with global references from he
re | 619 // !!! until this is fixed, can't call script with global references from he
re |
620 info->setValue(*fMaker, NULL, 0, info->fCount, element, info->getType(), str
, strlen(str)); | 620 info->setValue(*fMaker, nullptr, 0, info->fCount, element, info->getType(),
str, strlen(str)); |
621 return true; | 621 return true; |
622 } | 622 } |
623 | 623 |
624 bool SkAnimator::setString(const char* id, const char* fieldID, const char* str)
{ | 624 bool SkAnimator::setString(const char* id, const char* fieldID, const char* str)
{ |
625 SkDisplayable* element = (SkDisplayable*) getElement(id); | 625 SkDisplayable* element = (SkDisplayable*) getElement(id); |
626 if (element == NULL) | 626 if (element == nullptr) |
627 return false; | 627 return false; |
628 const SkMemberInfo* field = getField(element, fieldID); | 628 const SkMemberInfo* field = getField(element, fieldID); |
629 if (field == NULL) | 629 if (field == nullptr) |
630 return false; | 630 return false; |
631 return setString(element, field, str); | 631 return setString(element, field, str); |
632 } | 632 } |
633 | 633 |
634 void SkAnimator::setTimeline(const Timeline& timeline) { | 634 void SkAnimator::setTimeline(const Timeline& timeline) { |
635 fMaker->fTimeline = &timeline; | 635 fMaker->fTimeline = &timeline; |
636 } | 636 } |
637 | 637 |
638 void SkAnimator::setURIBase(const char* uri) { | 638 void SkAnimator::setURIBase(const char* uri) { |
639 if (uri) | 639 if (uri) |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
695 gUnitTests[i].fUnitTest(); | 695 gUnitTests[i].fUnitTest(); |
696 SkDebugf("SkAnimator: End UnitTest for %s\n", gUnitTests[i].fTypeName); | 696 SkDebugf("SkAnimator: End UnitTest for %s\n", gUnitTests[i].fTypeName); |
697 } | 697 } |
698 } | 698 } |
699 #else | 699 #else |
700 void SkAnimator::Init(bool) {} | 700 void SkAnimator::Init(bool) {} |
701 #endif | 701 #endif |
702 | 702 |
703 void SkAnimator::Term() { | 703 void SkAnimator::Term() { |
704 } | 704 } |
OLD | NEW |