diff --git a/nalgebra-glm/Cargo.toml b/nalgebra-glm/Cargo.toml index aa072ade..e5de7b77 100644 --- a/nalgebra-glm/Cargo.toml +++ b/nalgebra-glm/Cargo.toml @@ -14,17 +14,27 @@ license = "BSD-3-Clause" [features] +## Default to produce opengl compatible matrices and conventions default = ["opengl_projection"] +## Produce projection matrices and default to coordinate space behaviour that is compatible with OpenGL's NDC space opengl_projection = ["right_hand_default", "negone_to_one_clip_default"] + +## Produce projection matrices and default to coordinate space behaviour that is compatible with Vulkan's NDC space vulkan_projection = ["right_hand_default", "zero_to_one_clip_default", "projection_y_flip"] + +## Produce projection matrices and default to coordinate space behaviour that is compatible with DirectX's NDC space directx_projection = ["left_hand_default", "zero_to_one_clip_default"] +## Applies an implicit `mat[(1,1)] *= -1` to all projection matrices. Essentially flips the output of using the matrix +## about the x axis (vertical flip) projection_y_flip = [] +## Whether to default to left hand (DirectX) or right hand (OpenGL/Vulkan) coordinate system behaviour left_hand_default = [] right_hand_default = [] +## Whether to default to 0 to 1 depth range (DirectX, Vulkan, Metal) or -1 to 1 (OpenGL) behaviour zero_to_one_clip_default = [] negone_to_one_clip_default = []