[Scummvm-cvs-logs] SF.net SVN: scummvm:[41991] scummvm/branches/gsoc2009-16bit/engines/groovie /roq.cpp
scott_t at users.sourceforge.net
scott_t at users.sourceforge.net
Wed Jul 1 17:08:11 CEST 2009
Revision: 41991
http://scummvm.svn.sourceforge.net/scummvm/?rev=41991&view=rev
Author: scott_t
Date: 2009-07-01 15:08:11 +0000 (Wed, 01 Jul 2009)
Log Message:
-----------
Add JPEG support to 11H for ROQ playback
Modified Paths:
--------------
scummvm/branches/gsoc2009-16bit/engines/groovie/roq.cpp
Modified: scummvm/branches/gsoc2009-16bit/engines/groovie/roq.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/groovie/roq.cpp 2009-07-01 15:06:38 UTC (rev 41990)
+++ scummvm/branches/gsoc2009-16bit/engines/groovie/roq.cpp 2009-07-01 15:08:11 UTC (rev 41991)
@@ -29,6 +29,8 @@
#include "groovie/groovie.h"
#include "groovie/roq.h"
+#include "graphics/jpeg.h"
+
#ifdef ENABLE_RGB_COLOR
// Required for the YUV to RGB conversion
#include "graphics/dither.h"
@@ -485,18 +487,21 @@
bool ROQPlayer::processBlockStill(ROQBlockHeader &blockHeader) {
debugC(5, kGroovieDebugVideo | kGroovieDebugAll, "Groovie::ROQ: Processing still (JPEG) block");
- warning("Groovie::ROQ: JPEG frame (unimplemented)");
+ warning("Groovie::ROQ: JPEG frame (unfinshed)");
- // HACK: Initialize to a black frame
- //memset(_prevBuf->getBasePtr(0, 0), 0, _prevBuf->w * _prevBuf->h * _prevBuf->bytesPerPixel);
+ Graphics::JPEG *jpg = new Graphics::JPEG();
+ jpg->read(_file);
+ byte *y = (byte *)jpg->getComponent(1)->getBasePtr(0, 0);
+ byte *u = (byte *)jpg->getComponent(2)->getBasePtr(0, 0);
+ byte *v = (byte *)jpg->getComponent(3)->getBasePtr(0, 0);
+
byte *ptr = (byte *)_prevBuf->getBasePtr(0, 0);
for (int i = 0; i < _prevBuf->w * _prevBuf->h; i++) {
- *ptr++ = 0;
- *ptr++ = 128;
- *ptr++ = 128;
+ *ptr++ = *y++;
+ *ptr++ = *u++;
+ *ptr++ = *v++;
}
- _file->skip(blockHeader.size);
return true;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list