diff --git a/sysdata/libraries/ignim/src/errors.hb b/sysdata/libraries/ignim/src/errors.hb new file mode 100644 index 00000000..57ef5e9b --- /dev/null +++ b/sysdata/libraries/ignim/src/errors.hb @@ -0,0 +1,16 @@ +// the 0- thing is scuffed + +OutOfHostMemory := 0 - 1 +OutOfDeviceMemory := 0 - 2 +InitializationFailed := 0 - 3 +DeviceLost := 0 - 4 +MemoryMapFailed := 0 - 5 + +LayerNotPresent := 0 - 6 +ExtensionNotPresent := 0 - 7 +FeatureNotPresent := 0 - 8 +IncompatibleDriver := 0 - 9 +TooManyObjects := 0 - 10 +FormatNotSupported := 0 - 11 +FragmentedPool := 0 - 12 +Unknown := 0 - 13 \ No newline at end of file diff --git a/sysdata/libraries/ignim/src/lib.hb b/sysdata/libraries/ignim/src/lib.hb index 161d851a..c6c015ce 100644 --- a/sysdata/libraries/ignim/src/lib.hb +++ b/sysdata/libraries/ignim/src/lib.hb @@ -1,7 +1,9 @@ -VK_VERSION_MAJOR := 1; -VK_VERSION_MINOR := 0; +results := @use("rel:results.hb") +errors := @use("rel:errors.hb") -init_vulkan := fn(): void { - - return +VK_VERSION_MAJOR := 1 +VK_VERSION_MINOR := 0 + +init_vulkan := fn(): int { + return errors.IncompatibleDriver } \ No newline at end of file diff --git a/sysdata/libraries/ignim/src/results.hb b/sysdata/libraries/ignim/src/results.hb new file mode 100644 index 00000000..9b009402 --- /dev/null +++ b/sysdata/libraries/ignim/src/results.hb @@ -0,0 +1,7 @@ +// NonErrors +Success := 0 +NotReady := 1 +Timeout := 2 +EventSet := 3 +EventReset := 4 +Incomplete := 5 \ No newline at end of file diff --git a/sysdata/programs/dt_buffer_test/src/main.hb b/sysdata/programs/dt_buffer_test/src/main.hb index dbc27b40..4d4d14c4 100644 --- a/sysdata/programs/dt_buffer_test/src/main.hb +++ b/sysdata/programs/dt_buffer_test/src/main.hb @@ -1,8 +1,14 @@ -dt_api := @use("../../../libraries/dt_api/src/lib.hb") +dt_api := @use("../../../libraries/dt_api/src/lib.hb"); +.{dt_get} := dt_api main := fn(): int { dt_api.dt_get("framebuffer/fb0/width\0") - dt_api.dt_get("cpu/architecture\0") + dt_api.dt_get("cpu/cpu0/architecture\0") + + // Checking if the first detected serial port is memory mapped or port mapped + // 0 -> memory mapped + // 1 -> port mapped + dt_get("serial_ports/sp0/mapping\0") return 0 } \ No newline at end of file diff --git a/sysdata/programs/horizon_testing_program/src/main.hb b/sysdata/programs/horizon_testing_program/src/main.hb index f665ae4a..15ebc3f2 100644 --- a/sysdata/programs/horizon_testing_program/src/main.hb +++ b/sysdata/programs/horizon_testing_program/src/main.hb @@ -4,9 +4,19 @@ stn := @use("../../../libraries/stn/src/lib.hb"); horizon_api := @use("../../../libraries/horizon_api/src/lib.hb"); .{create_window} := horizon_api +ignim := @use("../../../libraries/ignim/src/lib.hb"); +.{init_vulkan} := ignim + main := fn(): int { windowing_system_buffer := buffer.create("XHorizon\0") create_window(windowing_system_buffer) + // TODO: get WindowID + + vk_state := init_vulkan() + if vk_state == ignim.errors.IncompatibleDriver { + stn.log.info("Incompatible Vulkan Driver\0") + } + return 0 } \ No newline at end of file