Namespace with GLSL types. More...
Typedefs | |
typedef Vector2< float > | Vec2 |
2D float vector (vec2 in GLSL) More... | |
typedef Vector2< int > | Ivec2 |
2D int vector (ivec2 in GLSL) More... | |
typedef Vector2< bool > | Bvec2 |
2D bool vector (bvec2 in GLSL) More... | |
typedef Vector3< float > | Vec3 |
3D float vector (vec3 in GLSL) More... | |
typedef Vector3< int > | Ivec3 |
3D int vector (ivec3 in GLSL) More... | |
typedef Vector3< bool > | Bvec3 |
3D bool vector (bvec3 in GLSL) More... | |
typedef implementation defined | Vec4 |
4D float vector (vec4 in GLSL) More... | |
typedef implementation defined | Ivec4 |
4D int vector (ivec4 in GLSL) More... | |
typedef implementation defined | Bvec4 |
4D bool vector (bvec4 in GLSL) More... | |
typedef implementation defined | Mat3 |
3x3 float matrix (mat3 in GLSL) More... | |
typedef implementation defined | Mat4 |
4x4 float matrix (mat4 in GLSL) More... | |
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 typedefs, 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.
typedef Vector2<bool> sf::Glsl::Bvec2 |
typedef Vector3<bool> sf::Glsl::Bvec3 |
typedef implementation defined sf::Glsl::Bvec4 |
typedef Vector2<int> sf::Glsl::Ivec2 |
typedef Vector3<int> sf::Glsl::Ivec3 |
typedef implementation defined sf::Glsl::Ivec4 |
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].
typedef implementation defined sf::Glsl::Mat3 |
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:
typedef implementation defined sf::Glsl::Mat4 |
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:
typedef Vector2<float> sf::Glsl::Vec2 |
typedef Vector3<float> sf::Glsl::Vec3 |
typedef implementation defined sf::Glsl::Vec4 |
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].