From df6ed98e5f01d453d4c5a787d634e99897e9372a Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 16 Jan 2022 14:51:55 -0600 Subject: [PATCH] added perlin_test; changed heap_resize to allocate if null is provided --- core/alloc/heap.onyx | 2 +- tests/perlin_test | 48 ++++++++++++++++++++++++++++++++++++++++++ tests/perlin_test.onyx | 32 ++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 tests/perlin_test create mode 100644 tests/perlin_test.onyx diff --git a/core/alloc/heap.onyx b/core/alloc/heap.onyx index 8812a8af..11ba6ade 100644 --- a/core/alloc/heap.onyx +++ b/core/alloc/heap.onyx @@ -195,7 +195,7 @@ get_freed_size :: () => { } heap_resize :: (ptr: rawptr, new_size_: u32, align: u32) -> rawptr { - if ptr == null do return null; + if ptr == null do return heap_alloc(new_size_, align); #if runtime.Multi_Threading_Enabled do sync.scoped_mutex(^heap_mutex); diff --git a/tests/perlin_test b/tests/perlin_test new file mode 100644 index 00000000..b027cbd2 --- /dev/null +++ b/tests/perlin_test @@ -0,0 +1,48 @@ +$$$;$X#X$;$$$;;;$;;;$X#X$:::$X#X$;;;$$X$$:::$$X$$$$$$$$$$;;;$$$;$X#X$:::$X#X$;;;$$$$$;;;$$X$$$X$ +;$;;;$X$;;$$$;;$$$;;$X##X$:;$X##X$$$$$$$;::;$X$;;;;$$$;;;;;$XX$;$XXX$:.:;$X$;:::::;;;;::;$$$$$XX +;;;:;$X$$;$$$;$$$;;$XX###X$$XX###XXXX$;;;;;;$$$$$;;;$;;;$$XX##X$$$X$$;;;$$$$$;::::;;$;::;;$;$$XX +;;;:;$$$$$$;;;$$;:;$$XXXXX$$$XXXXXXX$;::;$$$;;$X$;;;;;;;$XXXXXX$$;$$$;$$$;;$$$;:::;$$$;:;$;:;$$$ +$$$;$$X$$$$$$$X$$;;;$$$$$$$$$$$$$$X$$:::$X#X$;$$$;;;$;;;$$X$$$X$$;$$$;$$$;;;$$$$$$$$$;;;$$$;$$$; +XX$$$XX;;;;$$$XX$;:::::;;;;;;;;;;;$$;::$X#@#X$$$;:;$$$::;$$;:;$$$;$$$;$$;::;;;$XX$$;::::;$$$$$;: +##X$XX#$$;;;$$X$$;:.::::;;;:;;;;$$$;;;$X##@##X$$$;;;$$;:;;$:::;$X$$$XXXX$;;;$$X##X$::.::;;;;$;:: +X$;;$X#X$;::;$$;;::::;;;;$;;;$$;$$;:;$$XXXXXX$$;$$;:;;;;;$X$::;$$$$$$X#X$;;$$$XXX$$;:::;;:;;;:.: +$;;;$X#X$:::$$X$$;;;$$$;$$$;$$$;$$$;$$X$$$$$$;;;$$$;$$$;$X#X$;;;$;;;$X#X$;;;$$X$$;$$$;$$$;$$$::: +;::;$XX$;::;$XX$$$$$XX$;$$$;$$;::;$$XX$;:::::::::;;$$X$;;$##X$;;;;::;$$;::::;;$$;;$XX$XX$$$X$;:; +;:;$XX$;;:;;XXX;$$XX##X$XXX$X$;:::$X##$::...:::.::;;XXX;;;$X#XX$$;::;;;::.::;;$$$;$X####X$;;$;$$ +;:;$$$;;;$;;$$;;;$XXXXX$$$$$$$;::;$$XX$;::..:;;::::;$XX$;::$XXX$$$;:;$;::;;;;$X$$$$$X##X$;::;$$$ +$;;;$;;;$$$;$$$;$$X$$$$$$$$$$$$$$$$$$$$$$;;;$$X$$;;;$X#X$:::$$X$$;;;$$$;$$$;$$X$$;;;$X#X$:::$$X$ +$;:;;::;$$;;;$$$$X$;;;:::::::;$$X$$;::;$$$$$$XXXX$;;;$#X$;::;$$;:::;$$$$$X$;$$$;;;:::$X$;::;XXX; +X$$;;:;;$;;:;;;$XX$;;;:.:::.::$X#X$::::;$$XXXX###X;:;;XXX;::;;$::.:$XX$;$$;;$$X$$;:.::$;;::$###$ +$$X$;;;$$;::;;:;$$$;;$;::;:::;$XX$$;::::;$XX$;$XX$;:;;$X$;::;$X$:::$$$$;;;:;$$X$$$;::;$$;::;X##$ +$$X$$;$$$;;;$;;;$$$;$$$;$$$;$$X$$$$$$;;;$X#X$;$$$;;;$$X$$:::$X#X$;;;$$$$$;;;$$X$$$$$$$X$$:::$X#X +;;$$;;$$$;;$$$;:;$;;;$$$$X$$XX$;::;$$$;;$XX$;;;;;:;$XXX$;:.:;$##X$;;;;;$$$;;$$$;::;$$$XX$;::;$XX +$;;;;;$XX$XXX$;:;;::;$XXX$XX##$::::;$$$$$$$;;:::;;X##XX$;:::;;$X#XX;;:;$$;;;$;;::::;$$XXX$$$$$XX +$$;:;$$X$XXX$;::;:::;$XX$;;$XX$;::::;$X$;:::;:::;$##X$$;;::;;::$X##$;;;;;:;$$;::::::;$;;$X#X$;$$ +$;;;$$X$$$X$$;;;$;;;$X#X$;;;$$$$$;;;$X#X$;;;$;;;$X#X$;$$$;$$$:::$X#X$;$$$;$$$;;;$;;;$$$;$X#X$;;; +:::$XXX;;;$$;;;$$$$$$X#X$;::;;$$X$$;$X#X$;;$$$;;$XX$;:$X$$XXX;:.:$XX$;$X$;$$$;;$X$;;$X$;$XX$;::: +:.:$###$$;;;;;$XX$$$XX#XX;::;;$X##X$$$$$$;$$XXX$XX$;;;$$XX###$:.::$XX$X$$;$$$;$X#X$;$$X$XX#X$:.. +:.:;X#X$$$;:;$XX$;$$$;$X$;::;$$$X##$;:.:;;;;$XXX$$;;;$$;$X##X$:::;$$$$X$;:;$$;;$X$;:;$X$$XXX$;.. +$:::$$X$$;;;$X#X$;$$$;$$$:::$$$;$X#X$:::$$$;$$X$$;;;$$$;$X#X$;;;$$$$$$X$$;$$$;;;$;;;$$X$$$X$$::: +$;::;$$;::;$X##$;;$$$;;$;:.:;$;;;$XX$;;$XX$;$$$;::::;$$;$XX;:::$$$;::;$X$$$$$:::;;:;$X$;;;;;:..; +X;;;$$$::.;$##X;;;$XX$$$$;::;$$$$$$$$;$$###$XX$::..:;;$$XX$::::;$$;.:;XXX$$$$:::;;;;$$$:;;;::.:: +$;;$$$$;::;$X$;:;$$X$$$$$$::;$XX$;::;$$$X#XX$X$;:..:;;$$$$;::;;:;;;::$XX$;$$$:.:;$;:;$;;;$;::;:: +$;;;$$X$$;;;$;;;$$X$$$$$$;;;$X#X$:::$$$;$$X$$$X$$;;;$$$$$;;;$$$;$$$;$X#X$;$$$:::$$$;$$$;$$$;$$$; +;:::;;$XX$;:::;$XXX;::;;;;;$$XX$:.:;XX$;;$$;;;XXX$$$$$;;;;;;$X$;$X$$$X#X$;$$$;:;$$$$XX$;$$$$$X$$ +;::;;:$X#X$:::;X##X;:.;$$;$$X$$::.:$###$$$$$$$X##XXXX$;:;;;;$$;;$$$;$X#XX$$$X$$$XXXX##X$XX$;$$XX +;:;$;::$XX$;:;;$XXX;::;$$$$$$;:::::$X##X$;;$$$XXXXXX$;::;$$;;;::;$;:;$XX$$$$$XXX$$XXXXX$$$$;;;$$ +$;$$$:::$$X$$$$$$$X$$;$$$;$$$;;;$;;;$X#X$;;;$$$$$$X$$:::$$X$$;;;$$$;$$X$$;;;$$X$$$$$$$$$$$$$$$$$ +$$$$$;..:;$$$$;;:;$X$;;;;:;$$;;$$$;:;$X$;::;;;;;;;$$$;:;$XX$$$;;$XX$XXX;::.:;$$;;;;;;;:::;;$$$;; +XXXXX$:.::;;$$;:::;$$;;:;;$XX$$$$;;;$$X$$;;;$;;;$$$$$;$$XXX$$;;;$$XX##X;:...;$$$$;;:;;:.::$$$;;; +$XXX$$;:::::;$$;::;;;;::;$XX$$$$;:;$$$$X$;;$$$;;$X$;$$X$$$$;;;::;$XXXXX;:..:;$X$$$;:;$;::;$$;:;$ +$$X$$$$$$;;;$$X$$$$$$;;;$$X$$$X$$;$$$;$$$;;;$;;;$$$;$$X$$$$$$;;;$$X$$$X$$:::$$X$$;;;$$$;$X#X$;$$ +;$$;::;$$$;;$XX$$$$$$$;;$$$;:;$X$;$$;::;:::;;;:::;;;;$;;:;;$$$$$XXX;;;$XX$:;$X$;;;::;$$$X##X$;$$ +;;;::::;$$$$$;;;$$X$$;;;$;;:::;$$;$$$::.::;;$;:.::;;;::.::;;$$XX##X;;;$X#X$$XXX$$;::;$XX###X$;$$ +;;;;::::;$X$;:.:;$X$;:;$$;;;::;;;:$X$;..:;$$$$;::;;;;:..:;;:;$XXXXX$;;;$XX$$$$$$$$::;$XXXXX$;:;$ +$$X$$;;;$X#X$:::$X#X$;$$$;$$$;$$$;$$$:::$$X$$$$$$$X$$:::$$$;$$X$$$X$$;;;$$$$$$$$$;;;$$X$$$X$$;$$ +$XX$$$;;$X#X$;;;$X#X$;$$$;$X$$XXX$;;:.:;$X$;::;$XX#X$;;$XX$$$X$;;;$$$:::::;;;;;;;;;$XX$;;;XX$$$$ +XXX$$;;;$$X$$$$$$$X$$;$XX$$$$$X##$;::::;$$$::.;X####X$$X##X$XX$;;;X$$::.::;;;:;;$$$X#X$;;;XXX$;; +$X$;;;::;$;;;$X$;;;$;:;$$$$;;;XXX;:::;;;;;$;::;$XXXX$;;$X$;;$$$;;$XX$::::;$$;:;$$$$XX$;;;$XX$;:; +$$X$$;;;$$$;$X#X$;$$$;;;$$$$$$X$$:::$$X$$$X$$;;;$$X$$;;;$;;;$$$;$X#X$;;;$$X$$;;;$$$$$;;;$X#X$::: +$XXX$$;;$X$$X##X$$$X$;;;;;$$$$$$;:.;$XX$$$XX$;:::;$$$;::;:::;$;;;$X$$;;$XXXX$;:;;;;;;:::;$XX$;:: +XXX$XX$;$$XX###$$$$$$$$$$$$$$;$;;::;$$X$$;$$$;::::$XX$;:;;;:;;::;$$$$$$X###XX$$;$$$;;:..;$XXX$;; +$$;;$$;:;$$$XX$;;;;:;$$$$$$$;:;$;::;;;$$;::;;;;::;;$$$;:;$$;;:::;;;;$$$$X##X$$$$$$X$;:..;$XX$$;; diff --git a/tests/perlin_test.onyx b/tests/perlin_test.onyx new file mode 100644 index 00000000..4cf27862 --- /dev/null +++ b/tests/perlin_test.onyx @@ -0,0 +1,32 @@ +#load "core/std" +#load "modules/perlin/module" + +use package core +perlin :: package perlin + +char_map :: (x: f64) -> u8 { + switch cast(i32) math.floor(x) { + case 0 do return #char " "; + case 1 do return #char "."; + case 2 do return #char ":"; + case 3 do return #char ";"; + case 4 do return #char "$"; + case 5 do return #char "X"; + case 6 do return #char "#"; + case 7 do return #char "@"; + case #default do return #char " "; + } +} + +main :: (args) => { + for y: 48 { + for x: 96 { + fx := cast(f64) x; + fy := cast(f64) y; + n := perlin.noise(fx / 4, fy / 4, 0); + char_map(n * 4 + 4) |> print(); + } + print("\n"); + } +} + -- 2.25.1