diff options
author | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-07-27 21:55:20 +0000 |
---|---|---|
committer | Bjørn Lindeijer <bjorn@lindeijer.nl> | 2005-07-27 21:55:20 +0000 |
commit | d15d76976b6e57a9f421ab034c6f841051b962f3 (patch) | |
tree | ab0c37c90af9f76158b96f195c05be9b221e9f42 /src | |
parent | aa362286c725e17ec88aa46f8f6af9ca90d744b3 (diff) | |
download | mana-d15d76976b6e57a9f421ab034c6f841051b962f3.tar.gz mana-d15d76976b6e57a9f421ab034c6f841051b962f3.tar.bz2 mana-d15d76976b6e57a9f421ab034c6f841051b962f3.tar.xz mana-d15d76976b6e57a9f421ab034c6f841051b962f3.zip |
Committing merging opengl and sdl part 3 by Andrej
Diffstat (limited to 'src')
-rw-r--r-- | src/engine.cpp | 2 | ||||
-rw-r--r-- | src/graphics.cpp | 40 | ||||
-rw-r--r-- | src/graphics.h | 10 | ||||
-rw-r--r-- | src/gui/browserbox.cpp | 4 | ||||
-rw-r--r-- | src/gui/gui.cpp | 6 | ||||
-rw-r--r-- | src/gui/listbox.cpp | 2 | ||||
-rw-r--r-- | src/gui/minimap.cpp | 2 | ||||
-rw-r--r-- | src/gui/progressbar.cpp | 2 | ||||
-rw-r--r-- | src/gui/scrollarea.cpp | 16 | ||||
-rw-r--r-- | src/resources/image.cpp | 23 | ||||
-rw-r--r-- | src/resources/image.h | 18 |
11 files changed, 92 insertions, 33 deletions
diff --git a/src/engine.cpp b/src/engine.cpp index 1d511e6a..8be62168 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -538,7 +538,9 @@ void Engine::draw() int squareY = (node.y - camera_y) * 32 - offset_y + 12; guiGraphics->setColor(gcn::Color(255, 0, 0)); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->fillRectangle(gcn::Rectangle(squareX, squareY, 8, 8)); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->fillRectangle(gcn::Rectangle(squareX, squareY, 8, 8)); diff --git a/src/graphics.cpp b/src/graphics.cpp index 8fc60abb..93448c7c 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -50,35 +50,41 @@ Graphics::Graphics(SDL_Surface *screen): } // Initialize for drawing - if (useOpenGL) { - gcn::OpenGLGraphics::_beginDraw() ; + if (!useOpenGL) { + gcn::SDLGraphics::_beginDraw(); } +#ifdef USE_OPENGL else { - gcn::SDLGraphics::_beginDraw(); + gcn::OpenGLGraphics::_beginDraw(); } +#endif //_beginDraw(); } Graphics::~Graphics() { // Deinitialize for drawing - if (useOpenGL) { - gcn::OpenGLGraphics::_endDraw() ; + if (!useOpenGL) { + gcn::SDLGraphics::_endDraw(); } +#ifdef USE_OPENGL else { - gcn::SDLGraphics::_endDraw(); + gcn::OpenGLGraphics::_endDraw(); } +#endif //_endDraw(); } void Graphics::setFont(gcn::ImageFont *font) { - if (useOpenGL) { - gcn::OpenGLGraphics::setFont(font); + if (!useOpenGL) { + gcn::SDLGraphics::setFont(font); } +#ifdef USE_OPENGL else { - gcn::SDLGraphics::setFont(font); + gcn::OpenGLGraphics::setFont(font); } +#endif } void Graphics::drawText(const std::string &text, @@ -86,22 +92,26 @@ void Graphics::drawText(const std::string &text, int y, unsigned int alignment) { - if (useOpenGL) { - gcn::OpenGLGraphics::drawText(text, x, y, alignment); + if (!useOpenGL) { + gcn::SDLGraphics::drawText(text, x, y, alignment); } +#ifdef USE_OPENGL else { - gcn::SDLGraphics::drawText(text, x, y, alignment); + gcn::OpenGLGraphics::drawText(text, x, y, alignment); } +#endif } void Graphics::setColor(gcn::Color color) { - if (useOpenGL) { - gcn::OpenGLGraphics::setColor(color); + if (!useOpenGL) { + gcn::SDLGraphics::setColor(color); } +#ifdef USE_OPENGL else { - gcn::SDLGraphics::setColor(color); + gcn::OpenGLGraphics::setColor(color); } +#endif } int Graphics::getWidth() diff --git a/src/graphics.h b/src/graphics.h index a66bb2da..461bb45c 100644 --- a/src/graphics.h +++ b/src/graphics.h @@ -26,8 +26,10 @@ #include <guichan/sdl.hpp> #include <SDL.h> +#ifdef USE_OPENGL #include <guichan/opengl.hpp> #include <SDL_opengl.h> +#endif #include <guichan/imagefont.hpp> #include <guichan/rectangle.hpp> #include "resources/image.h" @@ -56,7 +58,11 @@ struct ImageRect { /** * A central point of control for graphics. */ -class Graphics : public gcn::SDLGraphics, public gcn::OpenGLGraphics { +class Graphics : +#ifdef USE_OPENGL +public gcn::OpenGLGraphics, +#endif +public gcn::SDLGraphics { public: /** * Constructor. @@ -100,7 +106,7 @@ class Graphics : public gcn::SDLGraphics, public gcn::OpenGLGraphics { /** * Returns the width of the screen. */ - virtual int getWidth(); + int getWidth(); /** * Returns the height of the screen. diff --git a/src/gui/browserbox.cpp b/src/gui/browserbox.cpp index 56539455..58877b6e 100644 --- a/src/gui/browserbox.cpp +++ b/src/gui/browserbox.cpp @@ -210,7 +210,9 @@ void BrowserBox::draw(gcn::Graphics* graphics) { graphics->setColor(gcn::Color(BGCOLOR)); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->fillRectangle(gcn::Rectangle(0, 0, getWidth(), getHeight())); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->fillRectangle(gcn::Rectangle(0, 0, getWidth(), getHeight())); @@ -223,6 +225,7 @@ void BrowserBox::draw(gcn::Graphics* graphics) { graphics->setColor(gcn::Color(HIGHLIGHT)); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->fillRectangle( gcn::Rectangle( mLinks[mSelectedLink].x1, @@ -230,6 +233,7 @@ void BrowserBox::draw(gcn::Graphics* graphics) mLinks[mSelectedLink].x2 - mLinks[mSelectedLink].x1, mLinks[mSelectedLink].y2 - mLinks[mSelectedLink].y1 )); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->fillRectangle( diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 1e101c5b..737b880c 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -56,7 +56,9 @@ Gui::Gui(Graphics *graphics): guiGraphics = graphics; //setGraphics(graphics); if (useOpenGL) { +#ifdef USE_OPENGL setGraphics((gcn::OpenGLGraphics*)graphics); +#endif } else { setGraphics((gcn::SDLGraphics*)graphics); @@ -212,8 +214,10 @@ void Gui::logic() void Gui::draw() { if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(guiGraphics)->pushClipArea(guiTop->getDimension()); guiTop->draw((gcn::OpenGLGraphics*)guiGraphics); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(guiGraphics)->pushClipArea(guiTop->getDimension()); @@ -230,7 +234,9 @@ void Gui::draw() } if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(guiGraphics)->popClipArea(); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(guiGraphics)->popClipArea(); diff --git a/src/gui/listbox.cpp b/src/gui/listbox.cpp index bf80589a..3f82fe1b 100644 --- a/src/gui/listbox.cpp +++ b/src/gui/listbox.cpp @@ -52,8 +52,10 @@ void ListBox::draw(gcn::Graphics *graphics) { if (i == mSelected) { if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->fillRectangle( gcn::Rectangle(0, y, getWidth(), fontHeight)); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->fillRectangle( diff --git a/src/gui/minimap.cpp b/src/gui/minimap.cpp index 59447fd7..c6069821 100644 --- a/src/gui/minimap.cpp +++ b/src/gui/minimap.cpp @@ -89,9 +89,11 @@ void Minimap::draw(gcn::Graphics *graphics) // Player dot graphics->setColor(gcn::Color(209, 52, 61)); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->fillRectangle(gcn::Rectangle( being->x / 2 + getPadding() - 1, being->y / 2 + getTitleBarHeight() - 1, 3, 3)); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->fillRectangle(gcn::Rectangle( diff --git a/src/gui/progressbar.cpp b/src/gui/progressbar.cpp index a1083db3..fb03d90b 100644 --- a/src/gui/progressbar.cpp +++ b/src/gui/progressbar.cpp @@ -105,8 +105,10 @@ void ProgressBar::draw(gcn::Graphics *graphics) { graphics->setColor(gcn::Color(red, green, blue, 200)); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->fillRectangle(gcn::Rectangle(4, 4, (int)(progress * (getWidth() - 8)), getHeight() - 8)); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->fillRectangle(gcn::Rectangle(4, 4, diff --git a/src/gui/scrollarea.cpp b/src/gui/scrollarea.cpp index c8524657..3350a252 100644 --- a/src/gui/scrollarea.cpp +++ b/src/gui/scrollarea.cpp @@ -180,10 +180,12 @@ void ScrollArea::draw(gcn::Graphics *graphics) { graphics->setColor(getBaseColor()); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->fillRectangle(gcn::Rectangle(getWidth() - mScrollbarWidth, getHeight() - mScrollbarWidth, mScrollbarWidth, mScrollbarWidth)); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->fillRectangle(gcn::Rectangle(getWidth() - mScrollbarWidth, @@ -197,7 +199,9 @@ void ScrollArea::draw(gcn::Graphics *graphics) { gcn::Rectangle contdim = mContent->getDimension(); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->pushClipArea(getContentDimension()); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->pushClipArea(getContentDimension()); @@ -211,14 +215,18 @@ void ScrollArea::draw(gcn::Graphics *graphics) rec.width += 2 * mContent->getBorderSize(); rec.height += 2 * mContent->getBorderSize(); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->pushClipArea(rec); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->pushClipArea(rec); } mContent->drawBorder(graphics); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->popClipArea(); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->popClipArea(); @@ -226,15 +234,19 @@ void ScrollArea::draw(gcn::Graphics *graphics) } if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->pushClipArea(contdim); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->pushClipArea(contdim); } mContent->draw(graphics); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->popClipArea(); dynamic_cast<gcn::OpenGLGraphics*>(graphics)->popClipArea(); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->popClipArea(); @@ -330,7 +342,9 @@ void ScrollArea::drawVBar(gcn::Graphics *graphics) gcn::Rectangle dim = getVerticalBarDimension(); graphics->setColor(gcn::Color(0, 0, 0, 32)); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->fillRectangle(dim); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->fillRectangle(dim); @@ -343,7 +357,9 @@ void ScrollArea::drawHBar(gcn::Graphics *graphics) gcn::Rectangle dim = getHorizontalBarDimension(); graphics->setColor(gcn::Color(0, 0, 0, 32)); if (useOpenGL) { +#ifdef USE_OPENGL dynamic_cast<gcn::OpenGLGraphics*>(graphics)->fillRectangle(dim); +#endif } else { dynamic_cast<gcn::SDLGraphics*>(graphics)->fillRectangle(dim); diff --git a/src/resources/image.cpp b/src/resources/image.cpp index eb550a3a..2bf4721f 100644 --- a/src/resources/image.cpp +++ b/src/resources/image.cpp @@ -34,6 +34,7 @@ Image::Image(SDL_Surface *image): alpha = 1.0f; } +#ifdef USE_OPENGL Image::Image(GLuint glimage, int width, int height, int texWidth, int texHeight): glimage(glimage), width(width), @@ -44,6 +45,7 @@ Image::Image(GLuint glimage, int width, int height, int texWidth, int texHeight) // Default to opaque alpha = 1.0f; } +#endif Image::~Image() { @@ -240,9 +242,9 @@ Image* Image::load(void* buffer, unsigned int bufferSize) return new Image(texture, width, height, realWidth, realHeight); } -#endif - +#else return NULL; +#endif } void Image::unload() @@ -265,9 +267,11 @@ int Image::getWidth() const return image->w; } } +#ifdef USE_OPENGL else { return width; } +#endif return 0; } @@ -278,21 +282,27 @@ int Image::getHeight() const return image->h; } } +#ifdef USE_OPENGL else { return height; } +#endif return 0; } Image *Image::getSubImage(int x, int y, int width, int height) { // Create a new clipped sub-image - if (useOpenGL) { - return new SubImage(this, glimage, x, y, width, height, texWidth, texHeight); + if (!useOpenGL) { + return new SubImage(this, image, x, y, width, height); } +#ifdef USE_OPENGL else { - return new SubImage(this, image, x, y, width, height); + return new SubImage(this, glimage, x, y, width, height, texWidth, texHeight); } +#else + return NULL; +#endif } bool Image::draw_deprecated(SDL_Surface *screen, int srcX, int srcY, int dstX, int dstY, @@ -386,7 +396,7 @@ SubImage::SubImage(Image *parent, SDL_Surface *image, rect.h = height; } -//SubImage::SubImage((GLuint*)Image *parent, GLuint glimage, +#ifdef USE_OPENGL SubImage::SubImage(Image *parent, GLuint image, int x, int y, int width, int height, int texWidth, int texHeight): Image(image, width, height, texWidth, texHeight), parent(parent) @@ -399,6 +409,7 @@ SubImage::SubImage(Image *parent, GLuint image, rect.w = width; rect.h = height; } +#endif SubImage::~SubImage() { diff --git a/src/resources/image.h b/src/resources/image.h index cfa42330..a12572bb 100644 --- a/src/resources/image.h +++ b/src/resources/image.h @@ -26,8 +26,9 @@ #include "resource.h" #include <SDL.h> +#ifdef USE_OPENGL #include <SDL_opengl.h> - +#endif /** * Defines a class for loading and storing images. @@ -118,21 +119,19 @@ class Image : public Resource /** * Constructor. */ -//#ifdef USE_OPENGL +#ifdef USE_OPENGL Image(GLuint glimage, int width, int height, int texWidth, int texHeight); -//#else +#endif Image(SDL_Surface *image); -//#endif bool loaded; -//#ifdef USE_OPENGL +#ifdef USE_OPENGL GLuint glimage; int width, height; int texWidth, texHeight; -//#else +#endif SDL_Surface *image; -//#endif float alpha; }; @@ -145,13 +144,12 @@ class SubImage : public Image /** * Constructor. */ -//#ifndef USE_OPENGL SubImage(Image *parent, SDL_Surface *image, int x, int y, int width, int height); -//#else +#ifdef USE_OPENGL SubImage(Image *parent, GLuint image, int x, int y, int width, int height, int texWidth, int textHeight); -//#endif +#endif /** * Destructor. |