diff options
| author | Colin Snover | 2016-03-07 20:48:31 -0600 |
|---|---|---|
| committer | Colin Snover | 2016-03-07 20:51:06 -0600 |
| commit | 73eea88939defa2ddf0faf6adeaa904f59521ce8 (patch) | |
| tree | 09c3c214d75ba6a73aa9f0d2a316d53ec4986926 /engines/sci/engine | |
| parent | 6779340b244fdb6b9643190c3beaa8ddbd4253e0 (diff) | |
| download | scummvm-rg350-73eea88939defa2ddf0faf6adeaa904f59521ce8.tar.gz scummvm-rg350-73eea88939defa2ddf0faf6adeaa904f59521ce8.tar.bz2 scummvm-rg350-73eea88939defa2ddf0faf6adeaa904f59521ce8.zip | |
SCI32: Move in-memory bitmap read/write into its own class
Diffstat (limited to 'engines/sci/engine')
| -rw-r--r-- | engines/sci/engine/kgraphics32.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/engines/sci/engine/kgraphics32.cpp b/engines/sci/engine/kgraphics32.cpp index 8d8b96167c..6c6fc383ba 100644 --- a/engines/sci/engine/kgraphics32.cpp +++ b/engines/sci/engine/kgraphics32.cpp @@ -197,16 +197,14 @@ reg_t kCreateTextBitmap(EngineState *s, int argc, reg_t *argv) { if (subop == 0) { TextAlign alignment = (TextAlign)readSelectorValue(segMan, object, SELECTOR(mode)); - reg_t out; - return g_sci->_gfxText32->createFontBitmap(width, height, rect, text, foreColor, backColor, skipColor, fontId, alignment, borderColor, dimmed, true, &out); + return g_sci->_gfxText32->createFontBitmap(width, height, rect, text, foreColor, backColor, skipColor, fontId, alignment, borderColor, dimmed, true); } else { CelInfo32 celInfo; celInfo.type = kCelTypeView; celInfo.resourceId = readSelectorValue(segMan, object, SELECTOR(view)); celInfo.loopNo = readSelectorValue(segMan, object, SELECTOR(loop)); celInfo.celNo = readSelectorValue(segMan, object, SELECTOR(cel)); - reg_t out; - return g_sci->_gfxText32->createFontBitmap(celInfo, rect, text, foreColor, backColor, fontId, skipColor, borderColor, dimmed, &out); + return g_sci->_gfxText32->createFontBitmap(celInfo, rect, text, foreColor, backColor, fontId, skipColor, borderColor, dimmed); } } @@ -506,7 +504,6 @@ reg_t kBitmap(EngineState *s, int argc, reg_t *argv) { } reg_t kBitmapCreate(EngineState *s, int argc, reg_t *argv) { - uint32 bitmapHeaderSize = CelObjMem::getBitmapHeaderSize(); int16 width = argv[0].toSint16(); int16 height = argv[1].toSint16(); int16 skipColor = argv[2].toSint16(); @@ -515,11 +512,9 @@ reg_t kBitmapCreate(EngineState *s, int argc, reg_t *argv) { int16 scaledHeight = argc > 5 ? argv[5].toSint16() : g_sci->_gfxText32->_scaledHeight; bool useRemap = argc > 6 ? argv[6].toSint16() : false; - reg_t bitmapMemId = s->_segMan->allocateHunkEntry("Bitmap()", width * height + bitmapHeaderSize); - byte *bitmap = s->_segMan->getHunkPointer(bitmapMemId); - memset(bitmap + bitmapHeaderSize, backColor, width * height); - CelObjMem::buildBitmapHeader(bitmap, width, height, skipColor, 0, 0, scaledWidth, scaledHeight, 0, useRemap); - return bitmapMemId; + BitmapResource bitmap(s->_segMan, width, height, skipColor, 0, 0, scaledWidth, scaledHeight, 0, useRemap); + memset(bitmap.getPixels(), backColor, width * height); + return bitmap.getObject(); } reg_t kBitmapDestroy(EngineState *s, int argc, reg_t *argv) { |
