diff options
author | marha <marha@users.sourceforge.net> | 2012-02-06 08:19:53 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-02-06 08:19:53 +0100 |
commit | ada3d2c30b5a7a1a79e128b7326d50c3bab77a8a (patch) | |
tree | 30539a1a7c6b011c3a5d8028d7428a1ad2b07546 /mesalib/src/mesa/swrast/s_span.c | |
parent | 58ff764d4111bfaa7360c57bc62dd620fbdce06f (diff) | |
download | vcxsrv-ada3d2c30b5a7a1a79e128b7326d50c3bab77a8a.tar.gz vcxsrv-ada3d2c30b5a7a1a79e128b7326d50c3bab77a8a.tar.bz2 vcxsrv-ada3d2c30b5a7a1a79e128b7326d50c3bab77a8a.zip |
mesa git update 6 feb 2012
Diffstat (limited to 'mesalib/src/mesa/swrast/s_span.c')
-rw-r--r-- | mesalib/src/mesa/swrast/s_span.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/mesalib/src/mesa/swrast/s_span.c b/mesalib/src/mesa/swrast/s_span.c index 28f2f3d3f..422d86c00 100644 --- a/mesalib/src/mesa/swrast/s_span.c +++ b/mesalib/src/mesa/swrast/s_span.c @@ -1321,12 +1321,23 @@ _swrast_write_rgba_span( struct gl_context *ctx, SWspan *span) if (rb) { GLchan rgbaSave[MAX_WIDTH][4]; - if (span->array->ChanType == GL_UNSIGNED_BYTE) { - span->array->rgba = span->array->rgba8; + GLenum datatype; + GLuint comps; + + _mesa_format_to_type_and_comps(rb->Format, &datatype, &comps); + + /* set span->array->rgba to colors for render buffer's datatype */ + if (datatype != span->array->ChanType) { + convert_color_type(span, datatype, 0); } else { - span->array->rgba = (void *) - span->array->attribs[FRAG_ATTRIB_COL0]; + if (span->array->ChanType == GL_UNSIGNED_BYTE) { + span->array->rgba = span->array->rgba8; + } + else { + span->array->rgba = (void *) + span->array->attribs[FRAG_ATTRIB_COL0]; + } } if (!multiFragOutputs && numBuffers > 1) { |