2323 ****************************************************************************/
2424
2525#include " platform/CCPlatformMacros.h"
26- #include " vr/CCVROculus .h"
26+ #include " vr/CCVROculusRenderer .h"
2727#include " renderer/CCRenderer.h"
2828#include " renderer/CCGLProgramState.h"
2929#include " renderer/ccGLStateCache.h"
@@ -211,15 +211,15 @@ struct TextureBuffer
211211
212212NS_CC_BEGIN
213213
214- VROculus::VROculus ()
214+ VROculusRenderer::VROculusRenderer ()
215215{
216216}
217217
218- VROculus ::~VROculus ()
218+ VROculusRenderer ::~VROculusRenderer ()
219219{
220220}
221221
222- void VROculus ::setup (GLView* glview)
222+ void VROculusRenderer ::setup (GLView* glview)
223223{
224224 auto vp = Camera::getDefaultViewport ();
225225
@@ -270,7 +270,7 @@ void VROculus::setup(GLView* glview)
270270 _ld.Header .Flags = ovrLayerFlag_TextureOriginAtBottomLeft; // Because OpenGL.
271271}
272272
273- void VROculus ::cleanup ()
273+ void VROculusRenderer ::cleanup ()
274274{
275275 if (_mirrorFBO) glDeleteFramebuffers (1 , &_mirrorFBO);
276276 if (_mirrorTexture) ovr_DestroyMirrorTexture (_HMD, reinterpret_cast <ovrTexture*>(_mirrorTexture));
@@ -283,7 +283,7 @@ void VROculus::cleanup()
283283 // OVR::System::Dest
284284}
285285
286- void VROculus ::render (Scene* scene, Renderer* renderer)
286+ void VROculusRenderer ::render (Scene* scene, Renderer* renderer)
287287{
288288// ovrVector3f ViewOffset[2] = { _eyeRenderDesc[0].HmdToEyeViewOffset, _eyeRenderDesc[1].HmdToEyeViewOffset };
289289// ovrPosef EyeRenderPose[2];
@@ -294,6 +294,7 @@ void VROculus::render(Scene* scene, Renderer* renderer)
294294// ovr_CalcEyePoses(hmdState.HeadPose.ThePose, ViewOffset, EyeRenderPose);
295295// //Vec3 defaultPos = Camera::getDefaultCamera()->getPosition3D();
296296
297+ Mat4 transform;
297298 GLint viewport[4 ];
298299 glGetIntegerv (GL_VIEWPORT, viewport);
299300
@@ -307,8 +308,9 @@ void VROculus::render(Scene* scene, Renderer* renderer)
307308 _ld.RenderPose [eye] = { { 0 .0f , 0 .0f , 0 .0f , 1 .0f }, {0 .0f , 0 .0f , 0 .0f } };
308309 // _ld.SensorSampleTime = sensorSampleTime;
309310
311+ Mat4::createTranslation (_eyeRenderDesc[eye].HmdToEyeViewOffset .x , _eyeRenderDesc[eye].HmdToEyeViewOffset .y , _eyeRenderDesc[eye].HmdToEyeViewOffset .z , &transform);
310312 _eyeRenderTexture[eye]->SetAndClearRenderSurface (_eyeDepthBuffer[eye]);
311- scene->render (renderer, Vec3 (_eyeRenderDesc[eye]. HmdToEyeViewOffset . x , _eyeRenderDesc[eye]. HmdToEyeViewOffset . y , _eyeRenderDesc[eye]. HmdToEyeViewOffset . z ) );
313+ scene->render (renderer, transform );
312314 _eyeRenderTexture[eye]->UnsetRenderSurface ();
313315 }
314316 glDepthMask (false );
0 commit comments