~ubuntu-branches/ubuntu/precise/mesa-lts-quantal/precise-updates

« back to all changes in this revision

Viewing changes to src/gallium/auxiliary/util/u_tile.c

  • Committer: Package Import Robot
  • Author(s): Maarten Lankhorst
  • Date: 2013-03-21 09:25:55 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20130321092555-mupc3s4vbgvaeqem
Tags: 9.0.3-0ubuntu0.1~precise1
Copy mesa update from quantal. (LP: #1134466)

Show diffs side-by-side

added added

removed removed

Lines of Context:
701
701
         }
702
702
      }
703
703
      break;
 
704
   case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
 
705
      {
 
706
         const float *ptrc = (const float *)(map + y * pt->stride + x*8);
 
707
         for (i = 0; i < h; i++) {
 
708
            for (j = 0; j < w; j++) {
 
709
               /* convert float Z to 32-bit Z */
 
710
               if (ptrc[j] <= 0.0) {
 
711
                  pDest[j*2] = 0;
 
712
               }
 
713
               else if (ptrc[j] >= 1.0) {
 
714
                  pDest[j*2] = 0xffffffff;
 
715
               }
 
716
               else {
 
717
                  double z = ptrc[j] * 0xffffffff;
 
718
                  pDest[j*2] = (uint) z;
 
719
               }
 
720
            }
 
721
            pDest += dstStride;
 
722
            ptrc += pt->stride/4;
 
723
         }
 
724
      }
 
725
      break;
704
726
   default:
705
727
      assert(0);
706
728
   }
810
832
      break;
811
833
   case PIPE_FORMAT_Z32_FLOAT:
812
834
      {
813
 
         float *pDest = (float *) (map + y * pt->stride + x*2);
 
835
         float *pDest = (float *) (map + y * pt->stride + x*4);
814
836
         for (i = 0; i < h; i++) {
815
837
            for (j = 0; j < w; j++) {
816
838
               /* convert 32-bit integer Z to float Z */
822
844
         }
823
845
      }
824
846
      break;
 
847
   case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
 
848
      {
 
849
         float *pDest = (float *) (map + y * pt->stride + x*8);
 
850
         for (i = 0; i < h; i++) {
 
851
            for (j = 0; j < w; j++) {
 
852
               /* convert 32-bit integer Z to float Z */
 
853
               const double scale = 1.0 / 0xffffffffU;
 
854
               pDest[j*2] = ptrc[j] * scale;
 
855
            }
 
856
            pDest += pt->stride/4;
 
857
            ptrc += srcStride;
 
858
         }
 
859
      }
 
860
      break;
825
861
   default:
826
862
      assert(0);
827
863
   }