Examples: shallow tweaks to match upcoming other examples.

This commit is contained in:
ocornut 2015-03-09 13:02:32 +00:00
parent b227b0f8cd
commit b87ec205a9
6 changed files with 21 additions and 20 deletions

View File

@ -14,13 +14,12 @@
#include <GLFW/glfw3native.h> #include <GLFW/glfw3native.h>
#endif #endif
// Data
static GLFWwindow* g_Window = NULL; static GLFWwindow* g_Window = NULL;
static double g_Time = 0.0f;
static bool g_MousePressed[3] = { false, false, false }; static bool g_MousePressed[3] = { false, false, false };
static float g_MouseWheel = 0.0f; static float g_MouseWheel = 0.0f;
static double g_Time = 0.0f;
static bool g_FontTextureLoaded = false; static bool g_FontTextureLoaded = false;
// Handles for OpenGL3 rendering
static int g_ShaderHandle = 0, g_VertHandle = 0, g_FragHandle = 0; static int g_ShaderHandle = 0, g_VertHandle = 0, g_FragHandle = 0;
static int g_AttribLocationTex = 0, g_AttribLocationProjMtx = 0; static int g_AttribLocationTex = 0, g_AttribLocationProjMtx = 0;
static int g_AttribLocationPosition = 0, g_AttribLocationUV = 0, g_AttribLocationColor = 0; static int g_AttribLocationPosition = 0, g_AttribLocationUV = 0, g_AttribLocationColor = 0;
@ -146,7 +145,7 @@ void ImGui_ImplGlfwGL3_CharCallback(GLFWwindow* window, unsigned int c)
io.AddInputCharacter((unsigned short)c); io.AddInputCharacter((unsigned short)c);
} }
void ImGui_ImplGlfwGL3_LoadFontsTexture() void ImGui_ImplGlfwGL3_InitFontsTexture()
{ {
ImGuiIO& io = ImGui::GetIO(); ImGuiIO& io = ImGui::GetIO();
@ -293,8 +292,7 @@ void ImGui_ImplGlfwGL3_Shutdown()
glDeleteProgram(g_ShaderHandle); glDeleteProgram(g_ShaderHandle);
g_ShaderHandle = 0; g_ShaderHandle = 0;
GLuint tex_id = (GLuint)ImGui::GetIO().Fonts->TexID; if (GLuint tex_id = (GLuint)ImGui::GetIO().Fonts->TexID)
if (tex_id)
{ {
glDeleteTextures(1, &tex_id); glDeleteTextures(1, &tex_id);
ImGui::GetIO().Fonts->TexID = 0; ImGui::GetIO().Fonts->TexID = 0;
@ -305,7 +303,7 @@ void ImGui_ImplGlfwGL3_Shutdown()
void ImGui_ImplGlfwGL3_NewFrame() void ImGui_ImplGlfwGL3_NewFrame()
{ {
if (!g_FontTextureLoaded) if (!g_FontTextureLoaded)
ImGui_ImplGlfwGL3_LoadFontsTexture(); ImGui_ImplGlfwGL3_InitFontsTexture();
ImGuiIO& io = ImGui::GetIO(); ImGuiIO& io = ImGui::GetIO();

View File

@ -4,8 +4,8 @@
struct GLFWwindow; struct GLFWwindow;
bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks); bool ImGui_ImplGlfwGL3_Init(GLFWwindow* window, bool install_callbacks);
void ImGui_ImplGlfwGL3_InitFontsTexture();
void ImGui_ImplGlfwGL3_Shutdown(); void ImGui_ImplGlfwGL3_Shutdown();
void ImGui_ImplGlfwGL3_LoadFontsTexture();
void ImGui_ImplGlfwGL3_NewFrame(); void ImGui_ImplGlfwGL3_NewFrame();
// GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization) // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization)

View File

@ -13,31 +13,32 @@ static void error_callback(int error, const char* description)
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
// Setup window
glfwSetErrorCallback(error_callback); glfwSetErrorCallback(error_callback);
if (!glfwInit()) if (!glfwInit())
exit(1); exit(1);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
GLFWwindow* window = glfwCreateWindow(1280, 720, "ImGui OpenGL3 example", NULL, NULL); GLFWwindow* window = glfwCreateWindow(1280, 720, "ImGui OpenGL3 example", NULL, NULL);
glfwMakeContextCurrent(window); glfwMakeContextCurrent(window);
gl3wInit(); gl3wInit();
// Setup ImGui binding
ImGui_ImplGlfwGL3_Init(window, true);
//ImGuiIO& io = ImGui::GetIO(); //ImGuiIO& io = ImGui::GetIO();
//ImFont* my_font1 = io.Fonts->AddFontDefault(); //ImFont* my_font1 = io.Fonts->AddFontDefault();
//ImFont* my_font2 = io.Fonts->AddFontFromFileTTF("extra_fonts/Karla-Regular.ttf", 15.0f); //ImFont* my_font2 = io.Fonts->AddFontFromFileTTF("extra_fonts/Karla-Regular.ttf", 15.0f);
//ImFont* my_font3 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyClean.ttf", 13.0f); my_font3->DisplayOffset.y += 1; //ImFont* my_font3 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyClean.ttf", 13.0f); my_font3->DisplayOffset.y += 1;
//ImFont* my_font4 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyTiny.ttf", 10.0f); my_font4->DisplayOffset.y += 1; //ImFont* my_font4 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyTiny.ttf", 10.0f); my_font4->DisplayOffset.y += 1;
//ImFont* my_font5 = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, io.Fonts->GetGlyphRangesJapanese()); //ImFont* my_font5 = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, io.Fonts->GetGlyphRangesJapanese());
ImGui_ImplGlfwGL3_Init(window, true); ImGui_ImplGlfwGL3_InitFontsTexture();
ImGui_ImplGlfwGL3_LoadFontsTexture();
bool show_test_window = true; bool show_test_window = true;
bool show_another_window = false; bool show_another_window = false;
ImVec4 clear_color = ImColor(114, 144, 154); ImVec4 clear_color = ImColor(114, 144, 154);
// Main loop
while (!glfwWindowShouldClose(window)) while (!glfwWindowShouldClose(window))
{ {
ImGuiIO& io = ImGui::GetIO(); ImGuiIO& io = ImGui::GetIO();

View File

@ -13,10 +13,11 @@
#include <GLFW/glfw3native.h> #include <GLFW/glfw3native.h>
#endif #endif
// Data
static GLFWwindow* g_Window = NULL; static GLFWwindow* g_Window = NULL;
static double g_Time = 0.0f;
static bool g_MousePressed[3] = { false, false, false }; static bool g_MousePressed[3] = { false, false, false };
static float g_MouseWheel = 0.0f; static float g_MouseWheel = 0.0f;
static double g_Time = 0.0f;
static bool g_FontTextureLoaded = false; static bool g_FontTextureLoaded = false;
// This is the main rendering function that you have to implement and provide to ImGui (via setting up 'RenderDrawListsFn' in the ImGuiIO structure) // This is the main rendering function that you have to implement and provide to ImGui (via setting up 'RenderDrawListsFn' in the ImGuiIO structure)
@ -124,7 +125,7 @@ void ImGui_ImplGlfw_CharCallback(GLFWwindow* window, unsigned int c)
io.AddInputCharacter((unsigned short)c); io.AddInputCharacter((unsigned short)c);
} }
void ImGui_ImplGlfw_LoadFontsTexture() void ImGui_ImplGlfw_InitFontsTexture()
{ {
ImGuiIO& io = ImGui::GetIO(); ImGuiIO& io = ImGui::GetIO();
@ -188,8 +189,7 @@ bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks)
void ImGui_ImplGlfw_Shutdown() void ImGui_ImplGlfw_Shutdown()
{ {
GLuint tex_id = (GLuint)ImGui::GetIO().Fonts->TexID; if (GLuint tex_id = (GLuint)ImGui::GetIO().Fonts->TexID)
if (tex_id)
{ {
glDeleteTextures(1, &tex_id); glDeleteTextures(1, &tex_id);
ImGui::GetIO().Fonts->TexID = 0; ImGui::GetIO().Fonts->TexID = 0;
@ -200,7 +200,7 @@ void ImGui_ImplGlfw_Shutdown()
void ImGui_ImplGlfw_NewFrame() void ImGui_ImplGlfw_NewFrame()
{ {
if (!g_FontTextureLoaded) if (!g_FontTextureLoaded)
ImGui_ImplGlfw_LoadFontsTexture(); ImGui_ImplGlfw_InitFontsTexture();
ImGuiIO& io = ImGui::GetIO(); ImGuiIO& io = ImGui::GetIO();

View File

@ -4,8 +4,8 @@
struct GLFWwindow; struct GLFWwindow;
bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks); bool ImGui_ImplGlfw_Init(GLFWwindow* window, bool install_callbacks);
void ImGui_ImplGlfw_InitFontsTexture();
void ImGui_ImplGlfw_Shutdown(); void ImGui_ImplGlfw_Shutdown();
void ImGui_ImplGlfw_LoadFontsTexture();
void ImGui_ImplGlfw_NewFrame(); void ImGui_ImplGlfw_NewFrame();
// GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization) // GLFW callbacks (installed by default if you enable 'install_callbacks' during initialization)

View File

@ -12,13 +12,14 @@ static void error_callback(int error, const char* description)
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
// Setup window
glfwSetErrorCallback(error_callback); glfwSetErrorCallback(error_callback);
if (!glfwInit()) if (!glfwInit())
exit(1); exit(1);
GLFWwindow* window = glfwCreateWindow(1280, 720, "ImGui OpenGL2 example", NULL, NULL); GLFWwindow* window = glfwCreateWindow(1280, 720, "ImGui OpenGL2 example", NULL, NULL);
glfwMakeContextCurrent(window); glfwMakeContextCurrent(window);
// Setup ImGui binding
ImGui_ImplGlfw_Init(window, true); ImGui_ImplGlfw_Init(window, true);
//ImGuiIO& io = ImGui::GetIO(); //ImGuiIO& io = ImGui::GetIO();
//ImFont* my_font1 = io.Fonts->AddFontDefault(); //ImFont* my_font1 = io.Fonts->AddFontDefault();
@ -26,12 +27,13 @@ int main(int argc, char** argv)
//ImFont* my_font3 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyClean.ttf", 13.0f); my_font3->DisplayOffset.y += 1; //ImFont* my_font3 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyClean.ttf", 13.0f); my_font3->DisplayOffset.y += 1;
//ImFont* my_font4 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyTiny.ttf", 10.0f); my_font4->DisplayOffset.y += 1; //ImFont* my_font4 = io.Fonts->AddFontFromFileTTF("extra_fonts/ProggyTiny.ttf", 10.0f); my_font4->DisplayOffset.y += 1;
//ImFont* my_font5 = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, io.Fonts->GetGlyphRangesJapanese()); //ImFont* my_font5 = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, io.Fonts->GetGlyphRangesJapanese());
ImGui_ImplGlfw_LoadFontsTexture(); ImGui_ImplGlfw_InitFontsTexture();
bool show_test_window = true; bool show_test_window = true;
bool show_another_window = false; bool show_another_window = false;
ImVec4 clear_color = ImColor(114, 144, 154); ImVec4 clear_color = ImColor(114, 144, 154);
// Main loop
while (!glfwWindowShouldClose(window)) while (!glfwWindowShouldClose(window))
{ {
glfwPollEvents(); glfwPollEvents();