diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/misc/fonts/DroidSans.ttf b/misc/fonts/DroidSans.ttf
new file mode 100644
index 0000000..767c63a
--- /dev/null
+++ b/misc/fonts/DroidSans.ttf
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/misc/fonts/DroidSans.ttf b/misc/fonts/DroidSans.ttf
new file mode 100644
index 0000000..767c63a
--- /dev/null
+++ b/misc/fonts/DroidSans.ttf
Binary files differ
diff --git a/misc/fonts/Karla-Regular.ttf b/misc/fonts/Karla-Regular.ttf
new file mode 100644
index 0000000..81b3de6
--- /dev/null
+++ b/misc/fonts/Karla-Regular.ttf
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/misc/fonts/DroidSans.ttf b/misc/fonts/DroidSans.ttf
new file mode 100644
index 0000000..767c63a
--- /dev/null
+++ b/misc/fonts/DroidSans.ttf
Binary files differ
diff --git a/misc/fonts/Karla-Regular.ttf b/misc/fonts/Karla-Regular.ttf
new file mode 100644
index 0000000..81b3de6
--- /dev/null
+++ b/misc/fonts/Karla-Regular.ttf
Binary files differ
diff --git a/misc/fonts/ProggyClean.ttf b/misc/fonts/ProggyClean.ttf
new file mode 100644
index 0000000..0270cdf
--- /dev/null
+++ b/misc/fonts/ProggyClean.ttf
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/misc/fonts/DroidSans.ttf b/misc/fonts/DroidSans.ttf
new file mode 100644
index 0000000..767c63a
--- /dev/null
+++ b/misc/fonts/DroidSans.ttf
Binary files differ
diff --git a/misc/fonts/Karla-Regular.ttf b/misc/fonts/Karla-Regular.ttf
new file mode 100644
index 0000000..81b3de6
--- /dev/null
+++ b/misc/fonts/Karla-Regular.ttf
Binary files differ
diff --git a/misc/fonts/ProggyClean.ttf b/misc/fonts/ProggyClean.ttf
new file mode 100644
index 0000000..0270cdf
--- /dev/null
+++ b/misc/fonts/ProggyClean.ttf
Binary files differ
diff --git a/misc/fonts/ProggyTiny.ttf b/misc/fonts/ProggyTiny.ttf
new file mode 100644
index 0000000..1c4312c
--- /dev/null
+++ b/misc/fonts/ProggyTiny.ttf
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/misc/fonts/DroidSans.ttf b/misc/fonts/DroidSans.ttf
new file mode 100644
index 0000000..767c63a
--- /dev/null
+++ b/misc/fonts/DroidSans.ttf
Binary files differ
diff --git a/misc/fonts/Karla-Regular.ttf b/misc/fonts/Karla-Regular.ttf
new file mode 100644
index 0000000..81b3de6
--- /dev/null
+++ b/misc/fonts/Karla-Regular.ttf
Binary files differ
diff --git a/misc/fonts/ProggyClean.ttf b/misc/fonts/ProggyClean.ttf
new file mode 100644
index 0000000..0270cdf
--- /dev/null
+++ b/misc/fonts/ProggyClean.ttf
Binary files differ
diff --git a/misc/fonts/ProggyTiny.ttf b/misc/fonts/ProggyTiny.ttf
new file mode 100644
index 0000000..1c4312c
--- /dev/null
+++ b/misc/fonts/ProggyTiny.ttf
Binary files differ
diff --git a/misc/fonts/README.txt b/misc/fonts/README.txt
new file mode 100644
index 0000000..2287f6e
--- /dev/null
+++ b/misc/fonts/README.txt
@@ -0,0 +1,255 @@
+
+The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
+We embed the font in source code so you can use Dear ImGui without any file system access.
+You may also load external .TTF/.OTF files.
+The files in this folder are suggested fonts, provided as a convenience.
+(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
+
+Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
+Also read dear imgui FAQ in imgui.cpp!
+
+In this document:
+
+- Using Icons
+- Fonts Loading Instructions
+- FreeType rasterizer, Small font sizes
+- Building Custom Glyph Ranges
+- Remapping Codepoints
+- Embedding Fonts in Source Code
+- Credits/Licences for fonts included in this folder
+- Links, Other fonts
+
+
+---------------------------------------
+ USING ICONS
+---------------------------------------
+
+ Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
+ A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
+ having to change fonts back and forth.
+
+ To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
+ https://github.com/juliettef/IconFontCppHeaders
+
+ The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
+ #define ICON_FA_SEARCH u8"\uf002"
+ The pre-C++11 version has the values directly encoded as utf-8:
+ #define ICON_FA_SEARCH "\xEF\x80\x82"
+
+ Example:
+
+ // Merge icons into default tool font
+ #include "IconsFontAwesome.h"
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ ImFontConfig config;
+ config.MergeMode = true;
+ static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
+ io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
+
+ // Usage, e.g.
+ ImGui::Text("%s Search", ICON_FA_SEARCH);
+
+ See Links below for other icons fonts and related tools.
+
+
+---------------------------------------
+ FONTS LOADING INSTRUCTIONS
+---------------------------------------
+
+ Load default font with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ Load .TTF/.OTF file with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+
+ For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
+
+ ImFontConfig config;
+ config.OversampleH = 3;
+ config.OversampleV = 1;
+ config.GlyphExtraSpacing.x = 1.0f;
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
+
+ If you have very large number of glyphs or multiple fonts:
+
+ - Mind the fact that some graphics drivers have texture size limitation.
+ - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
+ - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
+ - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
+
+ Combine two fonts into one:
+
+ // Load a first font
+ io.Fonts->AddFontDefault();
+
+ // Add character ranges and merge into the previous font
+ // The ranges array is not copied by the AddFont* functions and is used lazily
+ // so ensure it is available for duration of font usage
+ static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
+ ImFontConfig config;
+ config.MergeMode = true;
+ io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
+ io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
+
+ Add a fourth parameter to bake specific font ranges only:
+
+ // Basic Latin, Extended Latin
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
+
+ // Include full set of about 21000 CJK Unified Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
+
+ // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
+
+ Offset font vertically by altering the io.Font->DisplayOffset value:
+
+ ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+ font->DisplayOffset.y += 1; // Render 1 pixel down
+
+
+---------------------------------------
+ FREETYPE RASTERIZER, SMALL FONT SIZES
+---------------------------------------
+
+ Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
+ This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
+ There is an implementation of the ImFontAtlas builder using FreeType that you can use:
+
+ https://github.com/ocornut/imgui_club
+
+ FreeType supports auto-hinting which tends to improve the readability of small fonts.
+ Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
+
+
+---------------------------------------
+ BUILDING CUSTOM GLYPH RANGES
+---------------------------------------
+
+ You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
+ For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
+
+ ImVector ranges;
+ ImFontAtlas::GlyphRangesBuilder builder;
+ builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
+ builder.AddChar(0x7262); // Add a specific character
+ builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
+ builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
+ io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
+
+
+---------------------------------------
+ REMAPPING CODEPOINTS
+---------------------------------------
+
+ All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
+ In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
+ e.g.
+ u8"hello"
+ u8"こんにちは"
+ You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
+
+
+---------------------------------------
+ EMBEDDING FONTS IN SOURCE CODE
+---------------------------------------
+
+ Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
+ See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
+ You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
+ The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
+
+ Then load the font with:
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
+
+ Or
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
+
+
+---------------------------------------
+ CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
+---------------------------------------
+
+ Roboto-Medium.ttf
+ Apache License 2.0
+ by Christian Robertson
+ https://fonts.google.com/specimen/Roboto
+
+ Cousine-Regular.ttf
+ by Steve Matteson
+ Digitized data copyright (c) 2010 Google Corporation.
+ Licensed under the SIL Open Font License, Version 1.1
+ https://fonts.google.com/specimen/Cousine
+
+ DroidSans.ttf
+ Copyright (c) Steve Matteson
+ Apache License, version 2.0
+ https://www.fontsquirrel.com/fonts/droid-sans
+
+ ProggyClean.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ ProggyTiny.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ Karla-Regular.ttf
+ Copyright (c) 2012, Jonathan Pinhorn
+ SIL OPEN FONT LICENSE Version 1.1
+
+
+---------------------------------------
+ LINKS, OTHER FONTS
+---------------------------------------
+
+ (Icons) Icon fonts
+ https://fortawesome.github.io/Font-Awesome/
+ https://github.com/SamBrishes/kenney-icon-font
+ https://design.google.com/icons/
+ You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
+
+ (Icons) IcoMoon - Custom Icon font builder
+ https://icomoon.io/app
+
+ (Regular) Open Sans Fonts
+ https://fonts.google.com/specimen/Open+Sans
+
+ (Regular) Google Noto Fonts (worldwide languages)
+ https://www.google.com/get/noto/
+
+ (Monospace) Typefaces for source code beautification
+ https://github.com/chrissimpkins/codeface
+
+ (Monospace) Programmation fonts
+ http://s9w.github.io/font_compare/
+
+ (Monospace) Proggy Programming Fonts
+ http://upperbounds.net
+
+ (Monospace) Inconsolata
+ http://www.levien.com/type/myfonts/inconsolata.html
+
+ (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
+ https://github.com/adobe-fonts/source-code-pro
+
+ (Monospace) Monospace/Fixed Width Programmer's Fonts
+ http://www.lowing.org/fonts/
+
+ (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
+ http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
+
+ Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
+
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/misc/fonts/DroidSans.ttf b/misc/fonts/DroidSans.ttf
new file mode 100644
index 0000000..767c63a
--- /dev/null
+++ b/misc/fonts/DroidSans.ttf
Binary files differ
diff --git a/misc/fonts/Karla-Regular.ttf b/misc/fonts/Karla-Regular.ttf
new file mode 100644
index 0000000..81b3de6
--- /dev/null
+++ b/misc/fonts/Karla-Regular.ttf
Binary files differ
diff --git a/misc/fonts/ProggyClean.ttf b/misc/fonts/ProggyClean.ttf
new file mode 100644
index 0000000..0270cdf
--- /dev/null
+++ b/misc/fonts/ProggyClean.ttf
Binary files differ
diff --git a/misc/fonts/ProggyTiny.ttf b/misc/fonts/ProggyTiny.ttf
new file mode 100644
index 0000000..1c4312c
--- /dev/null
+++ b/misc/fonts/ProggyTiny.ttf
Binary files differ
diff --git a/misc/fonts/README.txt b/misc/fonts/README.txt
new file mode 100644
index 0000000..2287f6e
--- /dev/null
+++ b/misc/fonts/README.txt
@@ -0,0 +1,255 @@
+
+The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
+We embed the font in source code so you can use Dear ImGui without any file system access.
+You may also load external .TTF/.OTF files.
+The files in this folder are suggested fonts, provided as a convenience.
+(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
+
+Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
+Also read dear imgui FAQ in imgui.cpp!
+
+In this document:
+
+- Using Icons
+- Fonts Loading Instructions
+- FreeType rasterizer, Small font sizes
+- Building Custom Glyph Ranges
+- Remapping Codepoints
+- Embedding Fonts in Source Code
+- Credits/Licences for fonts included in this folder
+- Links, Other fonts
+
+
+---------------------------------------
+ USING ICONS
+---------------------------------------
+
+ Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
+ A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
+ having to change fonts back and forth.
+
+ To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
+ https://github.com/juliettef/IconFontCppHeaders
+
+ The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
+ #define ICON_FA_SEARCH u8"\uf002"
+ The pre-C++11 version has the values directly encoded as utf-8:
+ #define ICON_FA_SEARCH "\xEF\x80\x82"
+
+ Example:
+
+ // Merge icons into default tool font
+ #include "IconsFontAwesome.h"
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ ImFontConfig config;
+ config.MergeMode = true;
+ static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
+ io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
+
+ // Usage, e.g.
+ ImGui::Text("%s Search", ICON_FA_SEARCH);
+
+ See Links below for other icons fonts and related tools.
+
+
+---------------------------------------
+ FONTS LOADING INSTRUCTIONS
+---------------------------------------
+
+ Load default font with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ Load .TTF/.OTF file with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+
+ For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
+
+ ImFontConfig config;
+ config.OversampleH = 3;
+ config.OversampleV = 1;
+ config.GlyphExtraSpacing.x = 1.0f;
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
+
+ If you have very large number of glyphs or multiple fonts:
+
+ - Mind the fact that some graphics drivers have texture size limitation.
+ - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
+ - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
+ - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
+
+ Combine two fonts into one:
+
+ // Load a first font
+ io.Fonts->AddFontDefault();
+
+ // Add character ranges and merge into the previous font
+ // The ranges array is not copied by the AddFont* functions and is used lazily
+ // so ensure it is available for duration of font usage
+ static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
+ ImFontConfig config;
+ config.MergeMode = true;
+ io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
+ io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
+
+ Add a fourth parameter to bake specific font ranges only:
+
+ // Basic Latin, Extended Latin
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
+
+ // Include full set of about 21000 CJK Unified Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
+
+ // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
+
+ Offset font vertically by altering the io.Font->DisplayOffset value:
+
+ ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+ font->DisplayOffset.y += 1; // Render 1 pixel down
+
+
+---------------------------------------
+ FREETYPE RASTERIZER, SMALL FONT SIZES
+---------------------------------------
+
+ Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
+ This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
+ There is an implementation of the ImFontAtlas builder using FreeType that you can use:
+
+ https://github.com/ocornut/imgui_club
+
+ FreeType supports auto-hinting which tends to improve the readability of small fonts.
+ Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
+
+
+---------------------------------------
+ BUILDING CUSTOM GLYPH RANGES
+---------------------------------------
+
+ You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
+ For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
+
+ ImVector ranges;
+ ImFontAtlas::GlyphRangesBuilder builder;
+ builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
+ builder.AddChar(0x7262); // Add a specific character
+ builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
+ builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
+ io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
+
+
+---------------------------------------
+ REMAPPING CODEPOINTS
+---------------------------------------
+
+ All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
+ In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
+ e.g.
+ u8"hello"
+ u8"こんにちは"
+ You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
+
+
+---------------------------------------
+ EMBEDDING FONTS IN SOURCE CODE
+---------------------------------------
+
+ Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
+ See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
+ You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
+ The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
+
+ Then load the font with:
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
+
+ Or
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
+
+
+---------------------------------------
+ CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
+---------------------------------------
+
+ Roboto-Medium.ttf
+ Apache License 2.0
+ by Christian Robertson
+ https://fonts.google.com/specimen/Roboto
+
+ Cousine-Regular.ttf
+ by Steve Matteson
+ Digitized data copyright (c) 2010 Google Corporation.
+ Licensed under the SIL Open Font License, Version 1.1
+ https://fonts.google.com/specimen/Cousine
+
+ DroidSans.ttf
+ Copyright (c) Steve Matteson
+ Apache License, version 2.0
+ https://www.fontsquirrel.com/fonts/droid-sans
+
+ ProggyClean.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ ProggyTiny.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ Karla-Regular.ttf
+ Copyright (c) 2012, Jonathan Pinhorn
+ SIL OPEN FONT LICENSE Version 1.1
+
+
+---------------------------------------
+ LINKS, OTHER FONTS
+---------------------------------------
+
+ (Icons) Icon fonts
+ https://fortawesome.github.io/Font-Awesome/
+ https://github.com/SamBrishes/kenney-icon-font
+ https://design.google.com/icons/
+ You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
+
+ (Icons) IcoMoon - Custom Icon font builder
+ https://icomoon.io/app
+
+ (Regular) Open Sans Fonts
+ https://fonts.google.com/specimen/Open+Sans
+
+ (Regular) Google Noto Fonts (worldwide languages)
+ https://www.google.com/get/noto/
+
+ (Monospace) Typefaces for source code beautification
+ https://github.com/chrissimpkins/codeface
+
+ (Monospace) Programmation fonts
+ http://s9w.github.io/font_compare/
+
+ (Monospace) Proggy Programming Fonts
+ http://upperbounds.net
+
+ (Monospace) Inconsolata
+ http://www.levien.com/type/myfonts/inconsolata.html
+
+ (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
+ https://github.com/adobe-fonts/source-code-pro
+
+ (Monospace) Monospace/Fixed Width Programmer's Fonts
+ http://www.lowing.org/fonts/
+
+ (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
+ http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
+
+ Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
+
diff --git a/misc/fonts/Roboto-Medium.ttf b/misc/fonts/Roboto-Medium.ttf
new file mode 100644
index 0000000..39c63d7
--- /dev/null
+++ b/misc/fonts/Roboto-Medium.ttf
Binary files differ
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/misc/fonts/DroidSans.ttf b/misc/fonts/DroidSans.ttf
new file mode 100644
index 0000000..767c63a
--- /dev/null
+++ b/misc/fonts/DroidSans.ttf
Binary files differ
diff --git a/misc/fonts/Karla-Regular.ttf b/misc/fonts/Karla-Regular.ttf
new file mode 100644
index 0000000..81b3de6
--- /dev/null
+++ b/misc/fonts/Karla-Regular.ttf
Binary files differ
diff --git a/misc/fonts/ProggyClean.ttf b/misc/fonts/ProggyClean.ttf
new file mode 100644
index 0000000..0270cdf
--- /dev/null
+++ b/misc/fonts/ProggyClean.ttf
Binary files differ
diff --git a/misc/fonts/ProggyTiny.ttf b/misc/fonts/ProggyTiny.ttf
new file mode 100644
index 0000000..1c4312c
--- /dev/null
+++ b/misc/fonts/ProggyTiny.ttf
Binary files differ
diff --git a/misc/fonts/README.txt b/misc/fonts/README.txt
new file mode 100644
index 0000000..2287f6e
--- /dev/null
+++ b/misc/fonts/README.txt
@@ -0,0 +1,255 @@
+
+The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
+We embed the font in source code so you can use Dear ImGui without any file system access.
+You may also load external .TTF/.OTF files.
+The files in this folder are suggested fonts, provided as a convenience.
+(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
+
+Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
+Also read dear imgui FAQ in imgui.cpp!
+
+In this document:
+
+- Using Icons
+- Fonts Loading Instructions
+- FreeType rasterizer, Small font sizes
+- Building Custom Glyph Ranges
+- Remapping Codepoints
+- Embedding Fonts in Source Code
+- Credits/Licences for fonts included in this folder
+- Links, Other fonts
+
+
+---------------------------------------
+ USING ICONS
+---------------------------------------
+
+ Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
+ A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
+ having to change fonts back and forth.
+
+ To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
+ https://github.com/juliettef/IconFontCppHeaders
+
+ The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
+ #define ICON_FA_SEARCH u8"\uf002"
+ The pre-C++11 version has the values directly encoded as utf-8:
+ #define ICON_FA_SEARCH "\xEF\x80\x82"
+
+ Example:
+
+ // Merge icons into default tool font
+ #include "IconsFontAwesome.h"
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ ImFontConfig config;
+ config.MergeMode = true;
+ static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
+ io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
+
+ // Usage, e.g.
+ ImGui::Text("%s Search", ICON_FA_SEARCH);
+
+ See Links below for other icons fonts and related tools.
+
+
+---------------------------------------
+ FONTS LOADING INSTRUCTIONS
+---------------------------------------
+
+ Load default font with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ Load .TTF/.OTF file with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+
+ For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
+
+ ImFontConfig config;
+ config.OversampleH = 3;
+ config.OversampleV = 1;
+ config.GlyphExtraSpacing.x = 1.0f;
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
+
+ If you have very large number of glyphs or multiple fonts:
+
+ - Mind the fact that some graphics drivers have texture size limitation.
+ - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
+ - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
+ - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
+
+ Combine two fonts into one:
+
+ // Load a first font
+ io.Fonts->AddFontDefault();
+
+ // Add character ranges and merge into the previous font
+ // The ranges array is not copied by the AddFont* functions and is used lazily
+ // so ensure it is available for duration of font usage
+ static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
+ ImFontConfig config;
+ config.MergeMode = true;
+ io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
+ io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
+
+ Add a fourth parameter to bake specific font ranges only:
+
+ // Basic Latin, Extended Latin
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
+
+ // Include full set of about 21000 CJK Unified Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
+
+ // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
+
+ Offset font vertically by altering the io.Font->DisplayOffset value:
+
+ ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+ font->DisplayOffset.y += 1; // Render 1 pixel down
+
+
+---------------------------------------
+ FREETYPE RASTERIZER, SMALL FONT SIZES
+---------------------------------------
+
+ Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
+ This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
+ There is an implementation of the ImFontAtlas builder using FreeType that you can use:
+
+ https://github.com/ocornut/imgui_club
+
+ FreeType supports auto-hinting which tends to improve the readability of small fonts.
+ Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
+
+
+---------------------------------------
+ BUILDING CUSTOM GLYPH RANGES
+---------------------------------------
+
+ You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
+ For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
+
+ ImVector ranges;
+ ImFontAtlas::GlyphRangesBuilder builder;
+ builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
+ builder.AddChar(0x7262); // Add a specific character
+ builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
+ builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
+ io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
+
+
+---------------------------------------
+ REMAPPING CODEPOINTS
+---------------------------------------
+
+ All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
+ In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
+ e.g.
+ u8"hello"
+ u8"こんにちは"
+ You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
+
+
+---------------------------------------
+ EMBEDDING FONTS IN SOURCE CODE
+---------------------------------------
+
+ Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
+ See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
+ You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
+ The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
+
+ Then load the font with:
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
+
+ Or
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
+
+
+---------------------------------------
+ CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
+---------------------------------------
+
+ Roboto-Medium.ttf
+ Apache License 2.0
+ by Christian Robertson
+ https://fonts.google.com/specimen/Roboto
+
+ Cousine-Regular.ttf
+ by Steve Matteson
+ Digitized data copyright (c) 2010 Google Corporation.
+ Licensed under the SIL Open Font License, Version 1.1
+ https://fonts.google.com/specimen/Cousine
+
+ DroidSans.ttf
+ Copyright (c) Steve Matteson
+ Apache License, version 2.0
+ https://www.fontsquirrel.com/fonts/droid-sans
+
+ ProggyClean.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ ProggyTiny.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ Karla-Regular.ttf
+ Copyright (c) 2012, Jonathan Pinhorn
+ SIL OPEN FONT LICENSE Version 1.1
+
+
+---------------------------------------
+ LINKS, OTHER FONTS
+---------------------------------------
+
+ (Icons) Icon fonts
+ https://fortawesome.github.io/Font-Awesome/
+ https://github.com/SamBrishes/kenney-icon-font
+ https://design.google.com/icons/
+ You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
+
+ (Icons) IcoMoon - Custom Icon font builder
+ https://icomoon.io/app
+
+ (Regular) Open Sans Fonts
+ https://fonts.google.com/specimen/Open+Sans
+
+ (Regular) Google Noto Fonts (worldwide languages)
+ https://www.google.com/get/noto/
+
+ (Monospace) Typefaces for source code beautification
+ https://github.com/chrissimpkins/codeface
+
+ (Monospace) Programmation fonts
+ http://s9w.github.io/font_compare/
+
+ (Monospace) Proggy Programming Fonts
+ http://upperbounds.net
+
+ (Monospace) Inconsolata
+ http://www.levien.com/type/myfonts/inconsolata.html
+
+ (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
+ https://github.com/adobe-fonts/source-code-pro
+
+ (Monospace) Monospace/Fixed Width Programmer's Fonts
+ http://www.lowing.org/fonts/
+
+ (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
+ http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
+
+ Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
+
diff --git a/misc/fonts/Roboto-Medium.ttf b/misc/fonts/Roboto-Medium.ttf
new file mode 100644
index 0000000..39c63d7
--- /dev/null
+++ b/misc/fonts/Roboto-Medium.ttf
Binary files differ
diff --git a/misc/fonts/binary_to_compressed_c.cpp b/misc/fonts/binary_to_compressed_c.cpp
new file mode 100644
index 0000000..e373e69
--- /dev/null
+++ b/misc/fonts/binary_to_compressed_c.cpp
@@ -0,0 +1,380 @@
+// ImGui - binary_to_compressed_c.cpp
+// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
+
+// The data is first compressed with stb_compress() to reduce source code size,
+// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
+// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
+// Note that even with compression, the output array is likely to be bigger than the binary file..
+// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
+
+// Build with, e.g:
+// # cl.exe binary_to_compressed_c.cpp
+// # gcc binary_to_compressed_c.cpp
+// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
+
+// Usage:
+// binary_to_compressed_c.exe [-base85] [-nocompress]
+// Usage example:
+// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
+// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
+
+#define _CRT_SECURE_NO_WARNINGS
+#include
+#include
+#include
+#include
+
+// stb_compress* from stb.h - declaration
+typedef unsigned int stb_uint;
+typedef unsigned char stb_uchar;
+stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
+
+static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
+
+int main(int argc, char** argv)
+{
+ if (argc < 3)
+ {
+ printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
+ return 0;
+ }
+
+ int argn = 1;
+ bool use_base85_encoding = false;
+ bool use_compression = true;
+ if (argv[argn][0] == '-')
+ {
+ if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
+ else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
+ else
+ {
+ printf("Unknown argument: '%s'\n", argv[argn]);
+ return 1;
+ }
+ }
+
+ return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
+}
+
+char Encode85Byte(unsigned int x)
+{
+ x = (x % 85) + 35;
+ return (x>='\\') ? x+1 : x;
+}
+
+bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
+{
+ // Read file
+ FILE* f = fopen(filename, "rb");
+ if (!f) return false;
+ int data_sz;
+ if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
+ char* data = new char[data_sz+4];
+ if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
+ memset((void *)(((char*)data) + data_sz), 0, 4);
+ fclose(f);
+
+ // Compress
+ int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
+ char* compressed = use_compression ? new char[maxlen] : data;
+ int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
+ if (use_compression)
+ memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
+
+ // Output as Base85 encoded
+ FILE* out = stdout;
+ fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
+ fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
+ const char* compressed_str = use_compression ? "compressed_" : "";
+ if (use_base85_encoding)
+ {
+ fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
+ char prev_c = 0;
+ for (int src_i = 0; src_i < compressed_sz; src_i += 4)
+ {
+ // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
+ unsigned int d = *(unsigned int*)(compressed + src_i);
+ for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
+ {
+ char c = Encode85Byte(d);
+ fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
+ prev_c = c;
+ }
+ if ((src_i % 112) == 112-4)
+ fprintf(out, "\"\n \"");
+ }
+ fprintf(out, "\";\n\n");
+ }
+ else
+ {
+ fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
+ fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
+ int column = 0;
+ for (int i = 0; i < compressed_sz; i += 4)
+ {
+ unsigned int d = *(unsigned int*)(compressed + i);
+ if ((column++ % 12) == 0)
+ fprintf(out, "\n 0x%08x, ", d);
+ else
+ fprintf(out, "0x%08x, ", d);
+ }
+ fprintf(out, "\n};\n\n");
+ }
+
+ // Cleanup
+ delete[] data;
+ if (use_compression)
+ delete[] compressed;
+ return true;
+}
+
+// stb_compress* from stb.h - definition
+
+//////////////////// compressor ///////////////////////
+
+static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
+{
+ const unsigned long ADLER_MOD = 65521;
+ unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
+ unsigned long blocklen, i;
+
+ blocklen = buflen % 5552;
+ while (buflen) {
+ for (i=0; i + 7 < blocklen; i += 8) {
+ s1 += buffer[0], s2 += s1;
+ s1 += buffer[1], s2 += s1;
+ s1 += buffer[2], s2 += s1;
+ s1 += buffer[3], s2 += s1;
+ s1 += buffer[4], s2 += s1;
+ s1 += buffer[5], s2 += s1;
+ s1 += buffer[6], s2 += s1;
+ s1 += buffer[7], s2 += s1;
+
+ buffer += 8;
+ }
+
+ for (; i < blocklen; ++i)
+ s1 += *buffer++, s2 += s1;
+
+ s1 %= ADLER_MOD, s2 %= ADLER_MOD;
+ buflen -= blocklen;
+ blocklen = 5552;
+ }
+ return (s2 << 16) + s1;
+}
+
+static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
+{
+ stb_uint i;
+ for (i=0; i < maxlen; ++i)
+ if (m1[i] != m2[i]) return i;
+ return i;
+}
+
+// simple implementation that just takes the source data in a big block
+
+static stb_uchar *stb__out;
+static FILE *stb__outfile;
+static stb_uint stb__outbytes;
+
+static void stb__write(unsigned char v)
+{
+ fputc(v, stb__outfile);
+ ++stb__outbytes;
+}
+
+//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
+#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
+
+static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
+static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
+static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
+
+static void outliterals(stb_uchar *in, int numlit)
+{
+ while (numlit > 65536) {
+ outliterals(in,65536);
+ in += 65536;
+ numlit -= 65536;
+ }
+
+ if (numlit == 0) ;
+ else if (numlit <= 32) stb_out (0x000020 + numlit-1);
+ else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
+ else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
+
+ if (stb__out) {
+ memcpy(stb__out,in,numlit);
+ stb__out += numlit;
+ } else
+ fwrite(in, 1, numlit, stb__outfile);
+}
+
+static int stb__window = 0x40000; // 256K
+
+static int stb_not_crap(int best, int dist)
+{
+ return ((best > 2 && dist <= 0x00100)
+ || (best > 5 && dist <= 0x04000)
+ || (best > 7 && dist <= 0x80000));
+}
+
+static stb_uint stb__hashsize = 32768;
+
+// note that you can play with the hashing functions all you
+// want without needing to change the decompressor
+#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
+#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
+#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
+
+static unsigned int stb__running_adler;
+
+static int stb_compress_chunk(stb_uchar *history,
+ stb_uchar *start,
+ stb_uchar *end,
+ int length,
+ int *pending_literals,
+ stb_uchar **chash,
+ stb_uint mask)
+{
+ (void)history;
+ int window = stb__window;
+ stb_uint match_max;
+ stb_uchar *lit_start = start - *pending_literals;
+ stb_uchar *q = start;
+
+#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
+
+ // stop short of the end so we don't scan off the end doing
+ // the hashing; this means we won't compress the last few bytes
+ // unless they were part of something longer
+ while (q < start+length && q+12 < end) {
+ int m;
+ stb_uint h1,h2,h3,h4, h;
+ stb_uchar *t;
+ int best = 2, dist=0;
+
+ if (q+65536 > end)
+ match_max = end-q;
+ else
+ match_max = 65536;
+
+#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
+
+#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
+ if (p ? dist != q-t : 1) \
+ if ((m = stb_matchlen(t, q, match_max)) > best) \
+ if (stb__nc(m,q-(t))) \
+ best = m, dist = q - (t)
+
+ // rather than search for all matches, only try 4 candidate locations,
+ // chosen based on 4 different hash functions of different lengths.
+ // this strategy is inspired by LZO; hashing is unrolled here using the
+ // 'hc' macro
+ h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
+ t = chash[h1]; if (t) STB__TRY(t,0);
+ h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
+ h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
+ h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
+ h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
+ h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
+ t = chash[h4]; if (t) STB__TRY(t,1);
+
+ // because we use a shared hash table, can only update it
+ // _after_ we've probed all of them
+ chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
+
+ if (best > 2)
+ assert(dist > 0);
+
+ // see if our best match qualifies
+ if (best < 3) { // fast path literals
+ ++q;
+ } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out(0x80 + best-1);
+ stb_out(dist-1);
+ } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out2(0x4000 + dist-1);
+ stb_out(best-1);
+ } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out3(0x180000 + dist-1);
+ stb_out(best-1);
+ } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out3(0x100000 + dist-1);
+ stb_out2(best-1);
+ } else if (best > 9 && dist <= 0x1000000) {
+ if (best > 65536) best = 65536;
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ if (best <= 0x100) {
+ stb_out(0x06);
+ stb_out3(dist-1);
+ stb_out(best-1);
+ } else {
+ stb_out(0x04);
+ stb_out3(dist-1);
+ stb_out2(best-1);
+ }
+ } else { // fallback literals if no match was a balanced tradeoff
+ ++q;
+ }
+ }
+
+ // if we didn't get all the way, add the rest to literals
+ if (q-start < length)
+ q = start+length;
+
+ // the literals are everything from lit_start to q
+ *pending_literals = (q - lit_start);
+
+ stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
+ return q - start;
+}
+
+static int stb_compress_inner(stb_uchar *input, stb_uint length)
+{
+ int literals = 0;
+ stb_uint len,i;
+
+ stb_uchar **chash;
+ chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
+ if (chash == NULL) return 0; // failure
+ for (i=0; i < stb__hashsize; ++i)
+ chash[i] = NULL;
+
+ // stream signature
+ stb_out(0x57); stb_out(0xbc);
+ stb_out2(0);
+
+ stb_out4(0); // 64-bit length requires 32-bit leading 0
+ stb_out4(length);
+ stb_out4(stb__window);
+
+ stb__running_adler = 1;
+
+ len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
+ assert(len == length);
+
+ outliterals(input+length - literals, literals);
+
+ free(chash);
+
+ stb_out2(0x05fa); // end opcode
+
+ stb_out4(stb__running_adler);
+
+ return 1; // success
+}
+
+stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
+{
+ stb__out = out;
+ stb__outfile = NULL;
+
+ stb_compress_inner(input, length);
+
+ return stb__out - out;
+}
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/misc/fonts/DroidSans.ttf b/misc/fonts/DroidSans.ttf
new file mode 100644
index 0000000..767c63a
--- /dev/null
+++ b/misc/fonts/DroidSans.ttf
Binary files differ
diff --git a/misc/fonts/Karla-Regular.ttf b/misc/fonts/Karla-Regular.ttf
new file mode 100644
index 0000000..81b3de6
--- /dev/null
+++ b/misc/fonts/Karla-Regular.ttf
Binary files differ
diff --git a/misc/fonts/ProggyClean.ttf b/misc/fonts/ProggyClean.ttf
new file mode 100644
index 0000000..0270cdf
--- /dev/null
+++ b/misc/fonts/ProggyClean.ttf
Binary files differ
diff --git a/misc/fonts/ProggyTiny.ttf b/misc/fonts/ProggyTiny.ttf
new file mode 100644
index 0000000..1c4312c
--- /dev/null
+++ b/misc/fonts/ProggyTiny.ttf
Binary files differ
diff --git a/misc/fonts/README.txt b/misc/fonts/README.txt
new file mode 100644
index 0000000..2287f6e
--- /dev/null
+++ b/misc/fonts/README.txt
@@ -0,0 +1,255 @@
+
+The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
+We embed the font in source code so you can use Dear ImGui without any file system access.
+You may also load external .TTF/.OTF files.
+The files in this folder are suggested fonts, provided as a convenience.
+(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
+
+Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
+Also read dear imgui FAQ in imgui.cpp!
+
+In this document:
+
+- Using Icons
+- Fonts Loading Instructions
+- FreeType rasterizer, Small font sizes
+- Building Custom Glyph Ranges
+- Remapping Codepoints
+- Embedding Fonts in Source Code
+- Credits/Licences for fonts included in this folder
+- Links, Other fonts
+
+
+---------------------------------------
+ USING ICONS
+---------------------------------------
+
+ Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
+ A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
+ having to change fonts back and forth.
+
+ To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
+ https://github.com/juliettef/IconFontCppHeaders
+
+ The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
+ #define ICON_FA_SEARCH u8"\uf002"
+ The pre-C++11 version has the values directly encoded as utf-8:
+ #define ICON_FA_SEARCH "\xEF\x80\x82"
+
+ Example:
+
+ // Merge icons into default tool font
+ #include "IconsFontAwesome.h"
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ ImFontConfig config;
+ config.MergeMode = true;
+ static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
+ io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
+
+ // Usage, e.g.
+ ImGui::Text("%s Search", ICON_FA_SEARCH);
+
+ See Links below for other icons fonts and related tools.
+
+
+---------------------------------------
+ FONTS LOADING INSTRUCTIONS
+---------------------------------------
+
+ Load default font with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ Load .TTF/.OTF file with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+
+ For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
+
+ ImFontConfig config;
+ config.OversampleH = 3;
+ config.OversampleV = 1;
+ config.GlyphExtraSpacing.x = 1.0f;
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
+
+ If you have very large number of glyphs or multiple fonts:
+
+ - Mind the fact that some graphics drivers have texture size limitation.
+ - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
+ - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
+ - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
+
+ Combine two fonts into one:
+
+ // Load a first font
+ io.Fonts->AddFontDefault();
+
+ // Add character ranges and merge into the previous font
+ // The ranges array is not copied by the AddFont* functions and is used lazily
+ // so ensure it is available for duration of font usage
+ static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
+ ImFontConfig config;
+ config.MergeMode = true;
+ io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
+ io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
+
+ Add a fourth parameter to bake specific font ranges only:
+
+ // Basic Latin, Extended Latin
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
+
+ // Include full set of about 21000 CJK Unified Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
+
+ // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
+
+ Offset font vertically by altering the io.Font->DisplayOffset value:
+
+ ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+ font->DisplayOffset.y += 1; // Render 1 pixel down
+
+
+---------------------------------------
+ FREETYPE RASTERIZER, SMALL FONT SIZES
+---------------------------------------
+
+ Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
+ This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
+ There is an implementation of the ImFontAtlas builder using FreeType that you can use:
+
+ https://github.com/ocornut/imgui_club
+
+ FreeType supports auto-hinting which tends to improve the readability of small fonts.
+ Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
+
+
+---------------------------------------
+ BUILDING CUSTOM GLYPH RANGES
+---------------------------------------
+
+ You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
+ For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
+
+ ImVector ranges;
+ ImFontAtlas::GlyphRangesBuilder builder;
+ builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
+ builder.AddChar(0x7262); // Add a specific character
+ builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
+ builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
+ io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
+
+
+---------------------------------------
+ REMAPPING CODEPOINTS
+---------------------------------------
+
+ All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
+ In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
+ e.g.
+ u8"hello"
+ u8"こんにちは"
+ You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
+
+
+---------------------------------------
+ EMBEDDING FONTS IN SOURCE CODE
+---------------------------------------
+
+ Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
+ See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
+ You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
+ The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
+
+ Then load the font with:
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
+
+ Or
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
+
+
+---------------------------------------
+ CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
+---------------------------------------
+
+ Roboto-Medium.ttf
+ Apache License 2.0
+ by Christian Robertson
+ https://fonts.google.com/specimen/Roboto
+
+ Cousine-Regular.ttf
+ by Steve Matteson
+ Digitized data copyright (c) 2010 Google Corporation.
+ Licensed under the SIL Open Font License, Version 1.1
+ https://fonts.google.com/specimen/Cousine
+
+ DroidSans.ttf
+ Copyright (c) Steve Matteson
+ Apache License, version 2.0
+ https://www.fontsquirrel.com/fonts/droid-sans
+
+ ProggyClean.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ ProggyTiny.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ Karla-Regular.ttf
+ Copyright (c) 2012, Jonathan Pinhorn
+ SIL OPEN FONT LICENSE Version 1.1
+
+
+---------------------------------------
+ LINKS, OTHER FONTS
+---------------------------------------
+
+ (Icons) Icon fonts
+ https://fortawesome.github.io/Font-Awesome/
+ https://github.com/SamBrishes/kenney-icon-font
+ https://design.google.com/icons/
+ You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
+
+ (Icons) IcoMoon - Custom Icon font builder
+ https://icomoon.io/app
+
+ (Regular) Open Sans Fonts
+ https://fonts.google.com/specimen/Open+Sans
+
+ (Regular) Google Noto Fonts (worldwide languages)
+ https://www.google.com/get/noto/
+
+ (Monospace) Typefaces for source code beautification
+ https://github.com/chrissimpkins/codeface
+
+ (Monospace) Programmation fonts
+ http://s9w.github.io/font_compare/
+
+ (Monospace) Proggy Programming Fonts
+ http://upperbounds.net
+
+ (Monospace) Inconsolata
+ http://www.levien.com/type/myfonts/inconsolata.html
+
+ (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
+ https://github.com/adobe-fonts/source-code-pro
+
+ (Monospace) Monospace/Fixed Width Programmer's Fonts
+ http://www.lowing.org/fonts/
+
+ (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
+ http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
+
+ Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
+
diff --git a/misc/fonts/Roboto-Medium.ttf b/misc/fonts/Roboto-Medium.ttf
new file mode 100644
index 0000000..39c63d7
--- /dev/null
+++ b/misc/fonts/Roboto-Medium.ttf
Binary files differ
diff --git a/misc/fonts/binary_to_compressed_c.cpp b/misc/fonts/binary_to_compressed_c.cpp
new file mode 100644
index 0000000..e373e69
--- /dev/null
+++ b/misc/fonts/binary_to_compressed_c.cpp
@@ -0,0 +1,380 @@
+// ImGui - binary_to_compressed_c.cpp
+// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
+
+// The data is first compressed with stb_compress() to reduce source code size,
+// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
+// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
+// Note that even with compression, the output array is likely to be bigger than the binary file..
+// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
+
+// Build with, e.g:
+// # cl.exe binary_to_compressed_c.cpp
+// # gcc binary_to_compressed_c.cpp
+// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
+
+// Usage:
+// binary_to_compressed_c.exe [-base85] [-nocompress]
+// Usage example:
+// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
+// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
+
+#define _CRT_SECURE_NO_WARNINGS
+#include
+#include
+#include
+#include
+
+// stb_compress* from stb.h - declaration
+typedef unsigned int stb_uint;
+typedef unsigned char stb_uchar;
+stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
+
+static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
+
+int main(int argc, char** argv)
+{
+ if (argc < 3)
+ {
+ printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
+ return 0;
+ }
+
+ int argn = 1;
+ bool use_base85_encoding = false;
+ bool use_compression = true;
+ if (argv[argn][0] == '-')
+ {
+ if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
+ else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
+ else
+ {
+ printf("Unknown argument: '%s'\n", argv[argn]);
+ return 1;
+ }
+ }
+
+ return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
+}
+
+char Encode85Byte(unsigned int x)
+{
+ x = (x % 85) + 35;
+ return (x>='\\') ? x+1 : x;
+}
+
+bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
+{
+ // Read file
+ FILE* f = fopen(filename, "rb");
+ if (!f) return false;
+ int data_sz;
+ if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
+ char* data = new char[data_sz+4];
+ if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
+ memset((void *)(((char*)data) + data_sz), 0, 4);
+ fclose(f);
+
+ // Compress
+ int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
+ char* compressed = use_compression ? new char[maxlen] : data;
+ int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
+ if (use_compression)
+ memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
+
+ // Output as Base85 encoded
+ FILE* out = stdout;
+ fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
+ fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
+ const char* compressed_str = use_compression ? "compressed_" : "";
+ if (use_base85_encoding)
+ {
+ fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
+ char prev_c = 0;
+ for (int src_i = 0; src_i < compressed_sz; src_i += 4)
+ {
+ // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
+ unsigned int d = *(unsigned int*)(compressed + src_i);
+ for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
+ {
+ char c = Encode85Byte(d);
+ fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
+ prev_c = c;
+ }
+ if ((src_i % 112) == 112-4)
+ fprintf(out, "\"\n \"");
+ }
+ fprintf(out, "\";\n\n");
+ }
+ else
+ {
+ fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
+ fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
+ int column = 0;
+ for (int i = 0; i < compressed_sz; i += 4)
+ {
+ unsigned int d = *(unsigned int*)(compressed + i);
+ if ((column++ % 12) == 0)
+ fprintf(out, "\n 0x%08x, ", d);
+ else
+ fprintf(out, "0x%08x, ", d);
+ }
+ fprintf(out, "\n};\n\n");
+ }
+
+ // Cleanup
+ delete[] data;
+ if (use_compression)
+ delete[] compressed;
+ return true;
+}
+
+// stb_compress* from stb.h - definition
+
+//////////////////// compressor ///////////////////////
+
+static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
+{
+ const unsigned long ADLER_MOD = 65521;
+ unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
+ unsigned long blocklen, i;
+
+ blocklen = buflen % 5552;
+ while (buflen) {
+ for (i=0; i + 7 < blocklen; i += 8) {
+ s1 += buffer[0], s2 += s1;
+ s1 += buffer[1], s2 += s1;
+ s1 += buffer[2], s2 += s1;
+ s1 += buffer[3], s2 += s1;
+ s1 += buffer[4], s2 += s1;
+ s1 += buffer[5], s2 += s1;
+ s1 += buffer[6], s2 += s1;
+ s1 += buffer[7], s2 += s1;
+
+ buffer += 8;
+ }
+
+ for (; i < blocklen; ++i)
+ s1 += *buffer++, s2 += s1;
+
+ s1 %= ADLER_MOD, s2 %= ADLER_MOD;
+ buflen -= blocklen;
+ blocklen = 5552;
+ }
+ return (s2 << 16) + s1;
+}
+
+static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
+{
+ stb_uint i;
+ for (i=0; i < maxlen; ++i)
+ if (m1[i] != m2[i]) return i;
+ return i;
+}
+
+// simple implementation that just takes the source data in a big block
+
+static stb_uchar *stb__out;
+static FILE *stb__outfile;
+static stb_uint stb__outbytes;
+
+static void stb__write(unsigned char v)
+{
+ fputc(v, stb__outfile);
+ ++stb__outbytes;
+}
+
+//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
+#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
+
+static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
+static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
+static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
+
+static void outliterals(stb_uchar *in, int numlit)
+{
+ while (numlit > 65536) {
+ outliterals(in,65536);
+ in += 65536;
+ numlit -= 65536;
+ }
+
+ if (numlit == 0) ;
+ else if (numlit <= 32) stb_out (0x000020 + numlit-1);
+ else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
+ else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
+
+ if (stb__out) {
+ memcpy(stb__out,in,numlit);
+ stb__out += numlit;
+ } else
+ fwrite(in, 1, numlit, stb__outfile);
+}
+
+static int stb__window = 0x40000; // 256K
+
+static int stb_not_crap(int best, int dist)
+{
+ return ((best > 2 && dist <= 0x00100)
+ || (best > 5 && dist <= 0x04000)
+ || (best > 7 && dist <= 0x80000));
+}
+
+static stb_uint stb__hashsize = 32768;
+
+// note that you can play with the hashing functions all you
+// want without needing to change the decompressor
+#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
+#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
+#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
+
+static unsigned int stb__running_adler;
+
+static int stb_compress_chunk(stb_uchar *history,
+ stb_uchar *start,
+ stb_uchar *end,
+ int length,
+ int *pending_literals,
+ stb_uchar **chash,
+ stb_uint mask)
+{
+ (void)history;
+ int window = stb__window;
+ stb_uint match_max;
+ stb_uchar *lit_start = start - *pending_literals;
+ stb_uchar *q = start;
+
+#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
+
+ // stop short of the end so we don't scan off the end doing
+ // the hashing; this means we won't compress the last few bytes
+ // unless they were part of something longer
+ while (q < start+length && q+12 < end) {
+ int m;
+ stb_uint h1,h2,h3,h4, h;
+ stb_uchar *t;
+ int best = 2, dist=0;
+
+ if (q+65536 > end)
+ match_max = end-q;
+ else
+ match_max = 65536;
+
+#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
+
+#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
+ if (p ? dist != q-t : 1) \
+ if ((m = stb_matchlen(t, q, match_max)) > best) \
+ if (stb__nc(m,q-(t))) \
+ best = m, dist = q - (t)
+
+ // rather than search for all matches, only try 4 candidate locations,
+ // chosen based on 4 different hash functions of different lengths.
+ // this strategy is inspired by LZO; hashing is unrolled here using the
+ // 'hc' macro
+ h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
+ t = chash[h1]; if (t) STB__TRY(t,0);
+ h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
+ h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
+ h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
+ h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
+ h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
+ t = chash[h4]; if (t) STB__TRY(t,1);
+
+ // because we use a shared hash table, can only update it
+ // _after_ we've probed all of them
+ chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
+
+ if (best > 2)
+ assert(dist > 0);
+
+ // see if our best match qualifies
+ if (best < 3) { // fast path literals
+ ++q;
+ } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out(0x80 + best-1);
+ stb_out(dist-1);
+ } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out2(0x4000 + dist-1);
+ stb_out(best-1);
+ } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out3(0x180000 + dist-1);
+ stb_out(best-1);
+ } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out3(0x100000 + dist-1);
+ stb_out2(best-1);
+ } else if (best > 9 && dist <= 0x1000000) {
+ if (best > 65536) best = 65536;
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ if (best <= 0x100) {
+ stb_out(0x06);
+ stb_out3(dist-1);
+ stb_out(best-1);
+ } else {
+ stb_out(0x04);
+ stb_out3(dist-1);
+ stb_out2(best-1);
+ }
+ } else { // fallback literals if no match was a balanced tradeoff
+ ++q;
+ }
+ }
+
+ // if we didn't get all the way, add the rest to literals
+ if (q-start < length)
+ q = start+length;
+
+ // the literals are everything from lit_start to q
+ *pending_literals = (q - lit_start);
+
+ stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
+ return q - start;
+}
+
+static int stb_compress_inner(stb_uchar *input, stb_uint length)
+{
+ int literals = 0;
+ stb_uint len,i;
+
+ stb_uchar **chash;
+ chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
+ if (chash == NULL) return 0; // failure
+ for (i=0; i < stb__hashsize; ++i)
+ chash[i] = NULL;
+
+ // stream signature
+ stb_out(0x57); stb_out(0xbc);
+ stb_out2(0);
+
+ stb_out4(0); // 64-bit length requires 32-bit leading 0
+ stb_out4(length);
+ stb_out4(stb__window);
+
+ stb__running_adler = 1;
+
+ len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
+ assert(len == length);
+
+ outliterals(input+length - literals, literals);
+
+ free(chash);
+
+ stb_out2(0x05fa); // end opcode
+
+ stb_out4(stb__running_adler);
+
+ return 1; // success
+}
+
+stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
+{
+ stb__out = out;
+ stb__outfile = NULL;
+
+ stb_compress_inner(input, length);
+
+ return stb__out - out;
+}
diff --git a/misc/natvis/README.txt b/misc/natvis/README.txt
new file mode 100644
index 0000000..821014e
--- /dev/null
+++ b/misc/natvis/README.txt
@@ -0,0 +1,3 @@
+
+Natvis file to describe types in Visual Studio debugger.
+You can include this in a project file, or install in Visual Studio folder.
diff --git a/TODO.txt b/TODO.txt
index 3a6535a..89b7267 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -248,8 +248,6 @@
- misc: fix for compilation settings where stdcall isn't the default (e.g. vectorcall) (#1230)
- remote: make a system like RemoteImGui first-class citizen/project (#75)
- - natvis: more the imgui.natvis file in a better location. perhaps reorganize extra_fonts/? (#1569)
-
- demo: add vertical separator demo
- demo: add virtual scrolling example?
- examples: directx9: save/restore device state more thoroughly.
diff --git a/examples/allegro5_example/main.cpp b/examples/allegro5_example/main.cpp
index 256415a..b740dac 100644
--- a/examples/allegro5_example/main.cpp
+++ b/examples/allegro5_example/main.cpp
@@ -34,14 +34,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx10_example/directx10_example.vcxproj b/examples/directx10_example/directx10_example.vcxproj
index 3a40351..64b57dd 100644
--- a/examples/directx10_example/directx10_example.vcxproj
+++ b/examples/directx10_example/directx10_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx10_example/directx10_example.vcxproj.filters b/examples/directx10_example/directx10_example.vcxproj.filters
index 5a35846..aef010a 100644
--- a/examples/directx10_example/directx10_example.vcxproj.filters
+++ b/examples/directx10_example/directx10_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx10_example/main.cpp b/examples/directx10_example/main.cpp
index 1bb42c7..aebf81f 100644
--- a/examples/directx10_example/main.cpp
+++ b/examples/directx10_example/main.cpp
@@ -131,14 +131,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx11_example/directx11_example.vcxproj b/examples/directx11_example/directx11_example.vcxproj
index 347b4f0..c07939f 100644
--- a/examples/directx11_example/directx11_example.vcxproj
+++ b/examples/directx11_example/directx11_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx11_example/directx11_example.vcxproj.filters b/examples/directx11_example/directx11_example.vcxproj.filters
index a79484c..57b74de 100644
--- a/examples/directx11_example/directx11_example.vcxproj.filters
+++ b/examples/directx11_example/directx11_example.vcxproj.filters
@@ -41,7 +41,7 @@
-
+
sources
diff --git a/examples/directx11_example/main.cpp b/examples/directx11_example/main.cpp
index 10db035..ef82218 100644
--- a/examples/directx11_example/main.cpp
+++ b/examples/directx11_example/main.cpp
@@ -134,14 +134,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/directx9_example/directx9_example.vcxproj b/examples/directx9_example/directx9_example.vcxproj
index e63bd35..89f3ae6 100644
--- a/examples/directx9_example/directx9_example.vcxproj
+++ b/examples/directx9_example/directx9_example.vcxproj
@@ -153,7 +153,7 @@
-
+
diff --git a/examples/directx9_example/directx9_example.vcxproj.filters b/examples/directx9_example/directx9_example.vcxproj.filters
index b0843b3..555ef06 100644
--- a/examples/directx9_example/directx9_example.vcxproj.filters
+++ b/examples/directx9_example/directx9_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/directx9_example/main.cpp b/examples/directx9_example/main.cpp
index 5a05d88..f40e5ef 100644
--- a/examples/directx9_example/main.cpp
+++ b/examples/directx9_example/main.cpp
@@ -86,14 +86,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/libs/imgui.natvis b/examples/libs/imgui.natvis
deleted file mode 100644
index 38c676c..0000000
--- a/examples/libs/imgui.natvis
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- {{Size={Size} Capacity={Capacity}}}
-
-
- Size
- Data
-
-
-
-
-
- {{x={x,g} y={y,g}}}
-
-
-
- {{x={x,g} y={y,g} z={z,g} w={w,g}}}
-
-
-
- {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
-
- - Min
- - Max
- - Max.x - Min.x
- - Max.y - Min.y
-
-
-
-
- {{Name={Name,s}}}
- {{Name={Name,s}} Inactive}
-
-
-
\ No newline at end of file
diff --git a/examples/marmalade_example/main.cpp b/examples/marmalade_example/main.cpp
index c47a333..58c2182 100644
--- a/examples/marmalade_example/main.cpp
+++ b/examples/marmalade_example/main.cpp
@@ -26,14 +26,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/main.cpp b/examples/opengl2_example/main.cpp
index d676bec..89d41c3 100644
--- a/examples/opengl2_example/main.cpp
+++ b/examples/opengl2_example/main.cpp
@@ -38,14 +38,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl2_example/opengl2_example.vcxproj b/examples/opengl2_example/opengl2_example.vcxproj
index bf1a3ed..3756748 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj
+++ b/examples/opengl2_example/opengl2_example.vcxproj
@@ -163,7 +163,7 @@
-
+
diff --git a/examples/opengl2_example/opengl2_example.vcxproj.filters b/examples/opengl2_example/opengl2_example.vcxproj.filters
index 35fd6ff..0c85d9f 100644
--- a/examples/opengl2_example/opengl2_example.vcxproj.filters
+++ b/examples/opengl2_example/opengl2_example.vcxproj.filters
@@ -42,7 +42,7 @@
-
+
sources
diff --git a/examples/opengl3_example/main.cpp b/examples/opengl3_example/main.cpp
index 7b9a7a9..6bf6401 100644
--- a/examples/opengl3_example/main.cpp
+++ b/examples/opengl3_example/main.cpp
@@ -43,14 +43,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/opengl3_example/opengl3_example.vcxproj b/examples/opengl3_example/opengl3_example.vcxproj
index 2a78226..e3a9c82 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj
+++ b/examples/opengl3_example/opengl3_example.vcxproj
@@ -166,7 +166,7 @@
-
+
diff --git a/examples/opengl3_example/opengl3_example.vcxproj.filters b/examples/opengl3_example/opengl3_example.vcxproj.filters
index c743ace..0170ab4 100644
--- a/examples/opengl3_example/opengl3_example.vcxproj.filters
+++ b/examples/opengl3_example/opengl3_example.vcxproj.filters
@@ -54,7 +54,7 @@
-
+
sources
diff --git a/examples/sdl_opengl2_example/main.cpp b/examples/sdl_opengl2_example/main.cpp
index 1613660..10e66e8 100644
--- a/examples/sdl_opengl2_example/main.cpp
+++ b/examples/sdl_opengl2_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/sdl_opengl3_example/main.cpp b/examples/sdl_opengl3_example/main.cpp
index bb3831a..2d7e859 100644
--- a/examples/sdl_opengl3_example/main.cpp
+++ b/examples/sdl_opengl3_example/main.cpp
@@ -44,14 +44,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/examples/vulkan_example/main.cpp b/examples/vulkan_example/main.cpp
index 872583b..41939aa 100644
--- a/examples/vulkan_example/main.cpp
+++ b/examples/vulkan_example/main.cpp
@@ -633,14 +633,14 @@
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
// - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
- // - Read 'extra_fonts/README.txt' for more instructions and details.
+ // - Read 'misc/fonts/README.txt' for more instructions and details.
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
//ImGuiIO& io = ImGui::GetIO();
//io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Roboto-Medium.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/Cousine-Regular.ttf", 15.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/DroidSans.ttf", 16.0f);
- //io.Fonts->AddFontFromFileTTF("../../extra_fonts/ProggyTiny.ttf", 10.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
+ //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
//IM_ASSERT(font != NULL);
diff --git a/extra_fonts/Cousine-Regular.ttf b/extra_fonts/Cousine-Regular.ttf
deleted file mode 100644
index 70a0bf9..0000000
--- a/extra_fonts/Cousine-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/DroidSans.ttf b/extra_fonts/DroidSans.ttf
deleted file mode 100644
index 767c63a..0000000
--- a/extra_fonts/DroidSans.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/Karla-Regular.ttf b/extra_fonts/Karla-Regular.ttf
deleted file mode 100644
index 81b3de6..0000000
--- a/extra_fonts/Karla-Regular.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyClean.ttf b/extra_fonts/ProggyClean.ttf
deleted file mode 100644
index 0270cdf..0000000
--- a/extra_fonts/ProggyClean.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/ProggyTiny.ttf b/extra_fonts/ProggyTiny.ttf
deleted file mode 100644
index 1c4312c..0000000
--- a/extra_fonts/ProggyTiny.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/README.txt b/extra_fonts/README.txt
deleted file mode 100644
index 2287f6e..0000000
--- a/extra_fonts/README.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-
-The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
-We embed the font in source code so you can use Dear ImGui without any file system access.
-You may also load external .TTF/.OTF files.
-The files in this folder are suggested fonts, provided as a convenience.
-(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
-
-Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
-Also read dear imgui FAQ in imgui.cpp!
-
-In this document:
-
-- Using Icons
-- Fonts Loading Instructions
-- FreeType rasterizer, Small font sizes
-- Building Custom Glyph Ranges
-- Remapping Codepoints
-- Embedding Fonts in Source Code
-- Credits/Licences for fonts included in this folder
-- Links, Other fonts
-
-
----------------------------------------
- USING ICONS
----------------------------------------
-
- Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
- A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
- having to change fonts back and forth.
-
- To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
- https://github.com/juliettef/IconFontCppHeaders
-
- The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
- #define ICON_FA_SEARCH u8"\uf002"
- The pre-C++11 version has the values directly encoded as utf-8:
- #define ICON_FA_SEARCH "\xEF\x80\x82"
-
- Example:
-
- // Merge icons into default tool font
- #include "IconsFontAwesome.h"
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- ImFontConfig config;
- config.MergeMode = true;
- static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
- io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
-
- // Usage, e.g.
- ImGui::Text("%s Search", ICON_FA_SEARCH);
-
- See Links below for other icons fonts and related tools.
-
-
----------------------------------------
- FONTS LOADING INSTRUCTIONS
----------------------------------------
-
- Load default font with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontDefault();
-
- Load .TTF/.OTF file with:
-
- ImGuiIO& io = ImGui::GetIO();
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
-
- For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
-
- ImFontConfig config;
- config.OversampleH = 3;
- config.OversampleV = 1;
- config.GlyphExtraSpacing.x = 1.0f;
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
-
- If you have very large number of glyphs or multiple fonts:
-
- - Mind the fact that some graphics drivers have texture size limitation.
- - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
- - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
- - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
-
- Combine two fonts into one:
-
- // Load a first font
- io.Fonts->AddFontDefault();
-
- // Add character ranges and merge into the previous font
- // The ranges array is not copied by the AddFont* functions and is used lazily
- // so ensure it is available for duration of font usage
- static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
- ImFontConfig config;
- config.MergeMode = true;
- io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
- io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
-
- Add a fourth parameter to bake specific font ranges only:
-
- // Basic Latin, Extended Latin
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
-
- // Include full set of about 21000 CJK Unified Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
-
- // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
- io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
-
- Offset font vertically by altering the io.Font->DisplayOffset value:
-
- ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
- font->DisplayOffset.y += 1; // Render 1 pixel down
-
-
----------------------------------------
- FREETYPE RASTERIZER, SMALL FONT SIZES
----------------------------------------
-
- Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
- This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
- There is an implementation of the ImFontAtlas builder using FreeType that you can use:
-
- https://github.com/ocornut/imgui_club
-
- FreeType supports auto-hinting which tends to improve the readability of small fonts.
- Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
-
-
----------------------------------------
- BUILDING CUSTOM GLYPH RANGES
----------------------------------------
-
- You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
- For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
-
- ImVector ranges;
- ImFontAtlas::GlyphRangesBuilder builder;
- builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
- builder.AddChar(0x7262); // Add a specific character
- builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
- builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
- io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
-
-
----------------------------------------
- REMAPPING CODEPOINTS
----------------------------------------
-
- All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
- In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
- e.g.
- u8"hello"
- u8"こんにちは"
- You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
-
-
----------------------------------------
- EMBEDDING FONTS IN SOURCE CODE
----------------------------------------
-
- Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
- See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
- You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
- The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
-
- Then load the font with:
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
-
- Or
-
- ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
-
-
----------------------------------------
- CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
----------------------------------------
-
- Roboto-Medium.ttf
- Apache License 2.0
- by Christian Robertson
- https://fonts.google.com/specimen/Roboto
-
- Cousine-Regular.ttf
- by Steve Matteson
- Digitized data copyright (c) 2010 Google Corporation.
- Licensed under the SIL Open Font License, Version 1.1
- https://fonts.google.com/specimen/Cousine
-
- DroidSans.ttf
- Copyright (c) Steve Matteson
- Apache License, version 2.0
- https://www.fontsquirrel.com/fonts/droid-sans
-
- ProggyClean.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- ProggyTiny.ttf
- Copyright (c) 2004, 2005 Tristan Grimmer
- MIT License
- recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
- http://www.proggyfonts.net/
-
- Karla-Regular.ttf
- Copyright (c) 2012, Jonathan Pinhorn
- SIL OPEN FONT LICENSE Version 1.1
-
-
----------------------------------------
- LINKS, OTHER FONTS
----------------------------------------
-
- (Icons) Icon fonts
- https://fortawesome.github.io/Font-Awesome/
- https://github.com/SamBrishes/kenney-icon-font
- https://design.google.com/icons/
- You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
-
- (Icons) IcoMoon - Custom Icon font builder
- https://icomoon.io/app
-
- (Regular) Open Sans Fonts
- https://fonts.google.com/specimen/Open+Sans
-
- (Regular) Google Noto Fonts (worldwide languages)
- https://www.google.com/get/noto/
-
- (Monospace) Typefaces for source code beautification
- https://github.com/chrissimpkins/codeface
-
- (Monospace) Programmation fonts
- http://s9w.github.io/font_compare/
-
- (Monospace) Proggy Programming Fonts
- http://upperbounds.net
-
- (Monospace) Inconsolata
- http://www.levien.com/type/myfonts/inconsolata.html
-
- (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
- https://github.com/adobe-fonts/source-code-pro
-
- (Monospace) Monospace/Fixed Width Programmer's Fonts
- http://www.lowing.org/fonts/
-
- (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
- http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
-
- Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
-
diff --git a/extra_fonts/Roboto-Medium.ttf b/extra_fonts/Roboto-Medium.ttf
deleted file mode 100644
index 39c63d7..0000000
--- a/extra_fonts/Roboto-Medium.ttf
+++ /dev/null
Binary files differ
diff --git a/extra_fonts/binary_to_compressed_c.cpp b/extra_fonts/binary_to_compressed_c.cpp
deleted file mode 100644
index e373e69..0000000
--- a/extra_fonts/binary_to_compressed_c.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// ImGui - binary_to_compressed_c.cpp
-// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
-
-// The data is first compressed with stb_compress() to reduce source code size,
-// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
-// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
-// Note that even with compression, the output array is likely to be bigger than the binary file..
-// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
-
-// Build with, e.g:
-// # cl.exe binary_to_compressed_c.cpp
-// # gcc binary_to_compressed_c.cpp
-// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
-
-// Usage:
-// binary_to_compressed_c.exe [-base85] [-nocompress]
-// Usage example:
-// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
-// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
-
-#define _CRT_SECURE_NO_WARNINGS
-#include
-#include
-#include
-#include
-
-// stb_compress* from stb.h - declaration
-typedef unsigned int stb_uint;
-typedef unsigned char stb_uchar;
-stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
-
-static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
-
-int main(int argc, char** argv)
-{
- if (argc < 3)
- {
- printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
- return 0;
- }
-
- int argn = 1;
- bool use_base85_encoding = false;
- bool use_compression = true;
- if (argv[argn][0] == '-')
- {
- if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
- else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
- else
- {
- printf("Unknown argument: '%s'\n", argv[argn]);
- return 1;
- }
- }
-
- return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
-}
-
-char Encode85Byte(unsigned int x)
-{
- x = (x % 85) + 35;
- return (x>='\\') ? x+1 : x;
-}
-
-bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
-{
- // Read file
- FILE* f = fopen(filename, "rb");
- if (!f) return false;
- int data_sz;
- if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
- char* data = new char[data_sz+4];
- if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
- memset((void *)(((char*)data) + data_sz), 0, 4);
- fclose(f);
-
- // Compress
- int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
- char* compressed = use_compression ? new char[maxlen] : data;
- int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
- if (use_compression)
- memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
-
- // Output as Base85 encoded
- FILE* out = stdout;
- fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
- fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
- const char* compressed_str = use_compression ? "compressed_" : "";
- if (use_base85_encoding)
- {
- fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
- char prev_c = 0;
- for (int src_i = 0; src_i < compressed_sz; src_i += 4)
- {
- // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
- unsigned int d = *(unsigned int*)(compressed + src_i);
- for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
- {
- char c = Encode85Byte(d);
- fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
- prev_c = c;
- }
- if ((src_i % 112) == 112-4)
- fprintf(out, "\"\n \"");
- }
- fprintf(out, "\";\n\n");
- }
- else
- {
- fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
- fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
- int column = 0;
- for (int i = 0; i < compressed_sz; i += 4)
- {
- unsigned int d = *(unsigned int*)(compressed + i);
- if ((column++ % 12) == 0)
- fprintf(out, "\n 0x%08x, ", d);
- else
- fprintf(out, "0x%08x, ", d);
- }
- fprintf(out, "\n};\n\n");
- }
-
- // Cleanup
- delete[] data;
- if (use_compression)
- delete[] compressed;
- return true;
-}
-
-// stb_compress* from stb.h - definition
-
-//////////////////// compressor ///////////////////////
-
-static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
-{
- const unsigned long ADLER_MOD = 65521;
- unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
- unsigned long blocklen, i;
-
- blocklen = buflen % 5552;
- while (buflen) {
- for (i=0; i + 7 < blocklen; i += 8) {
- s1 += buffer[0], s2 += s1;
- s1 += buffer[1], s2 += s1;
- s1 += buffer[2], s2 += s1;
- s1 += buffer[3], s2 += s1;
- s1 += buffer[4], s2 += s1;
- s1 += buffer[5], s2 += s1;
- s1 += buffer[6], s2 += s1;
- s1 += buffer[7], s2 += s1;
-
- buffer += 8;
- }
-
- for (; i < blocklen; ++i)
- s1 += *buffer++, s2 += s1;
-
- s1 %= ADLER_MOD, s2 %= ADLER_MOD;
- buflen -= blocklen;
- blocklen = 5552;
- }
- return (s2 << 16) + s1;
-}
-
-static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
-{
- stb_uint i;
- for (i=0; i < maxlen; ++i)
- if (m1[i] != m2[i]) return i;
- return i;
-}
-
-// simple implementation that just takes the source data in a big block
-
-static stb_uchar *stb__out;
-static FILE *stb__outfile;
-static stb_uint stb__outbytes;
-
-static void stb__write(unsigned char v)
-{
- fputc(v, stb__outfile);
- ++stb__outbytes;
-}
-
-//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
-#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
-
-static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
-static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
-static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
-
-static void outliterals(stb_uchar *in, int numlit)
-{
- while (numlit > 65536) {
- outliterals(in,65536);
- in += 65536;
- numlit -= 65536;
- }
-
- if (numlit == 0) ;
- else if (numlit <= 32) stb_out (0x000020 + numlit-1);
- else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
- else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
-
- if (stb__out) {
- memcpy(stb__out,in,numlit);
- stb__out += numlit;
- } else
- fwrite(in, 1, numlit, stb__outfile);
-}
-
-static int stb__window = 0x40000; // 256K
-
-static int stb_not_crap(int best, int dist)
-{
- return ((best > 2 && dist <= 0x00100)
- || (best > 5 && dist <= 0x04000)
- || (best > 7 && dist <= 0x80000));
-}
-
-static stb_uint stb__hashsize = 32768;
-
-// note that you can play with the hashing functions all you
-// want without needing to change the decompressor
-#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
-#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
-#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
-
-static unsigned int stb__running_adler;
-
-static int stb_compress_chunk(stb_uchar *history,
- stb_uchar *start,
- stb_uchar *end,
- int length,
- int *pending_literals,
- stb_uchar **chash,
- stb_uint mask)
-{
- (void)history;
- int window = stb__window;
- stb_uint match_max;
- stb_uchar *lit_start = start - *pending_literals;
- stb_uchar *q = start;
-
-#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
-
- // stop short of the end so we don't scan off the end doing
- // the hashing; this means we won't compress the last few bytes
- // unless they were part of something longer
- while (q < start+length && q+12 < end) {
- int m;
- stb_uint h1,h2,h3,h4, h;
- stb_uchar *t;
- int best = 2, dist=0;
-
- if (q+65536 > end)
- match_max = end-q;
- else
- match_max = 65536;
-
-#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
-
-#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
- if (p ? dist != q-t : 1) \
- if ((m = stb_matchlen(t, q, match_max)) > best) \
- if (stb__nc(m,q-(t))) \
- best = m, dist = q - (t)
-
- // rather than search for all matches, only try 4 candidate locations,
- // chosen based on 4 different hash functions of different lengths.
- // this strategy is inspired by LZO; hashing is unrolled here using the
- // 'hc' macro
- h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
- t = chash[h1]; if (t) STB__TRY(t,0);
- h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
- h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
- h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
- t = chash[h4]; if (t) STB__TRY(t,1);
-
- // because we use a shared hash table, can only update it
- // _after_ we've probed all of them
- chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
-
- if (best > 2)
- assert(dist > 0);
-
- // see if our best match qualifies
- if (best < 3) { // fast path literals
- ++q;
- } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out(0x80 + best-1);
- stb_out(dist-1);
- } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out2(0x4000 + dist-1);
- stb_out(best-1);
- } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x180000 + dist-1);
- stb_out(best-1);
- } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- stb_out3(0x100000 + dist-1);
- stb_out2(best-1);
- } else if (best > 9 && dist <= 0x1000000) {
- if (best > 65536) best = 65536;
- outliterals(lit_start, q-lit_start); lit_start = (q += best);
- if (best <= 0x100) {
- stb_out(0x06);
- stb_out3(dist-1);
- stb_out(best-1);
- } else {
- stb_out(0x04);
- stb_out3(dist-1);
- stb_out2(best-1);
- }
- } else { // fallback literals if no match was a balanced tradeoff
- ++q;
- }
- }
-
- // if we didn't get all the way, add the rest to literals
- if (q-start < length)
- q = start+length;
-
- // the literals are everything from lit_start to q
- *pending_literals = (q - lit_start);
-
- stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
- return q - start;
-}
-
-static int stb_compress_inner(stb_uchar *input, stb_uint length)
-{
- int literals = 0;
- stb_uint len,i;
-
- stb_uchar **chash;
- chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
- if (chash == NULL) return 0; // failure
- for (i=0; i < stb__hashsize; ++i)
- chash[i] = NULL;
-
- // stream signature
- stb_out(0x57); stb_out(0xbc);
- stb_out2(0);
-
- stb_out4(0); // 64-bit length requires 32-bit leading 0
- stb_out4(length);
- stb_out4(stb__window);
-
- stb__running_adler = 1;
-
- len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
- assert(len == length);
-
- outliterals(input+length - literals, literals);
-
- free(chash);
-
- stb_out2(0x05fa); // end opcode
-
- stb_out4(stb__running_adler);
-
- return 1; // success
-}
-
-stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
-{
- stb__out = out;
- stb__outfile = NULL;
-
- stb_compress_inner(input, length);
-
- return stb__out - out;
-}
diff --git a/imgui.cpp b/imgui.cpp
index 5629f55..45e0e2a 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -510,11 +510,11 @@
Q: How can I easily use icons in my application?
A: The most convenient and practical way is to merge an icon font such as FontAwesome inside you main font. Then you can refer to icons within your
- strings. Read 'How can I load multiple fonts?' and the file 'extra_fonts/README.txt' for instructions and useful header files.
+ strings. Read 'How can I load multiple fonts?' and the file 'misc/fonts/README.txt' for instructions and useful header files.
Q: How can I load multiple fonts?
A: Use the font atlas to pack them into a single texture:
- (Read extra_fonts/README.txt and the code in ImFontAtlas for more details.)
+ (Read misc/fonts/README.txt and the code in ImFontAtlas for more details.)
ImGuiIO& io = ImGui::GetIO();
ImFont* font0 = io.Fonts->AddFontDefault();
diff --git a/imgui_demo.cpp b/imgui_demo.cpp
index 8502383..4c2a437 100644
--- a/imgui_demo.cpp
+++ b/imgui_demo.cpp
@@ -2010,7 +2010,7 @@
ShowHelpMarker(
"- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
- "- Read FAQ and documentation in extra_fonts/ for more details.\n"
+ "- Read FAQ and documentation in misc/fonts/ for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
@@ -2137,7 +2137,7 @@
if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0)
{
// Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons.
- // Read the FAQ and extra_fonts/README.txt about using icon fonts. It's really easy and super convenient!
+ // Read the FAQ and misc/fonts/README.txt about using icon fonts. It's really easy and super convenient!
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i];
ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i];
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 216cf3f..3b331c8 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1484,7 +1484,7 @@
return new_font_cfg.DstFont;
}
-// Default font TTF is compressed with stb_compress then base85 encoded (see extra_fonts/binary_to_compressed_c.cpp for encoder)
+// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder)
static unsigned int stb_decompress_length(unsigned char *input);
static unsigned int stb_decompress(unsigned char *output, unsigned char *i, unsigned int length);
static const char* GetDefaultCompressedFontDataTTFBase85();
@@ -2698,7 +2698,7 @@
// DEFAULT FONT DATA
//-----------------------------------------------------------------------------
// Compressed with stb_compress() then converted to a C array.
-// Use the program in extra_fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
+// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file.
// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h
//-----------------------------------------------------------------------------
diff --git a/misc/fonts/Cousine-Regular.ttf b/misc/fonts/Cousine-Regular.ttf
new file mode 100644
index 0000000..70a0bf9
--- /dev/null
+++ b/misc/fonts/Cousine-Regular.ttf
Binary files differ
diff --git a/misc/fonts/DroidSans.ttf b/misc/fonts/DroidSans.ttf
new file mode 100644
index 0000000..767c63a
--- /dev/null
+++ b/misc/fonts/DroidSans.ttf
Binary files differ
diff --git a/misc/fonts/Karla-Regular.ttf b/misc/fonts/Karla-Regular.ttf
new file mode 100644
index 0000000..81b3de6
--- /dev/null
+++ b/misc/fonts/Karla-Regular.ttf
Binary files differ
diff --git a/misc/fonts/ProggyClean.ttf b/misc/fonts/ProggyClean.ttf
new file mode 100644
index 0000000..0270cdf
--- /dev/null
+++ b/misc/fonts/ProggyClean.ttf
Binary files differ
diff --git a/misc/fonts/ProggyTiny.ttf b/misc/fonts/ProggyTiny.ttf
new file mode 100644
index 0000000..1c4312c
--- /dev/null
+++ b/misc/fonts/ProggyTiny.ttf
Binary files differ
diff --git a/misc/fonts/README.txt b/misc/fonts/README.txt
new file mode 100644
index 0000000..2287f6e
--- /dev/null
+++ b/misc/fonts/README.txt
@@ -0,0 +1,255 @@
+
+The code in imgui.cpp embeds a copy of 'ProggyClean.ttf' (by Tristan Grimmer) that is used by default.
+We embed the font in source code so you can use Dear ImGui without any file system access.
+You may also load external .TTF/.OTF files.
+The files in this folder are suggested fonts, provided as a convenience.
+(Note: .OTF support in stb_truetype.h currently doesn't appear to load every font)
+
+Fonts are rasterized in a single texture at the time of calling either of io.Fonts.GetTexDataAsAlpha8()/GetTexDataAsRGBA32()/Build().
+Also read dear imgui FAQ in imgui.cpp!
+
+In this document:
+
+- Using Icons
+- Fonts Loading Instructions
+- FreeType rasterizer, Small font sizes
+- Building Custom Glyph Ranges
+- Remapping Codepoints
+- Embedding Fonts in Source Code
+- Credits/Licences for fonts included in this folder
+- Links, Other fonts
+
+
+---------------------------------------
+ USING ICONS
+---------------------------------------
+
+ Using an icon font (such as FontAwesome: http://fontawesome.io) is an easy and practical way to use icons in your ImGui application.
+ A common pattern is to merge the icon font within your main font, so you can embed icons directly from your strings without
+ having to change fonts back and forth.
+
+ To refer to the icon UTF-8 codepoints from your C++ code, you may use those headers files created by Juliette Foucaut:
+ https://github.com/juliettef/IconFontCppHeaders
+
+ The C++11 version of those files uses the u8"" utf-8 encoding syntax + \u
+ #define ICON_FA_SEARCH u8"\uf002"
+ The pre-C++11 version has the values directly encoded as utf-8:
+ #define ICON_FA_SEARCH "\xEF\x80\x82"
+
+ Example:
+
+ // Merge icons into default tool font
+ #include "IconsFontAwesome.h"
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ ImFontConfig config;
+ config.MergeMode = true;
+ static const ImWchar icon_ranges[] = { ICON_MIN_FA, ICON_MAX_FA, 0 };
+ io.Fonts->AddFontFromFileTTF("fonts/fontawesome-webfont.ttf", 13.0f, &config, icon_ranges);
+
+ // Usage, e.g.
+ ImGui::Text("%s Search", ICON_FA_SEARCH);
+
+ See Links below for other icons fonts and related tools.
+
+
+---------------------------------------
+ FONTS LOADING INSTRUCTIONS
+---------------------------------------
+
+ Load default font with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontDefault();
+
+ Load .TTF/.OTF file with:
+
+ ImGuiIO& io = ImGui::GetIO();
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+
+ For advanced options create a ImFontConfig structure and pass it to the AddFont function (it will be copied internally)
+
+ ImFontConfig config;
+ config.OversampleH = 3;
+ config.OversampleV = 1;
+ config.GlyphExtraSpacing.x = 1.0f;
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, &config);
+
+ If you have very large number of glyphs or multiple fonts:
+
+ - Mind the fact that some graphics drivers have texture size limitation.
+ - Set io.Fonts.TexDesiredWidth to specify a texture width to minimize texture height (see comment in ImFontAtlas::Build function).
+ - You may reduce oversampling, e.g. config.OversampleH = 2 or 1.
+ - Reduce glyphs ranges, consider calculating them based on your source data if this is possible.
+
+ Combine two fonts into one:
+
+ // Load a first font
+ io.Fonts->AddFontDefault();
+
+ // Add character ranges and merge into the previous font
+ // The ranges array is not copied by the AddFont* functions and is used lazily
+ // so ensure it is available for duration of font usage
+ static const ImWchar icons_ranges[] = { 0xf000, 0xf3ff, 0 }; // will not be copied by AddFont* so keep in scope.
+ ImFontConfig config;
+ config.MergeMode = true;
+ io.Fonts->AddFontFromFileTTF("DroidSans.ttf", 18.0f, &config, io.Fonts->GetGlyphRangesJapanese());
+ io.Fonts->AddFontFromFileTTF("fontawesome-webfont.ttf", 18.0f, &config, icons_ranges);
+
+ Add a fourth parameter to bake specific font ranges only:
+
+ // Basic Latin, Extended Latin
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesDefault());
+
+ // Include full set of about 21000 CJK Unified Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesJapanese());
+
+ // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs
+ io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels, NULL, io.Fonts->GetGlyphRangesChinese());
+
+ Offset font vertically by altering the io.Font->DisplayOffset value:
+
+ ImFont* font = io.Fonts->AddFontFromFileTTF("font.ttf", size_pixels);
+ font->DisplayOffset.y += 1; // Render 1 pixel down
+
+
+---------------------------------------
+ FREETYPE RASTERIZER, SMALL FONT SIZES
+---------------------------------------
+
+ Dear Imgui uses stb_truetype.h to rasterize fonts (with optional oversampling).
+ This technique and implementation are not ideal for fonts rendered at _small sizes_, which may appear a little blurry.
+ There is an implementation of the ImFontAtlas builder using FreeType that you can use:
+
+ https://github.com/ocornut/imgui_club
+
+ FreeType supports auto-hinting which tends to improve the readability of small fonts.
+ Note that this code currently creates textures that are unoptimally too large (could be fixed with some work)
+
+
+---------------------------------------
+ BUILDING CUSTOM GLYPH RANGES
+---------------------------------------
+
+ You can use the ImFontAtlas::GlyphRangesBuilder helper to create glyph ranges based on text input.
+ For exemple: for a game where your script is known, if you can feed your entire script to it and only build the characters the game needs.
+
+ ImVector ranges;
+ ImFontAtlas::GlyphRangesBuilder builder;
+ builder.AddText("Hello world"); // Add a string (here "Hello world" contains 7 unique characters)
+ builder.AddChar(0x7262); // Add a specific character
+ builder.AddRanges(io.Fonts->GetGlyphRangesJapanese()); // Add one of the default ranges
+ builder.BuildRanges(&ranges); // Build the final result (ordered ranges with all the unique characters submitted)
+ io.Fonts->AddFontFromFileTTF("myfontfile.ttf", size_in_pixels, NULL, ranges.Data);
+
+
+---------------------------------------
+ REMAPPING CODEPOINTS
+---------------------------------------
+
+ All your strings needs to use UTF-8 encoding. Specifying literal in your source code using a local code page (such as CP-923 for Japanese, or CP-1251 for Cyrillic) will NOT work!
+ In C++11 you can encode a string literal in UTF-8 by using the u8"hello" syntax. Otherwise you can convert yourself to UTF-8 or load text data from file already saved as UTF-8.
+ e.g.
+ u8"hello"
+ u8"こんにちは"
+ You may also try to remap your local codepage characters to their Unicode codepoint using font->AddRemapChar(), but international users may have problems reading/editing your source code.
+
+
+---------------------------------------
+ EMBEDDING FONTS IN SOURCE CODE
+---------------------------------------
+
+ Compile and use 'binary_to_compressed_c.cpp' to create a compressed C style array that you can embed in source code.
+ See the documentation in binary_to_compressed_c.cpp for instruction on how to use the tool.
+ You may find a precompiled version binary_to_compressed_c.exe for Windows instead of demo binaries package (see README).
+ The tool optionally used Base85 encoding to reduce the size of _source code_ but the read-only arrays will be about 20% bigger.
+
+ Then load the font with:
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedTTF(compressed_data, compressed_data_size, size_pixels, ...);
+
+ Or
+
+ ImFont* font = io.Fonts->AddFontFromMemoryCompressedBase85TTF(compressed_data_base85, size_pixels, ...);
+
+
+---------------------------------------
+ CREDITS/LICENSES FOR FONTS INCLUDED IN THIS FOLDER
+---------------------------------------
+
+ Roboto-Medium.ttf
+ Apache License 2.0
+ by Christian Robertson
+ https://fonts.google.com/specimen/Roboto
+
+ Cousine-Regular.ttf
+ by Steve Matteson
+ Digitized data copyright (c) 2010 Google Corporation.
+ Licensed under the SIL Open Font License, Version 1.1
+ https://fonts.google.com/specimen/Cousine
+
+ DroidSans.ttf
+ Copyright (c) Steve Matteson
+ Apache License, version 2.0
+ https://www.fontsquirrel.com/fonts/droid-sans
+
+ ProggyClean.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 13.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ ProggyTiny.ttf
+ Copyright (c) 2004, 2005 Tristan Grimmer
+ MIT License
+ recommended loading setting in ImGui: Size = 10.0, DisplayOffset.Y = +1
+ http://www.proggyfonts.net/
+
+ Karla-Regular.ttf
+ Copyright (c) 2012, Jonathan Pinhorn
+ SIL OPEN FONT LICENSE Version 1.1
+
+
+---------------------------------------
+ LINKS, OTHER FONTS
+---------------------------------------
+
+ (Icons) Icon fonts
+ https://fortawesome.github.io/Font-Awesome/
+ https://github.com/SamBrishes/kenney-icon-font
+ https://design.google.com/icons/
+ You can use https://github.com/juliettef/IconFontCppHeaders for C/C++ header files with name #define to access icon codepoint in source code.
+
+ (Icons) IcoMoon - Custom Icon font builder
+ https://icomoon.io/app
+
+ (Regular) Open Sans Fonts
+ https://fonts.google.com/specimen/Open+Sans
+
+ (Regular) Google Noto Fonts (worldwide languages)
+ https://www.google.com/get/noto/
+
+ (Monospace) Typefaces for source code beautification
+ https://github.com/chrissimpkins/codeface
+
+ (Monospace) Programmation fonts
+ http://s9w.github.io/font_compare/
+
+ (Monospace) Proggy Programming Fonts
+ http://upperbounds.net
+
+ (Monospace) Inconsolata
+ http://www.levien.com/type/myfonts/inconsolata.html
+
+ (Monospace) Adobe Source Code Pro: Monospaced font family for user interface and coding environments
+ https://github.com/adobe-fonts/source-code-pro
+
+ (Monospace) Monospace/Fixed Width Programmer's Fonts
+ http://www.lowing.org/fonts/
+
+ (Japanese) M+ fonts by Coji Morishita are free and include most useful Kanjis you would need.
+ http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/index-en.html
+
+ Or use Arial Unicode or other Unicode fonts provided with Windows for full characters coverage (not sure of their licensing).
+
diff --git a/misc/fonts/Roboto-Medium.ttf b/misc/fonts/Roboto-Medium.ttf
new file mode 100644
index 0000000..39c63d7
--- /dev/null
+++ b/misc/fonts/Roboto-Medium.ttf
Binary files differ
diff --git a/misc/fonts/binary_to_compressed_c.cpp b/misc/fonts/binary_to_compressed_c.cpp
new file mode 100644
index 0000000..e373e69
--- /dev/null
+++ b/misc/fonts/binary_to_compressed_c.cpp
@@ -0,0 +1,380 @@
+// ImGui - binary_to_compressed_c.cpp
+// Helper tool to turn a file into a C array, if you want to embed font data in your source code.
+
+// The data is first compressed with stb_compress() to reduce source code size,
+// then encoded in Base85 to fit in a string so we can fit roughly 4 bytes of compressed data into 5 bytes of source code (suggested by @mmalex)
+// (If we used 32-bits constants it would require take 11 bytes of source code to encode 4 bytes, and be endianness dependent)
+// Note that even with compression, the output array is likely to be bigger than the binary file..
+// Load compressed TTF fonts with ImGui::GetIO().Fonts->AddFontFromMemoryCompressedTTF()
+
+// Build with, e.g:
+// # cl.exe binary_to_compressed_c.cpp
+// # gcc binary_to_compressed_c.cpp
+// You can also find a precompiled Windows binary in the binary/demo package available from https://github.com/ocornut/imgui
+
+// Usage:
+// binary_to_compressed_c.exe [-base85] [-nocompress]
+// Usage example:
+// # binary_to_compressed_c.exe myfont.ttf MyFont > myfont.cpp
+// # binary_to_compressed_c.exe -base85 myfont.ttf MyFont > myfont.cpp
+
+#define _CRT_SECURE_NO_WARNINGS
+#include
+#include
+#include
+#include
+
+// stb_compress* from stb.h - declaration
+typedef unsigned int stb_uint;
+typedef unsigned char stb_uchar;
+stb_uint stb_compress(stb_uchar *out,stb_uchar *in,stb_uint len);
+
+static bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression);
+
+int main(int argc, char** argv)
+{
+ if (argc < 3)
+ {
+ printf("Syntax: %s [-base85] [-nocompress] \n", argv[0]);
+ return 0;
+ }
+
+ int argn = 1;
+ bool use_base85_encoding = false;
+ bool use_compression = true;
+ if (argv[argn][0] == '-')
+ {
+ if (strcmp(argv[argn], "-base85") == 0) { use_base85_encoding = true; argn++; }
+ else if (strcmp(argv[argn], "-nocompress") == 0) { use_compression = false; argn++; }
+ else
+ {
+ printf("Unknown argument: '%s'\n", argv[argn]);
+ return 1;
+ }
+ }
+
+ return binary_to_compressed_c(argv[argn], argv[argn+1], use_base85_encoding, use_compression) ? 0 : 1;
+}
+
+char Encode85Byte(unsigned int x)
+{
+ x = (x % 85) + 35;
+ return (x>='\\') ? x+1 : x;
+}
+
+bool binary_to_compressed_c(const char* filename, const char* symbol, bool use_base85_encoding, bool use_compression)
+{
+ // Read file
+ FILE* f = fopen(filename, "rb");
+ if (!f) return false;
+ int data_sz;
+ if (fseek(f, 0, SEEK_END) || (data_sz = (int)ftell(f)) == -1 || fseek(f, 0, SEEK_SET)) { fclose(f); return false; }
+ char* data = new char[data_sz+4];
+ if (fread(data, 1, data_sz, f) != (size_t)data_sz) { fclose(f); delete[] data; return false; }
+ memset((void *)(((char*)data) + data_sz), 0, 4);
+ fclose(f);
+
+ // Compress
+ int maxlen = data_sz + 512 + (data_sz >> 2) + sizeof(int); // total guess
+ char* compressed = use_compression ? new char[maxlen] : data;
+ int compressed_sz = use_compression ? stb_compress((stb_uchar*)compressed, (stb_uchar*)data, data_sz) : data_sz;
+ if (use_compression)
+ memset(compressed + compressed_sz, 0, maxlen - compressed_sz);
+
+ // Output as Base85 encoded
+ FILE* out = stdout;
+ fprintf(out, "// File: '%s' (%d bytes)\n", filename, (int)data_sz);
+ fprintf(out, "// Exported using binary_to_compressed_c.cpp\n");
+ const char* compressed_str = use_compression ? "compressed_" : "";
+ if (use_base85_encoding)
+ {
+ fprintf(out, "static const char %s_%sdata_base85[%d+1] =\n \"", symbol, compressed_str, (int)((compressed_sz+3)/4)*5);
+ char prev_c = 0;
+ for (int src_i = 0; src_i < compressed_sz; src_i += 4)
+ {
+ // This is made a little more complicated by the fact that ??X sequences are interpreted as trigraphs by old C/C++ compilers. So we need to escape pairs of ??.
+ unsigned int d = *(unsigned int*)(compressed + src_i);
+ for (unsigned int n5 = 0; n5 < 5; n5++, d /= 85)
+ {
+ char c = Encode85Byte(d);
+ fprintf(out, (c == '?' && prev_c == '?') ? "\\%c" : "%c", c);
+ prev_c = c;
+ }
+ if ((src_i % 112) == 112-4)
+ fprintf(out, "\"\n \"");
+ }
+ fprintf(out, "\";\n\n");
+ }
+ else
+ {
+ fprintf(out, "static const unsigned int %s_%ssize = %d;\n", symbol, compressed_str, (int)compressed_sz);
+ fprintf(out, "static const unsigned int %s_%sdata[%d/4] =\n{", symbol, compressed_str, (int)((compressed_sz+3)/4)*4);
+ int column = 0;
+ for (int i = 0; i < compressed_sz; i += 4)
+ {
+ unsigned int d = *(unsigned int*)(compressed + i);
+ if ((column++ % 12) == 0)
+ fprintf(out, "\n 0x%08x, ", d);
+ else
+ fprintf(out, "0x%08x, ", d);
+ }
+ fprintf(out, "\n};\n\n");
+ }
+
+ // Cleanup
+ delete[] data;
+ if (use_compression)
+ delete[] compressed;
+ return true;
+}
+
+// stb_compress* from stb.h - definition
+
+//////////////////// compressor ///////////////////////
+
+static stb_uint stb_adler32(stb_uint adler32, stb_uchar *buffer, stb_uint buflen)
+{
+ const unsigned long ADLER_MOD = 65521;
+ unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16;
+ unsigned long blocklen, i;
+
+ blocklen = buflen % 5552;
+ while (buflen) {
+ for (i=0; i + 7 < blocklen; i += 8) {
+ s1 += buffer[0], s2 += s1;
+ s1 += buffer[1], s2 += s1;
+ s1 += buffer[2], s2 += s1;
+ s1 += buffer[3], s2 += s1;
+ s1 += buffer[4], s2 += s1;
+ s1 += buffer[5], s2 += s1;
+ s1 += buffer[6], s2 += s1;
+ s1 += buffer[7], s2 += s1;
+
+ buffer += 8;
+ }
+
+ for (; i < blocklen; ++i)
+ s1 += *buffer++, s2 += s1;
+
+ s1 %= ADLER_MOD, s2 %= ADLER_MOD;
+ buflen -= blocklen;
+ blocklen = 5552;
+ }
+ return (s2 << 16) + s1;
+}
+
+static unsigned int stb_matchlen(stb_uchar *m1, stb_uchar *m2, stb_uint maxlen)
+{
+ stb_uint i;
+ for (i=0; i < maxlen; ++i)
+ if (m1[i] != m2[i]) return i;
+ return i;
+}
+
+// simple implementation that just takes the source data in a big block
+
+static stb_uchar *stb__out;
+static FILE *stb__outfile;
+static stb_uint stb__outbytes;
+
+static void stb__write(unsigned char v)
+{
+ fputc(v, stb__outfile);
+ ++stb__outbytes;
+}
+
+//#define stb_out(v) (stb__out ? *stb__out++ = (stb_uchar) (v) : stb__write((stb_uchar) (v)))
+#define stb_out(v) do { if (stb__out) *stb__out++ = (stb_uchar) (v); else stb__write((stb_uchar) (v)); } while (0)
+
+static void stb_out2(stb_uint v) { stb_out(v >> 8); stb_out(v); }
+static void stb_out3(stb_uint v) { stb_out(v >> 16); stb_out(v >> 8); stb_out(v); }
+static void stb_out4(stb_uint v) { stb_out(v >> 24); stb_out(v >> 16); stb_out(v >> 8 ); stb_out(v); }
+
+static void outliterals(stb_uchar *in, int numlit)
+{
+ while (numlit > 65536) {
+ outliterals(in,65536);
+ in += 65536;
+ numlit -= 65536;
+ }
+
+ if (numlit == 0) ;
+ else if (numlit <= 32) stb_out (0x000020 + numlit-1);
+ else if (numlit <= 2048) stb_out2(0x000800 + numlit-1);
+ else /* numlit <= 65536) */ stb_out3(0x070000 + numlit-1);
+
+ if (stb__out) {
+ memcpy(stb__out,in,numlit);
+ stb__out += numlit;
+ } else
+ fwrite(in, 1, numlit, stb__outfile);
+}
+
+static int stb__window = 0x40000; // 256K
+
+static int stb_not_crap(int best, int dist)
+{
+ return ((best > 2 && dist <= 0x00100)
+ || (best > 5 && dist <= 0x04000)
+ || (best > 7 && dist <= 0x80000));
+}
+
+static stb_uint stb__hashsize = 32768;
+
+// note that you can play with the hashing functions all you
+// want without needing to change the decompressor
+#define stb__hc(q,h,c) (((h) << 7) + ((h) >> 25) + q[c])
+#define stb__hc2(q,h,c,d) (((h) << 14) + ((h) >> 18) + (q[c] << 7) + q[d])
+#define stb__hc3(q,c,d,e) ((q[c] << 14) + (q[d] << 7) + q[e])
+
+static unsigned int stb__running_adler;
+
+static int stb_compress_chunk(stb_uchar *history,
+ stb_uchar *start,
+ stb_uchar *end,
+ int length,
+ int *pending_literals,
+ stb_uchar **chash,
+ stb_uint mask)
+{
+ (void)history;
+ int window = stb__window;
+ stb_uint match_max;
+ stb_uchar *lit_start = start - *pending_literals;
+ stb_uchar *q = start;
+
+#define STB__SCRAMBLE(h) (((h) + ((h) >> 16)) & mask)
+
+ // stop short of the end so we don't scan off the end doing
+ // the hashing; this means we won't compress the last few bytes
+ // unless they were part of something longer
+ while (q < start+length && q+12 < end) {
+ int m;
+ stb_uint h1,h2,h3,h4, h;
+ stb_uchar *t;
+ int best = 2, dist=0;
+
+ if (q+65536 > end)
+ match_max = end-q;
+ else
+ match_max = 65536;
+
+#define stb__nc(b,d) ((d) <= window && ((b) > 9 || stb_not_crap(b,d)))
+
+#define STB__TRY(t,p) /* avoid retrying a match we already tried */ \
+ if (p ? dist != q-t : 1) \
+ if ((m = stb_matchlen(t, q, match_max)) > best) \
+ if (stb__nc(m,q-(t))) \
+ best = m, dist = q - (t)
+
+ // rather than search for all matches, only try 4 candidate locations,
+ // chosen based on 4 different hash functions of different lengths.
+ // this strategy is inspired by LZO; hashing is unrolled here using the
+ // 'hc' macro
+ h = stb__hc3(q,0, 1, 2); h1 = STB__SCRAMBLE(h);
+ t = chash[h1]; if (t) STB__TRY(t,0);
+ h = stb__hc2(q,h, 3, 4); h2 = STB__SCRAMBLE(h);
+ h = stb__hc2(q,h, 5, 6); t = chash[h2]; if (t) STB__TRY(t,1);
+ h = stb__hc2(q,h, 7, 8); h3 = STB__SCRAMBLE(h);
+ h = stb__hc2(q,h, 9,10); t = chash[h3]; if (t) STB__TRY(t,1);
+ h = stb__hc2(q,h,11,12); h4 = STB__SCRAMBLE(h);
+ t = chash[h4]; if (t) STB__TRY(t,1);
+
+ // because we use a shared hash table, can only update it
+ // _after_ we've probed all of them
+ chash[h1] = chash[h2] = chash[h3] = chash[h4] = q;
+
+ if (best > 2)
+ assert(dist > 0);
+
+ // see if our best match qualifies
+ if (best < 3) { // fast path literals
+ ++q;
+ } else if (best > 2 && best <= 0x80 && dist <= 0x100) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out(0x80 + best-1);
+ stb_out(dist-1);
+ } else if (best > 5 && best <= 0x100 && dist <= 0x4000) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out2(0x4000 + dist-1);
+ stb_out(best-1);
+ } else if (best > 7 && best <= 0x100 && dist <= 0x80000) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out3(0x180000 + dist-1);
+ stb_out(best-1);
+ } else if (best > 8 && best <= 0x10000 && dist <= 0x80000) {
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ stb_out3(0x100000 + dist-1);
+ stb_out2(best-1);
+ } else if (best > 9 && dist <= 0x1000000) {
+ if (best > 65536) best = 65536;
+ outliterals(lit_start, q-lit_start); lit_start = (q += best);
+ if (best <= 0x100) {
+ stb_out(0x06);
+ stb_out3(dist-1);
+ stb_out(best-1);
+ } else {
+ stb_out(0x04);
+ stb_out3(dist-1);
+ stb_out2(best-1);
+ }
+ } else { // fallback literals if no match was a balanced tradeoff
+ ++q;
+ }
+ }
+
+ // if we didn't get all the way, add the rest to literals
+ if (q-start < length)
+ q = start+length;
+
+ // the literals are everything from lit_start to q
+ *pending_literals = (q - lit_start);
+
+ stb__running_adler = stb_adler32(stb__running_adler, start, q - start);
+ return q - start;
+}
+
+static int stb_compress_inner(stb_uchar *input, stb_uint length)
+{
+ int literals = 0;
+ stb_uint len,i;
+
+ stb_uchar **chash;
+ chash = (stb_uchar**) malloc(stb__hashsize * sizeof(stb_uchar*));
+ if (chash == NULL) return 0; // failure
+ for (i=0; i < stb__hashsize; ++i)
+ chash[i] = NULL;
+
+ // stream signature
+ stb_out(0x57); stb_out(0xbc);
+ stb_out2(0);
+
+ stb_out4(0); // 64-bit length requires 32-bit leading 0
+ stb_out4(length);
+ stb_out4(stb__window);
+
+ stb__running_adler = 1;
+
+ len = stb_compress_chunk(input, input, input+length, length, &literals, chash, stb__hashsize-1);
+ assert(len == length);
+
+ outliterals(input+length - literals, literals);
+
+ free(chash);
+
+ stb_out2(0x05fa); // end opcode
+
+ stb_out4(stb__running_adler);
+
+ return 1; // success
+}
+
+stb_uint stb_compress(stb_uchar *out, stb_uchar *input, stb_uint length)
+{
+ stb__out = out;
+ stb__outfile = NULL;
+
+ stb_compress_inner(input, length);
+
+ return stb__out - out;
+}
diff --git a/misc/natvis/README.txt b/misc/natvis/README.txt
new file mode 100644
index 0000000..821014e
--- /dev/null
+++ b/misc/natvis/README.txt
@@ -0,0 +1,3 @@
+
+Natvis file to describe types in Visual Studio debugger.
+You can include this in a project file, or install in Visual Studio folder.
diff --git a/misc/natvis/imgui.natvis b/misc/natvis/imgui.natvis
new file mode 100644
index 0000000..38c676c
--- /dev/null
+++ b/misc/natvis/imgui.natvis
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+ {{Size={Size} Capacity={Capacity}}}
+
+
+ Size
+ Data
+
+
+
+
+
+ {{x={x,g} y={y,g}}}
+
+
+
+ {{x={x,g} y={y,g} z={z,g} w={w,g}}}
+
+
+
+ {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
+
+ - Min
+ - Max
+ - Max.x - Min.x
+ - Max.y - Min.y
+
+
+
+
+ {{Name={Name,s}}}
+ {{Name={Name,s}} Inactive}
+
+
+
\ No newline at end of file