[Scummvm-cvs-logs] CVS: scummvm/scumm/smush brenderer.h,1.7,1.8 scumm_renderer.cpp,1.27,1.28 scumm_renderer.h,1.11,1.12
Pawel Kolodziejski
aquadran at users.sourceforge.net
Wed Mar 12 13:45:21 CET 2003
Update of /cvsroot/scummvm/scummvm/scumm/smush
In directory sc8-pr-cvs1:/tmp/cvs-serv7488
Modified Files:
brenderer.h scumm_renderer.cpp scumm_renderer.h
Log Message:
removed additional back buffer in smush
Index: brenderer.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/brenderer.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- brenderer.h 6 Mar 2003 21:46:34 -0000 1.7
+++ brenderer.h 12 Mar 2003 21:44:13 -0000 1.8
@@ -47,9 +47,9 @@
protected:
const char *getFilename() const { return _fname; }; //!< accessor for animation filename
int32 getNbframes() const { return _nbframes; }; //!< accessor for number of frames
- int32 getWidth() const { return _width; }; //!< accessor for current width
- int32 getHeight() const { return _height; }; //!< accessor for current height
- const char *data() const { return _data; }; //!< accessor for current frame buffer
+ virtual int32 getWidth() const { return _width; }; //!< accessor for current width
+ virtual int32 getHeight() const { return _height; }; //!< accessor for current height
+ virtual const char *data() const { return _data; }; //!< accessor for current frame buffer
void clean(); //!< memory cleanup (deletes frame buffer)
void setFrame(int32 f) { _frame = f; }; //!< allows to change the frame number
public:
Index: scumm_renderer.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/scumm_renderer.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- scumm_renderer.cpp 9 Mar 2003 03:36:19 -0000 1.27
+++ scumm_renderer.cpp 12 Mar 2003 21:44:17 -0000 1.28
@@ -209,6 +209,26 @@
s_renderer->update();
}
+bool ScummRenderer::initFrame(const Point &p) {
+ clean();
+ _width = p.getX();
+ _height = p.getY();
+ assert(_width && _height);
+ _data = (char *)_scumm->virtscr[0].screenPtr + _scumm->virtscr[0].xstart;
+ return true;
+}
+
+void ScummRenderer::clean() {
+ _data = 0;
+ _width = _height = 0;
+}
+
+char *ScummRenderer::lockFrame(int32 frame) {
+ _frame = frame;
+ if(!_data) error("no allocated image buffer in lock_frame");
+ return _data;
+}
+
Mixer *ScummRenderer::getMixer() {
if(_smixer == 0) {
_smixer = new ScummMixer(_scumm->_mixer);
@@ -233,17 +253,7 @@
}
_scumm->_sound->pauseBundleMusic(false);
-
_scumm->_fullRedraw = 1;
-#if 0
- // FIXME - enabling this breaks the COMI demo. OTOH I am not aware
- // what disabling this breaks... if anybody knows of any regressions
- // turning this off causes, please tell me.
- _scumm->redrawBGAreas();
- for (int32 i = 0; i < _scumm->NUM_ACTORS; i++)
- _scumm->derefActor(i)->needRedraw = true;
- _scumm->processActors();
-#endif
}
bool ScummRenderer::wait(int32 ms) {
Index: scumm_renderer.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/smush/scumm_renderer.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- scumm_renderer.h 6 Mar 2003 21:46:46 -0000 1.11
+++ scumm_renderer.h 12 Mar 2003 21:44:18 -0000 1.12
@@ -46,12 +46,22 @@
ScummMixer *_smixer;
uint32 _insaneSpeed;
volatile int _pending_updates;
+ int32 _width; //!< The current frame's width
+ int32 _height; //!< The current frame's height
+ int32 _frame; //!< The current frame number
+ char *_data; //!< The current frame buffer
public:
ScummRenderer(Scumm *scumm, uint32 speed);
virtual ~ScummRenderer();
+ virtual int32 getWidth() const { return _width; }; //!< accessor for current width
+ virtual int32 getHeight() const { return _height; }; //!< accessor for current height
+ virtual const char *data() const { return _data; }; //!< accessor for current frame buffer
virtual bool wait(int32 ms);
bool update();
protected:
+ virtual bool initFrame(const Point &size);
+ virtual char *lockFrame(int32 frame);
+ virtual void clean();
virtual bool startDecode(const char *fname, int32 version, int32 nbframes);
virtual bool setPalette(const Palette & pal);
virtual void save(int32 frame = -1);
More information about the Scummvm-git-logs
mailing list