Implement EXT_polygon_offset_clamp

This commit is contained in:
baldurk
2014-12-20 19:54:49 +00:00
parent af4b0c1114
commit 00ee02eabc
9 changed files with 94 additions and 19 deletions
+1
View File
@@ -77,6 +77,7 @@ void DoVendorChecks(const GLHookSet &gl, GLWindowingData context)
EXT_CHECK(ARB_clip_control);
EXT_CHECK(ARB_enhanced_layouts);
EXT_CHECK(EXT_polygon_offset_clamp);
#undef EXT_CHECK
}
+2
View File
@@ -97,6 +97,7 @@ enum ExtensionCheckEnum
{
ExtensionSupported_ARB_enhanced_layouts = 0,
ExtensionSupported_ARB_clip_control,
ExtensionSupported_EXT_polygon_offset_clamp,
ExtensionSupported_Count,
};
extern bool ExtensionSupported[ExtensionSupported_Count];
@@ -247,6 +248,7 @@ enum GLChunkType
CLEARTEXSUBIMAGE,
POLYGON_MODE,
POLYGON_OFFSET,
POLYGON_OFFSET_CLAMP,
CULL_FACE,
HINT,
ENABLE,
+5
View File
@@ -143,6 +143,7 @@ const char *GLChunkNames[] =
"glClearTexSubImage",
"glPolygonMode",
"glPolygonOffset",
"glPolygonOffsetClampEXT",
"glCullFace",
"glHint",
"glEnable",
@@ -453,6 +454,7 @@ WrappedOpenGL::WrappedOpenGL(const char *logfile, const GLHookSet &funcs)
globalExts.push_back("GL_EXT_framebuffer_blit");
globalExts.push_back("GL_EXT_framebuffer_object");
globalExts.push_back("GL_EXT_pixel_buffer_object");
globalExts.push_back("GL_EXT_polygon_offset_clamp");
globalExts.push_back("GL_EXT_texture_compression_s3tc");
globalExts.push_back("GL_EXT_texture_filter_anisotropic");
globalExts.push_back("GL_EXT_texture_mirror_clamp");
@@ -2151,6 +2153,9 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
case POLYGON_OFFSET:
Serialise_glPolygonOffset(0, 0);
break;
case POLYGON_OFFSET_CLAMP:
Serialise_glPolygonOffsetClampEXT(0, 0, 0);
break;
case CULL_FACE:
Serialise_glCullFace(eGL_NONE);
break;
+1
View File
@@ -418,6 +418,7 @@ class WrappedOpenGL
IMPLEMENT_FUNCTION_SERIALISED(void, glPixelStoref(GLenum pname, GLfloat param));
IMPLEMENT_FUNCTION_SERIALISED(void, glPolygonMode(GLenum face, GLenum mode));
IMPLEMENT_FUNCTION_SERIALISED(void, glPolygonOffset(GLfloat factor, GLfloat units));
IMPLEMENT_FUNCTION_SERIALISED(void, glPolygonOffsetClampEXT(GLfloat factor, GLfloat units, GLfloat clamp));
IMPLEMENT_FUNCTION_SERIALISED(void, glPatchParameteri(GLenum pname, GLint param));
IMPLEMENT_FUNCTION_SERIALISED(void, glPatchParameterfv(GLenum pname, const GLfloat *params));
IMPLEMENT_FUNCTION_SERIALISED(void, glPointParameterf(GLenum pname, GLfloat param));
+1
View File
@@ -248,6 +248,7 @@ struct GLHookSet
PFNGLDEPTHRANGEINDEXEDPROC glDepthRangeIndexed;
PFNGLDEPTHRANGEARRAYVPROC glDepthRangeArrayv;
PFNGLDEPTHBOUNDSEXTPROC glDepthBoundsEXT;
PFNGLPOLYGONOFFSETCLAMPEXTPROC glPolygonOffsetClampEXT;
PFNGLCLIPCONTROLPROC glClipControl;
PFNGLPROVOKINGVERTEXPROC glProvokingVertex;
PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex;
+47 -17
View File
@@ -861,6 +861,7 @@
HookExtension(PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC, glVertexArrayVertexBindingDivisorEXT); \
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC, glVertexArrayVertexAttribLOffsetEXT); \
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC, glVertexArrayVertexAttribDivisorEXT); \
HookExtension(PFNGLPOLYGONOFFSETCLAMPEXTPROC, glPolygonOffsetClampEXT); \
HookExtension(PFNGLCULLFACEPROC, glCullFace); \
HookExtension(PFNGLFRONTFACEPROC, glFrontFace); \
HookExtension(PFNGLHINTPROC, glHint); \
@@ -1632,6 +1633,7 @@
HookWrapper3(void, glVertexArrayVertexBindingDivisorEXT, GLuint, vaobj, GLuint, bindingindex, GLuint, divisor); \
HookWrapper7(void, glVertexArrayVertexAttribLOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
HookWrapper3(void, glVertexArrayVertexAttribDivisorEXT, GLuint, vaobj, GLuint, index, GLuint, divisor); \
HookWrapper3(void, glPolygonOffsetClampEXT, GLfloat, factor, GLfloat, units, GLfloat, clamp); \
@@ -1709,6 +1711,10 @@
HookWrapper2(void, glcreatesamplers, GLsizei, n, GLuint *, samplers); \
HookWrapper2(void, glcreateprogrampipelines, GLsizei, n, GLuint *, pipelines); \
HookWrapper3(void, glcreatequeries, GLenum, target, GLsizei, n, GLuint *, ids); \
HookWrapper4(void, glgetquerybufferobjecti64v, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
HookWrapper4(void, glgetquerybufferobjectiv, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
HookWrapper4(void, glgetquerybufferobjectui64v, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
HookWrapper4(void, glgetquerybufferobjectuiv, GLuint, id, GLuint, buffer, GLenum, pname, GLintptr, offset); \
HookWrapper1(GLuint64, glgettexturehandlearb, GLuint, texture); \
HookWrapper2(GLuint64, glgettexturesamplerhandlearb, GLuint, texture, GLuint, sampler); \
HookWrapper1(void, glmaketexturehandleresidentarb, GLuint64, handle); \
@@ -1735,9 +1741,9 @@
HookWrapper2(GLboolean, glisnamedstringarb, GLint, namelen, const GLchar *, name); \
HookWrapper5(void, glgetnamedstringarb, GLint, namelen, const GLchar *, name, GLsizei, bufSize, GLint *, stringlen, GLchar *, string); \
HookWrapper4(void, glgetnamedstringivarb, GLint, namelen, const GLchar *, name, GLenum, pname, GLint *, params); \
HookWrapper4(void, glbufferpagecommitmentarb, GLenum, target, GLintptr, offset, GLsizei, size, GLboolean, commit); \
HookWrapper4(void, glnamedbufferpagecommitmentext, GLuint, buffer, GLintptr, offset, GLsizei, size, GLboolean, commit); \
HookWrapper4(void, glnamedbufferpagecommitmentarb, GLuint, buffer, GLintptr, offset, GLsizei, size, GLboolean, commit); \
HookWrapper4(void, glbufferpagecommitmentarb, GLenum, target, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
HookWrapper4(void, glnamedbufferpagecommitmentext, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
HookWrapper4(void, glnamedbufferpagecommitmentarb, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, GLboolean, commit); \
HookWrapper9(void, gltexpagecommitmentarb, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean, resident); \
HookWrapper1(void, glclientactivetexture, GLenum, texture); \
HookWrapper2(void, glmultitexcoord1d, GLenum, target, GLdouble, s); \
@@ -2600,6 +2606,7 @@
HookWrapper2(void, glpointparameterfvext, GLenum, pname, const GLfloat *, params); \
HookWrapper2(void, glpolygonoffsetext, GLfloat, factor, GLfloat, bias); \
HookWrapper1(void, glprovokingvertexext, GLenum, mode); \
HookWrapper2(void, glrastersamplesext, GLuint, samples, GLboolean, fixedsamplelocations); \
HookWrapper3(void, glsecondarycolor3bext, GLbyte, red, GLbyte, green, GLbyte, blue); \
HookWrapper1(void, glsecondarycolor3bvext, const GLbyte *, v); \
HookWrapper3(void, glsecondarycolor3dext, GLdouble, red, GLdouble, green, GLdouble, blue); \
@@ -2800,6 +2807,7 @@
HookWrapper0(void, glblendbarriernv); \
HookWrapper2(void, glbeginconditionalrendernv, GLuint, id, GLenum, mode); \
HookWrapper0(void, glendconditionalrendernv); \
HookWrapper2(void, glsubpixelprecisionbiasnv, GLuint, xbits, GLuint, ybits); \
HookWrapper15(void, glcopyimagesubdatanv, GLuint, srcName, GLenum, srcTarget, GLint, srcLevel, GLint, srcX, GLint, srcY, GLint, srcZ, GLuint, dstName, GLenum, dstTarget, GLint, dstLevel, GLint, dstX, GLint, dstY, GLint, dstZ, GLsizei, width, GLsizei, height, GLsizei, depth); \
HookWrapper2(void, gldepthrangednv, GLdouble, zNear, GLdouble, zFar); \
HookWrapper1(void, glcleardepthdnv, GLdouble, depth); \
@@ -2824,12 +2832,16 @@
HookWrapper3(void, glgetfenceivnv, GLuint, fence, GLenum, pname, GLint *, params); \
HookWrapper1(void, glfinishfencenv, GLuint, fence); \
HookWrapper2(void, glsetfencenv, GLuint, fence, GLenum, condition); \
HookWrapper1(void, glfragmentcoveragecolornv, GLuint, color); \
HookWrapper7(void, glprogramnamedparameter4fnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLfloat, x, GLfloat, y, GLfloat, z, GLfloat, w); \
HookWrapper4(void, glprogramnamedparameter4fvnv, GLuint, id, GLsizei, len, const GLubyte *, name, const GLfloat *, v); \
HookWrapper7(void, glprogramnamedparameter4dnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLdouble, x, GLdouble, y, GLdouble, z, GLdouble, w); \
HookWrapper4(void, glprogramnamedparameter4dvnv, GLuint, id, GLsizei, len, const GLubyte *, name, const GLdouble *, v); \
HookWrapper4(void, glgetprogramnamedparameterfvnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLfloat *, params); \
HookWrapper4(void, glgetprogramnamedparameterdvnv, GLuint, id, GLsizei, len, const GLubyte *, name, GLdouble *, params); \
HookWrapper2(void, glcoveragemodulationtablenv, GLsizei, n, const GLfloat *, v); \
HookWrapper2(void, glgetcoveragemodulationtablenv, GLsizei, bufsize, GLfloat *, v); \
HookWrapper1(void, glcoveragemodulationnv, GLenum, components); \
HookWrapper6(void, glrenderbufferstoragemultisamplecoveragenv, GLenum, target, GLsizei, coverageSamples, GLsizei, colorSamples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
HookWrapper2(void, glprogramvertexlimitnv, GLenum, target, GLint, limit); \
HookWrapper4(void, glframebuffertextureext, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level); \
@@ -2898,6 +2910,7 @@
HookWrapper3(void, glvertexattribs2hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
HookWrapper3(void, glvertexattribs3hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
HookWrapper3(void, glvertexattribs4hvnv, GLuint, index, GLsizei, n, const GLhalfNV *, v); \
HookWrapper6(void, glgetinternalformatsampleivnv, GLenum, target, GLenum, internalformat, GLsizei, samples, GLenum, pname, GLsizei, bufSize, GLint *, params); \
HookWrapper2(void, glgenocclusionqueriesnv, GLsizei, n, GLuint *, ids); \
HookWrapper2(void, gldeleteocclusionqueriesnv, GLsizei, n, const GLuint *, ids); \
HookWrapper1(GLboolean, glisocclusionquerynv, GLuint, id); \
@@ -2934,9 +2947,6 @@
HookWrapper8(void, glstencilfillpathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, fillMode, GLuint, mask, GLenum, transformType, const GLfloat *, transformValues); \
HookWrapper8(void, glstencilstrokepathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLint, reference, GLuint, mask, GLenum, transformType, const GLfloat *, transformValues); \
HookWrapper1(void, glpathcoverdepthfuncnv, GLenum, func); \
HookWrapper4(void, glpathcolorgennv, GLenum, color, GLenum, genMode, GLenum, colorFormat, const GLfloat *, coeffs); \
HookWrapper4(void, glpathtexgennv, GLenum, texCoordSet, GLenum, genMode, GLint, components, const GLfloat *, coeffs); \
HookWrapper1(void, glpathfoggennv, GLenum, genMode); \
HookWrapper2(void, glcoverfillpathnv, GLuint, path, GLenum, coverMode); \
HookWrapper2(void, glcoverstrokepathnv, GLuint, path, GLenum, coverMode); \
HookWrapper7(void, glcoverfillpathinstancednv, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLenum, coverMode, GLenum, transformType, const GLfloat *, transformValues); \
@@ -2949,10 +2959,6 @@
HookWrapper7(void, glgetpathmetricsnv, GLbitfield, metricQueryMask, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLsizei, stride, GLfloat *, metrics); \
HookWrapper5(void, glgetpathmetricrangenv, GLbitfield, metricQueryMask, GLuint, firstPathName, GLsizei, numPaths, GLsizei, stride, GLfloat *, metrics); \
HookWrapper9(void, glgetpathspacingnv, GLenum, pathListMode, GLsizei, numPaths, GLenum, pathNameType, const void *, paths, GLuint, pathBase, GLfloat, advanceScale, GLfloat, kerningScale, GLenum, transformType, GLfloat *, returnedSpacing); \
HookWrapper3(void, glgetpathcolorgenivnv, GLenum, color, GLenum, pname, GLint *, value); \
HookWrapper3(void, glgetpathcolorgenfvnv, GLenum, color, GLenum, pname, GLfloat *, value); \
HookWrapper3(void, glgetpathtexgenivnv, GLenum, texCoordSet, GLenum, pname, GLint *, value); \
HookWrapper3(void, glgetpathtexgenfvnv, GLenum, texCoordSet, GLenum, pname, GLfloat *, value); \
HookWrapper4(GLboolean, glispointinfillpathnv, GLuint, path, GLuint, mask, GLfloat, x, GLfloat, y); \
HookWrapper3(GLboolean, glispointinstrokepathnv, GLuint, path, GLfloat, x, GLfloat, y); \
HookWrapper3(GLfloat, glgetpathlengthnv, GLuint, path, GLsizei, startSegment, GLsizei, numSegments); \
@@ -2972,6 +2978,13 @@
HookWrapper9(GLenum, glpathmemoryglyphindexarraynv, GLuint, firstPathName, GLenum, fontTarget, GLsizeiptr, fontSize, const void *, fontData, GLsizei, faceIndex, GLuint, firstGlyphIndex, GLsizei, numGlyphs, GLuint, pathParameterTemplate, GLfloat, emScale); \
HookWrapper5(void, glprogrampathfragmentinputgennv, GLuint, program, GLint, location, GLenum, genMode, GLint, components, const GLfloat *, coeffs); \
HookWrapper8(void, glgetprogramresourcefvnv, GLuint, program, GLenum, programInterface, GLuint, index, GLsizei, propCount, const GLenum *, props, GLsizei, bufSize, GLsizei *, length, GLfloat *, params); \
HookWrapper4(void, glpathcolorgennv, GLenum, color, GLenum, genMode, GLenum, colorFormat, const GLfloat *, coeffs); \
HookWrapper4(void, glpathtexgennv, GLenum, texCoordSet, GLenum, genMode, GLint, components, const GLfloat *, coeffs); \
HookWrapper1(void, glpathfoggennv, GLenum, genMode); \
HookWrapper3(void, glgetpathcolorgenivnv, GLenum, color, GLenum, pname, GLint *, value); \
HookWrapper3(void, glgetpathcolorgenfvnv, GLenum, color, GLenum, pname, GLfloat *, value); \
HookWrapper3(void, glgetpathtexgenivnv, GLenum, texCoordSet, GLenum, pname, GLint *, value); \
HookWrapper3(void, glgetpathtexgenfvnv, GLenum, texCoordSet, GLenum, pname, GLfloat *, value); \
HookWrapper3(void, glpixeldatarangenv, GLenum, target, GLsizei, length, const void *, pointer); \
HookWrapper1(void, glflushpixeldatarangenv, GLenum, target); \
HookWrapper2(void, glpointparameterinv, GLenum, pname, GLint, param); \
@@ -2999,6 +3012,9 @@
HookWrapper3(void, glgetfinalcombinerinputparameterivnv, GLenum, variable, GLenum, pname, GLint *, params); \
HookWrapper3(void, glcombinerstageparameterfvnv, GLenum, stage, GLenum, pname, const GLfloat *, params); \
HookWrapper3(void, glgetcombinerstageparameterfvnv, GLenum, stage, GLenum, pname, GLfloat *, params); \
HookWrapper4(void, glframebuffersamplelocationsfvnv, GLenum, target, GLuint, start, GLsizei, count, const GLfloat *, v); \
HookWrapper4(void, glnamedframebuffersamplelocationsfvnv, GLuint, framebuffer, GLuint, start, GLsizei, count, const GLfloat *, v); \
HookWrapper0(void, glresolvedepthvaluesnv); \
HookWrapper2(void, glmakebufferresidentnv, GLenum, target, GLenum, access); \
HookWrapper1(void, glmakebuffernonresidentnv, GLenum, target); \
HookWrapper1(GLboolean, glisbufferresidentnv, GLenum, target); \
@@ -3392,6 +3408,10 @@
HandleUnsupported(PFNGLCREATESAMPLERSPROC, glcreatesamplers); \
HandleUnsupported(PFNGLCREATEPROGRAMPIPELINESPROC, glcreateprogrampipelines); \
HandleUnsupported(PFNGLCREATEQUERIESPROC, glcreatequeries); \
HandleUnsupported(PFNGLGETQUERYBUFFEROBJECTI64VPROC, glgetquerybufferobjecti64v); \
HandleUnsupported(PFNGLGETQUERYBUFFEROBJECTIVPROC, glgetquerybufferobjectiv); \
HandleUnsupported(PFNGLGETQUERYBUFFEROBJECTUI64VPROC, glgetquerybufferobjectui64v); \
HandleUnsupported(PFNGLGETQUERYBUFFEROBJECTUIVPROC, glgetquerybufferobjectuiv); \
HandleUnsupported(PFNGLGETTEXTUREHANDLEARBPROC, glgettexturehandlearb); \
HandleUnsupported(PFNGLGETTEXTURESAMPLERHANDLEARBPROC, glgettexturesamplerhandlearb); \
HandleUnsupported(PFNGLMAKETEXTUREHANDLERESIDENTARBPROC, glmaketexturehandleresidentarb); \
@@ -4283,6 +4303,7 @@
HandleUnsupported(PFNGLPOINTPARAMETERFVEXTPROC, glpointparameterfvext); \
HandleUnsupported(PFNGLPOLYGONOFFSETEXTPROC, glpolygonoffsetext); \
HandleUnsupported(PFNGLPROVOKINGVERTEXEXTPROC, glprovokingvertexext); \
HandleUnsupported(PFNGLRASTERSAMPLESEXTPROC, glrastersamplesext); \
HandleUnsupported(PFNGLSECONDARYCOLOR3BEXTPROC, glsecondarycolor3bext); \
HandleUnsupported(PFNGLSECONDARYCOLOR3BVEXTPROC, glsecondarycolor3bvext); \
HandleUnsupported(PFNGLSECONDARYCOLOR3DEXTPROC, glsecondarycolor3dext); \
@@ -4483,6 +4504,7 @@
HandleUnsupported(PFNGLBLENDBARRIERNVPROC, glblendbarriernv); \
HandleUnsupported(PFNGLBEGINCONDITIONALRENDERNVPROC, glbeginconditionalrendernv); \
HandleUnsupported(PFNGLENDCONDITIONALRENDERNVPROC, glendconditionalrendernv); \
HandleUnsupported(PFNGLSUBPIXELPRECISIONBIASNVPROC, glsubpixelprecisionbiasnv); \
HandleUnsupported(PFNGLCOPYIMAGESUBDATANVPROC, glcopyimagesubdatanv); \
HandleUnsupported(PFNGLDEPTHRANGEDNVPROC, gldepthrangednv); \
HandleUnsupported(PFNGLCLEARDEPTHDNVPROC, glcleardepthdnv); \
@@ -4507,12 +4529,16 @@
HandleUnsupported(PFNGLGETFENCEIVNVPROC, glgetfenceivnv); \
HandleUnsupported(PFNGLFINISHFENCENVPROC, glfinishfencenv); \
HandleUnsupported(PFNGLSETFENCENVPROC, glsetfencenv); \
HandleUnsupported(PFNGLFRAGMENTCOVERAGECOLORNVPROC, glfragmentcoveragecolornv); \
HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4FNVPROC, glprogramnamedparameter4fnv); \
HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC, glprogramnamedparameter4fvnv); \
HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4DNVPROC, glprogramnamedparameter4dnv); \
HandleUnsupported(PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC, glprogramnamedparameter4dvnv); \
HandleUnsupported(PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC, glgetprogramnamedparameterfvnv); \
HandleUnsupported(PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC, glgetprogramnamedparameterdvnv); \
HandleUnsupported(PFNGLCOVERAGEMODULATIONTABLENVPROC, glcoveragemodulationtablenv); \
HandleUnsupported(PFNGLGETCOVERAGEMODULATIONTABLENVPROC, glgetcoveragemodulationtablenv); \
HandleUnsupported(PFNGLCOVERAGEMODULATIONNVPROC, glcoveragemodulationnv); \
HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC, glrenderbufferstoragemultisamplecoveragenv); \
HandleUnsupported(PFNGLPROGRAMVERTEXLIMITNVPROC, glprogramvertexlimitnv); \
HandleUnsupported(PFNGLFRAMEBUFFERTEXTUREEXTPROC, glframebuffertextureext); \
@@ -4581,6 +4607,7 @@
HandleUnsupported(PFNGLVERTEXATTRIBS2HVNVPROC, glvertexattribs2hvnv); \
HandleUnsupported(PFNGLVERTEXATTRIBS3HVNVPROC, glvertexattribs3hvnv); \
HandleUnsupported(PFNGLVERTEXATTRIBS4HVNVPROC, glvertexattribs4hvnv); \
HandleUnsupported(PFNGLGETINTERNALFORMATSAMPLEIVNVPROC, glgetinternalformatsampleivnv); \
HandleUnsupported(PFNGLGENOCCLUSIONQUERIESNVPROC, glgenocclusionqueriesnv); \
HandleUnsupported(PFNGLDELETEOCCLUSIONQUERIESNVPROC, gldeleteocclusionqueriesnv); \
HandleUnsupported(PFNGLISOCCLUSIONQUERYNVPROC, glisocclusionquerynv); \
@@ -4617,9 +4644,6 @@
HandleUnsupported(PFNGLSTENCILFILLPATHINSTANCEDNVPROC, glstencilfillpathinstancednv); \
HandleUnsupported(PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC, glstencilstrokepathinstancednv); \
HandleUnsupported(PFNGLPATHCOVERDEPTHFUNCNVPROC, glpathcoverdepthfuncnv); \
HandleUnsupported(PFNGLPATHCOLORGENNVPROC, glpathcolorgennv); \
HandleUnsupported(PFNGLPATHTEXGENNVPROC, glpathtexgennv); \
HandleUnsupported(PFNGLPATHFOGGENNVPROC, glpathfoggennv); \
HandleUnsupported(PFNGLCOVERFILLPATHNVPROC, glcoverfillpathnv); \
HandleUnsupported(PFNGLCOVERSTROKEPATHNVPROC, glcoverstrokepathnv); \
HandleUnsupported(PFNGLCOVERFILLPATHINSTANCEDNVPROC, glcoverfillpathinstancednv); \
@@ -4632,10 +4656,6 @@
HandleUnsupported(PFNGLGETPATHMETRICSNVPROC, glgetpathmetricsnv); \
HandleUnsupported(PFNGLGETPATHMETRICRANGENVPROC, glgetpathmetricrangenv); \
HandleUnsupported(PFNGLGETPATHSPACINGNVPROC, glgetpathspacingnv); \
HandleUnsupported(PFNGLGETPATHCOLORGENIVNVPROC, glgetpathcolorgenivnv); \
HandleUnsupported(PFNGLGETPATHCOLORGENFVNVPROC, glgetpathcolorgenfvnv); \
HandleUnsupported(PFNGLGETPATHTEXGENIVNVPROC, glgetpathtexgenivnv); \
HandleUnsupported(PFNGLGETPATHTEXGENFVNVPROC, glgetpathtexgenfvnv); \
HandleUnsupported(PFNGLISPOINTINFILLPATHNVPROC, glispointinfillpathnv); \
HandleUnsupported(PFNGLISPOINTINSTROKEPATHNVPROC, glispointinstrokepathnv); \
HandleUnsupported(PFNGLGETPATHLENGTHNVPROC, glgetpathlengthnv); \
@@ -4655,6 +4675,13 @@
HandleUnsupported(PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC, glpathmemoryglyphindexarraynv); \
HandleUnsupported(PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC, glprogrampathfragmentinputgennv); \
HandleUnsupported(PFNGLGETPROGRAMRESOURCEFVNVPROC, glgetprogramresourcefvnv); \
HandleUnsupported(PFNGLPATHCOLORGENNVPROC, glpathcolorgennv); \
HandleUnsupported(PFNGLPATHTEXGENNVPROC, glpathtexgennv); \
HandleUnsupported(PFNGLPATHFOGGENNVPROC, glpathfoggennv); \
HandleUnsupported(PFNGLGETPATHCOLORGENIVNVPROC, glgetpathcolorgenivnv); \
HandleUnsupported(PFNGLGETPATHCOLORGENFVNVPROC, glgetpathcolorgenfvnv); \
HandleUnsupported(PFNGLGETPATHTEXGENIVNVPROC, glgetpathtexgenivnv); \
HandleUnsupported(PFNGLGETPATHTEXGENFVNVPROC, glgetpathtexgenfvnv); \
HandleUnsupported(PFNGLPIXELDATARANGENVPROC, glpixeldatarangenv); \
HandleUnsupported(PFNGLFLUSHPIXELDATARANGENVPROC, glflushpixeldatarangenv); \
HandleUnsupported(PFNGLPOINTPARAMETERINVPROC, glpointparameterinv); \
@@ -4682,6 +4709,9 @@
HandleUnsupported(PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC, glgetfinalcombinerinputparameterivnv); \
HandleUnsupported(PFNGLCOMBINERSTAGEPARAMETERFVNVPROC, glcombinerstageparameterfvnv); \
HandleUnsupported(PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC, glgetcombinerstageparameterfvnv); \
HandleUnsupported(PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC, glframebuffersamplelocationsfvnv); \
HandleUnsupported(PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC, glnamedframebuffersamplelocationsfvnv); \
HandleUnsupported(PFNGLRESOLVEDEPTHVALUESNVPROC, glresolvedepthvaluesnv); \
HandleUnsupported(PFNGLMAKEBUFFERRESIDENTNVPROC, glmakebufferresidentnv); \
HandleUnsupported(PFNGLMAKEBUFFERNONRESIDENTNVPROC, glmakebuffernonresidentnv); \
HandleUnsupported(PFNGLISBUFFERRESIDENTNVPROC, glisbufferresidentnv); \
+9 -1
View File
@@ -296,6 +296,10 @@ void GLRenderState::FetchState(void *ctx, WrappedOpenGL *gl)
m_Real->glGetFloatv(eGL_POLYGON_OFFSET_FACTOR, &PolygonOffset[0]);
m_Real->glGetFloatv(eGL_POLYGON_OFFSET_UNITS, &PolygonOffset[1]);
if(ExtensionSupported[ExtensionSupported_EXT_polygon_offset_clamp])
m_Real->glGetFloatv(eGL_POLYGON_OFFSET_CLAMP_EXT, &PolygonOffset[2]);
else
PolygonOffset[2] = 0.0f;
m_Real->glGetIntegerv(eGL_FRONT_FACE, (GLint *)&FrontFace);
m_Real->glGetIntegerv(eGL_CULL_FACE_MODE, (GLint *)&CullFace);
@@ -539,7 +543,10 @@ void GLRenderState::ApplyState(void *ctx, WrappedOpenGL *gl)
m_Real->glPatchParameterfv(eGL_PATCH_DEFAULT_OUTER_LEVEL, PatchParams.defaultOuterLevel);
m_Real->glPolygonMode(eGL_FRONT_AND_BACK, PolygonMode);
m_Real->glPolygonOffset(PolygonOffset[0], PolygonOffset[1]);
if(ExtensionSupported[ExtensionSupported_EXT_polygon_offset_clamp])
m_Real->glPolygonOffsetClampEXT(PolygonOffset[0], PolygonOffset[1], PolygonOffset[2]);
else
m_Real->glPolygonOffset(PolygonOffset[0], PolygonOffset[1]);
m_Real->glFrontFace(FrontFace);
m_Real->glCullFace(CullFace);
@@ -837,6 +844,7 @@ void GLRenderState::Serialise(LogState state, void *ctx, WrappedOpenGL *gl)
m_pSerialiser->Serialise("GL_POLYGON_MODE", PolygonMode);
m_pSerialiser->Serialise("GL_POLYGON_OFFSET_FACTOR", PolygonOffset[0]);
m_pSerialiser->Serialise("GL_POLYGON_OFFSET_UNITS", PolygonOffset[1]);
m_pSerialiser->Serialise("GL_POLYGON_OFFSET_CLAMP_EXT", PolygonOffset[2]);
m_pSerialiser->Serialise("GL_FRONT_FACE", FrontFace);
m_pSerialiser->Serialise("GL_CULL_FACE_MODE", CullFace);
+1 -1
View File
@@ -170,7 +170,7 @@ struct GLRenderState
} PatchParams;
GLenum PolygonMode;
float PolygonOffset[2]; // Factor, Units
float PolygonOffset[3]; // Factor, Units, (extension) Clamp
uint8_t DepthWriteMask;
float DepthClearValue;
@@ -1508,3 +1508,30 @@ void WrappedOpenGL::glPolygonOffset(GLfloat factor, GLfloat units)
m_ContextRecord->AddChunk(scope.Get());
}
}
bool WrappedOpenGL::Serialise_glPolygonOffsetClampEXT(GLfloat factor, GLfloat units, GLfloat clamp)
{
SERIALISE_ELEMENT(float, f, factor);
SERIALISE_ELEMENT(float, u, units);
SERIALISE_ELEMENT(float, c, clamp);
if(m_State <= EXECUTING)
{
m_Real.glPolygonOffsetClampEXT(f, u, c);
}
return true;
}
void WrappedOpenGL::glPolygonOffsetClampEXT(GLfloat factor, GLfloat units, GLfloat clamp)
{
m_Real.glPolygonOffsetClampEXT(factor, units, clamp);
if(m_State == WRITING_CAPFRAME)
{
SCOPED_SERIALISE_CONTEXT(POLYGON_OFFSET_CLAMP);
Serialise_glPolygonOffsetClampEXT(factor, units, clamp);
m_ContextRecord->AddChunk(scope.Get());
}
}