RenderWindow.hpp

00001 
00002 //
00003 // SFML - Simple and Fast Multimedia Library
00004 // Copyright (C) 2007 Laurent Gomila (laurent.gom@gmail.com)
00005 //
00006 // This software is provided 'as-is', without any express or implied warranty.
00007 // In no event will the authors be held liable for any damages arising from the use of this software.
00008 //
00009 // Permission is granted to anyone to use this software for any purpose,
00010 // including commercial applications, and to alter it and redistribute it freely,
00011 // subject to the following restrictions:
00012 //
00013 // 1. The origin of this software must not be misrepresented;
00014 //    you must not claim that you wrote the original software.
00015 //    If you use this software in a product, an acknowledgment
00016 //    in the product documentation would be appreciated but is not required.
00017 //
00018 // 2. Altered source versions must be plainly marked as such,
00019 //    and must not be misrepresented as being the original software.
00020 //
00021 // 3. This notice may not be removed or altered from any source distribution.
00022 //
00024 
00025 #ifndef SFML_RENDERWINDOW_HPP
00026 #define SFML_RENDERWINDOW_HPP
00027 
00029 // Headers
00031 #include <SFML/Graphics/Color.hpp>
00032 #include <SFML/Graphics/Image.hpp>
00033 #include <SFML/Graphics/View.hpp>
00034 #include <SFML/Graphics/Rect.hpp>
00035 #include <SFML/Window/Window.hpp>
00036 #include <string>
00037 
00038 
00039 namespace sf
00040 {
00041 class Drawable;
00042 
00047 class SFML_API RenderWindow : private Window
00048 {
00049 public :
00050 
00051     using Window::Style;
00052     using Window::Resizable;
00053     using Window::Fixed;
00054     using Window::Fullscreen;
00055 
00056     using Window::GetWidth;
00057     using Window::GetHeight;
00058     using Window::GetInput;
00059     using Window::GetFrameTime;
00060     using Window::GetDepthBits;
00061     using Window::GetStencilBits;
00062     using Window::UseVerticalSync;
00063     using Window::ShowMouseCursor;
00064     using Window::SetPosition;
00065     using Window::SetFramerateLimit;
00066 
00071     RenderWindow();
00072 
00082     RenderWindow(VideoMode Mode, const std::string& Title, Style WindowStyle = Resizable, int AntialiasingLevel = 0);
00083 
00091     RenderWindow(WindowHandle Handle, int AntialiasingLevel = 0);
00092 
00097     virtual ~RenderWindow();
00098 
00108     void Create(VideoMode Mode, const std::string& Title, Style WindowStyle = Resizable, int AntialiasingLevel = 0);
00109 
00117     void Create(WindowHandle Handle, int AntialiasingLevel = 0);
00118 
00123     void Display();
00124 
00131     void Draw(Drawable& Object);
00132 
00139     Image Capture() const;
00140 
00147     void SetBackgroundColor(const Color& Col);
00148 
00157     bool GetEvent(Event& EventReceived);
00158 
00165     void SetView(const View* NewView);
00166 
00173     const FloatRect& GetViewRect() const;
00174 
00179     void BeginOpenGL();
00180 
00185     void EndOpenGL();
00186 
00187 private :
00188 
00193     void Initialize();
00194 
00196     // Member data
00198     Color     myBackgroundColor; 
00199     View      myDefaultView;     
00200     FloatRect myCurrentRect;     
00201     bool      myOpenGLMode;      
00202 };
00203 
00204 } // namespace sf
00205 
00206 
00207 #endif // SFML_RENDERWINDOW_HPP