mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-15 14:18:37 +00:00
HDB: Convert _surface from struct to pointer
This commit is contained in:
parent
adb43a79b7
commit
e9e654d7db
@ -1032,14 +1032,16 @@ void Gfx::drawDebugInfo(Tile *_debugLogo, int fps) {
|
||||
}
|
||||
|
||||
Picture::Picture() : _width(0), _height(0), _name("") {
|
||||
_surface.create(_width, _height, g_hdb->_format);
|
||||
_surface = NULL;
|
||||
}
|
||||
|
||||
Picture::~Picture() {
|
||||
_surface.free();
|
||||
if (_surface)
|
||||
_surface->free();
|
||||
_surface = NULL;
|
||||
}
|
||||
|
||||
Graphics::Surface Picture::load(Common::SeekableReadStream *stream) {
|
||||
Graphics::ManagedSurface *Picture::load(Common::SeekableReadStream *stream) {
|
||||
_width = stream->readUint32LE();
|
||||
_height = stream->readUint32LE();
|
||||
stream->read(_name, 64);
|
||||
@ -1047,13 +1049,14 @@ Graphics::Surface Picture::load(Common::SeekableReadStream *stream) {
|
||||
debug(8, "Picture: _width: %d, _height: %d", _width, _height);
|
||||
debug(8, "Picture: _name: %s", _name);
|
||||
|
||||
_surface.create(_width, _height, g_hdb->_format);
|
||||
_surface = new Graphics::ManagedSurface;
|
||||
_surface->create(_width, _height, g_hdb->_format);
|
||||
stream->readUint32LE(); // Skip Win32 Surface
|
||||
|
||||
uint16 *ptr;
|
||||
|
||||
for (int y = 0; y < _height; y++) {
|
||||
ptr = (uint16 *)_surface.getBasePtr(0, y);
|
||||
ptr = (uint16 *)_surface->getBasePtr(0, y);
|
||||
for (int x = 0; x < _width; x++) {
|
||||
*ptr = TO_LE_16(stream->readUint16LE());
|
||||
ptr++;
|
||||
@ -1064,9 +1067,9 @@ Graphics::Surface Picture::load(Common::SeekableReadStream *stream) {
|
||||
}
|
||||
|
||||
int Picture::draw(int x, int y) {
|
||||
g_hdb->_gfx->_globalSurface.blitFrom(_surface, Common::Point(x, y));
|
||||
g_hdb->_gfx->_globalSurface.blitFrom(*_surface, Common::Point(x, y));
|
||||
|
||||
Common::Rect clip(_surface.getBounds());
|
||||
Common::Rect clip(_surface->getBounds());
|
||||
clip.moveTo(x, y);
|
||||
clip.clip(g_hdb->_gfx->_globalSurface.getBounds());
|
||||
if (!clip.isEmpty()) {
|
||||
@ -1077,9 +1080,9 @@ int Picture::draw(int x, int y) {
|
||||
}
|
||||
|
||||
int Picture::drawMasked(int x, int y, int alpha) {
|
||||
g_hdb->_gfx->_globalSurface.transBlitFrom(_surface, Common::Point(x, y), 0xf81f, false, 0, alpha & 0xff);
|
||||
g_hdb->_gfx->_globalSurface.transBlitFrom(*_surface, Common::Point(x, y), 0xf81f, false, 0, alpha & 0xff);
|
||||
|
||||
Common::Rect clip(_surface.getBounds());
|
||||
Common::Rect clip(_surface->getBounds());
|
||||
clip.moveTo(x, y);
|
||||
clip.clip(g_hdb->_gfx->_globalSurface.getBounds());
|
||||
if (!clip.isEmpty()) {
|
||||
@ -1089,25 +1092,26 @@ int Picture::drawMasked(int x, int y, int alpha) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
Tile::Tile() : _flags(0), _name("") {
|
||||
_surface.create(32, 32, g_hdb->_format);
|
||||
}
|
||||
Tile::Tile() : _flags(0), _name(""), _surface(NULL) {}
|
||||
|
||||
Tile::~Tile() {
|
||||
_surface.free();
|
||||
if (_surface)
|
||||
_surface->free();
|
||||
_surface = NULL;
|
||||
}
|
||||
|
||||
Graphics::Surface Tile::load(Common::SeekableReadStream *stream) {
|
||||
Graphics::ManagedSurface *Tile::load(Common::SeekableReadStream *stream) {
|
||||
_flags = stream->readUint32LE();
|
||||
stream->read(_name, 64);
|
||||
|
||||
_surface.create(32, 32, g_hdb->_format);
|
||||
_surface = new Graphics::ManagedSurface;
|
||||
_surface->create(32, 32, g_hdb->_format);
|
||||
stream->readUint32LE(); // Skip Win32 Surface
|
||||
|
||||
uint16 *ptr;
|
||||
|
||||
for (uint y = 0; y < 32; y++) {
|
||||
ptr = (uint16 *)_surface.getBasePtr(0, y);
|
||||
ptr = (uint16 *)_surface->getBasePtr(0, y);
|
||||
for (uint x = 0; x < 32; x++) {
|
||||
*ptr = TO_LE_16(stream->readUint16LE());
|
||||
ptr++;
|
||||
@ -1118,9 +1122,9 @@ Graphics::Surface Tile::load(Common::SeekableReadStream *stream) {
|
||||
}
|
||||
|
||||
int Tile::draw(int x, int y) {
|
||||
g_hdb->_gfx->_globalSurface.blitFrom(_surface, Common::Point(x, y));
|
||||
g_hdb->_gfx->_globalSurface.blitFrom(*_surface, Common::Point(x, y));
|
||||
|
||||
Common::Rect clip(_surface.getBounds());
|
||||
Common::Rect clip(_surface->getBounds());
|
||||
clip.moveTo(x, y);
|
||||
clip.clip(g_hdb->_gfx->_globalSurface.getBounds());
|
||||
if (!clip.isEmpty()) {
|
||||
@ -1131,9 +1135,9 @@ int Tile::draw(int x, int y) {
|
||||
}
|
||||
|
||||
int Tile::drawMasked(int x, int y, int alpha) {
|
||||
g_hdb->_gfx->_globalSurface.transBlitFrom(_surface, Common::Point(x, y), 0xf81f, false, 0, alpha & 0xff);
|
||||
g_hdb->_gfx->_globalSurface.transBlitFrom(*_surface, Common::Point(x, y), 0xf81f, false, 0, alpha & 0xff);
|
||||
|
||||
Common::Rect clip(_surface.getBounds());
|
||||
Common::Rect clip(_surface->getBounds());
|
||||
clip.moveTo(x, y);
|
||||
clip.clip(g_hdb->_gfx->_globalSurface.getBounds());
|
||||
if (!clip.isEmpty()) {
|
||||
|
@ -253,7 +253,7 @@ public:
|
||||
Picture();
|
||||
~Picture();
|
||||
|
||||
Graphics::Surface load(Common::SeekableReadStream *stream);
|
||||
Graphics::ManagedSurface *load(Common::SeekableReadStream *stream);
|
||||
int draw(int x, int y);
|
||||
int drawMasked(int x, int y, int alpha = 0xff);
|
||||
|
||||
@ -261,12 +261,12 @@ public:
|
||||
|
||||
char *getName() { return _name; }
|
||||
|
||||
Graphics::ManagedSurface *getSurface() { return &_surface; }
|
||||
Graphics::ManagedSurface *getSurface() { return _surface; }
|
||||
|
||||
private:
|
||||
char _name[64];
|
||||
|
||||
Graphics::ManagedSurface _surface;
|
||||
Graphics::ManagedSurface *_surface;
|
||||
};
|
||||
|
||||
class Tile {
|
||||
@ -275,7 +275,7 @@ public:
|
||||
Tile();
|
||||
~Tile();
|
||||
|
||||
Graphics::Surface load(Common::SeekableReadStream *stream);
|
||||
Graphics::ManagedSurface *load(Common::SeekableReadStream *stream);
|
||||
int draw(int x, int y);
|
||||
int drawMasked(int x, int y, int alpha = 0xff);
|
||||
|
||||
@ -285,7 +285,7 @@ public:
|
||||
private:
|
||||
char _name[64];
|
||||
|
||||
Graphics::ManagedSurface _surface;
|
||||
Graphics::ManagedSurface *_surface;
|
||||
};
|
||||
|
||||
} // End of Namespace HDB
|
||||
|
Loading…
Reference in New Issue
Block a user