//---------------------------------------------------------------------------- void WrigglingSnake::OnIdle () { MeasureTime(); MoveCamera(); if (MoveObject()) { mScene->Update(); } #ifndef SINGLE_STEP ModifyCurve(); #endif mCuller.ComputeVisibleSet(mScene); if (mRenderer->PreDraw()) { mRenderer->ClearBuffers(); mRenderer->Draw(mCuller.GetVisibleSet()); DrawFrameRate(8, GetHeight()-8, mTextColor); mRenderer->PostDraw(); mRenderer->DisplayColorBuffer(); } UpdateFrameCount(); }
//---------------------------------------------------------------------------- void WrigglingSnake::OnKeyDown (unsigned char ucKey, int, int) { if ( ucKey == 'q' || ucKey == 'Q' || ucKey == KEY_ESCAPE ) { RequestTermination(); return; } switch ( ucKey ) { case 'w': // toggle wireframe case 'W': m_spkWireframe->Enabled() = !m_spkWireframe->Enabled(); break; #ifdef SINGLE_STEP case 'g': case 'G': ModifyCurve(); break; #endif } }
//---------------------------------------------------------------------------- bool WrigglingSnake::OnKeyDown (unsigned char key, int x, int y) { if (WindowApplication3::OnKeyDown(key, x, y)) { return true; } switch (key) { case 'w': // toggle wireframe case 'W': mWireState->Enabled = !mWireState->Enabled; return true; #ifdef SINGLE_STEP case 'g': case 'G': ModifyCurve(); return true; #endif } return false; }
//---------------------------------------------------------------------------- void WrigglingSnake::OnIdle () { MeasureTime(); MoveCamera(); if ( MoveObject() ) m_spkScene->UpdateGS(0.0f); #ifndef SINGLE_STEP ModifyCurve(); #endif ms_spkRenderer->ClearBuffers(); if ( ms_spkRenderer->BeginScene() ) { ms_spkRenderer->Draw(m_spkScene); DrawFrameRate(8,GetHeight()-8,ColorRGB::BLACK); ms_spkRenderer->EndScene(); } ms_spkRenderer->DisplayBackBuffer(); UpdateClicks(); }