diff options
-rw-r--r-- | engines/director/director.cpp | 2 | ||||
-rw-r--r-- | engines/director/director.h | 3 | ||||
-rw-r--r-- | engines/director/score.cpp | 47 |
3 files changed, 52 insertions, 0 deletions
diff --git a/engines/director/director.cpp b/engines/director/director.cpp index a0a96d6b27..848eaa9b2b 100644 --- a/engines/director/director.cpp +++ b/engines/director/director.cpp @@ -117,6 +117,8 @@ Common::Error DirectorEngine::run() { //_mainArchive = new RIFFArchive(); //_mainArchive->openFile("bookshelf_example.mmm"); + //testFont(); + scanMovies(ConfMan.get("path")); loadSharedCastsFrom(_sharedCastFile); diff --git a/engines/director/director.h b/engines/director/director.h index 484e7f6360..7c65897bbf 100644 --- a/engines/director/director.h +++ b/engines/director/director.h @@ -133,6 +133,9 @@ private: Lingo *_lingo; Common::String _sharedCastFile; + +private: + void testFont(); }; } // End of namespace Director diff --git a/engines/director/score.cpp b/engines/director/score.cpp index ccba78e84e..c95aae1121 100644 --- a/engines/director/score.cpp +++ b/engines/director/score.cpp @@ -27,6 +27,8 @@ #include "engines/util.h" #include "graphics/font.h" #include "graphics/palette.h" +#include "graphics/macgui/macfontmanager.h" +#include "graphics/macgui/macwindowmanager.h" #include "director/score.h" #include "director/frame.h" @@ -87,6 +89,51 @@ static byte defaultPalette[768] = { 204, 51, 255, 204, 102, 255, 204, 153, 255, 204, 204, 255, 204, 255, 255, 255, 0, 255, 255, 51, 255, 255, 102, 255, 255, 153, 255, 255, 204, 255, 255, 255 }; +void DirectorEngine::testFont() { + int x = 10; + int y = 10; + int w = 640; + int h = 480; + + initGraphics(w, h, true); + g_system->getPaletteManager()->setPalette(defaultPalette, 0, 256); + + Graphics::ManagedSurface surface; + + surface.create(w, h); + surface.clear(255); + + const char *text = "d"; + + for (int i = 9; i <= 40; i++) { + Graphics::MacFont macFont(Graphics::kMacFontNewYork, i); + + const Graphics::Font *font = _wm->_fontMan->getFont(macFont); + + int width = font->getStringWidth(text); + + Common::Rect bbox = font->getBoundingBox(text, x, y, w); + surface.frameRect(bbox, 15); + + font->drawString(&surface, text, x, y, width, 0); + + x += width + 1; + } + + g_system->copyRectToScreen(surface.getPixels(), surface.pitch, 0, 0, w, h); + + Common::Event event; + + while (true) { + if (g_system->getEventManager()->pollEvent(event)) + if (event.type == Common::EVENT_QUIT) + break; + + g_system->updateScreen(); + g_system->delayMillis(10); + } +} + Score::Score(DirectorEngine *vm, Archive *archive) { _vm = vm; _surface = new Graphics::ManagedSurface; |