Ajout version Release/x64 avec les libraries x64 et tuning de la version Debug
This commit is contained in:
		
							
								
								
									
										314
									
								
								SQCSim2021/external/sfml251/include/SFML/Graphics/RenderTexture.hpp
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										314
									
								
								SQCSim2021/external/sfml251/include/SFML/Graphics/RenderTexture.hpp
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,314 @@ | ||||
| //////////////////////////////////////////////////////////// | ||||
| // | ||||
| // SFML - Simple and Fast Multimedia Library | ||||
| // Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org) | ||||
| // | ||||
| // This software is provided 'as-is', without any express or implied warranty. | ||||
| // In no event will the authors be held liable for any damages arising from the use of this software. | ||||
| // | ||||
| // Permission is granted to anyone to use this software for any purpose, | ||||
| // including commercial applications, and to alter it and redistribute it freely, | ||||
| // subject to the following restrictions: | ||||
| // | ||||
| // 1. The origin of this software must not be misrepresented; | ||||
| //    you must not claim that you wrote the original software. | ||||
| //    If you use this software in a product, an acknowledgment | ||||
| //    in the product documentation would be appreciated but is not required. | ||||
| // | ||||
| // 2. Altered source versions must be plainly marked as such, | ||||
| //    and must not be misrepresented as being the original software. | ||||
| // | ||||
| // 3. This notice may not be removed or altered from any source distribution. | ||||
| // | ||||
| //////////////////////////////////////////////////////////// | ||||
|  | ||||
| #ifndef SFML_RENDERTEXTURE_HPP | ||||
| #define SFML_RENDERTEXTURE_HPP | ||||
|  | ||||
| //////////////////////////////////////////////////////////// | ||||
| // Headers | ||||
| //////////////////////////////////////////////////////////// | ||||
| #include <SFML/Graphics/Export.hpp> | ||||
| #include <SFML/Graphics/Texture.hpp> | ||||
| #include <SFML/Graphics/RenderTarget.hpp> | ||||
| #include <SFML/Window/ContextSettings.hpp> | ||||
|  | ||||
|  | ||||
| namespace sf | ||||
| { | ||||
| namespace priv | ||||
| { | ||||
|     class RenderTextureImpl; | ||||
| } | ||||
|  | ||||
| //////////////////////////////////////////////////////////// | ||||
| /// \brief Target for off-screen 2D rendering into a texture | ||||
| /// | ||||
| //////////////////////////////////////////////////////////// | ||||
| class SFML_GRAPHICS_API RenderTexture : public RenderTarget | ||||
| { | ||||
| public: | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Default constructor | ||||
|     /// | ||||
|     /// Constructs an empty, invalid render-texture. You must | ||||
|     /// call create to have a valid render-texture. | ||||
|     /// | ||||
|     /// \see create | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     RenderTexture(); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Destructor | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     virtual ~RenderTexture(); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Create the render-texture | ||||
|     /// | ||||
|     /// Before calling this function, the render-texture is in | ||||
|     /// an invalid state, thus it is mandatory to call it before | ||||
|     /// doing anything with the render-texture. | ||||
|     /// The last parameter, \a depthBuffer, is useful if you want | ||||
|     /// to use the render-texture for 3D OpenGL rendering that requires | ||||
|     /// a depth buffer. Otherwise it is unnecessary, and you should | ||||
|     /// leave this parameter to false (which is its default value). | ||||
|     /// | ||||
|     /// \param width       Width of the render-texture | ||||
|     /// \param height      Height of the render-texture | ||||
|     /// \param depthBuffer Do you want this render-texture to have a depth buffer? | ||||
|     /// | ||||
|     /// \return True if creation has been successful | ||||
|     /// | ||||
|     /// \deprecated Use create(unsigned int, unsigned int, const ContextSettings&) instead. | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     SFML_DEPRECATED bool create(unsigned int width, unsigned int height, bool depthBuffer); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Create the render-texture | ||||
|     /// | ||||
|     /// Before calling this function, the render-texture is in | ||||
|     /// an invalid state, thus it is mandatory to call it before | ||||
|     /// doing anything with the render-texture. | ||||
|     /// The last parameter, \a settings, is useful if you want to enable | ||||
|     /// multi-sampling or use the render-texture for OpenGL rendering that | ||||
|     /// requires a depth or stencil buffer. Otherwise it is unnecessary, and | ||||
|     /// you should leave this parameter at its default value. | ||||
|     /// | ||||
|     /// \param width    Width of the render-texture | ||||
|     /// \param height   Height of the render-texture | ||||
|     /// \param settings Additional settings for the underlying OpenGL texture and context | ||||
|     /// | ||||
|     /// \return True if creation has been successful | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     bool create(unsigned int width, unsigned int height, const ContextSettings& settings = ContextSettings()); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Get the maximum anti-aliasing level supported by the system | ||||
|     /// | ||||
|     /// \return The maximum anti-aliasing level supported by the system | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     static unsigned int getMaximumAntialiasingLevel(); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Enable or disable texture smoothing | ||||
|     /// | ||||
|     /// This function is similar to Texture::setSmooth. | ||||
|     /// This parameter is disabled by default. | ||||
|     /// | ||||
|     /// \param smooth True to enable smoothing, false to disable it | ||||
|     /// | ||||
|     /// \see isSmooth | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     void setSmooth(bool smooth); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Tell whether the smooth filtering is enabled or not | ||||
|     /// | ||||
|     /// \return True if texture smoothing is enabled | ||||
|     /// | ||||
|     /// \see setSmooth | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     bool isSmooth() const; | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Enable or disable texture repeating | ||||
|     /// | ||||
|     /// This function is similar to Texture::setRepeated. | ||||
|     /// This parameter is disabled by default. | ||||
|     /// | ||||
|     /// \param repeated True to enable repeating, false to disable it | ||||
|     /// | ||||
|     /// \see isRepeated | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     void setRepeated(bool repeated); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Tell whether the texture is repeated or not | ||||
|     /// | ||||
|     /// \return True if texture is repeated | ||||
|     /// | ||||
|     /// \see setRepeated | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     bool isRepeated() const; | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Generate a mipmap using the current texture data | ||||
|     /// | ||||
|     /// This function is similar to Texture::generateMipmap and operates | ||||
|     /// on the texture used as the target for drawing. | ||||
|     /// Be aware that any draw operation may modify the base level image data. | ||||
|     /// For this reason, calling this function only makes sense after all | ||||
|     /// drawing is completed and display has been called. Not calling display | ||||
|     /// after subsequent drawing will lead to undefined behavior if a mipmap | ||||
|     /// had been previously generated. | ||||
|     /// | ||||
|     /// \return True if mipmap generation was successful, false if unsuccessful | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     bool generateMipmap(); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Activate or deactivate the render-texture for rendering | ||||
|     /// | ||||
|     /// This function makes the render-texture's context current for | ||||
|     /// future OpenGL rendering operations (so you shouldn't care | ||||
|     /// about it if you're not doing direct OpenGL stuff). | ||||
|     /// Only one context can be current in a thread, so if you | ||||
|     /// want to draw OpenGL geometry to another render target | ||||
|     /// (like a RenderWindow) don't forget to activate it again. | ||||
|     /// | ||||
|     /// \param active True to activate, false to deactivate | ||||
|     /// | ||||
|     /// \return True if operation was successful, false otherwise | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     bool setActive(bool active = true); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Update the contents of the target texture | ||||
|     /// | ||||
|     /// This function updates the target texture with what | ||||
|     /// has been drawn so far. Like for windows, calling this | ||||
|     /// function is mandatory at the end of rendering. Not calling | ||||
|     /// it may leave the texture in an undefined state. | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     void display(); | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Return the size of the rendering region of the texture | ||||
|     /// | ||||
|     /// The returned value is the size that you passed to | ||||
|     /// the create function. | ||||
|     /// | ||||
|     /// \return Size in pixels | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     virtual Vector2u getSize() const; | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     /// \brief Get a read-only reference to the target texture | ||||
|     /// | ||||
|     /// After drawing to the render-texture and calling Display, | ||||
|     /// you can retrieve the updated texture using this function, | ||||
|     /// and draw it using a sprite (for example). | ||||
|     /// The internal sf::Texture of a render-texture is always the | ||||
|     /// same instance, so that it is possible to call this function | ||||
|     /// once and keep a reference to the texture even after it is | ||||
|     /// modified. | ||||
|     /// | ||||
|     /// \return Const reference to the texture | ||||
|     /// | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     const Texture& getTexture() const; | ||||
|  | ||||
| private: | ||||
|  | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     // Member data | ||||
|     //////////////////////////////////////////////////////////// | ||||
|     priv::RenderTextureImpl* m_impl;    ///< Platform/hardware specific implementation | ||||
|     Texture                  m_texture; ///< Target texture to draw on | ||||
| }; | ||||
|  | ||||
| } // namespace sf | ||||
|  | ||||
|  | ||||
| #endif // SFML_RENDERTEXTURE_HPP | ||||
|  | ||||
|  | ||||
| //////////////////////////////////////////////////////////// | ||||
| /// \class sf::RenderTexture | ||||
| /// \ingroup graphics | ||||
| /// | ||||
| /// sf::RenderTexture is the little brother of sf::RenderWindow. | ||||
| /// It implements the same 2D drawing and OpenGL-related functions | ||||
| /// (see their base class sf::RenderTarget for more details), | ||||
| /// the difference is that the result is stored in an off-screen | ||||
| /// texture rather than being show in a window. | ||||
| /// | ||||
| /// Rendering to a texture can be useful in a variety of situations: | ||||
| /// \li precomputing a complex static texture (like a level's background from multiple tiles) | ||||
| /// \li applying post-effects to the whole scene with shaders | ||||
| /// \li creating a sprite from a 3D object rendered with OpenGL | ||||
| /// \li etc. | ||||
| /// | ||||
| /// Usage example: | ||||
| /// | ||||
| /// \code | ||||
| /// // Create a new render-window | ||||
| /// sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window"); | ||||
| /// | ||||
| /// // Create a new render-texture | ||||
| /// sf::RenderTexture texture; | ||||
| /// if (!texture.create(500, 500)) | ||||
| ///     return -1; | ||||
| /// | ||||
| /// // The main loop | ||||
| /// while (window.isOpen()) | ||||
| /// { | ||||
| ///    // Event processing | ||||
| ///    // ... | ||||
| /// | ||||
| ///    // Clear the whole texture with red color | ||||
| ///    texture.clear(sf::Color::Red); | ||||
| /// | ||||
| ///    // Draw stuff to the texture | ||||
| ///    texture.draw(sprite);  // sprite is a sf::Sprite | ||||
| ///    texture.draw(shape);   // shape is a sf::Shape | ||||
| ///    texture.draw(text);    // text is a sf::Text | ||||
| /// | ||||
| ///    // We're done drawing to the texture | ||||
| ///    texture.display(); | ||||
| /// | ||||
| ///    // Now we start rendering to the window, clear it first | ||||
| ///    window.clear(); | ||||
| /// | ||||
| ///    // Draw the texture | ||||
| ///    sf::Sprite sprite(texture.getTexture()); | ||||
| ///    window.draw(sprite); | ||||
| /// | ||||
| ///    // End the current frame and display its contents on screen | ||||
| ///    window.display(); | ||||
| /// } | ||||
| /// \endcode | ||||
| /// | ||||
| /// Like sf::RenderWindow, sf::RenderTexture is still able to render direct | ||||
| /// OpenGL stuff. It is even possible to mix together OpenGL calls | ||||
| /// and regular SFML drawing commands. If you need a depth buffer for | ||||
| /// 3D rendering, don't forget to request it when calling RenderTexture::create. | ||||
| /// | ||||
| /// \see sf::RenderTarget, sf::RenderWindow, sf::View, sf::Texture | ||||
| /// | ||||
| //////////////////////////////////////////////////////////// | ||||
		Reference in New Issue
	
	Block a user