[Top][All Lists]
[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] CVS: Games/Pingus/src screenshot.cxx,1.7,1.8,
torangan <=