diff options
Diffstat (limited to 'src/mesa/tnl/t_vb_light.c')
-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); } |