From 3db7ae3a38f712a89a44dab8c0f6975250683db0 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Wed, 2 Mar 2005 16:31:58 +0000 Subject: [PATCH] Using glColor3 commands to update materials could result in an undefined alpha value. Fixed. --- src/mesa/tnl/t_vb_light.c | 10 ++++++---- 1 file 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<