[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