1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-07 03:13:49 +00:00

Disable GL_CLIP_DISTANCE for GLES

This commit is contained in:
Sergey Lipskiy 2015-04-23 13:23:10 +06:00
parent d894d465c1
commit bd5740ea3d
5 changed files with 15 additions and 0 deletions

View File

@ -176,6 +176,7 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent)
case F3DEX2CBFD:F3DEX2CBFD_Init(); break; case F3DEX2CBFD:F3DEX2CBFD_Init(); break;
} }
#ifndef GLESX
if (m_pCurrent->NoN) { if (m_pCurrent->NoN) {
// Disable near and far plane clipping // Disable near and far plane clipping
glEnable(GL_DEPTH_CLAMP); glEnable(GL_DEPTH_CLAMP);
@ -185,7 +186,9 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent)
glDisable(GL_DEPTH_CLAMP); glDisable(GL_DEPTH_CLAMP);
glDisable(GL_CLIP_DISTANCE0); glDisable(GL_CLIP_DISTANCE0);
} }
#endif
} else if (m_pCurrent->NoN != _pCurrent->NoN) { } else if (m_pCurrent->NoN != _pCurrent->NoN) {
#ifndef GLESX
if (_pCurrent->NoN) { if (_pCurrent->NoN) {
// Disable near and far plane clipping // Disable near and far plane clipping
glEnable(GL_DEPTH_CLAMP); glEnable(GL_DEPTH_CLAMP);
@ -196,6 +199,7 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent)
glDisable(GL_DEPTH_CLAMP); glDisable(GL_DEPTH_CLAMP);
glDisable(GL_CLIP_DISTANCE0); glDisable(GL_CLIP_DISTANCE0);
} }
#endif
} }
m_pCurrent = _pCurrent; m_pCurrent = _pCurrent;
} }

View File

@ -578,12 +578,16 @@ void OGLRender::_updateStates(RENDER_STATE _renderState) const
_updateDepthUpdate(); _updateDepthUpdate();
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
#ifndef GLESX
if (!GBI.isNoN()) if (!GBI.isNoN())
glDisable(GL_DEPTH_CLAMP); glDisable(GL_DEPTH_CLAMP);
#endif
} else { } else {
glDisable(GL_DEPTH_TEST); glDisable(GL_DEPTH_TEST);
#ifndef GLESX
if (!GBI.isNoN()) if (!GBI.isNoN())
glEnable(GL_DEPTH_CLAMP); glEnable(GL_DEPTH_CLAMP);
#endif
} }
} }

View File

@ -15,6 +15,7 @@
#include <GLES2/gl2ext.h> #include <GLES2/gl2ext.h>
#define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER #define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER
#define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER #define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER
#define GLESX
#else #else
#define GL_GLEXT_PROTOTYPES #define GL_GLEXT_PROTOTYPES
#if defined(OS_MAC_OS_X) #if defined(OS_MAC_OS_X)

View File

@ -89,7 +89,9 @@ static const char* vertex_shader =
" break; \n" " break; \n"
" } \n" " } \n"
" } \n" " } \n"
#ifndef GLESX
" gl_ClipDistance[0] = gl_Position.w - gl_Position.z; \n" " gl_ClipDistance[0] = gl_Position.w - gl_Position.z; \n"
#endif
"} \n" "} \n"
; ;

View File

@ -150,6 +150,7 @@ void inline cache_glDisable (GLenum cap)
glState.cached_DEPTH_TEST = false; glState.cached_DEPTH_TEST = false;
} }
break; break;
#ifndef GLESX
case GL_DEPTH_CLAMP: case GL_DEPTH_CLAMP:
if (glState.cached_DEPTH_CLAMP) { if (glState.cached_DEPTH_CLAMP) {
glDisable(GL_DEPTH_CLAMP); glDisable(GL_DEPTH_CLAMP);
@ -162,6 +163,7 @@ void inline cache_glDisable (GLenum cap)
glState.cached_CLIP_DISTANCE0 = false; glState.cached_CLIP_DISTANCE0 = false;
} }
break; break;
#endif
case GL_DITHER: case GL_DITHER:
if (glState.cached_DITHER) { if (glState.cached_DITHER) {
glDisable(GL_DITHER); glDisable(GL_DITHER);
@ -220,6 +222,7 @@ void inline cache_glEnable(GLenum cap)
glState.cached_DEPTH_TEST = true; glState.cached_DEPTH_TEST = true;
} }
break; break;
#ifndef GLESX
case GL_DEPTH_CLAMP: case GL_DEPTH_CLAMP:
if (!glState.cached_DEPTH_CLAMP) { if (!glState.cached_DEPTH_CLAMP) {
glEnable(GL_DEPTH_CLAMP); glEnable(GL_DEPTH_CLAMP);
@ -232,6 +235,7 @@ void inline cache_glEnable(GLenum cap)
glState.cached_CLIP_DISTANCE0 = true; glState.cached_CLIP_DISTANCE0 = true;
} }
break; break;
#endif
case GL_DITHER: case GL_DITHER:
if (!glState.cached_DITHER) { if (!glState.cached_DITHER) {
glEnable(GL_DITHER); glEnable(GL_DITHER);