浏览代码

Review UpdateVrTracking() and rlglLoadRenderTexture()

raysan5 9 年之前
父节点
当前提交
5fecf5c088
共有 3 个文件被更改,包括 11 次插入10 次删除
  1. 1 1
      src/raylib.h
  2. 9 8
      src/rlgl.c
  3. 1 1
      src/rlgl.h

+ 1 - 1
src/raylib.h

@@ -892,7 +892,7 @@ RLAPI void InitVrDevice(int vdDevice);            // Init VR device
 RLAPI void CloseVrDevice(void);                   // Close VR device
 RLAPI bool IsVrDeviceReady(void);                 // Detect if VR device (or simulator) is ready
 RLAPI bool IsVrSimulator(void);                   // Detect if VR simulator is running
-RLAPI void UpdateVrTracking(void);                // Update VR tracking (position and orientation)
+RLAPI void UpdateVrTracking(Camera *camera);      // Update VR tracking (position and orientation) and camera
 RLAPI void ToggleVrMode(void);                    // Enable/Disable VR experience (device or simulator)
 
 //------------------------------------------------------------------------------------

+ 9 - 8
src/rlgl.c

@@ -1522,7 +1522,7 @@ RenderTexture2D rlglLoadRenderTexture(int width, int height)
     target.texture.id = 0;
     target.texture.width = width;
     target.texture.height = height;
-    target.texture.format = UNCOMPRESSED_R8G8B8;
+    target.texture.format = UNCOMPRESSED_R8G8B8A8;
     target.texture.mipmaps = 1;
     
     target.depth.id = 0;
@@ -1539,7 +1539,7 @@ RenderTexture2D rlglLoadRenderTexture(int width, int height)
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
+    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
     glBindTexture(GL_TEXTURE_2D, 0);
     
 #if defined(GRAPHICS_API_OPENGL_33)
@@ -2734,16 +2734,17 @@ void ToggleVrMode(void)
 #endif
 }
 
-// Update VR tracking (position and orientation)
-void UpdateVrTracking(void)
+// Update VR tracking (position and orientation) and camera
+void UpdateVrTracking(Camera *camera)
 {
 #if defined(RLGL_OCULUS_SUPPORT)
-    if (vrDeviceReady) UpdateOculusTracking();
-    else
-#endif
+    if (vrDeviceReady)
     {
-        // TODO: Use alternative inputs (mouse, keyboard) to simulate tracking data (eyes position/orientation)
+        UpdateOculusTracking();
+        
+        // TODO: Update camera data (position, target, up) with tracking data
     }
+#endif
 }
 
 // Begin Oculus drawing configuration

+ 1 - 1
src/rlgl.h

@@ -375,7 +375,7 @@ float *MatrixToFloat(Matrix mat);
 void InitVrDevice(int vrDevice);            // Init VR device
 void CloseVrDevice(void);                   // Close VR device
 bool IsVrDeviceReady(void);                 // Detect if VR device (or simulator) is ready
-void UpdateVrTracking(void);                // Update VR tracking (position and orientation)
+void UpdateVrTracking(Camera *camera);      // Update VR tracking (position and orientation) and camera
 void ToggleVrMode(void);                    // Enable/Disable VR experience (device or simulator)
 
 // Oculus Rift API for direct access the device (no simulator)