diff --git a/sysdata/programs/horizon/src/main.hb b/sysdata/programs/horizon/src/main.hb index ada7eeda..9fc340a4 100644 --- a/sysdata/programs/horizon/src/main.hb +++ b/sysdata/programs/horizon/src/main.hb @@ -1,14 +1,14 @@ stn := @use("../../../libraries/stn/src/lib.hb"); -.{string, memory, buffer} := stn +.{string, memory, buffer, random} := stn; +.{Vec2} := stn.math horizon_api := @use("../../../libraries/horizon_api/src/lib.hb") -render := @use("../../../libraries/render/src/lib.hb"); -.{Vec2} := @use("../../../libraries/stn/src/lib.hb").math +render := @use("../../../libraries/render/src/lib.hb") Window := struct { // TODO: Replace this with widgets - // implicit_framebuffer: + implicit_framebuffer: render.Surface, width: int, height: int, x: int, @@ -17,21 +17,34 @@ Window := struct { main := fn(): int { a := buffer.create("XHorizon\0") + + // BUG: Backbuffering is disabled screen := render.init(true) - image := render.new_surface(screen.width / 3, screen.height / 3) + // Clear the screen to black. + render.clear(screen, render.black) + + window := render.new_surface(screen.width / 3, screen.height / 3) pos := Vec2(int).(100, 100) + color := random.range(render.Color, render.black, render.white) + loop { // Clear the screen render.clear(screen, render.black) - // TODO: Get windows out of the hashmap - render.clear(image, render.white) + // TODO: Read the window buffer here + + // TODO: Get windows out of a collection and iter through + // + { + render.clear(window, render.white) + + // Apply the image to the screen + render.put_surface(screen, window, pos) + } - // Apply the image to the screen - render.put_surface(screen, image, pos) // Sync the screen render.sync(screen) } diff --git a/sysdata/programs/horizon_testing_program/src/main.hb b/sysdata/programs/horizon_testing_program/src/main.hb index 01d57a3c..b8f93160 100644 --- a/sysdata/programs/horizon_testing_program/src/main.hb +++ b/sysdata/programs/horizon_testing_program/src/main.hb @@ -8,28 +8,28 @@ ignim := @use("../../../libraries/ignim/src/lib.hb"); .{errors} := ignim main := fn(): int { - windowing_system_buffer := buffer.create("XHorizon\0") + windowing_system_buffer := buffer.search("XHorizon\0") // TODO: get WindowID create_window(windowing_system_buffer) - program_name := "Horizon Testing Program\0" - program_version := ignim.version.make_version(0, 1, 0) - engine_name := "None\0" - engine_version := ignim.version.make_version(0, 0, 0) - api_version := ignim.version.make_api_version(0, 1, 0, 0) + // program_name := "Horizon Testing Program\0" + // program_version := ignim.version.make_version(0, 1, 0) + // engine_name := "None\0" + // engine_version := ignim.version.make_version(0, 0, 0) + // api_version := ignim.version.make_api_version(0, 1, 0, 0) - app_info := ignim.application.new_application_info(program_name, program_version, engine_name, engine_version, api_version) + // app_info := ignim.application.new_application_info(program_name, program_version, engine_name, engine_version, api_version) - create_info := ignim.instance.new_create_info(&app_info) + // create_info := ignim.instance.new_create_info(&app_info) - instance := ignim.instance.void_instance() + // instance := ignim.instance.void_instance() - // TODO: recursively follow this https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Instance - ret := ignim.instance.create_instance(&create_info, 0, &instance) - if ret == errors.IncompatibleDriver { - log.error("Driver Incompatible with Vulkan\0") - } + // // TODO: recursively follow this https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Instance + // ret := ignim.instance.create_instance(&create_info, 0, &instance) + // if ret == errors.IncompatibleDriver { + // log.error("Driver Incompatible with Vulkan\0") + // } return 0 } \ No newline at end of file