mesa/st: enable carry/borrow lowering pass
[mesa.git] / src / mesa / main / pack.c
index d6a97b35a111c663212653c8527bc1f6bf30015e..1df656832b83a9fc7d68c8a538d918e113fbed80 100644 (file)
@@ -1489,72 +1489,72 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
             switch (dstFormat) {
                case GL_RED:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_BYTE(rgba[i][RCOMP]);
+                     dst[i] = FLOAT_TO_BYTE_TEX(rgba[i][RCOMP]);
                   break;
                case GL_GREEN:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_BYTE(rgba[i][GCOMP]);
+                     dst[i] = FLOAT_TO_BYTE_TEX(rgba[i][GCOMP]);
                   break;
                case GL_BLUE:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_BYTE(rgba[i][BCOMP]);
+                     dst[i] = FLOAT_TO_BYTE_TEX(rgba[i][BCOMP]);
                   break;
                case GL_ALPHA:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_BYTE(rgba[i][ACOMP]);
+                     dst[i] = FLOAT_TO_BYTE_TEX(rgba[i][ACOMP]);
                   break;
                case GL_LUMINANCE:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_BYTE(luminance[i]);
+                     dst[i] = FLOAT_TO_BYTE_TEX(luminance[i]);
                   break;
                case GL_LUMINANCE_ALPHA:
                   for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_BYTE(luminance[i]);
-                     dst[i*2+1] = FLOAT_TO_BYTE(rgba[i][ACOMP]);
+                     dst[i*2+0] = FLOAT_TO_BYTE_TEX(luminance[i]);
+                     dst[i*2+1] = FLOAT_TO_BYTE_TEX(rgba[i][ACOMP]);
                   }
                   break;
                case GL_RG:
                   for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]);
+                     dst[i*2+0] = FLOAT_TO_BYTE_TEX(rgba[i][RCOMP]);
+                     dst[i*2+1] = FLOAT_TO_BYTE_TEX(rgba[i][GCOMP]);
                   }
                   break;
                case GL_RGB:
                   for (i=0;i<n;i++) {
-                     dst[i*3+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]);
-                     dst[i*3+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]);
-                     dst[i*3+2] = FLOAT_TO_BYTE(rgba[i][BCOMP]);
+                     dst[i*3+0] = FLOAT_TO_BYTE_TEX(rgba[i][RCOMP]);
+                     dst[i*3+1] = FLOAT_TO_BYTE_TEX(rgba[i][GCOMP]);
+                     dst[i*3+2] = FLOAT_TO_BYTE_TEX(rgba[i][BCOMP]);
                   }
                   break;
                case GL_RGBA:
                   for (i=0;i<n;i++) {
-                     dst[i*4+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]);
-                     dst[i*4+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]);
-                     dst[i*4+2] = FLOAT_TO_BYTE(rgba[i][BCOMP]);
-                     dst[i*4+3] = FLOAT_TO_BYTE(rgba[i][ACOMP]);
+                     dst[i*4+0] = FLOAT_TO_BYTE_TEX(rgba[i][RCOMP]);
+                     dst[i*4+1] = FLOAT_TO_BYTE_TEX(rgba[i][GCOMP]);
+                     dst[i*4+2] = FLOAT_TO_BYTE_TEX(rgba[i][BCOMP]);
+                     dst[i*4+3] = FLOAT_TO_BYTE_TEX(rgba[i][ACOMP]);
                   }
                   break;
                case GL_BGR:
                   for (i=0;i<n;i++) {
-                     dst[i*3+0] = FLOAT_TO_BYTE(rgba[i][BCOMP]);
-                     dst[i*3+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]);
-                     dst[i*3+2] = FLOAT_TO_BYTE(rgba[i][RCOMP]);
+                     dst[i*3+0] = FLOAT_TO_BYTE_TEX(rgba[i][BCOMP]);
+                     dst[i*3+1] = FLOAT_TO_BYTE_TEX(rgba[i][GCOMP]);
+                     dst[i*3+2] = FLOAT_TO_BYTE_TEX(rgba[i][RCOMP]);
                   }
                   break;
                case GL_BGRA:
                   for (i=0;i<n;i++) {
-                     dst[i*4+0] = FLOAT_TO_BYTE(rgba[i][BCOMP]);
-                     dst[i*4+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]);
-                     dst[i*4+2] = FLOAT_TO_BYTE(rgba[i][RCOMP]);
-                     dst[i*4+3] = FLOAT_TO_BYTE(rgba[i][ACOMP]);
+                     dst[i*4+0] = FLOAT_TO_BYTE_TEX(rgba[i][BCOMP]);
+                     dst[i*4+1] = FLOAT_TO_BYTE_TEX(rgba[i][GCOMP]);
+                     dst[i*4+2] = FLOAT_TO_BYTE_TEX(rgba[i][RCOMP]);
+                     dst[i*4+3] = FLOAT_TO_BYTE_TEX(rgba[i][ACOMP]);
                   }
                  break;
                case GL_ABGR_EXT:
                   for (i=0;i<n;i++) {
-                     dst[i*4+0] = FLOAT_TO_BYTE(rgba[i][ACOMP]);
-                     dst[i*4+1] = FLOAT_TO_BYTE(rgba[i][BCOMP]);
-                     dst[i*4+2] = FLOAT_TO_BYTE(rgba[i][GCOMP]);
-                     dst[i*4+3] = FLOAT_TO_BYTE(rgba[i][RCOMP]);
+                     dst[i*4+0] = FLOAT_TO_BYTE_TEX(rgba[i][ACOMP]);
+                     dst[i*4+1] = FLOAT_TO_BYTE_TEX(rgba[i][BCOMP]);
+                     dst[i*4+2] = FLOAT_TO_BYTE_TEX(rgba[i][GCOMP]);
+                     dst[i*4+3] = FLOAT_TO_BYTE_TEX(rgba[i][RCOMP]);
                   }
                   break;
                case GL_RED_INTEGER_EXT:
@@ -1631,8 +1631,8 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                case GL_DUDV_ATI:
                case GL_DU8DV8_ATI:
                   for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_BYTE(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_BYTE(rgba[i][GCOMP]);
+                     dst[i*2+0] = FLOAT_TO_BYTE_TEX(rgba[i][RCOMP]);
+                     dst[i*2+1] = FLOAT_TO_BYTE_TEX(rgba[i][GCOMP]);
                   }
                   break;
                default:
@@ -1803,72 +1803,72 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
             switch (dstFormat) {
                case GL_RED:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_SHORT(rgba[i][RCOMP]);
+                     dst[i] = FLOAT_TO_SHORT_TEX(rgba[i][RCOMP]);
                   break;
                case GL_GREEN:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_SHORT(rgba[i][GCOMP]);
+                     dst[i] = FLOAT_TO_SHORT_TEX(rgba[i][GCOMP]);
                   break;
                case GL_BLUE:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_SHORT(rgba[i][BCOMP]);
+                     dst[i] = FLOAT_TO_SHORT_TEX(rgba[i][BCOMP]);
                   break;
                case GL_ALPHA:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_SHORT(rgba[i][ACOMP]);
+                     dst[i] = FLOAT_TO_SHORT_TEX(rgba[i][ACOMP]);
                   break;
                case GL_LUMINANCE:
                   for (i=0;i<n;i++)
-                     dst[i] = FLOAT_TO_SHORT(luminance[i]);
+                     dst[i] = FLOAT_TO_SHORT_TEX(luminance[i]);
                   break;
                case GL_LUMINANCE_ALPHA:
                   for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_SHORT(luminance[i]);
-                     dst[i*2+1] = FLOAT_TO_SHORT(rgba[i][ACOMP]);
+                     dst[i*2+0] = FLOAT_TO_SHORT_TEX(luminance[i]);
+                     dst[i*2+1] = FLOAT_TO_SHORT_TEX(rgba[i][ACOMP]);
                   }
                   break;
                case GL_RG:
                   for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]);
+                     dst[i*2+0] = FLOAT_TO_SHORT_TEX(rgba[i][RCOMP]);
+                     dst[i*2+1] = FLOAT_TO_SHORT_TEX(rgba[i][GCOMP]);
                   }
                   break;
                case GL_RGB:
                   for (i=0;i<n;i++) {
-                     dst[i*3+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]);
-                     dst[i*3+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]);
-                     dst[i*3+2] = FLOAT_TO_SHORT(rgba[i][BCOMP]);
+                     dst[i*3+0] = FLOAT_TO_SHORT_TEX(rgba[i][RCOMP]);
+                     dst[i*3+1] = FLOAT_TO_SHORT_TEX(rgba[i][GCOMP]);
+                     dst[i*3+2] = FLOAT_TO_SHORT_TEX(rgba[i][BCOMP]);
                   }
                   break;
                case GL_RGBA:
                   for (i=0;i<n;i++) {
-                     dst[i*4+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]);
-                     dst[i*4+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]);
-                     dst[i*4+2] = FLOAT_TO_SHORT(rgba[i][BCOMP]);
-                     dst[i*4+3] = FLOAT_TO_SHORT(rgba[i][ACOMP]);
+                     dst[i*4+0] = FLOAT_TO_SHORT_TEX(rgba[i][RCOMP]);
+                     dst[i*4+1] = FLOAT_TO_SHORT_TEX(rgba[i][GCOMP]);
+                     dst[i*4+2] = FLOAT_TO_SHORT_TEX(rgba[i][BCOMP]);
+                     dst[i*4+3] = FLOAT_TO_SHORT_TEX(rgba[i][ACOMP]);
                   }
                   break;
                case GL_BGR:
                   for (i=0;i<n;i++) {
-                     dst[i*3+0] = FLOAT_TO_SHORT(rgba[i][BCOMP]);
-                     dst[i*3+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]);
-                     dst[i*3+2] = FLOAT_TO_SHORT(rgba[i][RCOMP]);
+                     dst[i*3+0] = FLOAT_TO_SHORT_TEX(rgba[i][BCOMP]);
+                     dst[i*3+1] = FLOAT_TO_SHORT_TEX(rgba[i][GCOMP]);
+                     dst[i*3+2] = FLOAT_TO_SHORT_TEX(rgba[i][RCOMP]);
                   }
                   break;
                case GL_BGRA:
                   for (i=0;i<n;i++) {
-                     dst[i*4+0] = FLOAT_TO_SHORT(rgba[i][BCOMP]);
-                     dst[i*4+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]);
-                     dst[i*4+2] = FLOAT_TO_SHORT(rgba[i][RCOMP]);
-                     dst[i*4+3] = FLOAT_TO_SHORT(rgba[i][ACOMP]);
+                     dst[i*4+0] = FLOAT_TO_SHORT_TEX(rgba[i][BCOMP]);
+                     dst[i*4+1] = FLOAT_TO_SHORT_TEX(rgba[i][GCOMP]);
+                     dst[i*4+2] = FLOAT_TO_SHORT_TEX(rgba[i][RCOMP]);
+                     dst[i*4+3] = FLOAT_TO_SHORT_TEX(rgba[i][ACOMP]);
                   }
                  break;
                case GL_ABGR_EXT:
                   for (i=0;i<n;i++) {
-                     dst[i*4+0] = FLOAT_TO_SHORT(rgba[i][ACOMP]);
-                     dst[i*4+1] = FLOAT_TO_SHORT(rgba[i][BCOMP]);
-                     dst[i*4+2] = FLOAT_TO_SHORT(rgba[i][GCOMP]);
-                     dst[i*4+3] = FLOAT_TO_SHORT(rgba[i][RCOMP]);
+                     dst[i*4+0] = FLOAT_TO_SHORT_TEX(rgba[i][ACOMP]);
+                     dst[i*4+1] = FLOAT_TO_SHORT_TEX(rgba[i][BCOMP]);
+                     dst[i*4+2] = FLOAT_TO_SHORT_TEX(rgba[i][GCOMP]);
+                     dst[i*4+3] = FLOAT_TO_SHORT_TEX(rgba[i][RCOMP]);
                   }
                   break;
                case GL_RED_INTEGER_EXT:
@@ -1945,8 +1945,8 @@ _mesa_pack_rgba_span_float(struct gl_context *ctx, GLuint n, GLfloat rgba[][4],
                case GL_DUDV_ATI:
                case GL_DU8DV8_ATI:
                   for (i=0;i<n;i++) {
-                     dst[i*2+0] = FLOAT_TO_SHORT(rgba[i][RCOMP]);
-                     dst[i*2+1] = FLOAT_TO_SHORT(rgba[i][GCOMP]);
+                     dst[i*2+0] = FLOAT_TO_SHORT_TEX(rgba[i][RCOMP]);
+                     dst[i*2+1] = FLOAT_TO_SHORT_TEX(rgba[i][GCOMP]);
                   }
                   break;
                default:
@@ -6022,6 +6022,25 @@ _mesa_rebase_rgba_float(GLuint n, GLfloat rgba[][4], GLenum baseFormat)
          rgba[i][BCOMP] = 0.0F;
       }
       break;
+   case GL_RGB:
+      for (i = 0; i < n; i++) {
+         rgba[i][ACOMP] = 1.0F;
+      }
+      break;
+   case GL_RG:
+      for (i = 0; i < n; i++) {
+         rgba[i][BCOMP] = 0.0F;
+         rgba[i][ACOMP] = 1.0F;
+      }
+      break;
+   case GL_RED:
+      for (i = 0; i < n; i++) {
+         rgba[i][GCOMP] = 0.0F;
+         rgba[i][BCOMP] = 0.0F;
+         rgba[i][ACOMP] = 1.0F;
+      }
+      break;
+
    default:
       /* no-op */
       ;
@@ -6060,6 +6079,23 @@ _mesa_rebase_rgba_uint(GLuint n, GLuint rgba[][4], GLenum baseFormat)
          rgba[i][BCOMP] = 0;
       }
       break;
+   case GL_RGB:
+      for (i = 0; i < n; i++) {
+         rgba[i][ACOMP] = 1;
+      }
+      break;
+   case GL_RG:
+      for (i = 0; i < n; i++) {
+         rgba[i][BCOMP] = 0;
+         rgba[i][ACOMP] = 1;
+      }
+      break;
+   case GL_RED:
+      for (i = 0; i < n; i++) {
+         rgba[i][GCOMP] = 0;
+         rgba[i][BCOMP] = 0;
+         rgba[i][ACOMP] = 1;
+      }
    default:
       /* no-op */
       ;