svvitch
digital signage player
|
00001 #include "SlideTransition.h" 00002 00003 00004 SlideTransition::SlideTransition(ContentPtr c1, ContentPtr c2, float speed, int offsetX, int offsetY): 00005 Transition(c1, c2), _speed(speed), _offsetX(offsetX), _offsetY(offsetY) 00006 { 00007 } 00008 00009 SlideTransition::‾SlideTransition() { 00010 } 00011 00012 void SlideTransition::initialize(const DWORD& frame) { 00013 if (_c1) { 00014 float x, y; 00015 _c1->getPosition(x, y); 00016 _c1->setPosition(0, 0); 00017 } 00018 if (_c2) { 00019 _c2->setPosition(_offsetX, _offsetY); 00020 } 00021 } 00022 00023 bool SlideTransition::process(const DWORD& frame) { 00024 bool finished = false; 00025 if (_c1) { 00026 float x1, y1; 00027 _c1->getPosition(x1, y1); 00028 y1 -= _speed; 00029 if (y1 <= -_offsetY) { 00030 y1 = _offsetY; 00031 finished = true; 00032 } 00033 _c1->setPosition(x1, y1); 00034 } 00035 if (_c2) { 00036 float x2, y2; 00037 _c2->getPosition(x2, y2); 00038 y2 -= _speed; 00039 if (finished) { 00040 y2 = L(y2); 00041 } 00042 _c2->setPosition(x2, y2); 00043 } 00044 return finished; 00045 }