Просмотр исходного кода

Corrected bug on stereo rendering

raysan5 9 лет назад
Родитель
Сommit
8652e644dd
3 измененных файлов с 8 добавлено и 8 удалено
  1. 1 1
      src/core.c
  2. 6 6
      src/rlgl.c
  3. 1 1
      src/rlgl.h

+ 1 - 1
src/core.c

@@ -1774,7 +1774,7 @@ static void InitGraphicsDevice(int width, int height)
 #endif // defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI)
 
     // Initialize OpenGL context (states and resources)
-    rlglInit();
+    rlglInit(screenWidth, screenHeight);
     
     // Initialize screen viewport (area of the screen that you will actually draw to)
     // NOTE: Viewport must be recalculated if screen is resized

+ 6 - 6
src/rlgl.c

@@ -485,10 +485,6 @@ void rlOrtho(double left, double right, double bottom, double top, double near,
 void rlViewport(int x, int y, int width, int height)
 {
     glViewport(x, y, width, height);
-    
-    // Store default framebuffer size
-    screenWidth = width;
-    screenHeight = height;
 }
 
 //----------------------------------------------------------------------------------
@@ -952,7 +948,7 @@ int rlGetVersion(void)
 //----------------------------------------------------------------------------------
 
 // Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states
-void rlglInit(void)
+void rlglInit(int width, int height)
 {
     // Check OpenGL information and capabilities
     //------------------------------------------------------------------------------
@@ -1167,6 +1163,10 @@ void rlglInit(void)
     glClearColor(0.0f, 0.0f, 0.0f, 1.0f);                   // Set clear color (black)
     glClearDepth(1.0f);                                     // Set clear depth value (default)
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);     // Clear color and depth buffers (depth buffer required for 3D)
+    
+    // Store screen size into global variables
+    screenWidth = width;
+    screenHeight = height;
 
     TraceLog(INFO, "OpenGL default states initialized successfully");
 }
@@ -2524,7 +2524,7 @@ void InitOculusDevice(void)
     if (!oculusEnabled)
     {
         TraceLog(WARNING, "VR: Initializing Oculus simulator");
-        
+
         // Initialize framebuffer and textures for stereo rendering
         stereoFbo = rlglLoadRenderTexture(screenWidth, screenHeight);
         

+ 1 - 1
src/rlgl.h

@@ -298,7 +298,7 @@ int rlGetVersion(void);                         // Returns current OpenGL versio
 //------------------------------------------------------------------------------------
 // Functions Declaration - rlgl functionality
 //------------------------------------------------------------------------------------
-void rlglInit(void);                            // Initialize rlgl (shaders, VAO, VBO...)
+void rlglInit(int width, int height);           // Initialize rlgl (buffers, shaders, textures, states)
 void rlglClose(void);                           // De-init rlgl
 void rlglDraw(void);                            // Draw VAO/VBO
 void rlglLoadExtensions(void *loader);          // Load OpenGL extensions