private void OnStartCameraCompleted(params object[] args) { mStarted = (bool)args[0]; if (StartCameraCompletedDelegate != null) { StartCameraCompletedDelegate(mStarted); } if (!mStarted) { return; } camerainfo = (WVR_CameraInfo_t)args[1]; Log.d(LOG_TAG, "OnStartCameraCompleted, result = " + mStarted + " type = " + camerainfo.imgType + " width = " + camerainfo.width + " height = " + camerainfo.height); }
public override bool StartCamera(ref WVR_CameraInfo_t info) { return(WVR_StartCamera_Android(ref info)); }
public static extern bool WVR_StartCamera_Android(ref WVR_CameraInfo_t info);
private static void RenderEvent(int eventId) { if ((eventId & (int)EngineEventID.ENGINE_EVENT_ID_BEGIN) == (int)EngineEventID.ENGINE_EVENT_ID_BEGIN) { NativeProcessEngineEvent((uint)EngineThreadID.RENDER_THREAD, (uint)eventId); return; } switch (eventId) { case RENDEREVENTID_INIT_GRAPHIC: // Use native code to initial compositor then get the c# instance later. NativeRenderEvent(k_nRenderEventID_GraphicInitial); break; case RENDEREVENTID_Systrace_BeginSession: string sectionName; lock (TraceSessionNameQueue) { try { sectionName = (string)TraceSessionNameQueue.Dequeue(); } catch (System.InvalidOperationException) { sectionName = "Empty"; } } TraceBeginSection(sectionName); break; case RENDEREVENTID_Systrace_EndSession: TraceEndSection(); break; case RENDEREVENTID_StartCamera: { WVR_CameraInfo_t camerainfo = new WVR_CameraInfo_t(); var result = Interop.WVR_StartCamera(ref camerainfo); WaveVR_Utils.Event.Send("StartCameraCompleted", result, camerainfo); } break; case RENDEREVENTID_StopCamera: { Interop.WVR_StopCamera(); } break; case RENDEREVENTID_UpdateCamera: { var updated = Interop.WVR_UpdateTexture(WaveVR_CameraTexture.instance.getNativeTextureId()); WaveVR_Utils.Event.Send("UpdateCameraCompleted", updated); } break; } }
private static void RenderEvent(int eventId) { if ((eventId & (int)EngineEventID.ENGINE_EVENT_ID_BEGIN) == (int)EngineEventID.ENGINE_EVENT_ID_BEGIN) { NativeProcessEngineEvent((uint)EngineThreadID.RENDER_THREAD, (uint)eventId); return; } switch (eventId) { case RENDEREVENTID_EditorEmptyOperation: break; case RENDEREVENTID_INIT_GRAPHIC: break; case RENDEREVENTID_SHUTDOWN_GRAPHIC: // Use native code to shutdown compositor. NativeRenderEvent(k_nRenderEventID_GraphicShutdown); break; case RENDEREVENTID_Systrace_BeginSession: string sectionName; lock (TraceSessionNameQueue) { try { sectionName = (string)TraceSessionNameQueue.Dequeue(); } catch (System.InvalidOperationException) { sectionName = "Empty"; } } TraceBeginSection(sectionName); break; case RENDEREVENTID_Systrace_EndSession: TraceEndSection(); break; case RENDEREVENTID_StartCamera: { WVR_CameraInfo_t camerainfo = new WVR_CameraInfo_t(); var result = Interop.WVR_StartCamera(ref camerainfo); Event.Send("StartCameraCompleted", result, camerainfo); } break; case RENDEREVENTID_StopCamera: { Interop.WVR_StopCamera(); } break; case RENDEREVENTID_UpdateCamera: { var updated = Interop.WVR_UpdateTexture(WaveVR_CameraTexture.instance.getNativeTextureId()); Event.Send("UpdateCameraCompleted", updated); } break; case RENDEREVENTID_DrawTextureWithBuffer: { IntPtr nativeTexId = WaveVR_CameraTexture.instance.getNativeTextureId(); uint bufferSize = WaveVR_CameraTexture.instance.getImageSize(); IntPtr framebuffer = WaveVR_CameraTexture.instance.getNativeFrameBuffer(); uint width = WaveVR_CameraTexture.instance.getImageWidth(); uint height = WaveVR_CameraTexture.instance.getImageHeight(); WVR_CameraImageFormat imgFormat = WaveVR_CameraTexture.instance.getImageFormat(); bool updated = Interop.WVR_DrawTextureWithBuffer(nativeTexId, imgFormat, framebuffer, bufferSize, width, height); Event.Send("DrawCameraCompleted", updated); } break; case RENDEREVENTID_ReleaseTexture: { Interop.WVR_ReleaseCameraTexture(); } break; case RENDEREVENTID_RenderMaskLeft: { Interop.WVR_RenderMask(WVR_Eye.WVR_Eye_Left); } break; case RENDEREVENTID_RenderMaskRight: { Interop.WVR_RenderMask(WVR_Eye.WVR_Eye_Right); } break; case RENDEREVENTID_SinglePassPrepare: case RENDEREVENTID_SinglePassPrepareWithAntiAliasing2x: case RENDEREVENTID_SinglePassPrepareWithAntiAliasing4x: case RENDEREVENTID_SinglePassPrepareWithAntiAliasing8x: { var render = WaveVR_Render.Instance; if (render == null) { return; } int aa = eventId - RENDEREVENTID_SinglePassPrepare; PrepareSinglePassTexture(aa, (int)render.sceneWidth, (int)render.sceneHeight); } break; case RENDEREVENTID_SinglePassBeforeForwardOpaque: { SinglePassBeforeForwardOpaque(); } break; case RENDEREVENTID_SinglePassPostRender: { SinglePassPostRender(); } break; case RENDEREVENTID_ExecuteCustomFunction: { if (mCustomRenderThreadFunc != null) { mCustomRenderThreadFunc(); } mCustomRenderThreadFunc = null; } break; } }
public static extern bool WVR_StartCamera_HVR(ref WVR_CameraInfo_t info);
public override bool StartCamera(ref WVR_CameraInfo_t info) { Log.i("WVR_HVR", "StartCamera()"); return(WVR_StartCamera_HVR(ref info)); }
private static void RenderEvent(int eventId) { if ((eventId & (int)EngineEventID.ENGINE_EVENT_ID_BEGIN) == (int)EngineEventID.ENGINE_EVENT_ID_BEGIN) { NativeProcessEngineEvent((uint)EngineThreadID.RENDER_THREAD, (uint)eventId); return; } switch (eventId) { case RENDEREVENTID_EditorEmptyOperation: break; case RENDEREVENTID_INIT_GRAPHIC: ColorSpace space = WaveVR_Render.Instance.QSColorSpace; if (space == ColorSpace.Gamma) { Log.d(LOG_TAG, "Gamma color space is applied."); SetColorSpace(0); } else { Log.d(LOG_TAG, "Linear color space is applied."); SetColorSpace(1); } // Use native code to initial compositor then get the c# instance later. NativeRenderEvent(k_nRenderEventID_GraphicInitial); break; case RENDEREVENTID_SHUTDOWN_GRAPHIC: // Use native code to shutdown compositor. NativeRenderEvent(k_nRenderEventID_GraphicShutdown); break; case RENDEREVENTID_Systrace_BeginSession: string sectionName; lock (TraceSessionNameQueue) { try { sectionName = (string)TraceSessionNameQueue.Dequeue(); } catch (System.InvalidOperationException) { sectionName = "Empty"; } } TraceBeginSection(sectionName); break; case RENDEREVENTID_Systrace_EndSession: TraceEndSection(); break; case RENDEREVENTID_StartCamera: { WVR_CameraInfo_t camerainfo = new WVR_CameraInfo_t(); var result = Interop.WVR_StartCamera(ref camerainfo); Event.Send("StartCameraCompleted", result, camerainfo); } break; case RENDEREVENTID_StopCamera: { Interop.WVR_StopCamera(); } break; case RENDEREVENTID_UpdateCamera: { var updated = Interop.WVR_UpdateTexture(WaveVR_CameraTexture.instance.getNativeTextureId()); Event.Send("UpdateCameraCompleted", updated); } break; case RENDEREVENTID_RenderMaskLeft: { Interop.WVR_RenderMask(WVR_Eye.WVR_Eye_Left); } break; case RENDEREVENTID_RenderMaskRight: { Interop.WVR_RenderMask(WVR_Eye.WVR_Eye_Right); } break; case RENDEREVENTID_SinglePassPrepare: case RENDEREVENTID_SinglePassPrepareWithAntiAliasing2x: case RENDEREVENTID_SinglePassPrepareWithAntiAliasing4x: case RENDEREVENTID_SinglePassPrepareWithAntiAliasing8x: { var render = WaveVR_Render.Instance; if (render == null) { return; } int aa = eventId - RENDEREVENTID_SinglePassPrepare; PrepareSinglePassTexture(aa, (int)render.sceneWidth, (int)render.sceneHeight); } break; case RENDEREVENTID_SinglePassBeforeForwardOpaque: { SinglePassBeforeForwardOpaque(); } break; case RENDEREVENTID_SinglePassPostRender: { SinglePassPostRender(); } break; } }