Test App controls are now frame-rate independent

--HG--
extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%4037
This commit is contained in:
kearwood
2012-04-12 06:41:56 +00:00
parent 35df6c2ec5
commit 4dc1164dbe
3 changed files with 11 additions and 17 deletions

View File

@@ -138,20 +138,6 @@
}
KRModelManager *pModelManager = [renderEngine getModelManager];
//m_scene.addInstance(pModelManager->getModel("fachwerkhaus12"), KRMat4());
//m_scene.addInstance(pModelManager->getModel("ballroom"), KRMat4());
//m_scene.addInstance(pModelManager->getModel("HoganCombined"), KRMat4());
//m_scene.addInstance(pModelManager->getModel("polySurface12848"), KRMat4(), "PillarLightmap2k");
//m_scene.addInstance(pModelManager->getModel("Wall2"), KRMat4(), "Wall2_lightmap");
/*
std::map<std::string, KRModel *> models = pModelManager->getModels();
for(std::map<std::string, KRModel *>::iterator itr=models.begin(); itr != models.end(); itr++) {
std::string lightmap = (*itr).first;
lightmap.append("_lightmap");
m_pScene->addInstance((*itr).second->getName(), (*itr).second->getName(), KRMat4(), lightmap);
}
*/
[renderEngine setNearZ: 25.0];
[renderEngine setFarZ: 5000.0];

View File

@@ -65,6 +65,8 @@
id displayLink;
CFTimeInterval _lastTime;
}

View File

@@ -162,6 +162,8 @@
camera_position = KRVector3(-850, -10, -700);
_lastTime= CFAbsoluteTimeGetCurrent();
displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(drawView:)];
[displayLink setFrameInterval:1]; // Maximum 60fps
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
@@ -177,6 +179,10 @@
- (void)drawView:(id)sender
{
CFTimeInterval time = CFAbsoluteTimeGetCurrent();
float deltaTime = (time - _lastTime);
_lastTime = time;
const GLfloat PI = 3.14159265;
const GLfloat d2r = PI * 2 / 360;
@@ -237,13 +243,13 @@
//double dScaleFactor = [engine getModelManager]->getFirstModel()->getMaxDimension() / 100.0f;
double dScaleFactor = 10.0f;
double dScaleFactor = 1000.0f * deltaTime;
camera_position.z += (-cos(camera_pitch) * cos(camera_yaw) * leftStickDeltaX + -cos(camera_pitch) * cos(camera_yaw - 90.0f * d2r) * -leftStickDeltaY) * dScaleFactor;
camera_position.x += (cos(camera_pitch) * sin(camera_yaw) * leftStickDeltaX + cos(camera_pitch) * sin(camera_yaw - 90.0f * d2r) * -leftStickDeltaY) * dScaleFactor;
camera_position.y += sin(camera_pitch) * leftStickDeltaX * dScaleFactor;
camera_yaw += rightStickDeltaY * 4.0 * d2r;
camera_pitch += rightStickDeltaX * 4.0 * d2r;
camera_yaw += rightStickDeltaY * 180.0 * d2r * deltaTime;
camera_pitch += rightStickDeltaX * 180.0 * d2r * deltaTime;
[engine renderScene: [glView getScene] WithPosition:camera_position Yaw: camera_yaw Pitch: camera_pitch Roll:0.0f];