aboutsummaryrefslogtreecommitdiff
path: root/saga
diff options
context:
space:
mode:
authorMax Horn2004-10-30 22:13:48 +0000
committerMax Horn2004-10-30 22:13:48 +0000
commit06c46fe423616f516648c67279f5c204398a2bd2 (patch)
tree3eefdc9ab17691a9ecfa4230e5505243ac246c54 /saga
parent926cfc5bd25df0194095227ddf1587d3a6ffc7f0 (diff)
downloadscummvm-rg350-06c46fe423616f516648c67279f5c204398a2bd2.tar.gz
scummvm-rg350-06c46fe423616f516648c67279f5c204398a2bd2.tar.bz2
scummvm-rg350-06c46fe423616f516648c67279f5c204398a2bd2.zip
Let Saga::SURFACE inherit from SURFACE
svn-id: r15702
Diffstat (limited to 'saga')
-rw-r--r--saga/console.cpp2
-rw-r--r--saga/font.cpp10
-rw-r--r--saga/gfx.cpp60
-rw-r--r--saga/gfx.h8
-rw-r--r--saga/isomap.cpp4
-rw-r--r--saga/render.cpp8
-rw-r--r--saga/sprite.cpp16
-rw-r--r--saga/text.cpp8
8 files changed, 57 insertions, 59 deletions
diff --git a/saga/console.cpp b/saga/console.cpp
index 98ddf9061d..f626443395 100644
--- a/saga/console.cpp
+++ b/saga/console.cpp
@@ -206,7 +206,7 @@ int Console::draw(SURFACE *ds) {
fill_rect.top = 0;
fill_rect.left = 0;
fill_rect.bottom = _yPos + 1;
- fill_rect.right = ds->buf_w;
+ fill_rect.right = ds->w;
_vm->_gfx->drawRect(ds, &fill_rect, _vm->_gfx->matchColor(CONSOLE_BGCOLOR));
txt_fgcolor = _vm->_gfx->matchColor(CONSOLE_TXTCOLOR);
diff --git a/saga/font.cpp b/saga/font.cpp
index f581a293fe..736237c6d4 100644
--- a/saga/font.cpp
+++ b/saga/font.cpp
@@ -422,7 +422,7 @@ int Font::outFont(FONT_STYLE * draw_font, SURFACE * ds, const char *draw_str, si
int c_bit;
int ct;
- if ((text_x > ds->buf_w) || (text_y > ds->buf_h)) {
+ if ((text_x > ds->w) || (text_y > ds->h)) {
// Output string can't be visible
return SUCCESS;
}
@@ -458,7 +458,7 @@ int Font::outFont(FONT_STYLE * draw_font, SURFACE * ds, const char *draw_str, si
// Get length of character in bytes
c_byte_len = ((draw_font->fce[c_code].width - 1) / 8) + 1;
- row_limit = (ds->buf_h < (text_y + draw_font->hdr.c_height)) ? ds->buf_h : text_y + draw_font->hdr.c_height;
+ row_limit = (ds->h < (text_y + draw_font->hdr.c_height)) ? ds->h : text_y + draw_font->hdr.c_height;
char_row = 0;
for (row = text_y; row < row_limit; row++, char_row++) {
@@ -467,9 +467,9 @@ int Font::outFont(FONT_STYLE * draw_font, SURFACE * ds, const char *draw_str, si
continue;
}
- output_ptr = ds->buf + (ds->buf_pitch * row) + text_x;
- output_ptr_min = ds->buf + (ds->buf_pitch * row) + (text_x > 0 ? text_x : 0);
- output_ptr_max = output_ptr + (ds->buf_pitch - text_x);
+ output_ptr = (byte *)ds->pixels + (ds->pitch * row) + text_x;
+ output_ptr_min = (byte *)ds->pixels + (ds->pitch * row) + (text_x > 0 ? text_x : 0);
+ output_ptr_max = output_ptr + (ds->pitch - text_x);
// If character starts off the screen, jump to next character
if (output_ptr < output_ptr_min) {
diff --git a/saga/gfx.cpp b/saga/gfx.cpp
index 433de8c44f..4cb679625c 100644
--- a/saga/gfx.cpp
+++ b/saga/gfx.cpp
@@ -43,10 +43,10 @@ Gfx::Gfx(OSystem *system, int width, int height) {
debug(0, "Init screen %dx%d", width, height);
// Convert surface data to R surface data
- back_buf.buf = (byte *)calloc(1, width * height);
- back_buf.buf_w = width;
- back_buf.buf_h = height;
- back_buf.buf_pitch = width;
+ back_buf.pixels = calloc(1, width * height);
+ back_buf.w = width;
+ back_buf.h = height;
+ back_buf.pitch = width;
back_buf.clip_rect.left = 0;
back_buf.clip_rect.top = 0;
@@ -66,7 +66,7 @@ Gfx::Gfx(OSystem *system, int width, int height) {
/*
~Gfx() {
- free(GfxModule.r_back_buf->buf);
+ free(GfxModule.r_back_buf->pixels);
}
*/
@@ -99,16 +99,16 @@ int Gfx::simpleBlit(SURFACE *dst_s, SURFACE *src_s) {
int y, w, p;
assert((dst_s != NULL) && (src_s != NULL));
- assert(dst_s->buf_w == src_s->buf_w);
- assert(dst_s->buf_h == src_s->buf_h);
+ assert(dst_s->w == src_s->w);
+ assert(dst_s->h == src_s->h);
- src_p = src_s->buf;
- dst_p = dst_s->buf;
+ src_p = (byte *)src_s->pixels;
+ dst_p = (byte *)dst_s->pixels;
- w = src_s->buf_w;
- p = src_s->buf_pitch;
+ w = src_s->w;
+ p = src_s->pitch;
- for (y = 0; y < src_s->buf_h; y++) {
+ for (y = 0; y < src_s->h; y++) {
memcpy(dst_p, src_p, w);
dst_p += p;
@@ -176,12 +176,12 @@ int Gfx::bufToSurface(SURFACE *ds, const byte *src, int src_w, int src_h,
if (clip.left == clip.right) {
clip.left = 0;
- clip.right = ds->buf_w;
+ clip.right = ds->w;
}
if (clip.top == clip.bottom) {
clip.top = 0;
- clip.bottom = ds->buf_h;
+ clip.bottom = ds->h;
}
// Clip source rectangle to destination surface
@@ -244,12 +244,12 @@ int Gfx::bufToSurface(SURFACE *ds, const byte *src, int src_w, int src_h,
// Transfer buffer data to surface
read_p = (src + src_off_x) + (src_w * src_off_y);
- write_p = (ds->buf + dst_off_x) + (ds->buf_pitch * dst_off_y);
+ write_p = ((byte *)ds->pixels + dst_off_x) + (ds->pitch * dst_off_y);
for (row = 0; row < src_draw_h; row++) {
memcpy(write_p, read_p, src_draw_w);
- write_p += ds->buf_pitch;
+ write_p += ds->pitch;
read_p += src_w;
}
@@ -387,7 +387,7 @@ int Gfx::drawRect(SURFACE *ds, Rect *dst_rect, int color) {
int left, top, right, bottom;
if (dst_rect != NULL) {
- dst_rect->clip(ds->buf_w, ds->buf_h);
+ dst_rect->clip(ds->w, ds->h);
left = dst_rect->left;
top = dst_rect->top;
@@ -401,18 +401,18 @@ int Gfx::drawRect(SURFACE *ds, Rect *dst_rect, int color) {
} else {
left = 0;
top = 0;
- right = ds->buf_w;
- bottom = ds->buf_h;
+ right = ds->w;
+ bottom = ds->h;
}
w = right - left;
h = bottom - top;
- write_p = ds->buf + (ds->buf_pitch * top) + left;
+ write_p = (byte *)ds->pixels + (ds->pitch * top) + left;
for (row = 0; row < h; row++) {
memset(write_p, color, w);
- write_p += ds->buf_pitch;
+ write_p += ds->pitch;
}
return SUCCESS;
@@ -681,7 +681,7 @@ void Gfx::drawLine(SURFACE *ds, const Point *p1, const Point *p2, int color) {
right = temp;
}
- write_p = ds->buf + (top * ds->buf_pitch) + left;
+ write_p = (byte *)ds->pixels + (top * ds->pitch) + left;
dx = right - left;
if (dx < 0) {
@@ -696,7 +696,7 @@ void Gfx::drawLine(SURFACE *ds, const Point *p1, const Point *p2, int color) {
if (dx == 0) {
for (i = 0; i <= dy; i++) {
*write_p = (byte) color;
- write_p += ds->buf_pitch;
+ write_p += ds->pitch;
}
return;
}
@@ -710,7 +710,7 @@ void Gfx::drawLine(SURFACE *ds, const Point *p1, const Point *p2, int color) {
if (dx == dy) {
for (i = 0; i <= dx; i++) {
*write_p = (byte) color;
- write_p += x_vector + ds->buf_pitch;
+ write_p += x_vector + ds->pitch;
}
return;
}
@@ -735,7 +735,7 @@ void Gfx::drawLine(SURFACE *ds, const Point *p1, const Point *p2, int color) {
*write_p = (byte) color;
write_p += x_vector;
}
- write_p += ds->buf_pitch;
+ write_p += ds->pitch;
for (i = 0; i < (dy - 1); i++) {
run = min_run;
@@ -750,7 +750,7 @@ void Gfx::drawLine(SURFACE *ds, const Point *p1, const Point *p2, int color) {
*write_p = (byte) color;
write_p += x_vector;
}
- write_p += ds->buf_pitch;
+ write_p += ds->pitch;
}
// Horiz. seg
@@ -758,7 +758,7 @@ void Gfx::drawLine(SURFACE *ds, const Point *p1, const Point *p2, int color) {
*write_p = (byte) color;
write_p += x_vector;
}
- write_p += ds->buf_pitch;
+ write_p += ds->pitch;
return;
} else {
@@ -781,7 +781,7 @@ void Gfx::drawLine(SURFACE *ds, const Point *p1, const Point *p2, int color) {
// Vertical seg
for (k = 0; k < init_run; k++) {
*write_p = (byte) color;
- write_p += ds->buf_pitch;
+ write_p += ds->pitch;
}
write_p += x_vector;
@@ -795,7 +795,7 @@ void Gfx::drawLine(SURFACE *ds, const Point *p1, const Point *p2, int color) {
// Vertical seg
for (k = 0; k < run; k++) {
*write_p = (byte) color;
- write_p += ds->buf_pitch;
+ write_p += ds->pitch;
}
write_p += x_vector;
}
@@ -803,7 +803,7 @@ void Gfx::drawLine(SURFACE *ds, const Point *p1, const Point *p2, int color) {
// Vertical seg
for (k = 0; k < end_run; k++) {
*write_p = (byte) color;
- write_p += ds->buf_pitch;
+ write_p += ds->pitch;
}
write_p += x_vector;
return;
diff --git a/saga/gfx.h b/saga/gfx.h
index b281f21f0a..b99881d0c9 100644
--- a/saga/gfx.h
+++ b/saga/gfx.h
@@ -26,6 +26,8 @@
#ifndef SAGA_GFX_H_
#define SAGA_GFX_H_
+#include <graphics/surface.h>
+
namespace Saga {
using Common::Point;
@@ -60,11 +62,7 @@ struct COLOR {
int alpha;
};
-struct SURFACE {
- byte *buf;
- int buf_w;
- int buf_h;
- int buf_pitch;
+struct SURFACE : Graphics::Surface {
Rect clip_rect;
};
diff --git a/saga/isomap.cpp b/saga/isomap.cpp
index d23e876400..8fbf46ea56 100644
--- a/saga/isomap.cpp
+++ b/saga/isomap.cpp
@@ -236,7 +236,7 @@ int IsoMap::drawTile(SURFACE *dst_s, uint16 tile_i, int tile_x, int tile_y) {
tile_h = _tile_tbl[tile_i].tile_h;
read_p = tile_p;
- draw_p = dst_s->buf + tile_x + (tile_y * dst_s->buf_pitch);
+ draw_p = (byte *)dst_s->pixels + tile_x + (tile_y * dst_s->pitch);
draw_x = tile_x;
draw_y = tile_y;
@@ -251,7 +251,7 @@ int IsoMap::drawTile(SURFACE *dst_s, uint16 tile_i, int tile_x, int tile_y) {
}
for (row = 0; row < tile_h; row++) {
- draw_p = dst_s->buf + draw_x + ((draw_y + row) * dst_s->buf_pitch);
+ draw_p = (byte *)dst_s->pixels + draw_x + ((draw_y + row) * dst_s->pitch);
w_count = 0;
// temporary y clip
diff --git a/saga/render.cpp b/saga/render.cpp
index 4aaccd3b09..819fdecfb7 100644
--- a/saga/render.cpp
+++ b/saga/render.cpp
@@ -155,7 +155,7 @@ int Render::drawScene() {
if (_flags & RF_SHOW_FPS) {
sprintf(txt_buf, "%d", _fps);
fps_width = _vm->_font->getStringWidth(SMALL_FONT_ID, txt_buf, 0, FONT_NORMAL);
- _vm->_font->draw(SMALL_FONT_ID, backbuf_surface, txt_buf, 0, backbuf_surface->buf_w - fps_width, 2,
+ _vm->_font->draw(SMALL_FONT_ID, backbuf_surface, txt_buf, 0, backbuf_surface->w - fps_width, 2,
_vm->_gfx->getWhite(), _vm->_gfx->getBlack(), FONT_OUTLINE);
}
@@ -164,7 +164,7 @@ int Render::drawScene() {
int msg_len = strlen(PAUSEGAME_MSG);
int msg_w = _vm->_font->getStringWidth(BIG_FONT_ID, PAUSEGAME_MSG, msg_len, FONT_OUTLINE);
_vm->_font->draw(BIG_FONT_ID, backbuf_surface, PAUSEGAME_MSG, msg_len,
- (backbuf_surface->buf_w - msg_w) / 2, 90, _vm->_gfx->getWhite(), _vm->_gfx->getBlack(), FONT_OUTLINE);
+ (backbuf_surface->w - msg_w) / 2, 90, _vm->_gfx->getWhite(), _vm->_gfx->getBlack(), FONT_OUTLINE);
}
// Update user interface
@@ -185,8 +185,8 @@ int Render::drawScene() {
// Draw console
_vm->_console->draw(backbuf_surface);
- _system->copyRectToScreen(backbuf_surface->buf, backbuf_surface->buf_w, 0, 0,
- backbuf_surface->buf_w, backbuf_surface->buf_h);
+ _system->copyRectToScreen((byte *)backbuf_surface->pixels, backbuf_surface->w, 0, 0,
+ backbuf_surface->w, backbuf_surface->h);
_system->updateScreen();
return SUCCESS;
diff --git a/saga/sprite.cpp b/saga/sprite.cpp
index d0fa8cb076..44df015a91 100644
--- a/saga/sprite.cpp
+++ b/saga/sprite.cpp
@@ -219,19 +219,19 @@ int Sprite::draw(SURFACE *ds, SPRITELIST *sprite_list, int sprite_num, int spr_x
decodeRLESprite(sprite_data_p, 64000, _decodeBuf, s_width * s_height);
- buf_row_p = ds->buf + ds->buf_pitch * spr_y;
+ buf_row_p = (byte *)ds->pixels + ds->pitch * spr_y;
src_row_p = _decodeBuf;
// Clip to right side of surface
clip_width = s_width;
- if (s_width > (ds->buf_w - spr_x)) {
- clip_width = (ds->buf_w - spr_x);
+ if (s_width > (ds->w - spr_x)) {
+ clip_width = (ds->w - spr_x);
}
// Clip to bottom side of surface
clip_height = s_height;
- if (s_height > (ds->buf_h - spr_y)) {
- clip_height = (ds->buf_h - spr_y);
+ if (s_height > (ds->h - spr_y)) {
+ clip_height = (ds->h - spr_y);
}
for (i = 0; i < clip_height; i++) {
@@ -240,7 +240,7 @@ int Sprite::draw(SURFACE *ds, SPRITELIST *sprite_list, int sprite_num, int spr_x
*(buf_row_p + j + spr_x) = *(src_row_p + j);
}
}
- buf_row_p += ds->buf_pitch;
+ buf_row_p += ds->pitch;
src_row_p += s_width;
}
@@ -360,7 +360,7 @@ int Sprite::drawOccluded(SURFACE *ds, SPRITELIST *sprite_list, int sprite_num, i
// Finally, draw the occluded sprite
src_row_p = _decodeBuf + ci.src_draw_x + (ci.src_draw_y * s_width);
- dst_row_p = ds->buf + ci.dst_draw_x + (ci.dst_draw_y * ds->buf_pitch);
+ dst_row_p = (byte *)ds->pixels + ci.dst_draw_x + (ci.dst_draw_y * ds->pitch);
mask_row_p = mask_buf + ci.dst_draw_x + (ci.dst_draw_y * mask_w);
for (y = 0; y < ci.draw_h; y++) {
@@ -378,7 +378,7 @@ int Sprite::drawOccluded(SURFACE *ds, SPRITELIST *sprite_list, int sprite_num, i
dst_p++;
mask_p++;
}
- dst_row_p += ds->buf_pitch;
+ dst_row_p += ds->pitch;
mask_row_p += mask_w;
src_row_p += s_width;
}
diff --git a/saga/text.cpp b/saga/text.cpp
index f48ab11806..be14528995 100644
--- a/saga/text.cpp
+++ b/saga/text.cpp
@@ -59,8 +59,8 @@ int SagaEngine::textDraw(int font_id, SURFACE *ds, const char *string, int text_
text_x = TEXT_CENTERLIMIT;
}
- if (text_x > ds->buf_w - TEXT_CENTERLIMIT) {
- text_x = ds->buf_w - TEXT_CENTERLIMIT;
+ if (text_x > ds->w - TEXT_CENTERLIMIT) {
+ text_x = ds->w - TEXT_CENTERLIMIT;
}
if (text_x < (TEXT_MARGIN * 2)) {
@@ -70,12 +70,12 @@ int SagaEngine::textDraw(int font_id, SURFACE *ds, const char *string, int text_
string_w = _font->getStringWidth(font_id, string, string_len, flags);
- if (text_x < (ds->buf_w / 2)) {
+ if (text_x < (ds->w / 2)) {
// Fit to right side
fit_w = (text_x - TEXT_MARGIN) * 2;
} else {
// Fit to left side
- fit_w = ((ds->buf_w - TEXT_MARGIN) - text_x) * 2;
+ fit_w = ((ds->w - TEXT_MARGIN) - text_x) * 2;
}
if (fit_w >= string_w) {