imgui is always compiled in, and developer selects to enable or disable its drawing; fix bug with rendering lines that caused prosperon to crash
All checks were successful
Build and Deploy / build-linux (push) Successful in 34s
Build and Deploy / build-windows (CLANG64) (push) Successful in 9m15s
Build and Deploy / package-dist (push) Has been skipped
Build and Deploy / deploy-itch (push) Has been skipped
Build and Deploy / deploy-gitea (push) Has been skipped

This commit is contained in:
2025-02-20 17:28:27 -06:00
parent d2325c20bd
commit 60dce4a08f
5 changed files with 36 additions and 36 deletions

View File

@@ -6,7 +6,7 @@ link = []
src = [] src = []
if not get_option('editor') if not get_option('editor')
add_project_arguments('-DNEDITOR', language:'c') # add_project_arguments('-DNEDITOR', language:'c')
endif endif
git_tag_cmd = run_command('git', 'describe', '--tags', '--abbrev=0', check: false) git_tag_cmd = run_command('git', 'describe', '--tags', '--abbrev=0', check: false)

View File

@@ -32,7 +32,8 @@ draw.line = function render_line(points, color = Color.white, thickness = 1, pip
mesh, mesh,
pipeline, pipeline,
first_index: 0, first_index: 0,
num_indices: mesh.num_indices num_indices: mesh.num_indices,
image:whiteimage
}) })
} }
draw.line[prosperon.DOC] = ` draw.line[prosperon.DOC] = `

View File

@@ -2,6 +2,15 @@ var imgui = this;
var debug = {} var debug = {}
var imdebug = function imdebug() {
imtoggle("Physics", debug, "draw_phys");
imtoggle("Bouning boxes", debug, "draw_bb");
imtoggle("Names", debug, "draw_names");
imtoggle("Sprite nums", debug, "sprite_nums");
imtoggle("Debug overlay", debug, "show");
imtoggle("Show ur names", debug, "urnames");
};
function imtoggle(name, obj, field) { function imtoggle(name, obj, field) {
var changed = false; var changed = false;
var old = obj[field]; var old = obj[field];
@@ -10,9 +19,14 @@ function imtoggle(name, obj, field) {
return false; return false;
}; };
var render_menu = true;
imgui.render_menu = function(render) { render_menu = render; }
imgui.prosperon_menu = function prosperon_menu() { imgui.prosperon_menu = function prosperon_menu() {
imgui.newframe(); imgui.newframe();
if (render_menu) {
if (debug.console) if (debug.console)
debug.console = imgui.window("console", _ => { debug.console = imgui.window("console", _ => {
imgui.text(console.transcript); imgui.text(console.transcript);
@@ -45,10 +59,10 @@ imgui.prosperon_menu = function prosperon_menu() {
imgui.sokol_gfx(); imgui.sokol_gfx();
imgui.menu("Graphics", _ => { imgui.menu("Graphics", _ => {
imtoggle("Draw sprites", render, "draw_sprites"); // imtoggle("Draw sprites", render, "draw_sprites");
imtoggle("Draw particles", render, "draw_particles"); // imtoggle("Draw particles", render, "draw_particles");
imtoggle("Draw HUD", render, "draw_hud"); // imtoggle("Draw HUD", render, "draw_hud");
imtoggle("Draw GUI", render, "draw_gui"); // imtoggle("Draw GUI", render, "draw_gui");
imgui.menu("Window", _ => { imgui.menu("Window", _ => {
prosperon.fullscreen = imgui.checkbox("fullscreen", prosperon.fullscreen); prosperon.fullscreen = imgui.checkbox("fullscreen", prosperon.fullscreen);
@@ -81,9 +95,8 @@ imgui.prosperon_menu = function prosperon_menu() {
} }
}); });
*/ */
// prosperon.imgui(); }
prosperon.imgui();
imgui.endframe(render._main);
}; };
imgui.windowpos[prosperon.DOC] = `Return the position of the current ImGui window as an ImVec2. imgui.windowpos[prosperon.DOC] = `Return the position of the current ImGui window as an ImVec2.
@@ -725,4 +738,4 @@ imgui.init[prosperon.DOC] = `Initialize ImGui with SDL and SDL_gpu, creating the
:return: None :return: None
`; `;
return false return this

View File

@@ -6,7 +6,6 @@ var emitter = use('emitter')
var os = use('os') var os = use('os')
var event = use('event') var event = use('event')
var imgui = use('imgui') var imgui = use('imgui')
var tracy = use('tracy') var tracy = use('tracy')
var waittime = 1/240 var waittime = 1/240

View File

@@ -24,8 +24,8 @@ var default_conf = {
identifier: "world.pockle.prosperon", identifier: "world.pockle.prosperon",
creator: "Pockle World LLC", creator: "Pockle World LLC",
copyright: "Copyright Pockle World 2025", copyright: "Copyright Pockle World 2025",
type: "application", type: "game",
url: "https://github.com/johnbrethauer/prosperon" url: "https://prosperon.dev"
} }
var config = use('config.js') var config = use('config.js')
@@ -105,7 +105,6 @@ sprite_pipeline.target = {
depth: "d32 float s8" depth: "d32 float s8"
}; };
var appy = {}; var appy = {};
appy.inputs = {}; appy.inputs = {};
if (os.platform() === "macos") { if (os.platform() === "macos") {
@@ -116,9 +115,6 @@ appy.inputs["M-f4"] = os.exit;
controller.player[0].control(appy); controller.player[0].control(appy);
prosperon.window = prosperon.engine_start(config); prosperon.window = prosperon.engine_start(config);
var driver = "vulkan" var driver = "vulkan"
@@ -141,6 +137,14 @@ render._main.window = prosperon.window
render._main.claim_window(prosperon.window) render._main.claim_window(prosperon.window)
render._main.set_swapchain('sdr', 'vsync') render._main.set_swapchain('sdr', 'vsync')
var whiteimage = {}
whiteimage.surface = graphics.make_surface([1,1])
whiteimage.surface.rect({x:0,y:0,width:1,height:1}, [1,1,1,1])
whiteimage.texture = render._main.load_texture(whiteimage.surface)
var imgui = use('imgui')
if (imgui) imgui.init(render._main, prosperon.window)
var unit_transform = os.make_transform(); var unit_transform = os.make_transform();
var cur = {}; var cur = {};
@@ -653,9 +657,6 @@ render_camera[prosperon.DOC] = `Render a scene using the provided camera, drawin
:return: None :return: None
` `
var imgui = use('imgui')
if (imgui) imgui.init(render._main, prosperon.window);
var swaps = []; var swaps = [];
function gpupresent() { function gpupresent() {
os.clean_transforms(); os.clean_transforms();
@@ -675,7 +676,7 @@ function gpupresent() {
load: "clear" load: "clear"
}); });
if (imgui) { if (imgui) { // draws any imgui commands present
cmds.push_debug_group("imgui") cmds.push_debug_group("imgui")
imgui.prepend(cmds); imgui.prepend(cmds);
var pass = cmds.render_pass({ var pass = cmds.render_pass({
@@ -790,20 +791,6 @@ render.scissor[prosperon.DOC] = `Set the GPU scissor region to the specified rec
:return: None :return: None
` `
var imdebug = function imdebug() {
imtoggle("Physics", debug, "draw_phys");
imtoggle("Bouning boxes", debug, "draw_bb");
imtoggle("Names", debug, "draw_names");
imtoggle("Sprite nums", debug, "sprite_nums");
imtoggle("Debug overlay", debug, "show");
imtoggle("Show ur names", debug, "urnames");
};
var observed_tex = undefined;
var debug = {}
debug.console = false
// Some initialization // Some initialization
shader_type = render._main.shader_format()[0]; shader_type = render._main.shader_format()[0];