added perlin_test; changed heap_resize to allocate if null is provided
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Sun, 16 Jan 2022 20:51:55 +0000 (14:51 -0600)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Sun, 16 Jan 2022 20:51:55 +0000 (14:51 -0600)
core/alloc/heap.onyx
tests/perlin_test [new file with mode: 0644]
tests/perlin_test.onyx [new file with mode: 0644]

index 8812a8af56c33ef64c29c122925cc7b8ec85a604..11ba6ade657a3302846cbb053861b9a85a852a90 100644 (file)
@@ -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 (file)
index 0000000..b027cbd
--- /dev/null
@@ -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 (file)
index 0000000..4cf2786
--- /dev/null
@@ -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");
+    }
+}
+