mirror of
https://github.com/Drezil/imgui.git
synced 2024-12-18 22:26:34 +00:00
Merge branch 'master' into viewport
# Conflicts: # examples/imgui_impl_dx9.cpp # examples/imgui_impl_opengl2.cpp # examples/imgui_impl_opengl3.cpp # examples/imgui_impl_vulkan.cpp
This commit is contained in:
commit
b85f345369
@ -45,6 +45,7 @@ Other Changes:
|
|||||||
erroneously wrapped the value to one of the min/max edge. (#2024, #708, #320, #2075).
|
erroneously wrapped the value to one of the min/max edge. (#2024, #708, #320, #2075).
|
||||||
- DragFloat: Disabled using power curve when one edge is FLT_MAX (broken in 1.61). (#2024)
|
- DragFloat: Disabled using power curve when one edge is FLT_MAX (broken in 1.61). (#2024)
|
||||||
- DragFloat: Disabled setting a default drag speed when one edge is FLT_MAX. (#2024)
|
- DragFloat: Disabled setting a default drag speed when one edge is FLT_MAX. (#2024)
|
||||||
|
- BeginMenu(): Fixed menu popup horizontal offset being off the item in the menu bar when WindowPadding=0.0f.
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
@ -45,7 +45,7 @@ You can find binaries of some of those example applications at:
|
|||||||
- Dear ImGui has 0 to 1 frame of lag for most behaviors, at 60 FPS your experience should be pleasant.
|
- Dear ImGui has 0 to 1 frame of lag for most behaviors, at 60 FPS your experience should be pleasant.
|
||||||
However, consider that OS mouse cursors are typically drawn through a specific hardware accelerated path
|
However, consider that OS mouse cursors are typically drawn through a specific hardware accelerated path
|
||||||
and will feel smoother than common GPU rendered contents (including Dear ImGui windows).
|
and will feel smoother than common GPU rendered contents (including Dear ImGui windows).
|
||||||
You may experiment with the io.MouseDrawCursor flag to request ImGui to draw a mouse cursor itself,
|
You may experiment with the io.MouseDrawCursor flag to request Dear ImGui to draw a mouse cursor itself,
|
||||||
to visualize the lag between a hardware cursor and a software cursor. However, rendering a mouse cursor
|
to visualize the lag between a hardware cursor and a software cursor. However, rendering a mouse cursor
|
||||||
at 60 FPS will feel slow. It might be beneficial to the user experience to switch to a software rendered
|
at 60 FPS will feel slow. It might be beneficial to the user experience to switch to a software rendered
|
||||||
cursor only when an interactive drag is in progress.
|
cursor only when an interactive drag is in progress.
|
||||||
@ -186,7 +186,7 @@ example_glfw_opengl2/
|
|||||||
**DO NOT USE OPENGL2 CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
|
**DO NOT USE OPENGL2 CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
|
||||||
**Prefer using OPENGL3 code (with gl3w/glew/glad, you can replace the OpenGL function loader)**
|
**Prefer using OPENGL3 code (with gl3w/glew/glad, you can replace the OpenGL function loader)**
|
||||||
GLFW + OpenGL2 example (legacy, fixed pipeline).
|
GLFW + OpenGL2 example (legacy, fixed pipeline).
|
||||||
This code is mostly provided as a reference to learn about ImGui integration, because it is shorter.
|
This code is mostly provided as a reference to learn about Dear ImGui integration, because it is shorter.
|
||||||
If your code is using GL3+ context or any semi modern OpenGL calls, using this renderer is likely to
|
If your code is using GL3+ context or any semi modern OpenGL calls, using this renderer is likely to
|
||||||
make things more complicated, will require your code to reset many OpenGL attributes to their initial
|
make things more complicated, will require your code to reset many OpenGL attributes to their initial
|
||||||
state, and might confuse your GPU driver. One star, not recommended.
|
state, and might confuse your GPU driver. One star, not recommended.
|
||||||
@ -207,7 +207,7 @@ example_sdl_opengl2/
|
|||||||
**DO NOT USE OPENGL2 CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
|
**DO NOT USE OPENGL2 CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
|
||||||
**Prefer using OPENGL3 code (with gl3w/glew/glad, you can replace the OpenGL function loader)**
|
**Prefer using OPENGL3 code (with gl3w/glew/glad, you can replace the OpenGL function loader)**
|
||||||
SDL2 (Win32, Mac, Linux etc.) + OpenGL example (legacy, fixed pipeline).
|
SDL2 (Win32, Mac, Linux etc.) + OpenGL example (legacy, fixed pipeline).
|
||||||
This code is mostly provided as a reference to learn about ImGui integration, because it is shorter.
|
This code is mostly provided as a reference to learn about Dear ImGui integration, because it is shorter.
|
||||||
If your code is using GL3+ context or any semi modern OpenGL calls, using this renderer is likely to
|
If your code is using GL3+ context or any semi modern OpenGL calls, using this renderer is likely to
|
||||||
make things more complicated, will require your code to reset many OpenGL attributes to their initial
|
make things more complicated, will require your code to reset many OpenGL attributes to their initial
|
||||||
state, and might confuse your GPU driver. One star, not recommended.
|
state, and might confuse your GPU driver. One star, not recommended.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for Allegro 5
|
// dear imgui: standalone example application for Allegro 5
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <allegro5/allegro.h>
|
#include <allegro5/allegro.h>
|
||||||
|
@ -45,9 +45,9 @@
|
|||||||
|
|
||||||
// If we want to receive key events, we either need to be in the responder chain of the key view,
|
// If we want to receive key events, we either need to be in the responder chain of the key view,
|
||||||
// or else we can install a local monitor. The consequence of this heavy-handed approach is that
|
// or else we can install a local monitor. The consequence of this heavy-handed approach is that
|
||||||
// we receive events for all controls, not just ImGui widgets. If we had native controls in our
|
// we receive events for all controls, not just Dear ImGui widgets. If we had native controls in our
|
||||||
// window, we'd want to be much more careful than just ingesting the complete event stream, though
|
// window, we'd want to be much more careful than just ingesting the complete event stream, though we
|
||||||
// we do make an effort to be good citizens by passing along events when ImGui doesn't want to capture.
|
// do make an effort to be good citizens by passing along events when Dear ImGui doesn't want to capture.
|
||||||
NSEventMask eventMask = NSEventMaskKeyDown | NSEventMaskKeyUp | NSEventMaskFlagsChanged | NSEventTypeScrollWheel;
|
NSEventMask eventMask = NSEventMaskKeyDown | NSEventMaskKeyUp | NSEventMaskFlagsChanged | NSEventTypeScrollWheel;
|
||||||
[NSEvent addLocalMonitorForEventsMatchingMask:eventMask handler:^NSEvent * _Nullable(NSEvent *event) {
|
[NSEvent addLocalMonitorForEventsMatchingMask:eventMask handler:^NSEvent * _Nullable(NSEvent *event) {
|
||||||
BOOL wantsCapture = ImGui_ImplOSX_HandleEvent(event, self.view);
|
BOOL wantsCapture = ImGui_ImplOSX_HandleEvent(event, self.view);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for OSX + OpenGL2, using legacy fixed pipeline
|
// dear imgui: standalone example application for OSX + OpenGL2, using legacy fixed pipeline
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "../imgui_impl_osx.h"
|
#include "../imgui_impl_osx.h"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for FreeGLUT + OpenGL2, using legacy fixed pipeline
|
// dear imgui: standalone example application for FreeGLUT + OpenGL2, using legacy fixed pipeline
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
// (Using GLUT or FreeGLUT is not recommended unless you really miss the 90's)
|
// (Using GLUT or FreeGLUT is not recommended unless you really miss the 90's)
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
@ -57,7 +57,7 @@ void my_display_code()
|
|||||||
|
|
||||||
void glut_display_func()
|
void glut_display_func()
|
||||||
{
|
{
|
||||||
// Start the ImGui frame
|
// Start the Dear ImGui frame
|
||||||
ImGui_ImplOpenGL2_NewFrame();
|
ImGui_ImplOpenGL2_NewFrame();
|
||||||
ImGui_ImplFreeGLUT_NewFrame();
|
ImGui_ImplFreeGLUT_NewFrame();
|
||||||
|
|
||||||
@ -95,7 +95,7 @@ int main(int argc, char** argv)
|
|||||||
// otherwise it is possible to install our own functions and call the imgui_impl_freeglut.h functions ourselves.
|
// otherwise it is possible to install our own functions and call the imgui_impl_freeglut.h functions ourselves.
|
||||||
glutDisplayFunc(glut_display_func);
|
glutDisplayFunc(glut_display_func);
|
||||||
|
|
||||||
// Setup ImGui binding
|
// Setup Dear ImGui binding
|
||||||
ImGui::CreateContext();
|
ImGui::CreateContext();
|
||||||
ImGuiIO& io = ImGui::GetIO(); (void)io;
|
ImGuiIO& io = ImGui::GetIO(); (void)io;
|
||||||
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
|
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for GLFW + OpenGL2, using legacy fixed pipeline
|
// dear 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.
|
// If you are new to dear 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.)
|
// (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 (SHADERS, VBO, VAO, etc.)**
|
// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for GLFW + OpenGL 3, using programmable pipeline
|
// dear imgui: standalone example application for GLFW + OpenGL 3, using programmable pipeline
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear 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.)
|
// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for Glfw + Vulkan
|
// dear imgui: standalone example application for Glfw + Vulkan
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "imgui_impl_glfw.h"
|
#include "imgui_impl_glfw.h"
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
// ImGui - standalone example application for Marmalade
|
// dear imgui: standalone example application for Marmalade
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
|
|
||||||
// Copyright (C) 2015 by Giovanni Zito
|
// Copyright (C) 2015 by Giovanni Zito
|
||||||
// This file is part of ImGui
|
// This file is part of Dear ImGui
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "imgui_impl_marmalade.h"
|
#include "imgui_impl_marmalade.h"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui - null/dummy example application (compile and link imgui with no inputs, no outputs)
|
// dear imgui: null/dummy example application (compile and link imgui with no inputs, no outputs)
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for SDL2 + OpenGL
|
// dear imgui: standalone example application for SDL2 + OpenGL
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
|
// (SDL 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 (SHADERS, VBO, VAO, etc.)**
|
// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for SDL2 + OpenGL
|
// dear imgui: standalone example application for SDL2 + OpenGL
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
|
// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
|
||||||
// (GL3W is a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc.)
|
// (GL3W is a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc.)
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for SDL2 + Vulkan
|
// dear imgui: standalone example application for SDL2 + Vulkan
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "imgui_impl_sdl.h"
|
#include "imgui_impl_sdl.h"
|
||||||
@ -332,7 +332,7 @@ int main(int, char**)
|
|||||||
ImGui_ImplVulkanH_WindowData* wd = &g_WindowData;
|
ImGui_ImplVulkanH_WindowData* wd = &g_WindowData;
|
||||||
SetupVulkanWindowData(wd, surface, w, h);
|
SetupVulkanWindowData(wd, surface, w, h);
|
||||||
|
|
||||||
// Setup ImGui binding
|
// Setup Dear ImGui binding
|
||||||
ImGui::CreateContext();
|
ImGui::CreateContext();
|
||||||
ImGuiIO& io = ImGui::GetIO(); (void)io;
|
ImGuiIO& io = ImGui::GetIO(); (void)io;
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable;
|
io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for DirectX 10
|
// dear imgui: standalone example application for DirectX 10
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "imgui_impl_win32.h"
|
#include "imgui_impl_win32.h"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for DirectX 11
|
// dear imgui - standalone example application for DirectX 11
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "imgui_impl_win32.h"
|
#include "imgui_impl_win32.h"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for DirectX 12
|
// dear imgui: standalone example application for DirectX 12
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
// FIXME: 64-bit only for now! (Because sizeof(ImTextureId) == sizeof(void*))
|
// FIXME: 64-bit only for now! (Because sizeof(ImTextureId) == sizeof(void*))
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui - standalone example application for DirectX 9
|
// dear imgui: standalone example application for DirectX 9
|
||||||
// If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, see examples/README.txt and documentation at the top of imgui.cpp.
|
||||||
|
|
||||||
#include "imgui.h"
|
#include "imgui.h"
|
||||||
#include "imgui_impl_dx9.h"
|
#include "imgui_impl_dx9.h"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer + Platform Binding for: Allegro 5
|
// dear imgui: Renderer + Platform Binding for Allegro 5
|
||||||
// (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.)
|
// (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
@ -74,7 +74,7 @@ void ImGui_ImplAllegro5_RenderDrawData(ImDrawData* draw_data)
|
|||||||
al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA);
|
al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA);
|
||||||
|
|
||||||
// Setup orthographic projection matrix
|
// Setup orthographic projection matrix
|
||||||
// Our visible imgui space lies from draw_data->DisplayPps (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right).
|
// Our visible imgui space lies from draw_data->DisplayPos (top left) to draw_data->DisplayPos+data_data->DisplaySize (bottom right).
|
||||||
{
|
{
|
||||||
float L = draw_data->DisplayPos.x;
|
float L = draw_data->DisplayPos.x;
|
||||||
float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x;
|
float R = draw_data->DisplayPos.x + draw_data->DisplaySize.x;
|
||||||
@ -108,7 +108,7 @@ void ImGui_ImplAllegro5_RenderDrawData(ImDrawData* draw_data)
|
|||||||
const int* indices = NULL;
|
const int* indices = NULL;
|
||||||
if (sizeof(ImDrawIdx) == 2)
|
if (sizeof(ImDrawIdx) == 2)
|
||||||
{
|
{
|
||||||
// FIXME-OPT: Unfortunately Allegro doesn't support 16-bit indices.. You can '#define ImDrawIdx int' in imconfig.h to request ImGui to output 32-bit indices.
|
// FIXME-OPT: Unfortunately Allegro doesn't support 16-bit indices.. You can '#define ImDrawIdx int' in imconfig.h to request Dear ImGui to output 32-bit indices.
|
||||||
// Otherwise, we convert them from 16-bit to 32-bit at runtime here, which works perfectly but is a little wasteful.
|
// Otherwise, we convert them from 16-bit to 32-bit at runtime here, which works perfectly but is a little wasteful.
|
||||||
static ImVector<int> indices_converted;
|
static ImVector<int> indices_converted;
|
||||||
indices_converted.resize(cmd_list->IdxBuffer.Size);
|
indices_converted.resize(cmd_list->IdxBuffer.Size);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer + Platform Binding for: Allegro 5
|
// dear imgui: Renderer + Platform Binding for Allegro 5
|
||||||
// (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.)
|
// (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: DirectX10
|
// dear imgui: Renderer for DirectX10
|
||||||
// This needs to be used along with a Platform Binding (e.g. Win32)
|
// This needs to be used along with a Platform Binding (e.g. Win32)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: DirectX10
|
// dear imgui: Renderer for DirectX10
|
||||||
// This needs to be used along with a Platform Binding (e.g. Win32)
|
// This needs to be used along with a Platform Binding (e.g. Win32)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: DirectX11
|
// dear imgui: Renderer for DirectX11
|
||||||
// This needs to be used along with a Platform Binding (e.g. Win32)
|
// This needs to be used along with a Platform Binding (e.g. Win32)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: DirectX11
|
// dear imgui: Renderer for DirectX11
|
||||||
// This needs to be used along with a Platform Binding (e.g. Win32)
|
// This needs to be used along with a Platform Binding (e.g. Win32)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: DirectX12
|
// dear imgui: Renderer for DirectX12
|
||||||
// This needs to be used along with a Platform Binding (e.g. Win32)
|
// This needs to be used along with a Platform Binding (e.g. Win32)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: DirectX12
|
// dear imgui: Renderer for DirectX12
|
||||||
// This needs to be used along with a Platform Binding (e.g. Win32)
|
// This needs to be used along with a Platform Binding (e.g. Win32)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: DirectX9
|
// dear imgui: Renderer for DirectX9
|
||||||
// This needs to be used along with a Platform Binding (e.g. Win32)
|
// This needs to be used along with a Platform Binding (e.g. Win32)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: DirectX9
|
// dear imgui: Renderer for DirectX9
|
||||||
// This needs to be used along with a Platform Binding (e.g. Win32)
|
// This needs to be used along with a Platform Binding (e.g. Win32)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: FreeGLUT
|
// dear imgui: Platform Binding for FreeGLUT
|
||||||
// This needs to be used along with a Renderer (e.g. OpenGL2)
|
// This needs to be used along with a Renderer (e.g. OpenGL2)
|
||||||
|
|
||||||
// Issues:
|
// Issues:
|
||||||
@ -97,7 +97,7 @@ void ImGui_ImplFreeGLUT_KeyboardFunc(unsigned char c, int x, int y)
|
|||||||
//printf("char_down_func %d '%c'\n", c, c);
|
//printf("char_down_func %d '%c'\n", c, c);
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
if (c >= 32)
|
if (c >= 32)
|
||||||
io.AddInputCharacter(c);
|
io.AddInputCharacter((unsigned short)c);
|
||||||
|
|
||||||
// Store letters in KeysDown[] array as both uppercase and lowercase + Handle GLUT translating CTRL+A..CTRL+Z as 1..26.
|
// Store letters in KeysDown[] array as both uppercase and lowercase + Handle GLUT translating CTRL+A..CTRL+Z as 1..26.
|
||||||
// This is a hacky mess but GLUT is unable to distinguish e.g. a TAB key from CTRL+I so this is probably the best we can do here.
|
// This is a hacky mess but GLUT is unable to distinguish e.g. a TAB key from CTRL+I so this is probably the best we can do here.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: FreeGLUT
|
// dear imgui: Platform Binding for FreeGLUT
|
||||||
// This needs to be used along with a Renderer (e.g. OpenGL2)
|
// This needs to be used along with a Renderer (e.g. OpenGL2)
|
||||||
|
|
||||||
// Issues:
|
// Issues:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: GLFW
|
// dear imgui: Platform Binding for GLFW
|
||||||
// This needs to be used along with a Renderer (e.g. OpenGL3, Vulkan..)
|
// This needs to be used along with a Renderer (e.g. OpenGL3, Vulkan..)
|
||||||
// (Info: GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
|
// (Info: GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: GLFW
|
// dear imgui: Platform Binding for GLFW
|
||||||
// This needs to be used along with a Renderer (e.g. OpenGL3, Vulkan..)
|
// This needs to be used along with a Renderer (e.g. OpenGL3, Vulkan..)
|
||||||
// (Info: GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
|
// (Info: GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// ImGui Renderer + Platform Binding for: Marmalade + IwGx
|
// dear imgui: Renderer + Platform Binding for Marmalade + IwGx
|
||||||
// Marmalade code: Copyright (C) 2015 by Giovanni Zito (this file is part of ImGui)
|
// Marmalade code: Copyright (C) 2015 by Giovanni Zito (this file is part of Dear ImGui)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
// [X] Renderer: User texture binding. Use 'CIwTexture*' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp.
|
// [X] Renderer: User texture binding. Use 'CIwTexture*' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp.
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
// ImGui Renderer + Platform Binding for: Marmalade + IwGx
|
// dear imgui: Renderer + Platform Binding for Marmalade + IwGx
|
||||||
|
// Marmalade code: Copyright (C) 2015 by Giovanni Zito (this file is part of Dear ImGui)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
// [X] Renderer: User texture binding. Use 'CIwTexture*' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp.
|
// [X] Renderer: User texture binding. Use 'CIwTexture*' as ImTextureID. Read the FAQ about ImTextureID in imgui.cpp.
|
||||||
@ -7,9 +8,6 @@
|
|||||||
// If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp.
|
// If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp.
|
||||||
// https://github.com/ocornut/imgui
|
// https://github.com/ocornut/imgui
|
||||||
|
|
||||||
// Copyright (C) 2015 by Giovanni Zito
|
|
||||||
// This file is part of ImGui
|
|
||||||
|
|
||||||
IMGUI_IMPL_API bool ImGui_Marmalade_Init(bool install_callbacks);
|
IMGUI_IMPL_API bool ImGui_Marmalade_Init(bool install_callbacks);
|
||||||
IMGUI_IMPL_API void ImGui_Marmalade_Shutdown();
|
IMGUI_IMPL_API void ImGui_Marmalade_Shutdown();
|
||||||
IMGUI_IMPL_API void ImGui_Marmalade_NewFrame();
|
IMGUI_IMPL_API void ImGui_Marmalade_NewFrame();
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: Metal
|
// dear imgui: Renderer for Metal
|
||||||
// This needs to be used along with a Platform Binding (e.g. OSX)
|
// This needs to be used along with a Platform Binding (e.g. OSX)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: Metal
|
// dear imgui: Renderer for Metal
|
||||||
// This needs to be used along with a Platform Binding (e.g. OSX)
|
// This needs to be used along with a Platform Binding (e.g. OSX)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
@ -410,7 +410,7 @@ void ImGui_ImplMetal_DestroyDeviceObjects()
|
|||||||
[commandEncoder setDepthStencilState:g_sharedMetalContext.depthStencilState];
|
[commandEncoder setDepthStencilState:g_sharedMetalContext.depthStencilState];
|
||||||
|
|
||||||
// Setup viewport, orthographic projection matrix
|
// Setup viewport, orthographic projection matrix
|
||||||
// Our visible imgui space lies from draw_data->DisplayPps (top left) to
|
// Our visible imgui space lies from draw_data->DisplayPos (top left) to
|
||||||
// draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayMin is typically (0,0) for single viewport apps.
|
// draw_data->DisplayPos+data_data->DisplaySize (bottom right). DisplayMin is typically (0,0) for single viewport apps.
|
||||||
MTLViewport viewport =
|
MTLViewport viewport =
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: OpenGL2 (legacy OpenGL, fixed pipeline)
|
// dear imgui: Renderer for OpenGL2 (legacy OpenGL, fixed pipeline)
|
||||||
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: OpenGL2 (legacy OpenGL, fixed pipeline)
|
// dear imgui: Renderer for OpenGL2 (legacy OpenGL, fixed pipeline)
|
||||||
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: OpenGL3 / OpenGL ES2 / OpenGL ES3 (modern OpenGL with shaders / programmatic pipeline)
|
// dear imgui: Renderer for OpenGL3 / OpenGL ES2 / OpenGL ES3 (modern OpenGL with shaders / programmatic pipeline)
|
||||||
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
||||||
// (Note: We are using GL3W as a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc..)
|
// (Note: We are using GL3W as a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc..)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: OpenGL3 / OpenGL ES2 / OpenGL ES3 (modern OpenGL with shaders / programmatic pipeline)
|
// dear imgui: Renderer for OpenGL3 / OpenGL ES2 / OpenGL ES3 (modern OpenGL with shaders / programmatic pipeline)
|
||||||
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
||||||
// (Note: We are using GL3W as a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc..)
|
// (Note: We are using GL3W as a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc..)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: OSX / Cocoa
|
// dear imgui: Platform Binding for OSX / Cocoa
|
||||||
// This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..)
|
// This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..)
|
||||||
// [BETA] Beta bindings, not well tested. If you want a portable application, prefer using the Glfw or SDL platform bindings on Mac.
|
// [BETA] Beta bindings, not well tested. If you want a portable application, prefer using the Glfw or SDL platform bindings on Mac.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: OSX / Cocoa
|
// dear imgui: Platform Binding for OSX / Cocoa
|
||||||
// This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..)
|
// This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..)
|
||||||
// [BETA] Beta bindings, not well tested. If you want a portable application, prefer using the Glfw or SDL platform bindings on Mac.
|
// [BETA] Beta bindings, not well tested. If you want a portable application, prefer using the Glfw or SDL platform bindings on Mac.
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ bool ImGui_ImplOSX_HandleEvent(NSEvent* event, NSView* view)
|
|||||||
{
|
{
|
||||||
int c = [str characterAtIndex:i];
|
int c = [str characterAtIndex:i];
|
||||||
if (c < 0xF700 && !io.KeyCtrl)
|
if (c < 0xF700 && !io.KeyCtrl)
|
||||||
io.AddInputCharacter(c);
|
io.AddInputCharacter((unsigned short)c);
|
||||||
|
|
||||||
// We must reset in case we're pressing a sequence of special keys while keeping the command pressed
|
// We must reset in case we're pressing a sequence of special keys while keeping the command pressed
|
||||||
int key = mapCharacterToKey(c);
|
int key = mapCharacterToKey(c);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: SDL2
|
// dear imgui: Platform Binding for SDL2
|
||||||
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
|
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
|
||||||
// (Info: SDL2 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.)
|
// (Info: SDL2 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: SDL2
|
// dear imgui: Platform Binding for SDL2
|
||||||
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
|
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
|
||||||
// (Info: SDL2 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.)
|
// (Info: SDL2 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: Vulkan
|
// dear imgui: Renderer for Vulkan
|
||||||
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
||||||
|
|
||||||
// Missing features:
|
// Missing features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Renderer for: Vulkan
|
// dear imgui: Renderer for Vulkan
|
||||||
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
|
||||||
|
|
||||||
// Missing features:
|
// Missing features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: Windows (standard windows API for 32 and 64 bits applications)
|
// dear imgui: Platform Binding for Windows (standard windows API for 32 and 64 bits applications)
|
||||||
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
|
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// ImGui Platform Binding for: Windows (standard windows API for 32 and 64 bits applications)
|
// dear imgui: Platform Binding for Windows (standard windows API for 32 and 64 bits applications)
|
||||||
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
|
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
|
||||||
|
|
||||||
// Implemented features:
|
// Implemented features:
|
||||||
|
4
imgui.h
4
imgui.h
@ -1944,7 +1944,7 @@ struct ImFont
|
|||||||
ImVec2 DisplayOffset; // = (0.f,0.f) // Offset font rendering by xx pixels
|
ImVec2 DisplayOffset; // = (0.f,0.f) // Offset font rendering by xx pixels
|
||||||
ImVector<ImFontGlyph> Glyphs; // // All glyphs.
|
ImVector<ImFontGlyph> Glyphs; // // All glyphs.
|
||||||
ImVector<float> IndexAdvanceX; // // Sparse. Glyphs->AdvanceX in a directly indexable way (more cache-friendly, for CalcTextSize functions which are often bottleneck in large UI).
|
ImVector<float> IndexAdvanceX; // // Sparse. Glyphs->AdvanceX in a directly indexable way (more cache-friendly, for CalcTextSize functions which are often bottleneck in large UI).
|
||||||
ImVector<unsigned short> IndexLookup; // // Sparse. Index glyphs by Unicode code-point.
|
ImVector<ImWchar> IndexLookup; // // Sparse. Index glyphs by Unicode code-point.
|
||||||
const ImFontGlyph* FallbackGlyph; // == FindGlyph(FontFallbackChar)
|
const ImFontGlyph* FallbackGlyph; // == FindGlyph(FontFallbackChar)
|
||||||
float FallbackAdvanceX; // == FallbackGlyph->AdvanceX
|
float FallbackAdvanceX; // == FallbackGlyph->AdvanceX
|
||||||
ImWchar FallbackChar; // = '?' // Replacement glyph if one isn't found. Only set via SetFallbackChar()
|
ImWchar FallbackChar; // = '?' // Replacement glyph if one isn't found. Only set via SetFallbackChar()
|
||||||
@ -1973,7 +1973,7 @@ struct ImFont
|
|||||||
// 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable.
|
// 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable.
|
||||||
IMGUI_API ImVec2 CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end = NULL, const char** remaining = NULL) const; // utf8
|
IMGUI_API ImVec2 CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end = NULL, const char** remaining = NULL) const; // utf8
|
||||||
IMGUI_API const char* CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const;
|
IMGUI_API const char* CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const;
|
||||||
IMGUI_API void RenderChar(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, unsigned short c) const;
|
IMGUI_API void RenderChar(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, ImWchar c) const;
|
||||||
IMGUI_API void RenderText(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, float wrap_width = 0.0f, bool cpu_fine_clip = false) const;
|
IMGUI_API void RenderText(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, float wrap_width = 0.0f, bool cpu_fine_clip = false) const;
|
||||||
|
|
||||||
// [Internal]
|
// [Internal]
|
||||||
|
@ -1894,7 +1894,7 @@ bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas* atlas)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
const int codepoint = range.first_unicode_codepoint_in_range + char_idx;
|
const int codepoint = range.first_unicode_codepoint_in_range + char_idx;
|
||||||
if (cfg.MergeMode && dst_font->FindGlyphNoFallback((unsigned short)codepoint))
|
if (cfg.MergeMode && dst_font->FindGlyphNoFallback((ImWchar)codepoint))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
float char_advance_x_org = pc.xadvance;
|
float char_advance_x_org = pc.xadvance;
|
||||||
@ -2316,21 +2316,21 @@ void ImFont::BuildLookupTable()
|
|||||||
{
|
{
|
||||||
int codepoint = (int)Glyphs[i].Codepoint;
|
int codepoint = (int)Glyphs[i].Codepoint;
|
||||||
IndexAdvanceX[codepoint] = Glyphs[i].AdvanceX;
|
IndexAdvanceX[codepoint] = Glyphs[i].AdvanceX;
|
||||||
IndexLookup[codepoint] = (unsigned short)i;
|
IndexLookup[codepoint] = (ImWchar)i;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a glyph to handle TAB
|
// Create a glyph to handle TAB
|
||||||
// FIXME: Needs proper TAB handling but it needs to be contextualized (or we could arbitrary say that each string starts at "column 0" ?)
|
// FIXME: Needs proper TAB handling but it needs to be contextualized (or we could arbitrary say that each string starts at "column 0" ?)
|
||||||
if (FindGlyph((unsigned short)' '))
|
if (FindGlyph((ImWchar)' '))
|
||||||
{
|
{
|
||||||
if (Glyphs.back().Codepoint != '\t') // So we can call this function multiple times
|
if (Glyphs.back().Codepoint != '\t') // So we can call this function multiple times
|
||||||
Glyphs.resize(Glyphs.Size + 1);
|
Glyphs.resize(Glyphs.Size + 1);
|
||||||
ImFontGlyph& tab_glyph = Glyphs.back();
|
ImFontGlyph& tab_glyph = Glyphs.back();
|
||||||
tab_glyph = *FindGlyph((unsigned short)' ');
|
tab_glyph = *FindGlyph((ImWchar)' ');
|
||||||
tab_glyph.Codepoint = '\t';
|
tab_glyph.Codepoint = '\t';
|
||||||
tab_glyph.AdvanceX *= 4;
|
tab_glyph.AdvanceX *= 4;
|
||||||
IndexAdvanceX[(int)tab_glyph.Codepoint] = (float)tab_glyph.AdvanceX;
|
IndexAdvanceX[(int)tab_glyph.Codepoint] = (float)tab_glyph.AdvanceX;
|
||||||
IndexLookup[(int)tab_glyph.Codepoint] = (unsigned short)(Glyphs.Size-1);
|
IndexLookup[(int)tab_glyph.Codepoint] = (ImWchar)(Glyphs.Size-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
FallbackGlyph = FindGlyphNoFallback(FallbackChar);
|
FallbackGlyph = FindGlyphNoFallback(FallbackChar);
|
||||||
@ -2352,7 +2352,7 @@ void ImFont::GrowIndex(int new_size)
|
|||||||
if (new_size <= IndexLookup.Size)
|
if (new_size <= IndexLookup.Size)
|
||||||
return;
|
return;
|
||||||
IndexAdvanceX.resize(new_size, -1.0f);
|
IndexAdvanceX.resize(new_size, -1.0f);
|
||||||
IndexLookup.resize(new_size, (unsigned short)-1);
|
IndexLookup.resize(new_size, (ImWchar)-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// x0/y0/x1/y1 are offset from the character upper-left layout position, in pixels. Therefore x0/y0 are often fairly close to zero.
|
// x0/y0/x1/y1 are offset from the character upper-left layout position, in pixels. Therefore x0/y0 are often fairly close to zero.
|
||||||
@ -2385,13 +2385,13 @@ void ImFont::AddRemapChar(ImWchar dst, ImWchar src, bool overwrite_dst)
|
|||||||
IM_ASSERT(IndexLookup.Size > 0); // Currently this can only be called AFTER the font has been built, aka after calling ImFontAtlas::GetTexDataAs*() function.
|
IM_ASSERT(IndexLookup.Size > 0); // Currently this can only be called AFTER the font has been built, aka after calling ImFontAtlas::GetTexDataAs*() function.
|
||||||
int index_size = IndexLookup.Size;
|
int index_size = IndexLookup.Size;
|
||||||
|
|
||||||
if (dst < index_size && IndexLookup.Data[dst] == (unsigned short)-1 && !overwrite_dst) // 'dst' already exists
|
if (dst < index_size && IndexLookup.Data[dst] == (ImWchar)-1 && !overwrite_dst) // 'dst' already exists
|
||||||
return;
|
return;
|
||||||
if (src >= index_size && dst >= index_size) // both 'dst' and 'src' don't exist -> no-op
|
if (src >= index_size && dst >= index_size) // both 'dst' and 'src' don't exist -> no-op
|
||||||
return;
|
return;
|
||||||
|
|
||||||
GrowIndex(dst + 1);
|
GrowIndex(dst + 1);
|
||||||
IndexLookup[dst] = (src < index_size) ? IndexLookup.Data[src] : (unsigned short)-1;
|
IndexLookup[dst] = (src < index_size) ? IndexLookup.Data[src] : (ImWchar)-1;
|
||||||
IndexAdvanceX[dst] = (src < index_size) ? IndexAdvanceX.Data[src] : 1.0f;
|
IndexAdvanceX[dst] = (src < index_size) ? IndexAdvanceX.Data[src] : 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2399,8 +2399,8 @@ const ImFontGlyph* ImFont::FindGlyph(ImWchar c) const
|
|||||||
{
|
{
|
||||||
if (c >= IndexLookup.Size)
|
if (c >= IndexLookup.Size)
|
||||||
return FallbackGlyph;
|
return FallbackGlyph;
|
||||||
const unsigned short i = IndexLookup[c];
|
const ImWchar i = IndexLookup[c];
|
||||||
if (i == (unsigned short)-1)
|
if (i == (ImWchar)-1)
|
||||||
return FallbackGlyph;
|
return FallbackGlyph;
|
||||||
return &Glyphs.Data[i];
|
return &Glyphs.Data[i];
|
||||||
}
|
}
|
||||||
@ -2409,8 +2409,8 @@ const ImFontGlyph* ImFont::FindGlyphNoFallback(ImWchar c) const
|
|||||||
{
|
{
|
||||||
if (c >= IndexLookup.Size)
|
if (c >= IndexLookup.Size)
|
||||||
return NULL;
|
return NULL;
|
||||||
const unsigned short i = IndexLookup[c];
|
const ImWchar i = IndexLookup[c];
|
||||||
if (i == (unsigned short)-1)
|
if (i == (ImWchar)-1)
|
||||||
return NULL;
|
return NULL;
|
||||||
return &Glyphs.Data[i];
|
return &Glyphs.Data[i];
|
||||||
}
|
}
|
||||||
@ -2608,7 +2608,7 @@ ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, cons
|
|||||||
return text_size;
|
return text_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImFont::RenderChar(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, unsigned short c) const
|
void ImFont::RenderChar(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, ImWchar c) const
|
||||||
{
|
{
|
||||||
if (c == ' ' || c == '\t' || c == '\n' || c == '\r') // Match behavior of RenderText(), those 4 codepoints are hard-coded.
|
if (c == ' ' || c == '\t' || c == '\n' || c == '\r') // Match behavior of RenderText(), those 4 codepoints are hard-coded.
|
||||||
return;
|
return;
|
||||||
@ -2733,7 +2733,7 @@ void ImFont::RenderText(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col
|
|||||||
}
|
}
|
||||||
|
|
||||||
float char_width = 0.0f;
|
float char_width = 0.0f;
|
||||||
if (const ImFontGlyph* glyph = FindGlyph((unsigned short)c))
|
if (const ImFontGlyph* glyph = FindGlyph((ImWchar)c))
|
||||||
{
|
{
|
||||||
char_width = glyph->AdvanceX * scale;
|
char_width = glyph->AdvanceX * scale;
|
||||||
|
|
||||||
|
@ -838,7 +838,7 @@ bool ImGui::ImageButton(ImTextureID user_texture_id, const ImVec2& size, const I
|
|||||||
|
|
||||||
// Default to using texture ID as ID. User can still push string/integer prefixes.
|
// Default to using texture ID as ID. User can still push string/integer prefixes.
|
||||||
// We could hash the size/uv to create a unique ID but that would prevent the user from animating UV.
|
// We could hash the size/uv to create a unique ID but that would prevent the user from animating UV.
|
||||||
PushID((void*)user_texture_id);
|
PushID((void*)(intptr_t)user_texture_id);
|
||||||
const ImGuiID id = window->GetID("#image");
|
const ImGuiID id = window->GetID("#image");
|
||||||
PopID();
|
PopID();
|
||||||
|
|
||||||
@ -2842,7 +2842,7 @@ static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* t
|
|||||||
if (c == '\r')
|
if (c == '\r')
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
const float char_width = font->GetCharAdvance((unsigned short)c) * scale;
|
const float char_width = font->GetCharAdvance((ImWchar)c) * scale;
|
||||||
line_width += char_width;
|
line_width += char_width;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3695,7 +3695,7 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ImVec2 rect_size = InputTextCalcTextSizeW(p, text_selected_end, &p, NULL, true);
|
ImVec2 rect_size = InputTextCalcTextSizeW(p, text_selected_end, &p, NULL, true);
|
||||||
if (rect_size.x <= 0.0f) rect_size.x = (float)(int)(g.Font->GetCharAdvance((unsigned short)' ') * 0.50f); // So we can see selected empty lines
|
if (rect_size.x <= 0.0f) rect_size.x = (float)(int)(g.Font->GetCharAdvance((ImWchar)' ') * 0.50f); // So we can see selected empty lines
|
||||||
ImRect rect(rect_pos + ImVec2(0.0f, bg_offy_up - g.FontSize), rect_pos +ImVec2(rect_size.x, bg_offy_dn));
|
ImRect rect(rect_pos + ImVec2(0.0f, bg_offy_up - g.FontSize), rect_pos +ImVec2(rect_size.x, bg_offy_dn));
|
||||||
rect.ClipWith(clip_rect);
|
rect.ClipWith(clip_rect);
|
||||||
if (rect.Overlaps(clip_rect))
|
if (rect.Overlaps(clip_rect))
|
||||||
@ -3923,7 +3923,7 @@ bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flag
|
|||||||
if (label != label_display_end)
|
if (label != label_display_end)
|
||||||
{
|
{
|
||||||
TextUnformatted(label, label_display_end);
|
TextUnformatted(label, label_display_end);
|
||||||
Separator();
|
Spacing();
|
||||||
}
|
}
|
||||||
ImGuiColorEditFlags picker_flags_to_forward = ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags__PickerMask | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaBar;
|
ImGuiColorEditFlags picker_flags_to_forward = ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags__PickerMask | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaBar;
|
||||||
ImGuiColorEditFlags picker_flags = (flags_untouched & picker_flags_to_forward) | ImGuiColorEditFlags__InputsMask | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_AlphaPreviewHalf;
|
ImGuiColorEditFlags picker_flags = (flags_untouched & picker_flags_to_forward) | ImGuiColorEditFlags__InputsMask | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_AlphaPreviewHalf;
|
||||||
@ -5549,7 +5549,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled)
|
|||||||
// Menu inside an horizontal menu bar
|
// Menu inside an horizontal menu bar
|
||||||
// Selectable extend their highlight by half ItemSpacing in each direction.
|
// Selectable extend their highlight by half ItemSpacing in each direction.
|
||||||
// For ChildMenu, the popup position will be overwritten by the call to FindBestWindowPosForPopup() in Begin()
|
// For ChildMenu, the popup position will be overwritten by the call to FindBestWindowPosForPopup() in Begin()
|
||||||
popup_pos = ImVec2(pos.x - window->WindowPadding.x, pos.y - style.FramePadding.y + window->MenuBarHeight());
|
popup_pos = ImVec2(pos.x - 1.0f - (float)(int)(style.ItemSpacing.x * 0.5f), pos.y - style.FramePadding.y + window->MenuBarHeight());
|
||||||
window->DC.CursorPos.x += (float)(int)(style.ItemSpacing.x * 0.5f);
|
window->DC.CursorPos.x += (float)(int)(style.ItemSpacing.x * 0.5f);
|
||||||
PushStyleVar(ImGuiStyleVar_ItemSpacing, style.ItemSpacing * 2.0f);
|
PushStyleVar(ImGuiStyleVar_ItemSpacing, style.ItemSpacing * 2.0f);
|
||||||
float w = label_size.x;
|
float w = label_size.x;
|
||||||
|
@ -337,7 +337,7 @@ bool ImGuiFreeType::BuildFontAtlas(ImFontAtlas* atlas, unsigned int extra_flags)
|
|||||||
{
|
{
|
||||||
for (uint32_t codepoint = in_range[0]; codepoint <= in_range[1]; ++codepoint)
|
for (uint32_t codepoint = in_range[0]; codepoint <= in_range[1]; ++codepoint)
|
||||||
{
|
{
|
||||||
if (cfg.MergeMode && dst_font->FindGlyphNoFallback((unsigned short)codepoint))
|
if (cfg.MergeMode && dst_font->FindGlyphNoFallback((ImWchar)codepoint))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
FT_Glyph ft_glyph = NULL;
|
FT_Glyph ft_glyph = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user