📄 testkeyframecontroller.cpp
字号:
// Magic Software, Inc.
// http://www.magic-software.com
// Copyright (c) 2000, All Rights Reserved
//
// Source code from Magic Software is supplied under the terms of a license
// agreement and may not be copied or disclosed except in accordance with the
// terms of that agreement. The various license agreements may be found at
// the Magic Software web site. This file is subject to the license
//
// FREE SOURCE CODE
// http://www.magic-software.com/License.html/free.pdf
#include "TestKeyframeController.h"
//---------------------------------------------------------------------------
MgcApplication* MgcApplication::Create ()
{
return new TestKeyframeController;
}
//---------------------------------------------------------------------------
TestKeyframeController::TestKeyframeController ()
:
MgcApplication("TestKeyframeController",640,480,0,1)
{
// initialize 'last time'
MeasureTime();
}
//---------------------------------------------------------------------------
bool TestKeyframeController::Initialize ()
{
m_spkCamera = new MgcOglCamera(640,480);
m_spkCamera->SetFrustum(1.0,1000.0,-0.55,0.55,0.4125,-0.4125);
MgcVector3 kCLoc(80.0,0.0,23.0);
MgcVector3 kCLeft(0.0,-1.0,0.0);
MgcVector3 kCUp(0.0,0.0,1.0);
MgcVector3 kCDir(-1.0,0,0.0);
m_spkCamera->SetFrame(kCLoc,kCLeft,kCUp,kCDir);
m_spkRenderer = new MgcOglRenderer(GetWindowHandle(),640,480);
m_spkRenderer->SetBackgroundColor(MgcColor(0.5f,0.0f,1.0f));
m_spkRenderer->SetCamera(m_spkCamera);
MgcStream kStream;
bool bLoaded = kStream.Load("biped.mgc");
m_spkScene = (MgcNode*) kStream.GetObjectAt(0);
m_spkCamera->Update();
m_spkScene->UpdateGS(0.0);
m_spkScene->UpdateRS();
return true;
}
//---------------------------------------------------------------------------
void TestKeyframeController::Terminate ()
{
m_spkRenderer = 0;
m_spkScene = 0;
}
//---------------------------------------------------------------------------
void TestKeyframeController::OnIdle ()
{
MeasureTime();
m_spkRenderer->ClearBuffers();
m_spkRenderer->Draw(m_spkScene);
m_spkRenderer->DisplayBackBuffer();
DrawFrameRate();
UpdateClicks();
}
//---------------------------------------------------------------------------
bool TestKeyframeController::WmChar (char cCharCode, long lKeyData)
{
switch ( cCharCode )
{
case '0': // reset frame rate measurements
ResetTime();
return true;
case 'q':
case 'Q':
case VK_ESCAPE:
PostMessage(GetWindowHandle(),WM_DESTROY,0,0);
return true;
}
// animation
static MgcReal fTime = 0.0;
switch ( cCharCode )
{
case 'g':
fTime += 0.01;
break;
case 'G':
fTime = 0.0;
break;
}
m_spkScene->UpdateGS(fTime);
return false;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -