X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fvideo%2Fdrawing_request.hpp;h=859d952d52755855662415aa5780aef0f5c47dd0;hb=ce4e3bd4239ed1f122b0b39e247be8ee6850338d;hp=b63f85111274dae6468d85ba5c3d7c4988a036a0;hpb=99cf62c2d44b4555e9761f1c8f1b10cf880c33fb;p=supertux.git diff --git a/src/video/drawing_request.hpp b/src/video/drawing_request.hpp index b63f85111..859d952d5 100644 --- a/src/video/drawing_request.hpp +++ b/src/video/drawing_request.hpp @@ -1,12 +1,10 @@ -// $Id: drawing_request.hpp 4986 2007-04-16 17:48:28Z matzeb $ -// // SuperTux // Copyright (C) 2006 Matthias Braun // -// 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 (at your option) any later version. +// 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 3 of the License, or +// (at your option) 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 @@ -14,26 +12,21 @@ // 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, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#ifndef SUPERTUX_DRAWINGREQUEST_H -#define SUPERTUX_DRAWINGREQUEST_H - -#include -#include -#include +// along with this program. If not, see . -#include +#ifndef HEADER_SUPERTUX_VIDEO_DRAWING_REQUEST_HPP +#define HEADER_SUPERTUX_VIDEO_DRAWING_REQUEST_HPP -//#include +#include +#include +#include -//#include +#include -#include "glutil.hpp" -//#include "math/vector.hpp" -//#include "color.hpp" -//#include "font.hpp" -#include +#include "math/vector.hpp" +#include "video/color.hpp" +#include "video/font.hpp" +#include "video/glutil.hpp" class Surface; @@ -65,63 +58,81 @@ public: Blend(GLenum s, GLenum d) : sfactor(s), dfactor(d) {} - - Unison::Video::BlendMode to_unison_blend() const - { - if(sfactor == GL_ONE && dfactor == GL_ZERO) - { - return Unison::Video::BLEND_NONE; - } - else if(sfactor == GL_SRC_ALPHA && dfactor == GL_ONE_MINUS_SRC_ALPHA) - { - return Unison::Video::BLEND_ALPHA; - } - else if(sfactor == GL_SRC_ALPHA && dfactor == GL_ONE) - { - return Unison::Video::BLEND_ADD; - } - else if(sfactor == GL_ZERO && dfactor == GL_SRC_COLOR) - { - return Unison::Video::BLEND_MOD; - } - else - { - assert(0 && "Unsupported blend factors"); - } - } }; enum Target { NORMAL, LIGHTMAP }; -/*enum RequestType +enum RequestType { - SURFACE, SURFACE_PART, TEXT, GRADIENT, FILLRECT, GETLIGHT + SURFACE, SURFACE_PART, TEXT, GRADIENT, FILLRECT, INVERSEELLIPSE, DRAW_LIGHTMAP, GETLIGHT }; struct SurfacePartRequest { + SurfacePartRequest() : + surface(), + source(), + size() + {} + const Surface* surface; - Vector source, size; + Vector source; + Vector size; }; struct TextRequest { + TextRequest() : + font(), + text(), + alignment() + {} + const Font* font; std::string text; FontAlignment alignment; + +private: + TextRequest(const TextRequest&); + TextRequest& operator=(const TextRequest&); }; struct GradientRequest { - Color top, bottom; + GradientRequest() : + top(), + bottom(), + size() + {} + + Color top; + Color bottom; Vector size; }; struct FillRectRequest { - Color color; + FillRectRequest() : + color(), + size(), + radius() + {} + + Color color; + Vector size; + float radius; +}; + +struct InverseEllipseRequest +{ + InverseEllipseRequest() : + color(), + size() + {} + + Color color; Vector size; }; @@ -140,9 +151,17 @@ struct DrawingRequest void* request_data; - DrawingRequest() - : angle(0.0f), - color(1.0f, 1.0f, 1.0f, 1.0f) + DrawingRequest() : + target(), + type(), + pos(), + layer(), + drawing_effect(), + alpha(), + blend(), + angle(0.0f), + color(1.0f, 1.0f, 1.0f, 1.0f), + request_data() {} bool operator<(const DrawingRequest& other) const @@ -154,7 +173,8 @@ struct DrawingRequest struct GetLightRequest { Color* color_ptr; -};*/ +}; #endif +/* EOF */