[Scummvm-cvs-logs] CVS: residual smush.cpp,1.4,1.5
Pawel Kolodziejski
aquadran at users.sourceforge.net
Sat Dec 13 00:57:00 CET 2003
Update of /cvsroot/scummvm/residual
In directory sc8-pr-cvs1:/tmp/cvs-serv19569
Modified Files:
smush.cpp
Log Message:
cleanup
Index: smush.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/smush.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- smush.cpp 12 Dec 2003 22:57:40 -0000 1.4
+++ smush.cpp 13 Dec 2003 08:56:21 -0000 1.5
@@ -93,97 +93,97 @@
#define BITMAP_TEXTURE_SIZE 256
void Smush::updateGLScreen() {
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- int num_tex_;
- GLuint *tex_ids_;
+ int num_tex_;
+ GLuint *tex_ids_;
// create texture
- num_tex_ = ((_width + (BITMAP_TEXTURE_SIZE - 1)) / BITMAP_TEXTURE_SIZE) *
- ((_height + (BITMAP_TEXTURE_SIZE - 1)) / BITMAP_TEXTURE_SIZE);
- tex_ids_ = new GLuint[num_tex_];
- glGenTextures(num_tex_, tex_ids_);
- for (int i = 0; i < num_tex_; i++) {
- glBindTexture(GL_TEXTURE_2D, tex_ids_[i]);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
- BITMAP_TEXTURE_SIZE, BITMAP_TEXTURE_SIZE, 0,
- GL_RGB, GL_UNSIGNED_SHORT_5_6_5, NULL);
+ num_tex_ = ((_width + (BITMAP_TEXTURE_SIZE - 1)) / BITMAP_TEXTURE_SIZE) *
+ ((_height + (BITMAP_TEXTURE_SIZE - 1)) / BITMAP_TEXTURE_SIZE);
+ tex_ids_ = new GLuint[num_tex_];
+ glGenTextures(num_tex_, tex_ids_);
+ for (int i = 0; i < num_tex_; i++) {
+ glBindTexture(GL_TEXTURE_2D, tex_ids_[i]);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
+ BITMAP_TEXTURE_SIZE, BITMAP_TEXTURE_SIZE, 0,
+ GL_RGB, GL_UNSIGNED_SHORT_5_6_5, NULL);
}
-
- glPixelStorei(GL_UNPACK_ALIGNMENT, 2);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, _width);
- int cur_tex_idx = 0;
- for (int y = 0; y < _height; y += BITMAP_TEXTURE_SIZE) {
- for (int x = 0; x < _width; x += BITMAP_TEXTURE_SIZE) {
- int width = (x + BITMAP_TEXTURE_SIZE >= _width) ? (_width - x) : BITMAP_TEXTURE_SIZE;
- int height = (y + BITMAP_TEXTURE_SIZE >= _height) ? (_height - y) : BITMAP_TEXTURE_SIZE;
- glBindTexture(GL_TEXTURE_2D, tex_ids_[cur_tex_idx]);
- glTexSubImage2D(GL_TEXTURE_2D,
- 0,
- 0, 0,
- width, height,
- GL_RGB,
- GL_UNSIGNED_SHORT_5_6_5,
- _dst + (y * 2 * _width) + (2 * x));
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 2);
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, _width);
+
+ int cur_tex_idx = 0;
+ for (int y = 0; y < _height; y += BITMAP_TEXTURE_SIZE) {
+ for (int x = 0; x < _width; x += BITMAP_TEXTURE_SIZE) {
+ int width = (x + BITMAP_TEXTURE_SIZE >= _width) ? (_width - x) : BITMAP_TEXTURE_SIZE;
+ int height = (y + BITMAP_TEXTURE_SIZE >= _height) ? (_height - y) : BITMAP_TEXTURE_SIZE;
+ glBindTexture(GL_TEXTURE_2D, tex_ids_[cur_tex_idx]);
+ glTexSubImage2D(GL_TEXTURE_2D,
+ 0,
+ 0, 0,
+ width, height,
+ GL_RGB,
+ GL_UNSIGNED_SHORT_5_6_5,
+ _dst + (y * 2 * _width) + (2 * x));
cur_tex_idx++;
- }
- }
- glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
- glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
+ }
+ }
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, 0);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- // prepare view
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0, 640, 480, 0, 0, 1);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- glMatrixMode(GL_TEXTURE);
- glLoadIdentity();
- // A lot more may need to be put there : disabling Alpha test, blending, ...
- // For now, just keep this here :-)
- glDisable(GL_LIGHTING);
- glEnable(GL_TEXTURE_2D);
-
- // draw
- glDisable(GL_DEPTH_TEST);
- glDepthMask(GL_FALSE);
- glEnable(GL_SCISSOR_TEST);
- cur_tex_idx = 0;
- for (int y = 0; y < _height; y += BITMAP_TEXTURE_SIZE) {
- for (int x = 0; x < _width; x += BITMAP_TEXTURE_SIZE) {
- int width = (x + BITMAP_TEXTURE_SIZE >= _width) ? (_width - x) : BITMAP_TEXTURE_SIZE;
- int height = (y + BITMAP_TEXTURE_SIZE >= _height) ? (_height - y) : BITMAP_TEXTURE_SIZE;
- glBindTexture(GL_TEXTURE_2D, tex_ids_[cur_tex_idx]);
- glScissor(x, 480 - (y + height), x + width, 480 - y);
- glBegin(GL_QUADS);
- glTexCoord2f(0.0, 0.0);
- glVertex2i(x, y);
- glTexCoord2f(1.0, 0.0);
- glVertex2i(x + BITMAP_TEXTURE_SIZE, y);
- glTexCoord2f(1.0, 1.0);
- glVertex2i(x + BITMAP_TEXTURE_SIZE, y + BITMAP_TEXTURE_SIZE);
- glTexCoord2f(0.0, 1.0);
- glVertex2i(x, y + BITMAP_TEXTURE_SIZE);
- glEnd();
- cur_tex_idx++;
- }
- }
- glDisable(GL_SCISSOR_TEST);
- glDisable(GL_TEXTURE_2D);
- glDepthMask(GL_TRUE);
- glEnable(GL_DEPTH_TEST);
+ // prepare view
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho(0, 640, 480, 0, 0, 1);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glMatrixMode(GL_TEXTURE);
+ glLoadIdentity();
+ // A lot more may need to be put there : disabling Alpha test, blending, ...
+ // For now, just keep this here :-)
+ glDisable(GL_LIGHTING);
+ glEnable(GL_TEXTURE_2D);
- SDL_GL_SwapBuffers();
+ // draw
+ glDisable(GL_DEPTH_TEST);
+ glDepthMask(GL_FALSE);
+ glEnable(GL_SCISSOR_TEST);
+ cur_tex_idx = 0;
+ for (int y = 0; y < _height; y += BITMAP_TEXTURE_SIZE) {
+ for (int x = 0; x < _width; x += BITMAP_TEXTURE_SIZE) {
+ int width = (x + BITMAP_TEXTURE_SIZE >= _width) ? (_width - x) : BITMAP_TEXTURE_SIZE;
+ int height = (y + BITMAP_TEXTURE_SIZE >= _height) ? (_height - y) : BITMAP_TEXTURE_SIZE;
+ glBindTexture(GL_TEXTURE_2D, tex_ids_[cur_tex_idx]);
+ glScissor(x, 480 - (y + height), x + width, 480 - y);
+ glBegin(GL_QUADS);
+ glTexCoord2f(0.0, 0.0);
+ glVertex2i(x, y);
+ glTexCoord2f(1.0, 0.0);
+ glVertex2i(x + BITMAP_TEXTURE_SIZE, y);
+ glTexCoord2f(1.0, 1.0);
+ glVertex2i(x + BITMAP_TEXTURE_SIZE, y + BITMAP_TEXTURE_SIZE);
+ glTexCoord2f(0.0, 1.0);
+ glVertex2i(x, y + BITMAP_TEXTURE_SIZE);
+ glEnd();
+ cur_tex_idx++;
+ }
+ }
+ glDisable(GL_SCISSOR_TEST);
+ glDisable(GL_TEXTURE_2D);
+ glDepthMask(GL_TRUE);
+ glEnable(GL_DEPTH_TEST);
+
+ SDL_GL_SwapBuffers();
- // remove
- glDeleteTextures(num_tex_, tex_ids_);
- delete[] tex_ids_;
-}
+ // remove
+ glDeleteTextures(num_tex_, tex_ids_);
+ delete[] tex_ids_;
+}
void Smush::handleFrame() {
uint32 tag;
@@ -280,10 +280,9 @@
// Load the video
setupAnim(filename, directory);
handleFramesHeader();
- init();
SDL_Surface* image;
- image = SDL_CreateRGBSurface(SDL_SWSURFACE, 640, 480, 16, 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000);
+ image = SDL_CreateRGBSurface(SDL_SWSURFACE, _width, _height, 16, 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000);
SDL_Rect src;
src.x = 0;
@@ -293,7 +292,7 @@
_dst = (byte *)image->pixels;
- _videoFinished = false;
+ init();
while (!_videoFinished) {
SDL_Delay(10);
More information about the Scummvm-git-logs
mailing list