Fix lighting issues

This commit is contained in:
Luke Benstead 2026-04-26 21:24:58 +01:00
parent e685190df0
commit d85b8e515c
3 changed files with 10 additions and 7 deletions

View File

@ -483,9 +483,12 @@ static void generateElementsFastPath(
if(col) {
col = (GLubyte*) ATTRIB_LIST.colour.ptr + (idx * dstride);
MEMCPY4(it->argb, col, sizeof(float) * 4);
it->argb[0] = ((float*) col)[0];
it->argb[1] = ((float*) col)[1];
it->argb[2] = ((float*) col)[2];
it->argb[3] = ((float*) col)[3];
} else {
float* color = _glCurrentColor();
const float* color = _glCurrentColor();
it->argb[0] = color[0];
it->argb[1] = color[1];
it->argb[2] = color[2];

View File

@ -358,7 +358,7 @@ void APIENTRY glColorMaterial(GLenum face, GLenum mode) {
void _glUpdateColourMaterialA(const float* colour) {
Material* material = _glActiveMaterial();
vec4cpy(material->ambient, colour);
GLenum mask = _glColorMaterialMode();
GLenum mask = _glColorMaterialMask();
_glPrecalcLightingValues(mask);
}
@ -367,7 +367,7 @@ void _glUpdateColourMaterialD(const float* colour) {
vec4cpy(material->diffuse, colour);
GLenum mask = _glColorMaterialMode();
GLenum mask = _glColorMaterialMask();
_glPrecalcLightingValues(mask);
}
@ -375,7 +375,7 @@ void _glUpdateColourMaterialE(const float* colour) {
Material* material = _glActiveMaterial();
vec4cpy(material->emissive, colour);
GLenum mask = _glColorMaterialMode();
GLenum mask = _glColorMaterialMask();
_glPrecalcLightingValues(mask);
}
@ -385,7 +385,7 @@ void _glUpdateColourMaterialAD(const float* colour) {
vec4cpy(material->ambient, colour);
vec4cpy(material->diffuse, colour);
GLenum mask = _glColorMaterialMode();
GLenum mask = _glColorMaterialMask();
_glPrecalcLightingValues(mask);
}

View File

@ -430,7 +430,7 @@ void _glApplyScissor(bool force);
void _glSetColorMaterialMask(GLenum mask);
void _glSetColorMaterialMode(GLenum mode);
GLenum _glColorMaterialMode();
GLenum _glColorMaterialMask();
Material* _glActiveMaterial();
void _glSetLightModelViewerInEyeCoordinates(GLboolean v);
void _glSetLightModelSceneAmbient(const GLfloat* v);