From 6bd3b45b34476b77e95874db1934b95e910db189 Mon Sep 17 00:00:00 2001 From: omar Date: Fri, 24 Nov 2017 09:23:17 +0100 Subject: [PATCH] Sisyphus says: tweaked comments about not using old-style OpenGL examples (#1459, #1394 etc.) --- examples/README.txt | 13 +++++++------ examples/opengl2_example/imgui_impl_glfw.cpp | 13 +++++++------ examples/opengl2_example/imgui_impl_glfw.h | 5 +++-- examples/opengl2_example/main.cpp | 5 +++-- imgui.cpp | 3 +-- 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/examples/README.txt b/examples/README.txt index 35490b5b..8ec8e752 100644 --- a/examples/README.txt +++ b/examples/README.txt @@ -46,12 +46,13 @@ Also note that some setup or GPU drivers may be causing extra lag (possibly by e leaving you with no option but sadness/anger (Intel GPU drivers were reported as such). opengl2_example/ - *DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL* - GLFW + OpenGL example (old, fixed graphic pipeline). - This is mostly provided as a reference to learn how ImGui integration works, because it is easier to read. - If your code is using GL3+ context or any semi modern OpenGL calls, using this is likely to make everything - more complicated, will require your code to reset every single OpenGL attributes to their initial state, - and might confuse your GPU driver. Prefer using opengl3_example. + **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** + **Prefer using the code in the opengl3_example/ folder** + GLFW + OpenGL example (legacy fixed graphic pipeline). + This code is mostly provided as a reference to learn how ImGui integration works, because it is shorter to read. + If your code is using GL3+ context or any semi modern OpenGL calls, using this is likely to make everything more + complicated, will require your code to reset every single OpenGL attributes to their initial state, and might + confuse your GPU driver. opengl3_example/ GLFW + OpenGL example (programmable pipeline, binding modern functions with GL3W). diff --git a/examples/opengl2_example/imgui_impl_glfw.cpp b/examples/opengl2_example/imgui_impl_glfw.cpp index 52962c19..b6bb56a3 100644 --- a/examples/opengl2_example/imgui_impl_glfw.cpp +++ b/examples/opengl2_example/imgui_impl_glfw.cpp @@ -1,12 +1,13 @@ -// ImGui GLFW binding with OpenGL +// ImGui GLFW binding with OpenGL (legacy fixed pipeline) // In this binding, ImTextureID is used to store an OpenGL 'GLuint' texture identifier. Read the FAQ about ImTextureID in imgui.cpp. // (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.) -// *DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL* -// This is mostly provided as a reference to learn how ImGui integration works, because it is easier to read. -// If your code is using GL3+ context or any semi modern OpenGL calls, using this is likely to make everything -// more complicated, will require your code to reset every single OpenGL attributes to their initial state, -// and might confuse your GPU driver. Prefer using opengl3_example. +// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** +// **Prefer using the code in the opengl3_example/ folder** +// This code is mostly provided as a reference to learn how ImGui integration works, because it is shorter to read. +// If your code is using GL3+ context or any semi modern OpenGL calls, using this is likely to make everything more +// complicated, will require your code to reset every single OpenGL attributes to their initial state, and might +// confuse your GPU driver. // The GL2 code is unable to reset attributes or even call e.g. "glUseProgram(0)" because they don't exist in that API. // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. diff --git a/examples/opengl2_example/imgui_impl_glfw.h b/examples/opengl2_example/imgui_impl_glfw.h index f17833ae..22f910ea 100644 --- a/examples/opengl2_example/imgui_impl_glfw.h +++ b/examples/opengl2_example/imgui_impl_glfw.h @@ -1,8 +1,9 @@ -// ImGui GLFW binding with OpenGL +// ImGui GLFW binding with OpenGL (legacy fixed pipeline) // In this binding, ImTextureID is used to store an OpenGL 'GLuint' texture identifier. Read the FAQ about ImTextureID in imgui.cpp. // (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.) -// *DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL* +// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** +// **Prefer using the code in the opengl3_example/ folder** // See imgui_impl_glfw.cpp for details. // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this. diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp index 1f3336d2..ed8f1a7b 100644 --- a/examples/opengl2_example/main.cpp +++ b/examples/opengl2_example/main.cpp @@ -1,8 +1,9 @@ -// ImGui - standalone example application for GLFW + OpenGL 2, using fixed pipeline +// ImGui - standalone example application for GLFW + OpenGL2, using legacy fixed pipeline // If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp. // (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.) -// *DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL* +// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** +// **Prefer using the code in the opengl3_example/ folder** // See imgui_impl_glfw.cpp for details. #include diff --git a/imgui.cpp b/imgui.cpp index c1361f73..0c209b67 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -103,8 +103,7 @@ - Add the Dear ImGui source files to your projects, using your preferred build system. It is recommended you build the .cpp files as part of your project and not as a library. - You can later customize the imconfig.h file to tweak some compilation time behavior, such as integrating imgui types with your own maths types. - - See examples/ folder for standalone sample applications. To understand the integration process, you can read examples/opengl2_example/ because - it is short, then switch to the one more appropriate to your use case. + - See examples/ folder for standalone sample applications. - You may be able to grab and copy a ready made imgui_impl_*** file from the examples/. - When using Dear ImGui, your programming IDE is your friend: follow the declaration of variables, functions and types to find comments about them.