diff options
author | Brian Paul <[email protected]> | 2005-03-02 16:31:58 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2005-03-02 16:31:58 +0000 |
commit | 3db7ae3a38f712a89a44dab8c0f6975250683db0 (patch) | |
tree | c4a5a990e79097de6b3e94cf7f73c07676a8c4e1 /src | |
parent | 7cd2ae9d97377bc68f66ce3c7734f56e3f5dfa6b (diff) |
Using glColor3 commands to update materials could result in an undefined
alpha value. Fixed.
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/tnl/t_vb_light.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mesa/tnl/t_vb_light.c b/src/mesa/tnl/t_vb_light.c index aa420c3c14f..d286129650b 100644 --- a/src/mesa/tnl/t_vb_light.c +++ b/src/mesa/tnl/t_vb_light.c @@ -1,8 +1,8 @@ /* * 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); } |