more comments/doc
This commit is contained in:
parent
205ca1f10c
commit
112b9e845c
@ -870,7 +870,20 @@ pub fn perspective_fov_zo<N: Real>(fov: N, width: N, height: N, near: N, far: N)
|
|||||||
/// 0 to 1 depth clip space or a -1 to 1 depth clip space.
|
/// 0 to 1 depth clip space or a -1 to 1 depth clip space.
|
||||||
///
|
///
|
||||||
pub fn perspective<N: Real>(aspect: N, fovy: N, near: N, far: N) -> TMat4<N> {
|
pub fn perspective<N: Real>(aspect: N, fovy: N, near: N, far: N) -> TMat4<N> {
|
||||||
// TODO: Breaking change: the arguments can be reversed back to proper glm conventions
|
// TODO: Breaking change - the arguments can be reversed back to proper glm conventions
|
||||||
|
//
|
||||||
|
// Prior to changes to support configuring the behaviour of this function it was simply
|
||||||
|
// a wrapper around Perspective3::new(). The argument order for that function is different
|
||||||
|
// than the glm convention, but reordering the arguments would've caused pointlessly
|
||||||
|
// un-optimal code to be generated so they were rearranged so the function would just call
|
||||||
|
// straight through.
|
||||||
|
//
|
||||||
|
// Now this call to Perspective3::new() is no longer made so the functions can have their
|
||||||
|
// arguments reordered to the glm convention. Unfortunately this is a breaking change so
|
||||||
|
// can't be cleanly integrated into the existing library version without breaking other
|
||||||
|
// people's code. Reordering to glm isn't a huge deal but if it is done it will have to be
|
||||||
|
// in a major API breaking update.
|
||||||
|
//
|
||||||
if cfg!(feature="zero_to_one_clip_default") {
|
if cfg!(feature="zero_to_one_clip_default") {
|
||||||
perspective_zo(aspect, fovy, near, far)
|
perspective_zo(aspect, fovy, near, far)
|
||||||
} else if cfg!(feature="negone_to_one_clip_default") {
|
} else if cfg!(feature="negone_to_one_clip_default") {
|
||||||
|
@ -6,6 +6,7 @@ use na::Orthographic3;
|
|||||||
use glm::Mat4;
|
use glm::Mat4;
|
||||||
use glm::Vec4;
|
use glm::Vec4;
|
||||||
|
|
||||||
|
// Ensure that under default conditions the library doesn't break interface with old convention
|
||||||
#[test]
|
#[test]
|
||||||
pub fn orthographic_glm_nalgebra_same()
|
pub fn orthographic_glm_nalgebra_same()
|
||||||
{
|
{
|
||||||
@ -19,6 +20,7 @@ pub fn orthographic_glm_nalgebra_same()
|
|||||||
assert_eq!(na_mat, gl_mat);
|
assert_eq!(na_mat, gl_mat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure that under default conditions the library doesn't break interface with old convention
|
||||||
#[test]
|
#[test]
|
||||||
pub fn perspective_glm_nalgebra_same()
|
pub fn perspective_glm_nalgebra_same()
|
||||||
{
|
{
|
||||||
@ -33,6 +35,7 @@ pub fn perspective_glm_nalgebra_same()
|
|||||||
assert_eq!(na_mat, gl_mat);
|
assert_eq!(na_mat, gl_mat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure that under default conditions the library doesn't break interface with old convention
|
||||||
#[test]
|
#[test]
|
||||||
pub fn orthographic_glm_nalgebra_project_same()
|
pub fn orthographic_glm_nalgebra_project_same()
|
||||||
{
|
{
|
||||||
@ -48,9 +51,11 @@ pub fn orthographic_glm_nalgebra_project_same()
|
|||||||
let na_pt = na_mat * point;
|
let na_pt = na_mat * point;
|
||||||
let gl_pt = gl_mat * point;
|
let gl_pt = gl_mat * point;
|
||||||
|
|
||||||
|
assert_eq!(na_mat, gl_mat);
|
||||||
assert_eq!(na_pt, gl_pt);
|
assert_eq!(na_pt, gl_pt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ensure that under default conditions the library doesn't break interface with old convention
|
||||||
#[test]
|
#[test]
|
||||||
pub fn perspective_glm_nalgebra_project_same()
|
pub fn perspective_glm_nalgebra_project_same()
|
||||||
{
|
{
|
||||||
@ -67,5 +72,6 @@ pub fn perspective_glm_nalgebra_project_same()
|
|||||||
let na_pt = na_mat * point;
|
let na_pt = na_mat * point;
|
||||||
let gl_pt = gl_mat * point;
|
let gl_pt = gl_mat * point;
|
||||||
|
|
||||||
|
assert_eq!(na_mat, gl_mat);
|
||||||
assert_eq!(na_pt, gl_pt);
|
assert_eq!(na_pt, gl_pt);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user