X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fvideo%2Fsurface.hpp;h=96139176f38de8f69dca12fd58878a28f8245f30;hb=ce4e3bd4239ed1f122b0b39e247be8ee6850338d;hp=d7021815d20642e2116e5811d42c6152f33df339;hpb=31ddd3003af65d55f51044a8bf82f6ce999f86f5;p=supertux.git diff --git a/src/video/surface.hpp b/src/video/surface.hpp index d7021815d..96139176f 100644 --- a/src/video/surface.hpp +++ b/src/video/surface.hpp @@ -1,12 +1,10 @@ -// $Id$ -// // 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,28 +12,16 @@ // 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 __SURFACE_HPP__ -#define __SURFACE_HPP__ +// along with this program. If not, see . + +#ifndef HEADER_SUPERTUX_VIDEO_SURFACE_HPP +#define HEADER_SUPERTUX_VIDEO_SURFACE_HPP #include -#include "math/vector.hpp" -class Color; -class Blend; -class ImageTexture; +#include "math/vector.hpp" -/// bitset for drawing effects -enum DrawingEffect { - /** Don't apply anything */ - NO_EFFECT = 0x0000, - /** Draw the Surface upside down */ - VERTICAL_FLIP = 0x0001, - /** Draw the Surface from left to down */ - HORIZONTAL_FLIP = 0x0002, -}; +class Texture; /** * A rectangular image. @@ -45,50 +31,39 @@ enum DrawingEffect { class Surface { private: - friend class DrawingContext; - friend class Font; - ImageTexture* texture; - - float uv_left; - float uv_top; - float uv_right; - float uv_bottom; + Texture* texture; + void *surface_data; + int x; + int y; + int w; + int h; + bool flipx; - void draw(float x, float y, float alpha, float angle, const Color& color, const Blend& blend, DrawingEffect effect) const; - void draw(float x, float y, float alpha, DrawingEffect effect) const; - void draw_part(float src_x, float src_y, float dst_x, float dst_y, - float width, float height, - float alpha, DrawingEffect effect) const; - - float width; - float height; public: Surface(const std::string& file); Surface(const std::string& file, int x, int y, int w, int h); Surface(const Surface& other); ~Surface(); - /** flip the surface horizontally */ - void hflip(); - const Surface& operator= (const Surface& other); - float get_width() const - { - return width; - } - - float get_height() const - { - return height; - } + /** flip the surface horizontally */ + void hflip(); + bool get_flipx() const; + Texture *get_texture() const; + void *get_surface_data() const; + int get_x() const; + int get_y() const; + int get_width() const; + int get_height() const; + Vector get_position() const; /** * returns a vector containing width and height */ - Vector get_size() const - { return Vector(get_width(), get_height()); } - + Vector get_size() const; }; #endif + +/* EOF */