# include <gl.h> // optional if compile errors present
void APIENTRY hkGLBegin(GLenum mode)
{
if (mode==GL_TRIANGLE_STRIP)
{
glEnable(GL_COLOR_MATERIAL); // optional if color is not changed by glColor on textured surfaces
glColor4f(0, 0, 0, 0);
}
glBegin(mode); // optional if nothing is rendered
}
1条答案
按热度按时间9q78igpj1#
我不熟悉这种GL黑客,所以我可能是错的...但是
**您所说的代码无效是什么意思?**编译时或运行时是否有任何错误消息?也许您只需要添加:
或
或任何其他与编译器相关的缩写...
我不认为
glEnable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
是允许的glBegin/glEnd
内部...如果钩子在
glBegin
之前,那么启用和禁用纹理将禁用纹理,如果钩子不调用原始glBegin
,您可能也想添加它...所以我会只留下
glColor
,并删除纹理声明,他们与颜色无关反正...如果它不工作,它可能表明CS是overiding它与自己的
glColor
调用或照明尚未启用glEnable(GL_COLOR_MATERIAL);
,所以尝试添加它...为什么使用
mode == 5
而不是mode == GL_TRIANGLE_STRIP
?这是从gl.h
中获取的另外,你确定CS只使用那个原语吗?如果不是,你也应该处理其他的...
所以我会改为: