mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-01 20:28:15 +00:00
fix @(optimization_mode) usage in builtin collections
This commit is contained in:
@@ -688,7 +688,7 @@ _internal_noise_4d_unskewed_base :: proc(seed: i64, coord: Vec4) -> (value: f32)
|
||||
/*
|
||||
Utility functions
|
||||
*/
|
||||
@(optimization_mode="speed")
|
||||
@(optimization_mode="favor_size")
|
||||
grad_2d :: proc(seed: i64, svp: [2]i64, delta: [2]f32) -> (value: f32) {
|
||||
hash := seed ~ svp.x ~ svp.y
|
||||
hash *= HASH_MULTIPLIER
|
||||
@@ -698,7 +698,7 @@ grad_2d :: proc(seed: i64, svp: [2]i64, delta: [2]f32) -> (value: f32) {
|
||||
return GRADIENTS_2D[gi] * delta.x + GRADIENTS_2D[gi | 1] * delta.y
|
||||
}
|
||||
|
||||
@(optimization_mode="speed")
|
||||
@(optimization_mode="favor_size")
|
||||
grad_3d :: proc(seed: i64, rvp: [3]i64, delta: [3]f32) -> (value: f32) {
|
||||
hash := (seed ~ rvp.x) ~ (rvp.y ~ rvp.z)
|
||||
hash *= HASH_MULTIPLIER
|
||||
@@ -708,7 +708,7 @@ grad_3d :: proc(seed: i64, rvp: [3]i64, delta: [3]f32) -> (value: f32) {
|
||||
return GRADIENTS_3D[gi] * delta.x + GRADIENTS_3D[gi | 1] * delta.y + GRADIENTS_3D[gi | 2] * delta.z
|
||||
}
|
||||
|
||||
@(optimization_mode="speed")
|
||||
@(optimization_mode="favor_size")
|
||||
grad_4d :: proc(seed: i64, svp: [4]i64, delta: [4]f32) -> (value: f32) {
|
||||
hash := seed ~ (svp.x ~ svp.y) ~ (svp.z ~ svp.w)
|
||||
hash *= HASH_MULTIPLIER
|
||||
@@ -720,13 +720,13 @@ grad_4d :: proc(seed: i64, svp: [4]i64, delta: [4]f32) -> (value: f32) {
|
||||
|
||||
grad :: proc {grad_2d, grad_3d, grad_4d}
|
||||
|
||||
@(optimization_mode="speed")
|
||||
@(optimization_mode="favor_size")
|
||||
fast_floor :: proc(x: f64) -> (floored: i64) {
|
||||
xi := i64(x)
|
||||
return x < f64(xi) ? xi - 1 : xi
|
||||
}
|
||||
|
||||
@(optimization_mode="speed")
|
||||
@(optimization_mode="favor_size")
|
||||
fast_round :: proc(x: f64) -> (rounded: i64) {
|
||||
return x < 0 ? i64(x - 0.5) : i64(x + 0.5)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user