45 lines
1.1 KiB
Odin
45 lines
1.1 KiB
Odin
package engine
|
|
|
|
import "core:testing"
|
|
|
|
@(test)
|
|
camera_default_values :: proc(t: ^testing.T) {
|
|
cam := camera_default()
|
|
testing.expect_value(t, cam.position, Vec2{0, 0})
|
|
testing.expect_value(t, cam.anchor, Vec2{0.5, 0.5})
|
|
}
|
|
|
|
@(test)
|
|
world_to_screen_centered_identity :: proc(t: ^testing.T) {
|
|
cam := Camera {
|
|
position = {400, 500},
|
|
anchor = {0.5, 0.5},
|
|
}
|
|
viewport := Vec2{800, 600}
|
|
screen := world_to_screen(cam, cam.position, viewport)
|
|
testing.expect_value(t, screen.x, f32(400))
|
|
testing.expect_value(t, screen.y, f32(300))
|
|
}
|
|
|
|
@(test)
|
|
world_to_screen_origin_cam :: proc(t: ^testing.T) {
|
|
cam := Camera {
|
|
position = {0, 0},
|
|
anchor = {0.5, 0.5},
|
|
}
|
|
screen := world_to_screen(cam, {10, 20}, {200, 100})
|
|
testing.expect_value(t, screen.x, f32(110))
|
|
testing.expect_value(t, screen.y, f32(70))
|
|
}
|
|
|
|
@(test)
|
|
world_to_screen_top_left_anchor :: proc(t: ^testing.T) {
|
|
cam := Camera {
|
|
position = {5, 7},
|
|
anchor = {0, 0},
|
|
}
|
|
screen := world_to_screen(cam, {15, 27}, {800, 600})
|
|
testing.expect_value(t, screen.x, f32(10))
|
|
testing.expect_value(t, screen.y, f32(20))
|
|
}
|