00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00024
00025 #ifndef SFML_RENDERTARGET_HPP
00026 #define SFML_RENDERTARGET_HPP
00027
00029
00031 #include <SFML/System/NonCopyable.hpp>
00032 #include <SFML/Graphics/Color.hpp>
00033 #include <SFML/Graphics/Rect.hpp>
00034 #include <SFML/Graphics/Renderer.hpp>
00035 #include <SFML/Graphics/View.hpp>
00036
00037
00038 namespace sf
00039 {
00040 class Drawable;
00041 class Shader;
00042
00047 class SFML_API RenderTarget : NonCopyable
00048 {
00049 public :
00050
00055 virtual ~RenderTarget();
00056
00066 void Clear(const Color& color = Color(0, 0, 0, 255));
00067
00078 void Draw(const Drawable& object);
00079
00093 void Draw(const Drawable& object, const Shader& shader);
00094
00103 virtual unsigned int GetWidth() const = 0;
00104
00113 virtual unsigned int GetHeight() const = 0;
00114
00131 void SetView(const View& view);
00132
00141 const View& GetView() const;
00142
00154 const View& GetDefaultView() const;
00155
00169 IntRect GetViewport(const View& view) const;
00170
00193 Vector2f ConvertCoords(unsigned int x, unsigned int y) const;
00194
00219 Vector2f ConvertCoords(unsigned int x, unsigned int y, const View& view) const;
00220
00250 void SaveGLStates();
00251
00261 void RestoreGLStates();
00262
00263 protected :
00264
00269 RenderTarget();
00270
00278 void Initialize();
00279
00280 private :
00281
00294 virtual bool Activate(bool active) = 0;
00295
00297
00299 Renderer myRenderer;
00300 View myDefaultView;
00301 View myCurrentView;
00302 bool myStatesSaved;
00303 bool myViewHasChanged;
00304 };
00305
00306 }
00307
00308
00309 #endif // SFML_RENDERTARGET_HPP
00310
00311