diff options
-rw-r--r-- | gui/console.cpp | 3 | ||||
-rw-r--r-- | gui/newgui.cpp | 49 | ||||
-rw-r--r-- | gui/newgui.h | 20 |
3 files changed, 25 insertions, 47 deletions
diff --git a/gui/console.cpp b/gui/console.cpp index 433d9f9575..673d3dc83b 100644 --- a/gui/console.cpp +++ b/gui/console.cpp @@ -26,7 +26,8 @@ #include "base/version.h" #include "graphics/font.h" -#define kCharWidth g_guifont.getMaxCharWidth() + +#define kCharWidth g_gui.getFont().getMaxCharWidth() namespace GUI { diff --git a/gui/newgui.cpp b/gui/newgui.cpp index 524f029cc2..ed58bda981 100644 --- a/gui/newgui.cpp +++ b/gui/newgui.cpp @@ -24,6 +24,11 @@ #include "gui/dialog.h" +// Uncomment the following to enable the new font code: +//#define NEW_FONT_CODE + + + namespace GUI { /* @@ -239,6 +244,14 @@ void NewGui::closeTopDialog() { #pragma mark - +const Graphics::Font &NewGui::getFont() const { +#ifdef NEW_FONT_CODE + return Graphics::g_sysfont; +#else + return Graphics::g_scummfont; +#endif +} + OverlayColor *NewGui::getBasePtr(int x, int y) { return (OverlayColor *)((byte *)_screen.pixels + x * _screen.bytesPerPixel + y * _screen.pitch); } @@ -361,47 +374,19 @@ void NewGui::addDirtyRect(int x, int y, int w, int h) { } void NewGui::drawChar(byte chr, int xx, int yy, OverlayColor color) { - g_guifont.drawChar(&_screen, chr, xx, yy, color); + getFont().drawChar(&_screen, chr, xx, yy, color); } int NewGui::getStringWidth(const String &str) { - return g_guifont.getStringWidth(str); + return getFont().getStringWidth(str); } int NewGui::getCharWidth(byte c) { - return g_guifont.getCharWidth(c); + return getFont().getCharWidth(c); } void NewGui::drawString(const String &s, int x, int y, int w, OverlayColor color, TextAlignment align, int deltax, bool useEllipsis) { - g_guifont.drawString(&_screen, s, x, y, w, color, align, deltax, useEllipsis); -} - -// -// Blit from a buffer to the display -// -void NewGui::blitFromBuffer(int x, int y, int w, int h, const byte *buf, int pitch) { - OverlayColor *ptr = getBasePtr(x, y); - - assert(buf); - while (h--) { - memcpy(ptr, buf, w*2); - ptr += _screenPitch; - buf += pitch; - } -} - -// -// Blit from the display to a buffer -// -void NewGui::blitToBuffer(int x, int y, int w, int h, byte *buf, int pitch) { - OverlayColor *ptr = getBasePtr(x, y); - - assert(buf); - while (h--) { - memcpy(buf, ptr, w * 2); - ptr += _screenPitch; - buf += pitch; - } + getFont().drawString(&_screen, s, x, y, w, color, align, deltax, useEllipsis); } // diff --git a/gui/newgui.h b/gui/newgui.h index 13872db69f..8200d9f722 100644 --- a/gui/newgui.h +++ b/gui/newgui.h @@ -28,10 +28,6 @@ #include "common/system.h" // For events #include "graphics/font.h" -// Uncomment the following to enable the new font code: -//#define NEW_FONT_CODE - - namespace GUI { class Dialog; @@ -40,12 +36,7 @@ class Dialog; // Height of a single text line -#ifdef NEW_FONT_CODE -#define g_guifont Graphics::g_sysfont -#else -#define g_guifont Graphics::g_scummfont -#endif -#define kLineHeight (g_guifont.getFontHeight() + 2) +#define kLineHeight (g_gui.getFont().getFontHeight() + 2) using Graphics::TextAlignment; @@ -117,15 +108,19 @@ protected: void animateCursor(); void updateColors(); + OverlayColor *getBasePtr(int x, int y); + public: // Theme colors OverlayColor _color, _shadowcolor; OverlayColor _bgcolor; OverlayColor _textcolor; OverlayColor _textcolorhi; + + // Font + const Graphics::Font &getFont() const; // Drawing primitives - OverlayColor *getBasePtr(int x, int y); void box(int x, int y, int width, int height, OverlayColor colorA, OverlayColor colorB); void hLine(int x, int y, int x2, OverlayColor color); void vLine(int x, int y, int y2, OverlayColor color); @@ -138,9 +133,6 @@ public: int getCharWidth(byte c); void drawString(const String &str, int x, int y, int w, OverlayColor color, Graphics::TextAlignment align = Graphics::kTextAlignLeft, int deltax = 0, bool useEllipsis = true); - void blitFromBuffer(int x, int y, int w, int h, const byte *buf, int pitch); - void blitToBuffer(int x, int y, int w, int h, byte *buf, int pitch); - void drawBitmap(uint32 *bitmap, int x, int y, OverlayColor color, int h = 8); void addDirtyRect(int x, int y, int w, int h); |