-
- if (texImage->_BaseFormat == GL_ALPHA) {
- GLuint col;
- for (col = 0; col < width; col++) {
- rgba_uint[col][RCOMP] = 0;
- rgba_uint[col][GCOMP] = 0;
- rgba_uint[col][BCOMP] = 0;
- }
- }
- else if (texImage->_BaseFormat == GL_LUMINANCE) {
- GLuint col;
- for (col = 0; col < width; col++) {
- rgba_uint[col][GCOMP] = 0;
- rgba_uint[col][BCOMP] = 0;
- rgba_uint[col][ACOMP] = 1;
- }
- }
- else if (texImage->_BaseFormat == GL_LUMINANCE_ALPHA) {
- GLuint col;
- for (col = 0; col < width; col++) {
- rgba_uint[col][GCOMP] = 0;
- rgba_uint[col][BCOMP] = 0;
- }
- }
- else if (texImage->_BaseFormat == GL_INTENSITY) {
- GLuint col;
- for (col = 0; col < width; col++) {
- rgba_uint[col][GCOMP] = 0;
- rgba_uint[col][BCOMP] = 0;
- rgba_uint[col][ACOMP] = 1;
- }
- }
-
- _mesa_pack_rgba_span_int(ctx, width, rgba_uint,
- format, type, dest);
+ if (rebaseFormat)
+ _mesa_rebase_rgba_uint(width, rgba_uint, rebaseFormat);
+ if (tex_is_uint) {
+ _mesa_pack_rgba_span_from_uints(ctx, width,
+ (GLuint (*)[4]) rgba_uint,
+ format, type, dest);
+ } else {
+ _mesa_pack_rgba_span_from_ints(ctx, width,
+ (GLint (*)[4]) rgba_uint,
+ format, type, dest);
+ }