mirror of
https://github.com/bulletphysics/bullet3.git
synced 2026-06-08 08:13:55 +00:00
reset camera in the rendering thread to avoid artifacts
This commit is contained in:
@@ -130,6 +130,7 @@ enum MultiThreadedGUIHelperCommunicationEnums
|
||||
eGUIHelperUpdateShape,
|
||||
eGUIHelperChangeGraphicsInstanceScaling,
|
||||
eGUIUserDebugRemoveAllParameters,
|
||||
eGUIHelperResetCamera,
|
||||
};
|
||||
|
||||
#include <stdio.h>
|
||||
@@ -1086,9 +1087,23 @@ public:
|
||||
{
|
||||
m_childGuiHelper->setUpAxis(axis);
|
||||
}
|
||||
float m_resetCameraCamDist;
|
||||
float m_resetCameraYaw;
|
||||
float m_resetCameraPitch;
|
||||
float m_resetCameraCamPosX;
|
||||
float m_resetCameraCamPosY;
|
||||
float m_resetCameraCamPosZ;
|
||||
|
||||
virtual void resetCamera(float camDist, float yaw, float pitch, float camPosX, float camPosY, float camPosZ)
|
||||
{
|
||||
m_childGuiHelper->resetCamera(camDist, yaw, pitch, camPosX, camPosY, camPosZ);
|
||||
m_resetCameraCamDist = camDist;
|
||||
m_resetCameraYaw = yaw;
|
||||
m_resetCameraPitch = pitch;
|
||||
m_resetCameraCamPosX = camPosX;
|
||||
m_resetCameraCamPosY = camPosY;
|
||||
m_resetCameraCamPosZ = camPosZ;
|
||||
m_cs->setSharedParam(1, eGUIHelperResetCamera);
|
||||
workerThreadWait();
|
||||
}
|
||||
|
||||
virtual bool getCameraInfo(int* width, int* height, float viewMatrix[16], float projectionMatrix[16], float camUp[3], float camForward[3], float hor[3], float vert[3], float* yaw, float* pitch, float* camDist, float camTarget[3]) const
|
||||
@@ -2360,6 +2375,18 @@ void PhysicsServerExample::updateGraphics()
|
||||
m_multiThreadedHelper->mainThreadRelease();
|
||||
break;
|
||||
}
|
||||
case eGUIHelperResetCamera:
|
||||
{
|
||||
m_multiThreadedHelper->m_childGuiHelper->resetCamera(
|
||||
m_multiThreadedHelper->m_resetCameraCamDist,
|
||||
m_multiThreadedHelper->m_resetCameraYaw,
|
||||
m_multiThreadedHelper->m_resetCameraPitch,
|
||||
m_multiThreadedHelper->m_resetCameraCamPosX,
|
||||
m_multiThreadedHelper->m_resetCameraCamPosY,
|
||||
m_multiThreadedHelper->m_resetCameraCamPosZ);
|
||||
m_multiThreadedHelper->mainThreadRelease();
|
||||
}
|
||||
|
||||
case eGUIHelperAutogenerateGraphicsObjects:
|
||||
{
|
||||
B3_PROFILE("eGUIHelperAutogenerateGraphicsObjects");
|
||||
|
||||
Reference in New Issue
Block a user