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) | |
Detailed Description
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.
- See also
sf::Shader
Typedef Documentation
◆ Bvec2
using sf::Glsl::Bvec2 = Vector2<bool> |
◆ Bvec3
using sf::Glsl::Bvec3 = Vector3<bool> |
◆ Bvec4
using sf::Glsl::Bvec4 = ImplementationDefined |
◆ Ivec2
using sf::Glsl::Ivec2 = Vector2<int> |
◆ Ivec3
using sf::Glsl::Ivec3 = Vector3<int> |
◆ Ivec4
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].
◆ Mat3
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
:
◆ Mat4
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
:
◆ Vec2
using sf::Glsl::Vec2 = Vector2<float> |
◆ Vec3
using sf::Glsl::Vec3 = Vector3<float> |
◆ Vec4
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].