Warning
This page refers to an old version of SFML. Click here to switch to the latest version.
Warning
This page refers to an old version of SFML. Click here to switch to the latest version.
Namespace with GLSL types. More...
Typedefs | |
using | Vec2 = Vector2<float> |
2D float vector (vec2 in GLSL) | |
using | Ivec2 = Vector2<int> |
2D int vector (ivec2 in GLSL) | |
using | Bvec2 = Vector2<bool> |
2D bool vector (bvec2 in GLSL) | |
using | Vec3 = Vector3<float> |
3D float vector (vec3 in GLSL) | |
using | Ivec3 = Vector3<int> |
3D int vector (ivec3 in GLSL) | |
using | Bvec3 = Vector3<bool> |
3D bool vector (bvec3 in GLSL) | |
using | Vec4 = ImplementationDefined |
4D float vector (vec4 in GLSL) | |
using | Ivec4 = ImplementationDefined |
4D int vector (ivec4 in GLSL) | |
using | Bvec4 = ImplementationDefined |
4D bool vector (bvec4 in GLSL) | |
using | Mat3 = ImplementationDefined |
3x3 float matrix (mat3 in GLSL) | |
using | Mat4 = ImplementationDefined |
4x4 float matrix (mat4 in GLSL) |
Namespace with GLSL types.
The sf::Glsl namespace contains types that match their equivalents in GLSL, the OpenGL shading language. These types are exclusively used by the sf::Shader class.
Types that already exist in SFML, such as sf::Vector2<T> and sf::Vector3<T>, are reused as type aliases, so you can use the types in this namespace as well as the original ones. Others are newly defined, such as Glsl::Vec4 or Glsl::Mat3. Their actual type is an implementation detail and should not be used.
All vector types support a default constructor that initializes every component to zero, in addition to a constructor with one parameter for each component. The components are stored in member variables called x, y, z, and w.
All matrix types support a constructor with a float* parameter that points to a float array of the appropriate size (that is, 9 in a 3x3 matrix, 16 in a 4x4 matrix). Furthermore, they can be converted from sf::Transform objects.
using sf::Glsl::Bvec2 = Vector2<bool> |
using sf::Glsl::Bvec3 = Vector3<bool> |
using sf::Glsl::Bvec4 = ImplementationDefined |
using sf::Glsl::Ivec2 = Vector2<int> |
using sf::Glsl::Ivec3 = Vector3<int> |
using sf::Glsl::Ivec4 = ImplementationDefined |
4D int vector (ivec4
in GLSL)
4D int vectors can be implicitly converted from sf::Color instances. Each color channel remains unchanged inside the integer interval [0, 255].
using sf::Glsl::Mat3 = ImplementationDefined |
3x3 float matrix (mat3
in GLSL)
The matrix can be constructed from an array with 3x3 elements, aligned in column-major order. For example, a translation by (x, y) looks as follows:
Mat3 can also be implicitly converted from sf::Transform:
using sf::Glsl::Mat4 = ImplementationDefined |
4x4 float matrix (mat4
in GLSL)
The matrix can be constructed from an array with 4x4 elements, aligned in column-major order. For example, a translation by (x, y, z) looks as follows:
Mat4 can also be implicitly converted from sf::Transform:
using sf::Glsl::Vec2 = Vector2<float> |
using sf::Glsl::Vec3 = Vector3<float> |
using sf::Glsl::Vec4 = ImplementationDefined |
4D float vector (vec4
in GLSL)
4D float vectors can be implicitly converted from sf::Color instances. Each color channel is normalized from integers in [0, 255] to floating point values in [0, 1].