Excised all IMGUI
This commit is contained in:
parent
056ce83eb8
commit
7c611368be
|
@ -513,29 +513,25 @@ if (nk_begin(ctx, "Menu Demo", nk_rect(600, 350, 275, 250), nuk_std)) {
|
|||
nk_menubar_begin(ctx);
|
||||
|
||||
nk_layout_row_dynamic(ctx, 30, 4);
|
||||
|
||||
/*
|
||||
char bbbuf[256];
|
||||
snprintf(bbbuf, 256, "Current level: %s", current_level[0] == '\0' ? "Level not saved!" : current_level);
|
||||
nk_label(ctx, bbbuf, NK_TEXT_LEFT);
|
||||
|
||||
if (nk_menu_begin_text(ctx, "Windows", 7, NK_TEXT_LEFT, nk_vec2(100, 30))) {
|
||||
*/
|
||||
if (nk_menu_begin_label(ctx, "Windows", NK_TEXT_LEFT, nk_vec2(100, 200))) {
|
||||
nk_layout_row_dynamic(ctx, 30, 1);
|
||||
|
||||
if (nk_button_label(ctx, "Resources")) editor.showAssetMenu = !editor.showAssetMenu;
|
||||
if (nk_button_label(ctx, "Hierarchy")) editor.showHierarchy = !editor.showHierarchy;
|
||||
|
||||
/*
|
||||
ImGui::MenuItem("Lighting", "F5", &editor.showLighting);
|
||||
ImGui::MenuItem("Game Settings", "F6",
|
||||
&editor.showGameSettings);
|
||||
ImGui::MenuItem("View", "F7", &editor.showViewmode);
|
||||
ImGui::MenuItem("Debug", "F8", &editor.showDebugMenu);
|
||||
ImGui::MenuItem("Export", "F9", &editor.showExport);
|
||||
ImGui::MenuItem("Level", "F10", &editor.showLevel);
|
||||
ImGui::MenuItem("REPL", "`", &editor.showREPL);
|
||||
|
||||
*/
|
||||
nk_checkbox_label(ctx, "Resources", &editor.showAssetMenu);
|
||||
nk_checkbox_label(ctx, "Hierarchy", &editor.showHierarchy);
|
||||
nk_checkbox_label(ctx, "Lighting F5", &editor.showLighting);
|
||||
nk_checkbox_label(ctx, "Game Settings F6", &editor.showGameSettings);
|
||||
nk_checkbox_label(ctx, "View F7", &editor.showViewmode);
|
||||
nk_checkbox_label(ctx, "Debug F8", &editor.showDebugMenu);
|
||||
nk_checkbox_label(ctx, "Export F9", &editor.showExport);
|
||||
nk_checkbox_label(ctx, "Level F10", &editor.showLevel);
|
||||
nk_checkbox_label(ctx, "REPL", &editor.showREPL);
|
||||
|
||||
nk_menu_end(ctx);
|
||||
}
|
||||
|
||||
if (nk_menu_begin_text(ctx, "Levels", 100, 0, nk_vec2(100, 50))) {
|
||||
|
@ -557,7 +553,7 @@ if (nk_begin(ctx, "Menu Demo", nk_rect(600, 350, 275, 250), nuk_std)) {
|
|||
get_levels();
|
||||
}
|
||||
|
||||
// ImGui::InputText("", levelname, MAXNAME);
|
||||
nk_edit_string_zero_terminated(ctx, NK_EDIT_SIMPLE, levelname, MAXNAME-1, nk_filter_default);
|
||||
|
||||
vec_walk(levels, (void (*)(void *)) &editor_level_btn);
|
||||
|
||||
|
@ -580,147 +576,178 @@ nk_end(ctx);
|
|||
|
||||
|
||||
// Shadow map vars
|
||||
if (editor.showLighting && nk_begin(ctx, "Lighting options", nk_rect_std, nuk_std)) {
|
||||
if (nk_begin(ctx, "Lighting options", nk_rect_std, nuk_std)) {
|
||||
nk_layout_row_dynamic(ctx, 25, 1);
|
||||
if (nk_combo_begin_text(ctx, "Directional shadow map", 50, nk_vec2(nk_widget_width(ctx), 400))) {
|
||||
nk_slider_float(ctx, -200.f, &near_plane, 200.f, 1.f);
|
||||
nk_slider_float(ctx, -200.f, &far_plane, 200.f, 1.f);
|
||||
nk_slider_float(ctx, 0.f, &shadowLookahead, 100.f, 1.f);
|
||||
nk_slider_float(ctx, 0.f, &plane_size, 100.f, 1.f);
|
||||
nk_label(ctx, "Directional shadow map", NK_TEXT_LEFT);
|
||||
|
||||
nk_property_float(ctx, "Near plane", -200.f, &near_plane, 200.f, 1.f, 0.01f);
|
||||
nk_property_float(ctx, "Far plane", -200.f, &far_plane, 200.f, 1.f, 0.01f);
|
||||
nk_property_float(ctx, "Shadow lookahead", 0.f, &shadowLookahead, 100.f, 1.f, 0.01f);
|
||||
nk_property_float(ctx, "Plane size", 0.f, &plane_size, 100.f, 1.f, 0.01f);
|
||||
|
||||
|
||||
|
||||
}nk_end(ctx);
|
||||
|
||||
|
||||
if (editor.showGameSettings) {
|
||||
nk_begin(ctx, "Game settings", nk_rect_std, nuk_std);
|
||||
|
||||
//nk_edit_string_zero_terminated(ctx, NK_EDIT_SIMPLE, cur_project->name, 126, nk_filter_default);
|
||||
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, "Physics", NK_MINIMIZED)) {
|
||||
nk_property_float(ctx, "2d Gravity", -5000.f, &phys2d_gravity, 0.f, 1.f, 0.1f);
|
||||
phys2d_apply();
|
||||
nk_tree_pop(ctx);
|
||||
}
|
||||
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, "Quality", NK_MINIMIZED)) {
|
||||
nk_tree_pop(ctx);
|
||||
}
|
||||
nk_end(ctx);
|
||||
}
|
||||
|
||||
|
||||
if (editor.showStats) {
|
||||
nk_begin(ctx, "Stats", nk_rect_std, nuk_std);
|
||||
nk_labelf(ctx, NK_TEXT_LEFT, "FPS: %2.4f", 1.f/deltaT);
|
||||
nk_labelf(ctx, NK_TEXT_LEFT, "Triangles rendered: %llu", triCount);
|
||||
nk_end(ctx);
|
||||
}
|
||||
|
||||
|
||||
if (editor.showREPL) {
|
||||
nk_begin(ctx, "REPL", nk_rect_std, nuk_std);
|
||||
|
||||
nk_flags active;
|
||||
|
||||
static char buffer[512] = { '\0' };
|
||||
|
||||
active = nk_edit_string_zero_terminated(ctx, NK_EDIT_BOX|NK_EDIT_SIG_ENTER, buffer, 512-1, nk_filter_ascii);
|
||||
if (active && NK_EDIT_COMMITED) {
|
||||
script_run(buffer);
|
||||
buffer[0] = '\0';
|
||||
}
|
||||
|
||||
nk_end(ctx);
|
||||
|
||||
}
|
||||
|
||||
if (editor.showViewmode) {
|
||||
nk_begin(ctx, "View options", nk_rect_std, nuk_std);
|
||||
|
||||
nk_property_float(ctx, "Camera FOV", 0.1f, &editorFOV, 90.f, 1.f, 0.1f);
|
||||
nk_property_float(ctx, "Camera Near Plane", 0.1f, &editorClose, 5.f, 0.1f, 0.01f);
|
||||
nk_property_float(ctx, "Camera Far Plane", 50.f, &editorFar, 10000.f, 1.f, 1.f);
|
||||
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, "Shading mode", NK_MINIMIZED)) {
|
||||
renderMode = nk_option_label(ctx, "Lit", renderMode == LIT) ? LIT : renderMode;
|
||||
renderMode = nk_option_label(ctx, "Unlit", renderMode == UNLIT) ? UNLIT : renderMode;
|
||||
renderMode = nk_option_label(ctx, "Wireframe", renderMode == WIREFRAME) ? WIREFRAME : renderMode;
|
||||
renderMode = nk_option_label(ctx, "Directional shadow map", renderMode == DIRSHADOWMAP) ? DIRSHADOWMAP : renderMode;
|
||||
nk_tree_pop(ctx);
|
||||
}
|
||||
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, "Lighting", NK_MINIMIZED)) {
|
||||
nk_checkbox_label(ctx, "Shadows", &renderDynamicShadows);
|
||||
nk_checkbox_label(ctx, "Ambient Occlusion", &renderAO);
|
||||
nk_tree_pop(ctx);
|
||||
}
|
||||
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, "Debug Draws", NK_MINIMIZED)) {
|
||||
nk_checkbox_label(ctx, "Gizmos", &renderGizmos);
|
||||
nk_checkbox_label(ctx, "Grid", &showGrid);
|
||||
nk_checkbox_label(ctx, "Physics", &debugDrawPhysics);
|
||||
nk_tree_pop(ctx);
|
||||
}
|
||||
|
||||
nk_end(ctx);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
if (editor.showGameSettings) {
|
||||
ImGui::Begin("Game settings", &editor.showGameSettings);
|
||||
|
||||
ImGui::InputText("Game name", cur_project->name, 127);
|
||||
|
||||
if (ImGui::CollapsingHeader("Physics")) {
|
||||
ImGui::DragFloat("2d Gravity", &phys2d_gravity, 1.f, -5000.f,
|
||||
0.f, "%.3f");
|
||||
phys2d_apply();
|
||||
}
|
||||
|
||||
if (ImGui::CollapsingHeader("Quality")) {
|
||||
|
||||
}
|
||||
|
||||
ImGui::End();
|
||||
}
|
||||
|
||||
|
||||
if (editor.showStats) {
|
||||
ImGui::Begin("Stats", &editor.showStats);
|
||||
ImGui::Text("FPS: %2.4f", 1.f / deltaT);
|
||||
ImGui::Text("Triangles rendered: %llu", triCount);
|
||||
ImGui::End();
|
||||
}
|
||||
|
||||
|
||||
if (editor.showREPL) {
|
||||
ImGuiInputTextFlags flags = ImGuiInputTextFlags_EnterReturnsTrue;
|
||||
ImGui::Begin("REPL", &editor.showREPL);
|
||||
static char buffer[512] = { '\0' };
|
||||
if (ImGui::InputText("", buffer, 512, flags)) {
|
||||
//scheme_load_string(sc, buffer);
|
||||
script_run(buffer);
|
||||
buffer[0] = { '\0' };
|
||||
}
|
||||
ImGui::End();
|
||||
|
||||
}
|
||||
|
||||
if (editor.showViewmode) {
|
||||
ImGui::Begin("View options", &editor.showViewmode);
|
||||
|
||||
ImGui::SliderFloat("Camera FOV", &editorFOV, 0.1f, 90.f);
|
||||
ImGui::SliderFloat("Camera Near Plane", &editorClose, 0.1f, 5.f);
|
||||
ImGui::SliderFloat("Camera Far Plane", &editorFar, 50.f, 10000.f);
|
||||
|
||||
if (ImGui::CollapsingHeader("Shading mode")) {
|
||||
ImGui::RadioButton("Lit", &renderMode, RenderMode::LIT);
|
||||
ImGui::RadioButton("Unlit", &renderMode, RenderMode::UNLIT);
|
||||
ImGui::RadioButton("Wireframe", &renderMode,
|
||||
RenderMode::WIREFRAME);
|
||||
ImGui::RadioButton("Directional shadow map", &renderMode,
|
||||
RenderMode::DIRSHADOWMAP);
|
||||
}
|
||||
|
||||
if (ImGui::CollapsingHeader("Lighting")) {
|
||||
ImGui::Checkbox("Shadows", &renderDynamicShadows);
|
||||
ImGui::Checkbox("Ambient Occlusion", &renderAO);
|
||||
}
|
||||
|
||||
if (ImGui::CollapsingHeader("Debug Draws")) {
|
||||
ImGui::Checkbox("Gizmos", &renderGizmos);
|
||||
ImGui::Checkbox("Grid", &showGrid);
|
||||
ImGui::Checkbox("Physics", &debugDrawPhysics);
|
||||
}
|
||||
|
||||
ImGui::End();
|
||||
}
|
||||
|
||||
if (editor.showHierarchy) {
|
||||
ImGui::Begin("Objects", &editor.showHierarchy);
|
||||
nk_begin(ctx, "Objects", nk_rect_std, nuk_std);
|
||||
|
||||
if (ImGui::Button("New Object")) {
|
||||
if (nk_button_label(ctx, "New Object")) {
|
||||
MakeGameobject();
|
||||
}
|
||||
|
||||
obj_gui_hierarchy(selectedobject);
|
||||
|
||||
ImGui::End();
|
||||
nk_end(ctx);
|
||||
}
|
||||
|
||||
ImGui::Begin("Simulate");
|
||||
|
||||
nk_begin(ctx, "Simulate", nk_rect_std, nuk_std);
|
||||
|
||||
if (physOn) {
|
||||
if (ImGui::Button("Pause"))
|
||||
if (nk_button_label(ctx, "Pause"))
|
||||
game_pause();
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Stop"))
|
||||
if (nk_button_label(ctx, "Stop"))
|
||||
game_stop();
|
||||
} else {
|
||||
if (ImGui::Button("Play"))
|
||||
if (nk_button_label(ctx, "Play"))
|
||||
game_start();
|
||||
}
|
||||
|
||||
ImGui::End();
|
||||
nk_end(ctx);
|
||||
|
||||
|
||||
ImGui::Begin("Prefab Creator");
|
||||
nk_begin(ctx, "Prefab Creator", nk_rect_std, nuk_std);
|
||||
|
||||
vec_walk(prefabs, (void (*)(void *)) &editor_prefab_btn);
|
||||
|
||||
ImGui::End();
|
||||
nk_end(ctx);
|
||||
|
||||
|
||||
if (editor.showAssetMenu) {
|
||||
ImGui::Begin("Asset Menu", &editor.showAssetMenu);
|
||||
nk_begin(ctx, "Asset Menu", nk_rect_std, nuk_std);
|
||||
//active = nk_edit_string_zero_terminated(ctx, NK_EDIT_BOX|NK_EDIT_SIG_ENTER, buffer, 512-1, nk_filter_ascii);
|
||||
nk_edit_string_zero_terminated(ctx, NK_EDIT_SIMPLE, asset_search_buffer, 100, nk_filter_ascii);
|
||||
|
||||
ImGui::InputText("Search", asset_search_buffer, 100,
|
||||
ImGuiInputTextFlags_CallbackEdit, MyCallback);
|
||||
|
||||
if (ImGui::Button("Reload all files"))
|
||||
/*
|
||||
if (data->EventFlag == ImGuiInputTextFlags_CallbackCompletion) {
|
||||
data->InsertChars(data->CursorPos, "..");
|
||||
} else if (data->EventFlag == ImGuiInputTextFlags_CallbackHistory) {
|
||||
if (data->EventKey == ImGuiKey_UpArrow) {
|
||||
data->DeleteChars(0, data->BufTextLen);
|
||||
data->InsertChars(0, "Pressed Up!");
|
||||
data->SelectAll();
|
||||
} else if (data->EventKey == ImGuiKey_DownArrow) {
|
||||
data->DeleteChars(0, data->BufTextLen);
|
||||
data->InsertChars(0, "Pressed Down!");
|
||||
data->SelectAll();
|
||||
}
|
||||
} else if (data->EventFlag == ImGuiInputTextFlags_CallbackEdit) {
|
||||
int i = 0;
|
||||
if (data->Buf[0] == '\0')
|
||||
while (i < shlen(assets))
|
||||
assets[i].value->searched = true;
|
||||
else
|
||||
while (i < shlen(assets))
|
||||
assets[i].value->searched =
|
||||
(strstr(assets[i].value->filename, data->Buf) ==
|
||||
NULL) ? false : true;
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
if (nk_button_label(ctx,"Reload all files"))
|
||||
get_all_files();
|
||||
|
||||
ImGui::BeginChild("##scrolling");
|
||||
nk_group_begin(ctx, "##scrolling", NK_WINDOW_NO_SCROLLBAR);
|
||||
for (int i = 0; i < shlen(assets); i++) {
|
||||
if (!assets[i].value->searched)
|
||||
continue;
|
||||
|
||||
if (ImGui::Button(assets[i].value->filename + stemlen)) {
|
||||
if (nk_button_label(ctx, assets[i].value->filename + stemlen)) {
|
||||
editor_selectasset(assets[i].value);
|
||||
}
|
||||
}
|
||||
ImGui::EndChild();
|
||||
nk_group_end(ctx);
|
||||
|
||||
ImGui::End();
|
||||
nk_end(ctx);
|
||||
}
|
||||
|
||||
if (selected_asset)
|
||||
|
@ -730,31 +757,33 @@ nk_end(ctx);
|
|||
|
||||
|
||||
if (editor.showDebugMenu) {
|
||||
ImGui::Begin("Debug Menu", &editor.showDebugMenu);
|
||||
if (ImGui::Button("Reload Shaders")) {
|
||||
nk_begin(ctx, "Debug Menu", nk_rect_std, nuk_std);
|
||||
if (nk_button_label(ctx, "Reload Shaders")) {
|
||||
shader_compile_all();
|
||||
}
|
||||
//ImGui::SliderFloat("Grid scale", &gridScale, 100.f, 500.f, "%1.f");
|
||||
|
||||
ImGui::SliderInt("Grid 1 Span", &grid1_span, 1, 500);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Draw", &grid1_draw);
|
||||
nk_property_int(ctx, "Grid 1 Span", 1, &grid1_span, 500, 1, 1);
|
||||
nk_checkbox_label(ctx, "Draw", &grid1_draw);
|
||||
|
||||
ImGui::SliderInt("Grid 2 Span", &grid2_span, 10, 1000);
|
||||
ImGui::SameLine();
|
||||
ImGui::Checkbox("Draw", &grid2_draw);
|
||||
nk_property_int(ctx, "Grid 2 Span", 10, &grid2_span, 1000, 1, 1);
|
||||
nk_checkbox_label(ctx, "Draw", &grid2_draw);
|
||||
|
||||
|
||||
ImGui::SliderFloat("Grid Opacity", &gridOpacity, 0.f, 1.f);
|
||||
ImGui::SliderFloat("Small unit", &smallGridUnit, 0.5f, 5.f);
|
||||
ImGui::SliderFloat("Big unit", &bigGridUnit, 10.f, 50.f);
|
||||
ImGui::SliderFloat("Small thickness", &gridSmallThickness, 1.f, 10.f, "%1.f");
|
||||
ImGui::SliderFloat("Big thickness", &gridBigThickness, 1.f, 10.f, "%1.f");
|
||||
ImGui::ColorEdit3("1 pt grid color", (float*)&gridSmallColor);
|
||||
ImGui::ColorEdit3("10 pt grid color", (float*)&gridBigColor);
|
||||
nk_property_float(ctx, "Grid Opacity",0.f, &gridOpacity, 1.f, 0.01f, 0.01f);
|
||||
nk_property_float(ctx, "Small unit", 0.5f,&smallGridUnit, 5.f, 0.1f, 0.1f);
|
||||
nk_property_float(ctx, "Big unit", 10.f,&bigGridUnit, 50.f, 1.f, 0.1f);
|
||||
nk_property_float(ctx, "Small thickness",1.f, &gridSmallThickness, 10.f, 0.1f, 0.1f);
|
||||
nk_property_float(ctx, "Big thickness", 1.f, &gridBigThickness, 10.f, 0.1f, 0.1f);
|
||||
|
||||
static struct nk_colorf smgrd;
|
||||
static struct nk_colorf lgrd;
|
||||
|
||||
nk_color_pick(ctx, &smgrd, NK_RGBA);
|
||||
nk_color_pick(ctx, &lgrd, NK_RGBA);
|
||||
|
||||
//ImGui::SliderInt("MSAA", &msaaSamples, 0, 4);
|
||||
ImGui::End();
|
||||
nk_end(ctx);
|
||||
}
|
||||
|
||||
startobjectgui:
|
||||
|
@ -764,53 +793,51 @@ nk_end(ctx);
|
|||
selectedobject->transform.position[1], 5);
|
||||
|
||||
|
||||
ImGui::Begin("Object Parameters");
|
||||
nk_begin(ctx, "Object Parameters", nk_rect_std, nuk_std);
|
||||
|
||||
if (ImGui::Button("Save"))
|
||||
if (nk_button_label(ctx, "Save"))
|
||||
gameobject_saveprefab(selectedobject);
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Del")) {
|
||||
// ImGui::SameLine();
|
||||
if (nk_button_label(ctx, "Del")) {
|
||||
gameobject_delete(selected_index);
|
||||
pickGameObject(-1);
|
||||
ImGui::End();
|
||||
nk_end(ctx);
|
||||
goto startobjectgui;
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
// ImGui::SameLine();
|
||||
if (selectedobject->editor.prefabSync) {
|
||||
if (ImGui::Button("Revert"))
|
||||
if (nk_button_label(ctx, "Revert"))
|
||||
gameobject_revertprefab(selectedobject);
|
||||
|
||||
}
|
||||
|
||||
|
||||
ImGui::InputText("Name", selectedobject->editor.mname, 50);
|
||||
nk_edit_string_zero_terminated(ctx, "Name", selectedobject->editor.mname, 50, nk_filter_ascii);
|
||||
|
||||
ImGui::InputText("Prefab", selectedobject->editor.prefabName, 50,
|
||||
selectedobject->editor.
|
||||
prefabSync ? ImGuiInputTextFlags_ReadOnly : 0);
|
||||
nk_edit_string_zero_terminated(ctx, "Prefab", selectedobject->editor.prefabName, 50, nk_filter_ascii);
|
||||
// Disabled if::::: selectedobject->editor.prefabSync ? ImGuiInputTextFlags_ReadOnly : 0);
|
||||
|
||||
object_gui(selectedobject);
|
||||
|
||||
|
||||
ImGui::End();
|
||||
nk_end(ctx);
|
||||
|
||||
|
||||
ImGui::Begin("Components");
|
||||
nk_begin(ctx, "Components", nk_rect_std, nuk_std);
|
||||
|
||||
for (int i = 0; i < ncomponent; i++) {
|
||||
if (ImGui::Button(components[i].name)) {
|
||||
if (nk_button_label(ctx, components[i].name)) {
|
||||
gameobject_addcomponent(selectedobject, &components[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ImGui::End();
|
||||
nk_end(ctx);
|
||||
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
|
||||
void editor_render()
|
||||
|
@ -827,40 +854,6 @@ void editor_render()
|
|||
|
||||
editor_project_gui();
|
||||
|
||||
if (nk_begin(ctx, "Demo", nk_rect(50, 50, 230, 250),
|
||||
NK_WINDOW_BORDER|NK_WINDOW_MOVABLE|NK_WINDOW_SCALABLE|
|
||||
NK_WINDOW_MINIMIZABLE|NK_WINDOW_TITLE))
|
||||
{
|
||||
enum {EASY, HARD};
|
||||
static int op = EASY;
|
||||
static int property = 20;
|
||||
nk_layout_row_static(ctx, 30, 80, 1);
|
||||
if (nk_button_label(ctx, "button"))
|
||||
fprintf(stdout, "button pressed\n");
|
||||
|
||||
nk_layout_row_dynamic(ctx, 30, 2);
|
||||
if (nk_option_label(ctx, "easy", op == EASY)) op = EASY;
|
||||
if (nk_option_label(ctx, "hard", op == HARD)) op = HARD;
|
||||
|
||||
nk_layout_row_dynamic(ctx, 25, 1);
|
||||
nk_property_int(ctx, "Compression:", 0, &property, 100, 10, 1);
|
||||
|
||||
nk_layout_row_dynamic(ctx, 20, 1);
|
||||
nk_label(ctx, "background:", NK_TEXT_LEFT);
|
||||
nk_layout_row_dynamic(ctx, 25, 1);
|
||||
if (nk_combo_begin_color(ctx, nk_rgb_cf(bg), nk_vec2(nk_widget_width(ctx),400))) {
|
||||
nk_layout_row_dynamic(ctx, 120, 1);
|
||||
bg = nk_color_picker(ctx, bg, NK_RGBA);
|
||||
nk_layout_row_dynamic(ctx, 25, 1);
|
||||
bg.r = nk_propertyf(ctx, "#R:", 0, bg.r, 1.0f, 0.01f,0.005f);
|
||||
bg.g = nk_propertyf(ctx, "#G:", 0, bg.g, 1.0f, 0.01f,0.005f);
|
||||
bg.b = nk_propertyf(ctx, "#B:", 0, bg.b, 1.0f, 0.01f,0.005f);
|
||||
bg.a = nk_propertyf(ctx, "#A:", 0, bg.a, 1.0f, 0.01f,0.005f);
|
||||
nk_combo_end(ctx);
|
||||
}
|
||||
}
|
||||
nk_end(ctx);
|
||||
|
||||
nk_glfw3_render(&nkglfw, NK_ANTI_ALIASING_ON, MAX_VERTEX_BUFFER, MAX_ELEMENT_BUFFER);
|
||||
}
|
||||
|
||||
|
@ -1039,13 +1032,13 @@ void editor_asset_text_gui(char *text)
|
|||
|
||||
void editor_asset_gui(struct fileasset *asset)
|
||||
{
|
||||
/*
|
||||
ImGui::Begin("Asset Viewer");
|
||||
|
||||
ImGui::Text("%s", selected_asset->filename);
|
||||
nk_begin(ctx, "Asset Viewer", nk_rect_std, nuk_std);
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Close"))
|
||||
nk_labelf(ctx, NK_TEXT_LEFT, "%s", selected_asset->filename);
|
||||
|
||||
//ImGui::SameLine();
|
||||
if (nk_button_label(ctx, "Close"))
|
||||
selected_asset = NULL;
|
||||
|
||||
switch (asset->type) {
|
||||
|
@ -1061,8 +1054,8 @@ void editor_asset_gui(struct fileasset *asset)
|
|||
break;
|
||||
}
|
||||
|
||||
ImGui::End();
|
||||
*/
|
||||
nk_end(ctx);
|
||||
|
||||
}
|
||||
|
||||
void editor_load_projects()
|
||||
|
@ -1160,15 +1153,17 @@ void editor_import_project(char *path)
|
|||
#include "transform.h"
|
||||
#include "static_actor.h"
|
||||
|
||||
|
||||
/*
|
||||
void light_gui(struct mLight *light)
|
||||
{
|
||||
object_gui(&light->obj);
|
||||
|
||||
if (ImGui::CollapsingHeader("Light")) {
|
||||
ImGui::DragFloat("Strength", &light->strength, 0.001f, 0.f, 1.f);
|
||||
ImGui::ColorEdit3("Color", &light->color[0]);
|
||||
ImGui::Checkbox("Dynamic", (bool *) &light->dynamic);
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, "Light", NK_MINIMIZED)) {
|
||||
nk_property_float(ctx, "Strength", 0.f, &light->strength, 1.f, 0.01f, 0.001f);
|
||||
// ImGui::ColorEdit3("Color", &light->color[0]);
|
||||
nk_checkbox_label(ctx, "Dynamic", (bool *) &light->dynamic);
|
||||
nk_tree_pop(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1177,11 +1172,11 @@ void pointlight_gui(struct mPointLight *light)
|
|||
{
|
||||
light_gui(&light->light);
|
||||
|
||||
if (ImGui::CollapsingHeader("Point Light")) {
|
||||
ImGui::DragFloat("Constant", &light->constant, 0.001f, 0.f, 1.f);
|
||||
ImGui::DragFloat("Linear", &light->linear, 0.001f, 0.f, 0.3f);
|
||||
ImGui::DragFloat("Quadratic", &light->quadratic, 0.001f, 0.f,
|
||||
0.3f);
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, "Point Light", NK_MINIMIZED)) {
|
||||
nk_property_float(ctx, "Constant", 0.f, &light->constant, 1.f, 0.01f, 0.001f);
|
||||
nk_property_float(ctx, "Linear", 0.f, &light->linear, 0.3f, 0.01f, 0.001f);
|
||||
nk_property_float(ctx, "Quadratic", 0.f, &light->quadratic, 0.3f, 0.01f, 0.001f);
|
||||
nk_tree_pop(ctx);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1190,14 +1185,13 @@ void spotlight_gui(struct mSpotLight *spot)
|
|||
{
|
||||
light_gui(&spot->light);
|
||||
|
||||
if (ImGui::CollapsingHeader("Spotlight")) {
|
||||
ImGui::DragFloat("Linear", &spot->linear, 0.001f, 0.f, 1.f);
|
||||
ImGui::DragFloat("Quadratic", &spot->quadratic, 0.001f, 0.f, 1.f);
|
||||
ImGui::DragFloat("Distance", &spot->distance, 0.1f, 0.f, 200.f);
|
||||
ImGui::DragFloat("Cutoff Degrees", &spot->cutoff, 0.01f, 0.f,
|
||||
0.7f);
|
||||
ImGui::DragFloat("Outer Cutoff Degrees", &spot->outerCutoff, 0.01f,
|
||||
0.f, 0.7f);
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, "Spotlight", NK_MINIMIZED)) {
|
||||
nk_property_float(ctx, "Linear", 0.f, &spot->linear, 1.f, 0.01f, 0.001f);
|
||||
nk_property_float(ctx, "Quadratic", 0.f, &spot->quadratic, 1.f, 0.01f, 0.001f);
|
||||
nk_property_float(ctx, "Distance", 0.f, &spot->distance, 200.f, 1.f, 0.1f, 200.f);
|
||||
nk_property_float(ctx, "Cutoff Degrees", 0.f, &spot->cutoff, 0.7f, 0.01f, 0.001f);
|
||||
nk_property_float(ctx, "Outer Cutoff Degrees", 0.f, &spot->outerCutoff, 0.7f, 0.01f, 0.001f);
|
||||
nk_tree_pop(ctx);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
@ -1205,31 +1199,45 @@ void spotlight_gui(struct mSpotLight *spot)
|
|||
void staticactor_gui(struct mStaticActor *sa)
|
||||
{
|
||||
object_gui(&sa->obj);
|
||||
/*
|
||||
if (ImGui::CollapsingHeader("Model")) {
|
||||
ImGui::Checkbox("Cast Shadows", &sa->castShadows);
|
||||
ImGui::Text("Model path: %s", sa->currentModelPath);
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, "Model", NK_MINIMIZED)) {
|
||||
nk_checkbox_label(ctx, "Cast Shadows", &sa->castShadows);
|
||||
nk_labelf(ctx, NK_TEXT_LEFT, "Model path: %s", sa->currentModelPath);
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Load model")) {
|
||||
//ImGui::SameLine();
|
||||
if (nk_button_label(ctx, "Load model")) {
|
||||
//asset_command = set_new_model;
|
||||
curActor = sa;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void nk_property_float3(struct nk_context *ctx, const char *label, float min, float *val, float max, float step, float dragstep) {
|
||||
nk_layout_row_dynamic(ctx, 25, 1);
|
||||
nk_label(ctx, label, NK_TEXT_LEFT);
|
||||
nk_layout_row_dynamic(ctx, 25, 3);
|
||||
nk_property_float(ctx, "X", min, &val[0], max, step, dragstep);
|
||||
nk_property_float(ctx, "Y", min, &val[1], max, step, dragstep);
|
||||
nk_property_float(ctx, "Z", min, &val[2], max, step, dragstep);
|
||||
}
|
||||
|
||||
nk_property_float2(struct nk_context *ctx, const char *label, float min, float *val, float max, float step, float dragstep) {
|
||||
nk_layout_row_dynamic(ctx, 25, 1);
|
||||
nk_label(ctx, label, NK_TEXT_LEFT);
|
||||
nk_layout_row_dynamic(ctx, 25, 2);
|
||||
nk_property_float(ctx, "X", min, &val[0], max, step, dragstep);
|
||||
nk_property_float(ctx, "Y", min, &val[1], max, step, dragstep);
|
||||
}
|
||||
|
||||
void trans_drawgui(struct mTransform *T)
|
||||
{
|
||||
/*ImGui::DragFloat3("Position", (float *) &T->position, 0.01f, -1000.f,
|
||||
1000.f, "%4.2f");
|
||||
ImGui::DragFloat("Rotation", (float *) &T->rotation[0] , 0.5f, 0.f,
|
||||
360.f, "%4.2f");
|
||||
nk_property_float3(ctx, "Position", -1000.f, T->position, 1000.f, 1.f, 1.f);
|
||||
nk_property_float3(ctx, "Rotation", 0.f, T->rotation, 360.f, 1.f, 0.1f);
|
||||
nk_property_float(ctx, "Scale", 0.f, &T->scale, 1000.f, 0.1f, 0.1f);
|
||||
}
|
||||
|
||||
ImGui::DragFloat("Scale", (float *) &T->scale, 0.001f, 0.f, 1000.f,
|
||||
"%3.1f");
|
||||
*/
|
||||
void nk_radio_button_label(struct nk_contex *ctx, const char *label, int *val, int cmp) {
|
||||
if (nk_option_label(ctx, label, *val == cmp)) *val = cmp;
|
||||
}
|
||||
|
||||
void object_gui(struct mGameObject *go)
|
||||
|
@ -1240,8 +1248,7 @@ void object_gui(struct mGameObject *go)
|
|||
|
||||
draw_point(temp_pos[0], temp_pos[1], 3);
|
||||
|
||||
//ImGui::DragFloat2("Position", (float *) temp_pos, 1.f, 0.f, 0.f,
|
||||
// "%.0f");
|
||||
nk_property_float2(ctx, "Position", 0.f, temp_pos, 1.f, 0.01f, 0.01f);
|
||||
|
||||
cpVect tvect = { temp_pos[0], temp_pos[1] };
|
||||
cpBodySetPosition(go->body, tvect);
|
||||
|
@ -1249,54 +1256,48 @@ void object_gui(struct mGameObject *go)
|
|||
float mtry = cpBodyGetAngle(go->body);
|
||||
float modtry = fmodf(mtry * RAD2DEGS, 360.f);
|
||||
float modtry2 = modtry;
|
||||
//ImGui::DragFloat("Angle", &modtry, 0.5f, -1000.f, 1000.f, "%3.1f");
|
||||
nk_property_float(ctx, "Angle", -1000.f, &modtry, 1000.f, 0.5f, 0.5f);
|
||||
modtry -= modtry2;
|
||||
cpBodySetAngle(go->body, mtry + (modtry * DEG2RADS));
|
||||
|
||||
// ImGui::DragFloat("Scale", &go->scale, 0.001f, 0.f, 1000.f, "%3.3f");
|
||||
nk_property_float(ctx, "Scale", 0.f, &go->scale, 1000.f, 0.01f, 0.001f);
|
||||
|
||||
/* if (ImGui::Button("Start")) {
|
||||
nk_layout_row_dynamic(ctx, 25, 4);
|
||||
if (nk_button_label(ctx, "Start")) {
|
||||
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Update")) {
|
||||
if (nk_button_label(ctx, "Update")) {
|
||||
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Fixed Update")) {
|
||||
if (nk_button_label(ctx, "Fixed Update")) {
|
||||
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("End")) {
|
||||
if (nk_button_label(ctx, "End")) {
|
||||
|
||||
}
|
||||
|
||||
ImGui::RadioButton("Static", (int *) &go->bodytype,
|
||||
(int) CP_BODY_TYPE_STATIC);
|
||||
ImGui::SameLine();
|
||||
ImGui::RadioButton("Dynamic", (int *) &go->bodytype,
|
||||
(int) CP_BODY_TYPE_DYNAMIC);
|
||||
ImGui::SameLine();
|
||||
ImGui::RadioButton("Kinematic", (int *) &go->bodytype,
|
||||
(int) CP_BODY_TYPE_KINEMATIC);
|
||||
nk_layout_row_dynamic(ctx, 25, 3);
|
||||
nk_radio_button_label(ctx, "Static", &go->bodytype, CP_BODY_TYPE_STATIC);
|
||||
nk_radio_button_label(ctx, "Dynamic", &go->bodytype, CP_BODY_TYPE_DYNAMIC);
|
||||
nk_radio_button_label(ctx, "Kinematic", &go->bodytype, CP_BODY_TYPE_KINEMATIC);
|
||||
|
||||
cpBodySetType(go->body, go->bodytype);
|
||||
|
||||
if (go->bodytype == CP_BODY_TYPE_DYNAMIC) {
|
||||
ImGui::DragFloat("Mass", &go->mass, 0.01f, 0.01f, 1000.f);
|
||||
nk_property_float(ctx, "Mass", 0.01f, &go->mass, 1000.f, 0.01f, 0.01f);
|
||||
cpBodySetMass(go->body, go->mass);
|
||||
}
|
||||
|
||||
ImGui::DragFloat("Friction", &go->f, 0.01f, 0.f, 10.f);
|
||||
ImGui::DragFloat("Elasticity", &go->e, 0.01f, 0.f, 2.f);
|
||||
nk_property_float(ctx, "Friction", 0.f, &go->f, 10.f, 0.01f, 0.01f);
|
||||
nk_property_float(ctx, "Elasticity", 0.f, &go->e, 2.f, 0.01f, 0.01f);
|
||||
|
||||
int n = -1;
|
||||
|
||||
for (int i = 0; i < go->components->len; i++) {
|
||||
ImGui::PushID(i);
|
||||
//ImGui::PushID(i);
|
||||
|
||||
struct component *c =
|
||||
(struct component *) vec_get(go->components, i);
|
||||
|
@ -1304,143 +1305,117 @@ void object_gui(struct mGameObject *go)
|
|||
if (c->draw_debug)
|
||||
c->draw_debug(c->data);
|
||||
|
||||
if (ImGui::CollapsingHeader(c->name)) {
|
||||
if (ImGui::Button("Del")) {
|
||||
if (nk_tree_push(ctx, NK_TREE_NODE, c->name, NK_MINIMIZED)) {
|
||||
if (nk_button_label(ctx, "Del")) {
|
||||
n = i;
|
||||
}
|
||||
|
||||
c->draw_gui(c->data);
|
||||
|
||||
|
||||
nk_tree_pop(ctx);
|
||||
}
|
||||
|
||||
ImGui::PopID();
|
||||
//ImGui::PopID();
|
||||
}
|
||||
|
||||
if (n >= 0)
|
||||
gameobject_delcomponent(go, n);
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
void sprite_gui(struct mSprite *sprite)
|
||||
{
|
||||
|
||||
//ImGui::Text("Path", sprite->tex->path);
|
||||
nk_labelf(ctx, NK_TEXT_LEFT, "Path %s", sprite->tex->path);
|
||||
//ImGui::SameLine();
|
||||
/*
|
||||
if (ImGui::Button("Load texture") && selected_asset != NULL) {
|
||||
|
||||
if (nk_button_label(ctx, "Load texture") && selected_asset != NULL) {
|
||||
sprite_loadtex(sprite, selected_asset->filename);
|
||||
}
|
||||
|
||||
if (sprite->tex != NULL) {
|
||||
ImGui::Text("%s", sprite->tex->path);
|
||||
ImGui::Text("%dx%d", sprite->tex->width, sprite->tex->height);
|
||||
if (ImGui::ImageButton
|
||||
((void *) (intptr_t) sprite->tex->id, ImVec2(50, 50))) {
|
||||
editor_selectasset_str(sprite->tex->path);
|
||||
}
|
||||
nk_labelf(ctx, NK_TEXT_LEFT, "%s", sprite->tex->path);
|
||||
nk_labelf(ctx, NK_TEXT_LEFT, "%dx%d", sprite->tex->width, sprite->tex->height);
|
||||
if (nk_button_label(ctx, "Imgbutton")) editor_selectasset_str(sprite->tex->path);
|
||||
// if (ImGui::ImageButton ((void *) (intptr_t) sprite->tex->id, ImVec2(50, 50))) {
|
||||
}
|
||||
nk_property_float2(ctx, "Sprite Position", -1.f, sprite->pos, 0.f, 0.01f, 0.01f);
|
||||
|
||||
ImGui::DragFloat2("Sprite Position", (float *) sprite->pos, 0.01f,
|
||||
-1.f, 0.f);
|
||||
|
||||
if (ImGui::Button("C")) {
|
||||
nk_layout_row_dynamic(ctx, 25, 3);
|
||||
if (nk_button_label(ctx, "C")) {
|
||||
sprite->pos[0] = -0.5f;
|
||||
sprite->pos[1] = -0.5f;
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("U")) {
|
||||
|
||||
if (nk_button_label(ctx, "U")) {
|
||||
sprite->pos[0] = -0.5f;
|
||||
sprite->pos[1] = -1.f;
|
||||
}
|
||||
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("D")) {
|
||||
|
||||
if (nk_button_label(ctx, "D")) {
|
||||
sprite->pos[0] = -0.5f;
|
||||
sprite->pos[1] = 0.f;
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
void circle_gui(struct phys2d_circle *circle)
|
||||
{
|
||||
|
||||
// ImGui::DragFloat("Radius", &circle->radius, 1.f, 1.f, 10000.f);
|
||||
// ImGui::DragFloat2("Offset", circle->offset, 1.f, 0.f, 0.f);
|
||||
nk_property_float(ctx, "Radius", 1.f, &circle->radius, 10000.f, 1.f, 1.f);
|
||||
nk_property_float2(ctx, "Offset", 0.f, circle->offset, 1.f, 0.01f, 0.01f);
|
||||
|
||||
phys2d_applycircle(circle);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void segment_gui(struct phys2d_segment *seg)
|
||||
{
|
||||
|
||||
// ImGui::DragFloat2("a", seg->a, 1.f, 0.f, 0.f);
|
||||
// ImGui::DragFloat2("b", seg->b, 1.f, 0.f, 0.f);
|
||||
nk_property_float2(ctx, "a", 0.f, seg->a, 1.f, 0.01f, 0.01f);
|
||||
nk_property_float2(ctx, "b", 0.f, seg->b, 1.f, 0.01f, 0.01f);
|
||||
|
||||
phys2d_applyseg(seg);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void box_gui(struct phys2d_box *box)
|
||||
{
|
||||
/*
|
||||
ImGui::DragFloat("Width", &box->w, 1.f, 0.f, 1000.f);
|
||||
ImGui::DragFloat("Height", &box->h, 1.f, 0.f, 1000.f);
|
||||
ImGui::DragFloat2("Offset", box->offset, 1.f, 0.f, 0.f);
|
||||
ImGui::DragFloat("Radius", &box->r, 1.f, 0.f, 100.f);
|
||||
*/
|
||||
nk_property_float(ctx, "Width", 0.f, &box->w, 1000.f, 1.f, 1.f);
|
||||
nk_property_float(ctx, "Height", 0.f, &box->h, 1000.f, 1.f, 1.f);
|
||||
nk_property_float2(ctx, "Offset", 0.f, &box->offset, 1.f, 0.01f, 0.01f);
|
||||
nk_property_float(ctx, "Radius", 0.f, &box->r, 100.f, 1.f, 0.1f);
|
||||
|
||||
phys2d_applybox(box);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void poly_gui(struct phys2d_poly *poly)
|
||||
{
|
||||
/*
|
||||
if (ImGui::Button("Add Poly Vertex"))
|
||||
phys2d_polyaddvert(poly);
|
||||
|
||||
if (nk_button_label(ctx, "Add Poly Vertex")) phys2d_polyaddvert(poly);
|
||||
|
||||
for (int i = 0; i < poly->n; i++) {
|
||||
ImGui::PushID(i);
|
||||
ImGui::DragFloat2("P", &poly->points[i * 2], 1.f, 0.f, 0.f);
|
||||
ImGui::PopID();
|
||||
//ImGui::PushID(i);
|
||||
nk_property_float2(ctx, "P", 0.f, &poly->points[i*2], 1.f, 0.1f, 0.1f);
|
||||
//ImGui::PopID();
|
||||
}
|
||||
|
||||
ImGui::DragFloat("Radius", &poly->radius);
|
||||
nk_property_float(ctx, "Radius", 0.01f, &poly->radius, 1000.f, 1.f, 0.1f);
|
||||
|
||||
phys2d_applypoly(poly);
|
||||
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
void edge_gui(struct phys2d_edge *edge)
|
||||
{
|
||||
/*
|
||||
if (ImGui::Button("Add Edge Vertex"))
|
||||
phys2d_edgeaddvert(edge);
|
||||
if (nk_button_label(ctx, "Add Edge Vertex")) phys2d_edgeaddvert(edge);
|
||||
|
||||
for (int i = 0; i < edge->n; i++) {
|
||||
ImGui::PushID(i);
|
||||
ImGui::DragFloat2("E", &edge->points[i * 2], 1.f, 0.f, 0.f);
|
||||
ImGui::PopID();
|
||||
//ImGui::PushID(i);
|
||||
nk_property_float2(ctx, "E", 0.f, &edge->points[i*2], 1.f, 0.01f, 0.01f);
|
||||
//ImGui::PopID();
|
||||
}
|
||||
|
||||
ImGui::DragFloat("Thickness", &edge->thickness);
|
||||
nk_property_float(ctx, "Thickness", 0.01f, &edge->thickness, 1.f, 0.01f, 0.01f);
|
||||
|
||||
phys2d_applyedge(edge);
|
||||
|
||||
|
||||
*/
|
||||
}
|
||||
|
||||
void editor_makenewobject()
|
||||
|
@ -1450,16 +1425,16 @@ void editor_makenewobject()
|
|||
|
||||
int obj_gui_hierarchy(struct mGameObject *selected)
|
||||
{
|
||||
/*
|
||||
|
||||
for (int i = 0; i < gameobjects->len; i++) {
|
||||
struct mGameObject *go =
|
||||
(struct mGameObject *) vec_get(gameobjects, i);
|
||||
if (ImGui::Selectable(go->editor.mname, go == selected, 1 << 22)) {
|
||||
struct mGameObject *go = (struct mGameObject *) vec_get(gameobjects, i);
|
||||
|
||||
if (nk_select_label(ctx, go->editor.mname, NK_TEXT_LEFT, go == selected)) {
|
||||
if (go != selected)
|
||||
pickGameObject(i);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1470,11 +1445,11 @@ void get_levels()
|
|||
|
||||
void editor_prefab_btn(char *prefab)
|
||||
{
|
||||
// if (ImGui::Button(prefab)) {
|
||||
// gameobject_makefromprefab(prefab);
|
||||
if (nk_button_label(ctx, prefab)) {
|
||||
gameobject_makefromprefab(prefab);
|
||||
/*GameObject* newprefab = (GameObject*)createPrefab(*prefab); */
|
||||
/*cam_inverse_goto(&camera, &newprefab->transform); */
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -1500,9 +1475,7 @@ void game_pause()
|
|||
|
||||
void pinball_flipper_gui(struct flipper *flip)
|
||||
{
|
||||
/*
|
||||
ImGui::DragFloat("Angle start", &flip->angle1, 0, 360);
|
||||
ImGui::DragFloat("Angle end", &flip->angle2, 0, 360);
|
||||
ImGui::DragFloat("Flipper speed", &flip->flipspeed, 0, 100);
|
||||
*/
|
||||
nk_property_float(ctx, "Angle start", 0.f, &flip->angle1, 360.f, 1.f, 0.1f);
|
||||
nk_property_float(ctx, "Angle end", 0.f, &flip->angle2, 360.f, 1.f, 0.1f);
|
||||
nk_property_float(ctx, "Flipper speed", 0.f, &flip->flipspeed, 100.f, 1.f, 0.1f);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue