From 252bfdaf28d9cfa449e6b0af7a15b66483b9c5bd Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 30 Dec 2013 17:42:22 +0300 Subject: deduplicate opengl renders methods definition. --- src/CMakeLists.txt | 1 + src/Makefile.am | 1 + src/render/mobileopenglgraphics.h | 124 +-------------------------------- src/render/normalopenglgraphics.h | 122 +------------------------------- src/render/nullopenglgraphics.h | 123 +-------------------------------- src/render/openglgraphicsdef.hpp | 142 ++++++++++++++++++++++++++++++++++++++ src/render/safeopenglgraphics.h | 113 +----------------------------- 7 files changed, 151 insertions(+), 475 deletions(-) create mode 100644 src/render/openglgraphicsdef.hpp diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 6ef6536e8..b8be93f73 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -698,6 +698,7 @@ SET(SRCS notifymanager.h render/nullopenglgraphics.cpp render/nullopenglgraphics.h + render/openglgraphicsdef.hpp render/renderers.cpp render/renderers.h render/rendererslistsdl.h diff --git a/src/Makefile.am b/src/Makefile.am index 8019a9c34..5155fb64b 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -835,6 +835,7 @@ manaplus_SOURCES += gui/widgets/avatarlistbox.cpp \ notifymanager.h \ render/nullopenglgraphics.cpp \ render/nullopenglgraphics.h \ + render/openglgraphicsdef.hpp \ render/renderers.cpp \ render/renderers.h \ render/rendererslistsdl.h \ diff --git a/src/render/mobileopenglgraphics.h b/src/render/mobileopenglgraphics.h index 6580ea74d..ea85beee1 100644 --- a/src/render/mobileopenglgraphics.h +++ b/src/render/mobileopenglgraphics.h @@ -56,98 +56,7 @@ class MobileOpenGLGraphics final : public Graphics ~MobileOpenGLGraphics(); - bool setVideoMode(const int w, const int h, - const int bpp, - const bool fs, - const bool hwaccel, - const bool resize, - const bool noFrame) override final; - - - /** - * Draws a resclaled version of the image - */ - bool drawRescaledImage(const Image *const image, - int dstX, int dstY, - const int desiredWidth, - const int desiredHeight) override final; - - void drawPattern(const Image *const image, - const int x, const int y, - const int w, const int h) override final; - - /** - * Draw a pattern based on a rescaled version of the given image... - */ - void drawRescaledPattern(const Image *const image, - const int x, const int y, - const int w, const int h, - const int scaledWidth, - const int scaledHeight) override final; - - void calcPattern(ImageVertexes *const vert, - const Image *const image, - const int x, const int y, - const int w, const int h) const override final; - - void calcPattern(ImageCollection *const vert, - const Image *const image, - const int x, const int y, - const int w, const int h) const override final; - - void calcTileVertexes(ImageVertexes *const vert, - const Image *const image, - int x, int y) const override final; - - void drawTileCollection(const ImageCollection - *const vertCol) override final; - - void calcTileCollection(ImageCollection *const vertCol, - const Image *const image, - int x, int y) override final; - - void drawTileVertexes(const ImageVertexes *const vert) override final; - - bool calcWindow(ImageCollection *const vertCol, - const int x, const int y, - const int w, const int h, - const ImageRect &imgRect) override final; - - void updateScreen() override final; - - void _beginDraw() override final; - - void _endDraw() override final; - - bool pushClipArea(gcn::Rectangle area) override final; - - void popClipArea() override final; - - void setColor(const gcn::Color &color) override final - { - mColor = color; - mColor2 = color; - mColorAlpha = (color.a != 255); - } - - void setColorAll(const gcn::Color &color, - const gcn::Color &color2) - { - mColor = color; - mColor2 = color2; - mColorAlpha = (color.a != 255); - } - - void drawPoint(int x, int y) override final; - - void drawLine(int x1, int y1, int x2, int y2) override final; - - void drawRectangle(const gcn::Rectangle &rect, - const bool filled); - - void drawRectangle(const gcn::Rectangle &rect) override final; - - void fillRectangle(const gcn::Rectangle &rect) override final; + #include "render/openglgraphicsdef.hpp" inline void drawTriangleArrayfs(const GLshort *const shortVertArray, const GLfloat *const floatTexArray, @@ -161,35 +70,10 @@ class MobileOpenGLGraphics final : public Graphics inline void drawVertexes(const NormalOpenGLGraphicsVertexes &ogl); - void initArrays() override final; - - static void dumpSettings(); - - /** - * Takes a screenshot and returns it as SDL surface. - */ - SDL_Surface *getScreenshot() override final A_WARN_UNUSED; - - void prepareScreenshot() override final; - bool drawNet(const int x1, const int y1, const int x2, const int y2, const int width, const int height) override final; - int getMemoryUsage(); - - void updateTextureFormat(); - - bool drawImage2(const Image *const image, - int dstX, int dstY) override final; - - void drawImageCached(const Image *const image, - int x, int y) override final; - - void drawPatternCached(const Image *const image, - const int x, const int y, - const int w, const int h) override final; - - void completeCache() override final; + void initArrays() override final; #ifdef DEBUG_DRAW_CALLS unsigned int getDrawCalls() const @@ -200,10 +84,6 @@ class MobileOpenGLGraphics final : public Graphics static unsigned int mLastDrawCalls; #endif - static void bindTexture(const GLenum target, const GLuint texture); - - static GLuint mLastImage; - protected: void setTexturingAndBlending(const bool enable); diff --git a/src/render/normalopenglgraphics.h b/src/render/normalopenglgraphics.h index 13546b805..3a888caca 100644 --- a/src/render/normalopenglgraphics.h +++ b/src/render/normalopenglgraphics.h @@ -56,97 +56,7 @@ class NormalOpenGLGraphics final : public Graphics ~NormalOpenGLGraphics(); - bool setVideoMode(const int w, const int h, - const int bpp, - const bool fs, - const bool hwaccel, - const bool resize, - const bool noFrame) override final; - - - /** - * Draws a resclaled version of the image - */ - bool drawRescaledImage(const Image *const image, - int dstX, int dstY, - const int desiredWidth, - const int desiredHeight) override final; - - void drawPattern(const Image *const image, - const int x, const int y, - const int w, const int h) override final; - - /** - * Draw a pattern based on a rescaled version of the given image... - */ - void drawRescaledPattern(const Image *const image, - const int x, const int y, - const int w, const int h, - const int scaledWidth, - const int scaledHeight) override final; - - void calcPattern(ImageVertexes* const vert, - const Image *const image, - const int x, const int y, - const int w, const int h) const override final; - - void calcPattern(ImageCollection* const vert, - const Image *const image, - const int x, const int y, - const int w, const int h) const override final; - - void calcTileVertexes(ImageVertexes *const vert, - const Image *const image, - int x, int y) const override final; - - void calcTileCollection(ImageCollection *const vertCol, - const Image *const image, - int x, int y) override final; - - void drawTileCollection(const ImageCollection *const vertCol) - override final; - - void drawTileVertexes(const ImageVertexes *const vert) override final; - - bool calcWindow(ImageCollection *const vertCol, - const int x, const int y, - const int w, const int h, - const ImageRect &imgRect) override final; - - void updateScreen() override final; - - void _beginDraw() override final; - - void _endDraw() override final; - - bool pushClipArea(gcn::Rectangle area) override final; - - void popClipArea() override final; - - void setColor(const gcn::Color &color) override final - { - mColor = color; - mColor2 = color; - mColorAlpha = (color.a != 255); - } - - void setColorAll(const gcn::Color &color, const gcn::Color &color2) - { - mColor = color; - mColor2 = color2; - mColorAlpha = (color.a != 255); - } - - void drawPoint(int x, int y) override final; - - void drawLine(int x1, int y1, int x2, int y2) override final; - - void drawRectangle(const gcn::Rectangle &rect, - const bool filled); - - void drawRectangle(const gcn::Rectangle &rect) override final; - - void fillRectangle(const gcn::Rectangle &rect) override final; + #include "render/openglgraphicsdef.hpp" inline void drawQuadArrayfi(const int size); @@ -170,35 +80,10 @@ class NormalOpenGLGraphics final : public Graphics inline void drawVertexes(const NormalOpenGLGraphicsVertexes &ogl); - void initArrays() override final; - - static void dumpSettings(); - - /** - * Takes a screenshot and returns it as SDL surface. - */ - SDL_Surface *getScreenshot() override final A_WARN_UNUSED; - - void prepareScreenshot() override final; - bool drawNet(const int x1, const int y1, const int x2, const int y2, const int width, const int height) override final; - int getMemoryUsage() A_WARN_UNUSED; - - void updateTextureFormat(); - - bool drawImage2(const Image *const image, - int dstX, int dstY) override final; - - void drawImageCached(const Image *const image, - int x, int y) override final; - - void drawPatternCached(const Image *const image, - const int x, const int y, - const int w, const int h) override final; - - void completeCache() override final; + void initArrays() override final; #ifdef DEBUG_DRAW_CALLS unsigned int getDrawCalls() const @@ -212,9 +97,6 @@ class NormalOpenGLGraphics final : public Graphics unsigned int getBinds() const { return mLastBinds; } #endif - static void bindTexture(const GLenum target, const GLuint texture); - - static GLuint mLastImage; protected: void setTexturingAndBlending(const bool enable); diff --git a/src/render/nullopenglgraphics.h b/src/render/nullopenglgraphics.h index 7508e65b3..d047f1035 100644 --- a/src/render/nullopenglgraphics.h +++ b/src/render/nullopenglgraphics.h @@ -56,97 +56,7 @@ class NullOpenGLGraphics final : public Graphics ~NullOpenGLGraphics(); - bool setVideoMode(const int w, const int h, - const int bpp, - const bool fs, - const bool hwaccel, - const bool resize, - const bool noFrame) override final; - - - /** - * Draws a resclaled version of the image - */ - bool drawRescaledImage(const Image *const image, - int dstX, int dstY, - const int desiredWidth, - const int desiredHeight) override final; - - void drawPattern(const Image *const image, - const int x, const int y, - const int w, const int h) override final; - - /** - * Draw a pattern based on a rescaled version of the given image... - */ - void drawRescaledPattern(const Image *const image, - const int x, const int y, - const int w, const int h, - const int scaledWidth, - const int scaledHeight) override final; - - void calcPattern(ImageVertexes* const vert, - const Image *const image, - const int x, const int y, - const int w, const int h) const override final; - - void calcPattern(ImageCollection* const vert, - const Image *const image, - const int x, const int y, - const int w, const int h) const override final; - - void calcTileVertexes(ImageVertexes *const vert, - const Image *const image, - int x, int y) const override final; - - void calcTileCollection(ImageCollection *const vertCol, - const Image *const image, - int x, int y) override final; - - void drawTileCollection(const ImageCollection *const vertCol) - override final; - - void drawTileVertexes(const ImageVertexes *const vert) override final; - - bool calcWindow(ImageCollection *const vertCol, - const int x, const int y, - const int w, const int h, - const ImageRect &imgRect) override final; - - void updateScreen() override final; - - void _beginDraw() override final; - - void _endDraw() override final; - - bool pushClipArea(gcn::Rectangle area) override final; - - void popClipArea() override final; - - void setColor(const gcn::Color &color) override final - { - mColor = color; - mColor2 = color; - mColorAlpha = (color.a != 255); - } - - void setColorAll(const gcn::Color &color, const gcn::Color &color2) - { - mColor = color; - mColor2 = color2; - mColorAlpha = (color.a != 255); - } - - void drawPoint(int x, int y) override final; - - void drawLine(int x1, int y1, int x2, int y2) override final; - - void drawRectangle(const gcn::Rectangle &rect, - const bool filled); - - void drawRectangle(const gcn::Rectangle &rect) override final; - - void fillRectangle(const gcn::Rectangle &rect) override final; + #include "render/openglgraphicsdef.hpp" inline void drawQuadArrayfi(const int size); @@ -166,35 +76,10 @@ class NullOpenGLGraphics final : public Graphics inline void drawVertexes(const NormalOpenGLGraphicsVertexes &ogl); - void initArrays() override final; - - static void dumpSettings(); - - /** - * Takes a screenshot and returns it as SDL surface. - */ - SDL_Surface *getScreenshot() override final A_WARN_UNUSED; - - void prepareScreenshot() override final; - bool drawNet(const int x1, const int y1, const int x2, const int y2, const int width, const int height) override final; - int getMemoryUsage() A_WARN_UNUSED; - - void updateTextureFormat(); - - bool drawImage2(const Image *const image, - int dstX, int dstY) override final; - - void drawImageCached(const Image *const image, - int x, int y) override final; - - void drawPatternCached(const Image *const image, - const int x, const int y, - const int w, const int h) override final; - - void completeCache() override final; + void initArrays() override final; #ifdef DEBUG_DRAW_CALLS unsigned int getDrawCalls() const @@ -205,10 +90,6 @@ class NullOpenGLGraphics final : public Graphics static unsigned int mLastDrawCalls; #endif - static void bindTexture(const GLenum target, const GLuint texture); - - static GLuint mLastImage; - protected: void setTexturingAndBlending(const bool enable); diff --git a/src/render/openglgraphicsdef.hpp b/src/render/openglgraphicsdef.hpp new file mode 100644 index 000000000..70789f023 --- /dev/null +++ b/src/render/openglgraphicsdef.hpp @@ -0,0 +1,142 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011-2013 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + bool setVideoMode(const int w, const int h, + const int bpp, + const bool fs, + const bool hwaccel, + const bool resize, + const bool noFrame) override final; + + + /** + * Draws a resclaled version of the image + */ + bool drawRescaledImage(const Image *const image, + int dstX, int dstY, + const int desiredWidth, + const int desiredHeight) override final; + + void drawPattern(const Image *const image, + const int x, const int y, + const int w, const int h) override final; + + /** + * Draw a pattern based on a rescaled version of the given image... + */ + void drawRescaledPattern(const Image *const image, + const int x, const int y, + const int w, const int h, + const int scaledWidth, + const int scaledHeight) override final; + + void calcPattern(ImageVertexes* const vert, + const Image *const image, + const int x, const int y, + const int w, const int h) const override final; + + void calcPattern(ImageCollection* const vert, + const Image *const image, + const int x, const int y, + const int w, const int h) const override final; + + void calcTileVertexes(ImageVertexes *const vert, + const Image *const image, + int x, int y) const override final; + + void calcTileCollection(ImageCollection *const vertCol, + const Image *const image, + int x, int y) override final; + + void drawTileCollection(const ImageCollection *const vertCol) + override final; + + void drawTileVertexes(const ImageVertexes *const vert) override final; + + bool calcWindow(ImageCollection *const vertCol, + const int x, const int y, + const int w, const int h, + const ImageRect &imgRect) override final; + + void updateScreen() override final; + + void _beginDraw() override final; + + void _endDraw() override final; + + bool pushClipArea(gcn::Rectangle area) override final; + + void popClipArea() override final; + + void setColor(const gcn::Color &color) override final + { + mColor = color; + mColor2 = color; + mColorAlpha = (color.a != 255); + } + + void setColorAll(const gcn::Color &color, const gcn::Color &color2) + { + mColor = color; + mColor2 = color2; + mColorAlpha = (color.a != 255); + } + + void drawPoint(int x, int y) override final; + + void drawLine(int x1, int y1, int x2, int y2) override final; + + void drawRectangle(const gcn::Rectangle &rect, + const bool filled); + + void drawRectangle(const gcn::Rectangle &rect) override final; + + void fillRectangle(const gcn::Rectangle &rect) override final; + + static void dumpSettings(); + + /** + * Takes a screenshot and returns it as SDL surface. + */ + SDL_Surface *getScreenshot() override final A_WARN_UNUSED; + + void prepareScreenshot() override final; + + int getMemoryUsage() A_WARN_UNUSED; + + void updateTextureFormat(); + + bool drawImage2(const Image *const image, + int dstX, int dstY) override final; + + void drawImageCached(const Image *const image, + int x, int y) override final; + + void drawPatternCached(const Image *const image, + const int x, const int y, + const int w, const int h) override final; + + void completeCache() override final; + + static void bindTexture(const GLenum target, const GLuint texture); + + static GLuint mLastImage; diff --git a/src/render/safeopenglgraphics.h b/src/render/safeopenglgraphics.h index 0803e9948..8d9b38e5a 100644 --- a/src/render/safeopenglgraphics.h +++ b/src/render/safeopenglgraphics.h @@ -50,118 +50,7 @@ class SafeOpenGLGraphics final : public Graphics ~SafeOpenGLGraphics(); - bool setVideoMode(const int w, const int h, - const int bpp, - const bool fs, - const bool hwaccel, - const bool resize, - const bool noFrame) override final; - - /** - * Draws a resclaled version of the image - */ - bool drawRescaledImage(const Image *const image, - int dstX, int dstY, - const int desiredWidth, - const int desiredHeight) override final; - - void drawPattern(const Image *const image, - const int x, const int y, - const int w, const int h) override final; - - /** - * Draw a pattern based on a rescaled version of the given image... - */ - void drawRescaledPattern(const Image *const image, - const int x, const int y, - const int w, const int h, - const int scaledWidth, - const int scaledHeight) override final; - - void calcTileVertexes(ImageVertexes *const vert, - const Image *const image, - int x, int y) const override final; - - void calcTileCollection(ImageCollection *const vertCol, - const Image *const image, - int x, int y) override final; - - void calcPattern(ImageVertexes *const vert, - const Image *const image, - const int x, const int y, - const int w, const int h) const override final; - - void calcPattern(ImageCollection *const vert, - const Image *const image, - const int x, const int y, - const int w, const int h) const override final; - - void drawTileVertexes(const ImageVertexes *const vert) override final; - - void drawTileCollection(const ImageCollection *const vertCol) - override final; - - void updateScreen() override final; - - bool calcWindow(ImageCollection *const vertCol, - const int x, const int y, - const int w, const int h, - const ImageRect &imgRect) override final; - - void _beginDraw() override final; - - void _endDraw() override final; - - bool pushClipArea(gcn::Rectangle area) override final; - - void popClipArea() override final; - - void setColor(const gcn::Color &color) override final - { - mColor = color; - mColor2 = color; - mColorAlpha = (color.a != 255); - } - - void setColorAll(const gcn::Color &color, const gcn::Color &color2) - { - mColor = color; - mColor2 = color2; - mColorAlpha = (color.a != 255); - } - - void drawPoint(int x, int y) override final; - - void drawLine(int x1, int y1, int x2, int y2) override final; - - void drawRectangle(const gcn::Rectangle &rect, const bool filled); - - void drawRectangle(const gcn::Rectangle &rect) override final; - - void fillRectangle(const gcn::Rectangle &rect) override final; - - /** - * Takes a screenshot and returns it as SDL surface. - */ - SDL_Surface *getScreenshot() override final A_WARN_UNUSED; - - void prepareScreenshot() override final; - - bool drawImage2(const Image *const image, - int dstX, int dstY) override final; - - void drawImageCached(const Image *const image, - int x, int y) override final; - - void drawPatternCached(const Image *const image, - const int x, const int y, - const int w, const int h) override final; - - void completeCache() override final; - - static void bindTexture(const GLenum target, const GLuint texture); - - static GLuint mLastImage; + #include "render/openglgraphicsdef.hpp" protected: void setTexturingAndBlending(const bool enable); -- cgit v1.2.3-60-g2f50