summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/being.cpp3
-rw-r--r--src/engine.cpp2
-rw-r--r--src/graphics.cpp174
-rw-r--r--src/graphics.h13
4 files changed, 91 insertions, 101 deletions
diff --git a/src/being.cpp b/src/being.cpp
index 04a07152..a0b9a88c 100644
--- a/src/being.cpp
+++ b/src/being.cpp
@@ -23,9 +23,10 @@
#include "being.h"
-#include <iostream>
#include <sstream>
+#include <guichan/imagefont.hpp>
+
#include "game.h"
#include "graphics.h"
#include "log.h"
diff --git a/src/engine.cpp b/src/engine.cpp
index a14b04f6..1f255456 100644
--- a/src/engine.cpp
+++ b/src/engine.cpp
@@ -25,6 +25,8 @@
#include <sstream>
+#include <guichan/imagefont.hpp>
+
#include <guichan/widgets/label.hpp>
#include "being.h"
diff --git a/src/graphics.cpp b/src/graphics.cpp
index 5c7e01b3..cd80fd3e 100644
--- a/src/graphics.cpp
+++ b/src/graphics.cpp
@@ -23,7 +23,9 @@
#include "graphics.h"
+#ifdef USE_OPENGL
#include <guichan/imagefont.hpp>
+#endif
#include "log.h"
#include "main.h"
@@ -137,103 +139,6 @@ bool Graphics::setFullscreen(bool fs)
mScreen->format->BitsPerPixel, fs, mHWAccel);
}
-void Graphics::_beginDraw()
-{
-#ifdef USE_OPENGL
- if (useOpenGL) {
- gcn::OpenGLGraphics::_beginDraw();
- } else
-#endif
- {
- gcn::SDLGraphics::_beginDraw();
- }
-}
-
-void Graphics::_endDraw()
-{
-#ifdef USE_OPENGL
- if (useOpenGL) {
- gcn::OpenGLGraphics::_endDraw();
- } else
-#endif
- {
- gcn::SDLGraphics::_endDraw();
- }
-}
-
-void Graphics::setFont(gcn::ImageFont *font)
-{
- if (!useOpenGL) {
- gcn::SDLGraphics::setFont(font);
- }
-#ifdef USE_OPENGL
- else {
- gcn::OpenGLGraphics::setFont(font);
- }
-#endif
-}
-
-void Graphics::drawText(const std::string &text,
- int x, int y, unsigned int alignment)
-{
- if (!useOpenGL) {
- gcn::SDLGraphics::drawText(text, x, y, alignment);
- }
-#ifdef USE_OPENGL
- else {
- gcn::OpenGLGraphics::drawText(text, x, y, alignment);
- }
-#endif
-}
-
-void Graphics::setColor(gcn::Color color)
-{
- if (!useOpenGL) {
- gcn::SDLGraphics::setColor(color);
- }
-#ifdef USE_OPENGL
- else {
- gcn::OpenGLGraphics::setColor(color);
- }
-#endif
-}
-
-void Graphics::popClipArea()
-{
- if (!useOpenGL) {
- gcn::SDLGraphics::popClipArea();
- }
-#ifdef USE_OPENGL
- else {
- gcn::OpenGLGraphics::popClipArea();
- }
-#endif
-}
-
-bool Graphics::pushClipArea(gcn::Rectangle area)
-{
- if (!useOpenGL) {
- return gcn::SDLGraphics::pushClipArea(area);
- }
-#ifdef USE_OPENGL
- else {
- return gcn::OpenGLGraphics::pushClipArea(area);
- }
-#endif
-}
-
-void Graphics::fillRectangle(const gcn::Rectangle &rectangle)
-{
- if (!useOpenGL) {
- gcn::SDLGraphics::fillRectangle(rectangle);
- }
-#ifdef USE_OPENGL
- else {
- gcn::OpenGLGraphics::fillRectangle(rectangle);
- }
-#endif
-}
-
int Graphics::getWidth()
{
return mScreen->w;
@@ -343,3 +248,78 @@ void Graphics::updateScreen()
SDL_Delay(10);
}
}
+
+#ifdef USE_OPENGL
+void Graphics::_beginDraw()
+{
+ if (useOpenGL) {
+ gcn::OpenGLGraphics::_beginDraw();
+ } else {
+ gcn::SDLGraphics::_beginDraw();
+ }
+}
+
+void Graphics::_endDraw()
+{
+ if (useOpenGL) {
+ gcn::OpenGLGraphics::_endDraw();
+ } else {
+ gcn::SDLGraphics::_endDraw();
+ }
+}
+
+void Graphics::setFont(gcn::ImageFont *font)
+{
+ if (!useOpenGL) {
+ gcn::SDLGraphics::setFont(font);
+ } else {
+ gcn::OpenGLGraphics::setFont(font);
+ }
+}
+
+void Graphics::drawText(const std::string &text,
+ int x, int y, unsigned int alignment)
+{
+ if (!useOpenGL) {
+ gcn::SDLGraphics::drawText(text, x, y, alignment);
+ } else {
+ gcn::OpenGLGraphics::drawText(text, x, y, alignment);
+ }
+}
+
+void Graphics::setColor(gcn::Color color)
+{
+ if (!useOpenGL) {
+ gcn::SDLGraphics::setColor(color);
+ } else {
+ gcn::OpenGLGraphics::setColor(color);
+ }
+}
+
+void Graphics::popClipArea()
+{
+ if (!useOpenGL) {
+ gcn::SDLGraphics::popClipArea();
+ } else {
+ gcn::OpenGLGraphics::popClipArea();
+ }
+}
+
+bool Graphics::pushClipArea(gcn::Rectangle area)
+{
+ if (!useOpenGL) {
+ return gcn::SDLGraphics::pushClipArea(area);
+ } else {
+ return gcn::OpenGLGraphics::pushClipArea(area);
+ }
+}
+
+void Graphics::fillRectangle(const gcn::Rectangle &rectangle)
+{
+ if (!useOpenGL) {
+ gcn::SDLGraphics::fillRectangle(rectangle);
+ } else {
+ gcn::OpenGLGraphics::fillRectangle(rectangle);
+ }
+}
+#endif
diff --git a/src/graphics.h b/src/graphics.h
index 46dfef89..ce4a281f 100644
--- a/src/graphics.h
+++ b/src/graphics.h
@@ -65,9 +65,6 @@ public gcn::SDLGraphics {
*/
bool setFullscreen(bool fs);
- void _beginDraw();
- void _endDraw();
-
void drawImage(Image *image, int x, int y);
void drawImagePattern(Image *image, int x, int y, int w, int h);
@@ -107,6 +104,15 @@ public gcn::SDLGraphics {
*/
int getHeight();
+ /*
+ * Wrapper functions to delegate calls to the right base-class when we
+ * compile with OpenGL support and thus have two gcn::Graphics
+ * base-classes.
+ */
+#ifdef USE_OPENGL
+ void _beginDraw();
+ void _endDraw();
+
void setFont(gcn::ImageFont *font);
void drawText(const std::string &text,
@@ -120,6 +126,7 @@ public gcn::SDLGraphics {
bool pushClipArea(gcn::Rectangle area);
void fillRectangle(const gcn::Rectangle &rectangle);
+#endif
private:
SDL_Surface *mScreen;