Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[Manta] r1820 - trunk/Image


Chronological Thread 
  • From: bigler@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [Manta] r1820 - trunk/Image
  • Date: Mon, 5 Nov 2007 15:57:06 -0700 (MST)

Author: bigler
Date: Mon Nov  5 15:57:06 2007
New Revision: 1820

Modified:
   trunk/Image/TGAFile.cc
Log:
Image/TGAFile.cc

  Fixed writing images with padding (due to SSE alignments).


Modified: trunk/Image/TGAFile.cc
==============================================================================
--- trunk/Image/TGAFile.cc      (original)
+++ trunk/Image/TGAFile.cc      Mon Nov  5 15:57:06 2007
@@ -99,11 +99,13 @@
   const SimpleImage< PType >* si =
     dynamic_cast< const SimpleImage< PType > * >( image );
   PType const *buffer = si->getRawPixels( eye );
-  for ( int y = 0; y < yres; ++y )
+  for ( int y = 0; y < yres; ++y ) {
+    PType const* row = buffer + (y * si->getRowLength());
     for ( int x = 0; x < xres; ++x ) {
-      writePixel(out, buffer->r, buffer->g, buffer->b);
-      ++buffer;
+      writePixel(out, row->r, row->g, row->b);
+      ++row;
     }
+  }
 }
 
 template<class PType>
@@ -116,11 +118,13 @@
   const SimpleImage< PType >* si =
     dynamic_cast< const SimpleImage< PType > * >( image );
   PType const *buffer = si->getRawPixels( eye );
-  for ( int y = 0; y < yres; ++y )
+  for ( int y = 0; y < yres; ++y ) {
+    PType const* row = buffer + (y * si->getRowLength());
     for ( int x = 0; x < xres; ++x ) {
-      writePixel(out, buffer->r, buffer->g, buffer->b, buffer->a);
-      ++buffer;
+      writePixel(out, row->r, row->g, row->b, row->a);
+      ++row;
     }
+  }
 }
 
 void writePixelDescription(ofstream& out) {




  • [Manta] r1820 - trunk/Image, bigler, 11/05/2007

Archive powered by MHonArc 2.6.16.

Top of page