git.ucc.asn.au
/
ipdf
/
code.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix Screen::ScreenShot
[ipdf/code.git]
/
src
/
screen.cpp
diff --git
a/src/screen.cpp
b/src/screen.cpp
index
683da4a
..
5f32f0d
100644
(file)
--- a/
src/screen.cpp
+++ b/
src/screen.cpp
@@
-129,13
+129,17
@@
void Screen::ScreenShot(const char * filename) const
int w = ViewportWidth();
int h = ViewportHeight();
int w = ViewportWidth();
int h = ViewportHeight();
- unsigned char * pixels = new unsigned char[w*h*
3
];
+ unsigned char * pixels = new unsigned char[w*h*
4
];
if (pixels == NULL)
if (pixels == NULL)
- Fatal("Failed to allocate %d x %d x 4 = %d pixel array", w, h, w*h*3);
+ Fatal("Failed to allocate %d x %d x 4 = %d pixel array", w, h, w*h*4);
+
+
+ glReadBuffer(GL_FRONT);
+ glPixelStorei(GL_PACK_ALIGNMENT, 1);
glReadPixels(0,0,w, h, GL_BGRA, GL_UNSIGNED_BYTE, pixels);
glReadPixels(0,0,w, h, GL_BGRA, GL_UNSIGNED_BYTE, pixels);
- SDL_Surface * surf = SDL_CreateRGBSurfaceFrom(pixels, w, h, 8*
3, w*3
, 0,0,0,0);
+ SDL_Surface * surf = SDL_CreateRGBSurfaceFrom(pixels, w, h, 8*
4, w*4
, 0,0,0,0);
if (surf == NULL)
Fatal("Failed to create SDL_Surface from pixel data - %s", SDL_GetError());
if (surf == NULL)
Fatal("Failed to create SDL_Surface from pixel data - %s", SDL_GetError());
UCC
git Repository :: git.ucc.asn.au