[Scummvm-cvs-logs] CVS: scummvm/sword2/driver animation.cpp,1.14,1.15 animation.h,1.14,1.15
Max Horn
fingolfin at users.sourceforge.net
Fri Jan 30 13:07:06 CET 2004
Update of /cvsroot/scummvm/scummvm/sword2/driver
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8085/sword2/driver
Modified Files:
animation.cpp animation.h
Log Message:
avoid using huge static structs - they can't be stripped, and increase the exe size (in this case, 16 MB...)
Index: animation.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/driver/animation.cpp,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- animation.cpp 22 Jan 2004 21:02:29 -0000 1.14
+++ animation.cpp 30 Jan 2004 20:57:23 -0000 1.15
@@ -106,7 +106,7 @@
lut2 = lookup[1];
lutcalcnum = (BITDEPTH + palettes[palnum].end + 2) / (palettes[palnum].end + 2);
#else
- buildLookup2();
+ buildLookup();
overlay = (NewGuiColor*)calloc(640 * 400, sizeof(NewGuiColor));
_vm->_system->show_overlay();
#endif
@@ -220,14 +220,13 @@
#else
-bool AnimationState::lookupInit = false;
-NewGuiColor AnimationState::lookup2[BITDEPTH * BITDEPTH * 256];
+NewGuiColor *AnimationState::lookup = 0;
-void AnimationState::buildLookup2() {
- if (lookupInit)
+void AnimationState::buildLookup() {
+ if (lookup)
return;
- lookupInit = true;
+ lookup = (NewGuiColor *)calloc(BITDEPTH * BITDEPTH * 256, sizeof(NewGuiColor));
int y, cb, cr;
int r, g, b;
@@ -240,20 +239,14 @@
g = ((y - 16) * 256 - (int) (0.813 * 256) * ((cr << SHIFT) - 128) - (int) (0.391 * 256) * ((cb << SHIFT) - 128)) / 256;
b = ((y - 16) * 256 + (int) (2.018 * 256) * ((cb << SHIFT) - 128)) / 256;
- if (r < 0)
- r = 0;
- if (r > 255)
- r = 255;
- if (g < 0)
- g = 0;
- if (g > 255)
- g = 255;
- if (b < 0)
- b = 0;
- if (b > 255)
- b = 255;
+ if (r < 0) r = 0;
+ else if (r > 255) r = 255;
+ if (g < 0) g = 0;
+ else if (g > 255) g = 255;
+ if (b < 0) b = 0;
+ else if (b > 255) b = 255;
- lookup2[pos++] = _vm->_system->RGBToColor(r, g, b);
+ lookup[pos++] = _vm->_system->RGBToColor(r, g, b);
}
}
}
@@ -372,7 +365,7 @@
if ((bgSoundStream == NULL) ||
(bgSoundStream->getSamplesPlayed() * 12 / bgSoundStream->getRate()) < (framenum+3)){
- plotYUV(lookup2, sequence_i->width, sequence_i->height, info->display_fbuf->buf);
+ plotYUV(lookup, sequence_i->width, sequence_i->height, info->display_fbuf->buf);
if (bgSoundStream) {
while ((bgSoundStream->getSamplesPlayed() * 12 / bgSoundStream->getRate()) < framenum + 1)
Index: animation.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/driver/animation.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- animation.h 30 Jan 2004 20:47:21 -0000 1.14
+++ animation.h 30 Jan 2004 20:57:23 -0000 1.15
@@ -104,10 +104,8 @@
byte pal[4 * 256];
} palettes[50];
#else
- static NewGuiColor lookup2[BITDEPTH * BITDEPTH * 256];
+ static NewGuiColor *lookup;
NewGuiColor *overlay;
- static bool lookupInit;
-
#endif
public:
@@ -129,7 +127,7 @@
void buildLookup(int p, int lines);
bool checkPaletteSwitch();
#else
- void buildLookup2(void);
+ void buildLookup(void);
void plotYUV(NewGuiColor *lut, int width, int height, byte *const *dat);
#endif
};
More information about the Scummvm-git-logs
mailing list