This implementation uses the following workaround:
- resize flag is removed from the window when the cursor is grabbed
- when grabbed, the cursor is projected inside the view if needed
- to avoid letting the user clic outside the view, the cursor is
disconnected and manually moved using relative motion
- the initial potential projection of the cursor results in a big
delta for the next move and needed to be somehow ignored (see
note about m_deltaXBuffer and m_deltaYBuffer in SFOpenGLView.h)
* When grabbed, the mouse cursor may not be moved outside a window's client frame.
* Fullscreen windows always grab the mouse cursor.
* The effect is only active while the SFML window is the active
foreground window.
* Right now this is only implemented for Windows.
Signed-off-by: Marco Antognini <antognini.marco@gmail.com>
This is only implemented for Android builds and requires the user to include the sub-header specifically. Other platforms will trigger a compiler error, if they try to include this header file.
Implements a new design for the shader uniform API.
* Added Shader::setUniform() and Shader::setUniformArray() overloads for the following types:
-> scalars: float, int, bool
-> vectors: 2D, 3D, 4D
-> matrices: 3x3, 4x4
-> arrays of basic types
-> samplers (sf::Texture)
-> conversions for SFML types (sf::Transform, sf::Color)
* Added sf::Glsl namespace with GLSL-equivalent types
* Deprecated Shader::setParameter() overloads
Other related changes:
* Refactored sf::Shader internals to avoid code duplication
* Improved documentation
* Added SFML_DEPRECATED macro to Doxyfile
* Defined _SCL_SECURE_NO_WARNINGS to disable std::copy() warnings on MSVC
Attempt to fix issue #953, although I can't really say whether this is
indeed some driver thing. All snippets I've found use exact comparison
only (usually switches).
Changes:
* In addition to source file and line, the expression itself is output
* For better readability, the log is split across multiple lines
* alCheck() doesn't unnecessarily construct std::string when there is no error
* Unused #include directives are removed
At the moment, glCheck(...) and alCheck(...) look like a function calls, which is misleading and can cause subtle bugs, for example when used in if statements. This change mitigates the situation by allowing those expressions to be used as single statements within if/else branches.
Initializations of OpenGL handles that previously involved glCheck() calls now need to be split into separate declaration and assignment.