filepicker_independiente squash merge
This commit is contained in:
parent
abd315f40c
commit
34f6f9bbdf
5 changed files with 1047 additions and 758 deletions
143
demo/main.cpp
Normal file
143
demo/main.cpp
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
//Demo executable based on GLFW
|
||||
#define IMGUI_IMPLEMENTATION
|
||||
#define GL_SILENCE_DEPRECATION
|
||||
|
||||
#include "unityBuild.h"
|
||||
#include "../filepicker.hpp"
|
||||
|
||||
static void glfw_error_callback(int error, const char* description) {
|
||||
fprintf(stderr, "Glfw Error %d: %s\n", error, description);
|
||||
}
|
||||
|
||||
int main(int, char**) {
|
||||
// Setup window
|
||||
glfwSetErrorCallback(glfw_error_callback);
|
||||
if (!glfwInit())
|
||||
return 1;
|
||||
|
||||
// Decide GL+GLSL versions
|
||||
#if defined(IMGUI_IMPL_OPENGL_ES2)
|
||||
// GL ES 2.0 + GLSL 100
|
||||
const char* glsl_version = "#version 100";
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
|
||||
glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
|
||||
#elif defined(__APPLE__)
|
||||
// GL 3.2 + GLSL 150
|
||||
const char* glsl_version = "#version 150";
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
|
||||
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only
|
||||
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // Required on Mac
|
||||
#else
|
||||
// GL 3.0 + GLSL 130
|
||||
const char* glsl_version = "#version 130";
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
|
||||
//glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only
|
||||
//glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // 3.0+ only
|
||||
#endif
|
||||
|
||||
// Create window with graphics context
|
||||
GLFWwindow* window = glfwCreateWindow(1280, 720, "File Picker Demo", NULL, NULL);
|
||||
if (window == NULL)
|
||||
return 1;
|
||||
glfwMakeContextCurrent(window);
|
||||
glfwSwapInterval(1); // Enable vsync
|
||||
|
||||
// Setup Dear ImGui context
|
||||
IMGUI_CHECKVERSION();
|
||||
ImGui::CreateContext();
|
||||
ImGuiIO& io = ImGui::GetIO(); (void)io;
|
||||
|
||||
// Setup Dear ImGui style
|
||||
ImGui::StyleColorsDark();
|
||||
//ImGui::StyleColorsLight();
|
||||
|
||||
// Setup Platform/Renderer backends
|
||||
ImGui_ImplGlfw_InitForOpenGL(window, true);
|
||||
ImGui_ImplOpenGL3_Init(glsl_version);
|
||||
ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
|
||||
|
||||
//
|
||||
bool debugDirectory = true;
|
||||
bool debugVolume = true;
|
||||
bool debugExtension = true;
|
||||
bool debugLogic = true;
|
||||
|
||||
// Our state
|
||||
char path[MAX_PATH * 4] = "";// = malloc(MAX_PATH * sizeof(char));
|
||||
int debugVerbosity = fp::DebugVerbosity::DIRECTORY | fp::DebugVerbosity::VOLUME | fp::DebugVerbosity::EXTENSION | fp::DebugVerbosity::LOGIC;
|
||||
bool windowOpen = true;
|
||||
bool memoryFreed = true;
|
||||
|
||||
// Main loop
|
||||
while (!glfwWindowShouldClose(window)) {
|
||||
// Poll and handle events (inputs, window resize, etc.)
|
||||
// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
|
||||
glfwPollEvents();
|
||||
|
||||
// Start the Dear ImGui frame
|
||||
ImGui_ImplOpenGL3_NewFrame();
|
||||
ImGui_ImplGlfw_NewFrame();
|
||||
ImGui::NewFrame();
|
||||
|
||||
// 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
|
||||
|
||||
fp::setDebugInfo(debugVerbosity);
|
||||
if(windowOpen)
|
||||
fp::renderFilePicker(&path[0], &windowOpen, &memoryFreed, 0);
|
||||
else if(!memoryFreed)
|
||||
fp::freeResources(&memoryFreed);
|
||||
|
||||
//if (show_demo_window)
|
||||
ImGui::SetNextWindowSize(ImVec2(500.0f, 500.0f));
|
||||
ImGui::Begin("Values", NULL, 0);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
|
||||
ImGui::PopStyleVar(1);
|
||||
ImGui::Text(path);
|
||||
// debugVerbosity = DEBUG_DIRECTORY | DEBUG_EXTENSION;
|
||||
// debugVerbosity &= ~DEBUG_DIRECTORY;
|
||||
// if (debugVerbosity & (DEBUG_DIRECTORY | DEBUG_EXTENSION));
|
||||
ImGui::Text("Debug verbosity");
|
||||
ImGui::Checkbox("Directory" , &debugDirectory);
|
||||
ImGui::Checkbox("Volume" , &debugVolume );
|
||||
ImGui::Checkbox("Extension" , &debugExtension);
|
||||
ImGui::Checkbox("Logic" , &debugLogic );
|
||||
debugVerbosity = (debugDirectory) ? debugVerbosity | fp::DIRECTORY : debugVerbosity& ~fp::DIRECTORY;
|
||||
debugVerbosity = (debugVolume) ? debugVerbosity | fp::VOLUME : debugVerbosity& ~fp::VOLUME;
|
||||
debugVerbosity = (debugExtension) ? debugVerbosity | fp::EXTENSION : debugVerbosity& ~fp::EXTENSION;
|
||||
debugVerbosity = (debugLogic) ? debugVerbosity | fp::LOGIC : debugVerbosity& ~fp::LOGIC;
|
||||
|
||||
//fp::DebugVerbosity::DIRECTORY | fp::DebugVerbosity::VOLUME | fp::DebugVerbosity::EXTENSION | fp::DebugVerbosity::LOGIC;
|
||||
if (!windowOpen)
|
||||
if(ImGui::Button("Open file picker")) {
|
||||
windowOpen = !windowOpen;
|
||||
}
|
||||
//ImGui::Text(std::to_string(state).c_str());
|
||||
//ImGui::Text(state);
|
||||
ImGui::End();
|
||||
//ImGui::ShowDemoWindow(&show_demo_window);
|
||||
|
||||
// Rendering
|
||||
ImGui::Render();
|
||||
int display_w, display_h;
|
||||
glfwGetFramebufferSize(window, &display_w, &display_h);
|
||||
glViewport(0, 0, display_w, display_h);
|
||||
glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
|
||||
ImGui::EndFrame();
|
||||
glfwSwapBuffers(window);
|
||||
}
|
||||
|
||||
// Cleanup
|
||||
ImGui_ImplOpenGL3_Shutdown();
|
||||
ImGui_ImplGlfw_Shutdown();
|
||||
ImGui::DestroyContext();
|
||||
|
||||
glfwDestroyWindow(window);
|
||||
glfwTerminate();
|
||||
|
||||
return 0;
|
||||
}
|
||||
16
demo/unityBuild.h
Normal file
16
demo/unityBuild.h
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#define WIN32_LEAN_AND_MEAN
|
||||
#define UNICODE
|
||||
#define _UNICODE
|
||||
#include "../imgui/imgui.h"
|
||||
|
||||
#ifdef IMGUI_IMPLEMENTATION
|
||||
#include "../imgui/imgui.cpp"
|
||||
#include "../imgui/imgui_demo.cpp"
|
||||
#include "../imgui/imgui_draw.cpp"
|
||||
#include "../imgui/imgui_tables.cpp"
|
||||
#include "../imgui/imgui_widgets.cpp"
|
||||
#include "../imgui/backends/imgui_impl_glfw.h"
|
||||
#include "../imgui/backends/imgui_impl_opengl3.h"
|
||||
#include "../imgui/backends/imgui_impl_opengl3.cpp"
|
||||
#include "../imgui/backends/imgui_impl_glfw.cpp"
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue