浏览代码

Expose enable/disable backface culling

Some tweaks on BeginVrDrawing()
pull/823/head
raysan5 6 年前
父节点
当前提交
7c10f971c1
共有 1 个文件被更改,包括 21 次插入12 次删除
  1. +21
    -12
      src/rlgl.h

+ 21
- 12
src/rlgl.h 查看文件

@ -451,6 +451,8 @@ RLAPI void rlEnableRenderTexture(unsigned int id); // Enable render t
RLAPI void rlDisableRenderTexture(void); // Disable render texture (fbo), return to default framebuffer RLAPI void rlDisableRenderTexture(void); // Disable render texture (fbo), return to default framebuffer
RLAPI void rlEnableDepthTest(void); // Enable depth test RLAPI void rlEnableDepthTest(void); // Enable depth test
RLAPI void rlDisableDepthTest(void); // Disable depth test RLAPI void rlDisableDepthTest(void); // Disable depth test
RLAPI void rlEnableBackfaceCulling(void); // Enable backface culling
RLAPI void rlDisableBackfaceCulling(void); // Disable backface culling
RLAPI void rlEnableWireMode(void); // Enable wire mode RLAPI void rlEnableWireMode(void); // Enable wire mode
RLAPI void rlDisableWireMode(void); // Disable wire mode RLAPI void rlDisableWireMode(void); // Disable wire mode
RLAPI void rlDeleteTextures(unsigned int id); // Delete OpenGL texture from GPU RLAPI void rlDeleteTextures(unsigned int id); // Delete OpenGL texture from GPU
@ -1345,6 +1347,18 @@ void rlDisableDepthTest(void)
glDisable(GL_DEPTH_TEST); glDisable(GL_DEPTH_TEST);
} }
// Enable backface culling
void rlEnableBackfaceCulling(void)
{
glEnable(GL_CULL_FACE);
}
// Disable backface culling
void rlDisableBackfaceCulling(void)
{
glDisable(GL_CULL_FACE);
}
// Enable wire mode // Enable wire mode
void rlEnableWireMode(void) void rlEnableWireMode(void)
{ {
@ -3657,30 +3671,25 @@ void ToggleVrMode(void)
#endif #endif
} }
// Begin Oculus drawing configuration
// Begin VR drawing configuration
void BeginVrDrawing(void) void BeginVrDrawing(void)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)
if (vrSimulatorReady) if (vrSimulatorReady)
{ {
// Setup framebuffer for stereo rendering
rlEnableRenderTexture(stereoFbo.id);
// NOTE: If your application is configured to treat the texture as a linear format (e.g. GL_RGBA)
// and performs linear-to-gamma conversion in GLSL or does not care about gamma-correction, then:
// - Require OculusBuffer format to be OVR_FORMAT_R8G8B8A8_UNORM_SRGB
// - Do NOT enable GL_FRAMEBUFFER_SRGB
//glEnable(GL_FRAMEBUFFER_SRGB);
rlEnableRenderTexture(stereoFbo.id); // Setup framebuffer for stereo rendering
//glEnable(GL_FRAMEBUFFER_SRGB); // Enable SRGB framebuffer (only if required)
//glViewport(0, 0, buffer.width, buffer.height); // Useful if rendering to separate framebuffers (every eye)
rlClearScreenBuffers(); // Clear current framebuffer(s)
//glViewport(0, 0, buffer.width, buffer.height); // Useful if rendering to separate framebuffers (every eye)
rlClearScreenBuffers(); // Clear current framebuffer
vrStereoRender = true; vrStereoRender = true;
} }
#endif #endif
} }
// End Oculus drawing process (and desktop mirror)
// End VR drawing process (and desktop mirror)
void EndVrDrawing(void) void EndVrDrawing(void)
{ {
#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2)

正在加载...
取消
保存