pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] CVS: Games/Pingus/src screenshot.cxx,1.7,1.8


From: torangan
Subject: [Pingus-CVS] CVS: Games/Pingus/src screenshot.cxx,1.7,1.8
Date: 6 Oct 2002 17:33:34 -0000

Update of /usr/local/cvsroot/Games/Pingus/src
In directory dark:/tmp/cvs-serv32357

Modified Files:
        screenshot.cxx 
Log Message:
reduced number of casts


Index: screenshot.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/screenshot.cxx,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- screenshot.cxx      6 Oct 2002 17:13:24 -0000       1.7
+++ screenshot.cxx      6 Oct 2002 17:33:32 -0000       1.8
@@ -58,10 +58,10 @@
 {
   // Warring this doesn't work
   
-  unsigned char* buffer;
-  unsigned char* sbuffer;
-  unsigned int sbuffer_size;
+  unsigned char*  buffer;
+  unsigned short* sbuffer;
   unsigned int buffer_size;
+  unsigned int sbuffer_size;
   FILE* out = fopen(filename.c_str(), "wb");
 
   if (!out) {
@@ -83,7 +83,7 @@
   buffer = new unsigned char[buffer_size];
 
   target->lock();
-  sbuffer = (unsigned char*)target->get_data();
+  sbuffer = reinterpret_cast<unsigned short*>(target->get_data());
   sbuffer_size = target->get_height() * target->get_pitch();
   unsigned int sbytes_per_pixel = target->get_bytes_per_pixel();
 
@@ -93,14 +93,11 @@
   for (unsigned int i = 0, j = 0; i < sbuffer_size;
        i += sbytes_per_pixel, j += 3)
     {
-      buffer[j + 0] = (*((unsigned short*)(sbuffer+i)) & 
target->get_red_mask())
-                      * 255 / target->get_red_mask();
-      buffer[j + 1] = (*((unsigned short*)(sbuffer+i)) & 
target->get_green_mask()) 
-                      * 255 / target->get_green_mask();
-      buffer[j + 2] = (*((unsigned short*)(sbuffer+i)) & 
target->get_blue_mask())
-                      * 255 / target->get_blue_mask();
+      buffer[j + 0] = (*(sbuffer+i) & target->get_red_mask())   * 255 / 
target->get_red_mask();
+      buffer[j + 1] = (*(sbuffer+i) & target->get_green_mask()) * 255 / 
target->get_green_mask();
+      buffer[j + 2] = (*(sbuffer+i) & target->get_blue_mask())  * 255 / 
target->get_blue_mask();
     }
-  
+
   target->unlock();
   
   fwrite(buffer, sizeof(unsigned char), buffer_size, out);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]