aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/engine
diff options
context:
space:
mode:
authorColin Snover2016-03-07 20:48:31 -0600
committerColin Snover2016-03-07 20:51:06 -0600
commit73eea88939defa2ddf0faf6adeaa904f59521ce8 (patch)
tree09c3c214d75ba6a73aa9f0d2a316d53ec4986926 /engines/sci/engine
parent6779340b244fdb6b9643190c3beaa8ddbd4253e0 (diff)
downloadscummvm-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.cpp15
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) {