svvitch
digital signage player
|
00001 #include "DissolveTransition.h" 00002 00003 00004 DissolveTransition::DissolveTransition(ContentPtr c1, ContentPtr c2, float speed): Transition(c1, c2), _speed(speed) { 00005 } 00006 00007 DissolveTransition::‾DissolveTransition() { 00008 } 00009 00010 void DissolveTransition::initialize(const DWORD& frame) { 00011 if (_c1) _c1->set("alpha", "1"); 00012 if (_c2) _c2->set("alpha", "0"); 00013 } 00014 00015 bool DissolveTransition::process(const DWORD& frame) { 00016 if (_c2) { 00017 bool finished = false; 00018 float alpha = _c2->getF("alpha"); 00019 alpha += _speed; 00020 if (alpha >= F(1)) { 00021 alpha = F(1); 00022 finished = true; 00023 } 00024 _c2->set("alpha", alpha); 00025 return finished; 00026 } 00027 return false; 00028 }