mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-13 07:58:04 +00:00
Polymer: preliminary support for GL_ARB_debug_output
This won't actually do anything until the a debug bit is added when creating the context, but that requires support for GLX_create_context which SDL doesn't support. I'll add support for WGL_create_context to winlayer in a bit as a stopgap. Also updates our local copy of glext.h with a fresh one from the Khronos registry. git-svn-id: https://svn.eduke32.com/eduke32@2056 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
e7c735418f
commit
93b4d6182e
9 changed files with 5541 additions and 1279 deletions
|
@ -65,6 +65,7 @@ struct glinfo_t {
|
||||||
char sm4;
|
char sm4;
|
||||||
char occlusionqueries;
|
char occlusionqueries;
|
||||||
char glsl;
|
char glsl;
|
||||||
|
char debugoutput;
|
||||||
char dumped;
|
char dumped;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -283,6 +283,10 @@ extern void (APIENTRY * bglBindAttribLocationARB)(GLhandleARB, GLuint, const GLc
|
||||||
extern void (APIENTRY * bglGetActiveAttribARB)(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
|
extern void (APIENTRY * bglGetActiveAttribARB)(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
|
||||||
extern GLint (APIENTRY * bglGetAttribLocationARB)(GLhandleARB, const GLcharARB *);
|
extern GLint (APIENTRY * bglGetAttribLocationARB)(GLhandleARB, const GLcharARB *);
|
||||||
|
|
||||||
|
// Debug Output
|
||||||
|
extern void (APIENTRY * bglDebugMessageControlARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||||
|
extern void (APIENTRY * bglDebugMessageCallbackARB)(GLDEBUGPROCARB callback, const GLvoid *userParam);
|
||||||
|
|
||||||
// GLU
|
// GLU
|
||||||
extern void (APIENTRY * bgluTessBeginContour) (GLUtesselator* tess);
|
extern void (APIENTRY * bgluTessBeginContour) (GLUtesselator* tess);
|
||||||
extern void (APIENTRY * bgluTessBeginPolygon) (GLUtesselator* tess, GLvoid* data);
|
extern void (APIENTRY * bgluTessBeginPolygon) (GLUtesselator* tess, GLvoid* data);
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -372,6 +372,8 @@ static inline void polymer_culllight(int16_t lighti);
|
||||||
static void polymer_prepareshadows(void);
|
static void polymer_prepareshadows(void);
|
||||||
// RENDER TARGETS
|
// RENDER TARGETS
|
||||||
static void polymer_initrendertargets(int32_t count);
|
static void polymer_initrendertargets(int32_t count);
|
||||||
|
// DEBUG OUTPUT
|
||||||
|
static void polymer_debugoutputcallback(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
|
||||||
|
|
||||||
#define INDICE(n) ((p->indices) ? (p->indices[(i+n)%p->indicescount]*5) : (((i+n)%p->vertcount)*5))
|
#define INDICE(n) ((p->indices) ? (p->indices[(i+n)%p->indicescount]*5) : (((i+n)%p->vertcount)*5))
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,7 @@ struct glinfo_t glinfo =
|
||||||
0, // Shader Model 4 support
|
0, // Shader Model 4 support
|
||||||
0, // Occlusion Queries
|
0, // Occlusion Queries
|
||||||
0, // GLSL
|
0, // GLSL
|
||||||
|
0, // Debug Output
|
||||||
0, // GL info dumped
|
0, // GL info dumped
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -247,6 +248,7 @@ int32_t osdcmd_glinfo(const osdfuncparm_t *parm)
|
||||||
" Shader Model 4: %s\n"
|
" Shader Model 4: %s\n"
|
||||||
" Occlusion queries: %s\n"
|
" Occlusion queries: %s\n"
|
||||||
" GLSL: %s\n"
|
" GLSL: %s\n"
|
||||||
|
" Debug Output: %s\n"
|
||||||
" Extensions:\n",
|
" Extensions:\n",
|
||||||
glinfo.maxanisotropy, glinfo.maxanisotropy>1.0?"":" (no anisotropic filtering)",
|
glinfo.maxanisotropy, glinfo.maxanisotropy>1.0?"":" (no anisotropic filtering)",
|
||||||
glinfo.bgra ? "supported": "not supported",
|
glinfo.bgra ? "supported": "not supported",
|
||||||
|
@ -265,7 +267,8 @@ int32_t osdcmd_glinfo(const osdfuncparm_t *parm)
|
||||||
glinfo.vbos ? "supported": "not supported",
|
glinfo.vbos ? "supported": "not supported",
|
||||||
glinfo.sm4 ? "supported": "not supported",
|
glinfo.sm4 ? "supported": "not supported",
|
||||||
glinfo.occlusionqueries ? "supported": "not supported",
|
glinfo.occlusionqueries ? "supported": "not supported",
|
||||||
glinfo.glsl ? "supported": "not supported"
|
glinfo.glsl ? "supported": "not supported",
|
||||||
|
glinfo.debugoutput ? "supported": "not supported"
|
||||||
);
|
);
|
||||||
|
|
||||||
s = Bstrdup(glinfo.extensions);
|
s = Bstrdup(glinfo.extensions);
|
||||||
|
|
|
@ -250,6 +250,10 @@ void (APIENTRY *bglBindAttribLocationARB)(GLhandleARB, GLuint, const GLcharARB *
|
||||||
void (APIENTRY *bglGetActiveAttribARB)(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
|
void (APIENTRY *bglGetActiveAttribARB)(GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *);
|
||||||
GLint(APIENTRY *bglGetAttribLocationARB)(GLhandleARB, const GLcharARB *);
|
GLint(APIENTRY *bglGetAttribLocationARB)(GLhandleARB, const GLcharARB *);
|
||||||
|
|
||||||
|
// Debug Output
|
||||||
|
void (APIENTRY * bglDebugMessageControlARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||||
|
void (APIENTRY * bglDebugMessageCallbackARB)(GLDEBUGPROCARB callback, const GLvoid *userParam);
|
||||||
|
|
||||||
// GLU
|
// GLU
|
||||||
void (APIENTRY *bgluTessBeginContour)(GLUtesselator *tess);
|
void (APIENTRY *bgluTessBeginContour)(GLUtesselator *tess);
|
||||||
void (APIENTRY *bgluTessBeginPolygon)(GLUtesselator *tess, GLvoid *data);
|
void (APIENTRY *bgluTessBeginPolygon)(GLUtesselator *tess, GLvoid *data);
|
||||||
|
@ -615,6 +619,10 @@ int32_t loadglextensions(void)
|
||||||
bglGetActiveAttribARB = GETPROCEXTSOFT("glGetActiveAttribARB");
|
bglGetActiveAttribARB = GETPROCEXTSOFT("glGetActiveAttribARB");
|
||||||
bglGetAttribLocationARB = GETPROCEXTSOFT("glGetAttribLocationARB");
|
bglGetAttribLocationARB = GETPROCEXTSOFT("glGetAttribLocationARB");
|
||||||
|
|
||||||
|
// Debug Output
|
||||||
|
bglDebugMessageControlARB = GETPROCEXTSOFT("glDebugMessageControlARB");
|
||||||
|
bglDebugMessageCallbackARB = GETPROCEXTSOFT("glDebugMessageCallbackARB");
|
||||||
|
|
||||||
#ifdef RENDERTYPEWIN
|
#ifdef RENDERTYPEWIN
|
||||||
bwglSwapIntervalEXT = GETPROCEXTSOFT("wglSwapIntervalEXT");
|
bwglSwapIntervalEXT = GETPROCEXTSOFT("wglSwapIntervalEXT");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -730,6 +730,12 @@ int32_t polymer_init(void)
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (glinfo.debugoutput) {
|
||||||
|
// Enable everything.
|
||||||
|
bglDebugMessageControlARB(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, NULL, GL_TRUE);
|
||||||
|
bglDebugMessageCallbackARB(polymer_debugoutputcallback, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
if (pr_verbosity >= 1) OSD_Printf("PR : Initialization complete in %d ms.\n", getticks()-t);
|
if (pr_verbosity >= 1) OSD_Printf("PR : Initialization complete in %d ms.\n", getticks()-t);
|
||||||
|
|
||||||
return (1);
|
return (1);
|
||||||
|
@ -5633,4 +5639,17 @@ static void polymer_initrendertargets(int32_t count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DEBUG OUTPUT
|
||||||
|
void polymer_debugoutputcallback(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam)
|
||||||
|
{
|
||||||
|
UNREFERENCED_PARAMETER(source);
|
||||||
|
UNREFERENCED_PARAMETER(type);
|
||||||
|
UNREFERENCED_PARAMETER(id);
|
||||||
|
UNREFERENCED_PARAMETER(severity);
|
||||||
|
UNREFERENCED_PARAMETER(length);
|
||||||
|
UNREFERENCED_PARAMETER(userParam);
|
||||||
|
|
||||||
|
OSD_Printf("PR : Received OpenGL debug message: %s\n", message);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1269,6 +1269,10 @@ int32_t setvideomode(int32_t x, int32_t y, int32_t c, int32_t fs)
|
||||||
{
|
{
|
||||||
glinfo.glsl = 1;
|
glinfo.glsl = 1;
|
||||||
}
|
}
|
||||||
|
else if (!Bstrcmp((char *)p2, "GL_ARB_debug_output"))
|
||||||
|
{
|
||||||
|
glinfo.debugoutput = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Bfree(p);
|
Bfree(p);
|
||||||
|
|
||||||
|
|
|
@ -2978,6 +2978,10 @@ static int32_t SetupOpenGL(int32_t width, int32_t height, int32_t bitspp)
|
||||||
{
|
{
|
||||||
glinfo.glsl = 1;
|
glinfo.glsl = 1;
|
||||||
}
|
}
|
||||||
|
else if (!Bstrcmp((char *)p2, "GL_ARB_debug_output"))
|
||||||
|
{
|
||||||
|
glinfo.debugoutput = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Bfree(p);
|
Bfree(p);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue