X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FTransition.hh;h=5f8a248f91a9cefb7818fd7347bc438eedba241d;hp=f1e1bcb4c6efb0a4523e7e3d2320fe7e70f09d2c;hb=b357615aba1dbde81e3c6999366604e6001010a7;hpb=a31d65a998121df0651c57bfb68782e2a07d2e2f diff --git a/src/Moof/Transition.hh b/src/Moof/Transition.hh index f1e1bcb..5f8a248 100644 --- a/src/Moof/Transition.hh +++ b/src/Moof/Transition.hh @@ -51,15 +51,12 @@ class Transition : public Layer T mInterp; - Engine* mEngine; - public: Transition(LayerP t, LayerP f, const T& interp) : mTo(t), mFrom(f), - mInterp(interp), - mEngine(0) {} + mInterp(interp) {} typedef boost::shared_ptr Ptr; @@ -69,27 +66,22 @@ public: } - void pushed(Engine& engine) - { - mEngine = &engine; - } - void popped(Engine& engine) { if (mTo) engine.push(mTo); } - void update(Scalar t, Scalar dt) + void update(Engine& engine, Scalar t, Scalar dt) { mInterp.update(t, dt); - if (mFrom) mFrom->update(t, dt); - if (mTo) mTo->update(t, dt); + if (mFrom) mFrom->update(engine, t, dt); + if (mTo) mTo->update(engine, t, dt); if (mInterp.isDone()) { // to should /replace/ this - mEngine->pop(this); + engine.pop(this); } } @@ -105,15 +97,15 @@ public: glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); - glColor4(1.0, 1.0, 1.0, alpha); + glColor(1.0, 1.0, 1.0, alpha); Mf::Texture::resetBind(); //glRectf(-1.0f, -1.0f, 1.0f, 1.0f); glBegin(GL_QUADS); - glVertex3f(-1.0, -1.0, -0.1); - glVertex3f(1.0, -1.0, -0.1); - glVertex3f(1.0, 1.0, -0.1); - glVertex3f(-1.0, 1.0, -0.1); + glVertex(-1.0, -1.0, -0.1); + glVertex(1.0, -1.0, -0.1); + glVertex(1.0, 1.0, -0.1); + glVertex(-1.0, 1.0, -0.1); glEnd(); glDisable(GL_BLEND); @@ -126,10 +118,10 @@ public: glPopMatrix(); } - void draw(Scalar alpha) const + void draw(Engine& engine, Scalar alpha) const { Scalar a = mInterp.getState(alpha); - logInfo("draw state: %f", a); + logInfo << "transition state: " << a << std::endl; //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -138,7 +130,7 @@ public: glPushMatrix(); glLoadIdentity(); glRotate(180.0 * a, 0.0, 1.0, 0.0); - mFrom->draw(alpha); + mFrom->draw(engine, alpha); glPopMatrix(); } //drawFade(a); @@ -148,21 +140,21 @@ public: glPushMatrix(); glLoadIdentity(); glRotate(180.0 * (1.0 - a), 0.0, 1.0, 0.0); - mTo->draw(alpha); + mTo->draw(engine, alpha); glPopMatrix(); } //drawFade(1.0 - a); } - bool handleEvent(const Event& event) + bool handleEvent(Engine& engine, const Event& event) { if (mTo) { - return mTo->handleEvent(event); + return mTo->handleEvent(engine, event); } else if (mFrom) { - return mFrom->handleEvent(event); + return mFrom->handleEvent(engine, event); } return false; }