- For integrating with Display::DrawMesh() / Display::DrawTranslucency()
- Directly setting viewMatrix and cPosition
- Not recomputing the camera when SetCamera is called with a null surface
result.z += cPosition.z;
}
+ public void setViewMatrix(Matrix value)
+ {
+ viewMatrix = value;
+ }
+
+ public void setCPosition(Vector3D value)
+ {
+ cPosition = value;
+ }
+
private:
Camera()
{
camera.Setup(width, height, null);
// Always calling Update() here had broken interpolation in OrbitWithMouse!
- if(!camera.cAngle.w)
+ if(!camera.cAngle.w && surface)
camera.Update();
if(display3D.selection)
OGLDisplay oglDisplay = display.driverData;
//Logf("SetCamera\n");
- if(camera)
+ if(surface && camera)
{
int left = surface.box.left + surface.offset.x;
int top = surface.box.top + surface.offset.y;
glEnable(GL_MULTISAMPLE_ARB);
}
- else if(display.display3D.camera)
+ else if(surface && display.display3D.camera)
{
oglDisplay.depthWrite = false;
glViewport(0,0,display.width,display.height);