Skip to content
Snippets Groups Projects
Commit 3db7ae3a authored by Brian Paul's avatar Brian Paul
Browse files

Using glColor3 commands to update materials could result in an undefined

alpha value.  Fixed.
parent 7cd2ae9d
No related branches found
No related tags found
No related merge requests found
/*
* Mesa 3-D graphics library
* Version: 6.1
* Version: 6.3
*
* Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
* Copyright (C) 1999-2005 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
......@@ -50,6 +50,7 @@ struct material_cursor {
const GLfloat *ptr;
GLuint stride;
GLfloat *current;
GLuint size; /* 1, 2, 3 or 4 */
};
struct light_stage_data {
......@@ -79,7 +80,7 @@ static void update_materials( GLcontext *ctx,
GLuint i;
for (i = 0 ; i < store->mat_count ; i++) {
COPY_4V(store->mat[i].current, store->mat[i].ptr);
COPY_CLEAN_4V(store->mat[i].current, store->mat[i].size, store->mat[i].ptr);
STRIDE_F(store->mat[i].ptr, store->mat[i].stride);
}
......@@ -110,8 +111,9 @@ static GLuint prepare_materials( GLcontext *ctx,
if (VB->AttribPtr[i]->stride) {
GLuint j = store->mat_count++;
GLuint attr = i - _TNL_ATTRIB_MAT_FRONT_AMBIENT;
store->mat[j].ptr = VB->AttribPtr[i]->start;
store->mat[j].ptr = VB->AttribPtr[i]->start;
store->mat[j].stride = VB->AttribPtr[i]->stride;
store->mat[j].size = VB->AttribPtr[i]->size;
store->mat[j].current = ctx->Light.Material.Attrib[attr];
store->mat_bitmask |= (1<<attr);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment