Documentation on new font / texture get api

docking
ocornut 10 years ago
parent 0f4d74d614
commit d27b295f4c

@ -80,12 +80,18 @@
- a typical application skeleton may be: - a typical application skeleton may be:
// Application init // Application init
// TODO: Fill all settings fields of the io structure
ImGuiIO& io = ImGui::GetIO(); ImGuiIO& io = ImGui::GetIO();
io.DisplaySize.x = 1920.0f; io.DisplaySize.x = 1920.0f;
io.DisplaySize.y = 1280.0f; io.DisplaySize.y = 1280.0f;
io.DeltaTime = 1.0f/60.0f; io.DeltaTime = 1.0f/60.0f;
io.IniFilename = "imgui.ini"; io.IniFilename = "imgui.ini";
// TODO: Fill others settings of the io structure
// Load texture
unsigned char* pixels;
int width, height;
io.Font->GetTextureData(&pixels, &width, &height);
// TODO: copy texture to graphics memory. Store texture identifier for your engine in io.Font->TexID
// Application main loop // Application main loop
while (true) while (true)
@ -118,7 +124,9 @@
Occasionally introducing changes that are breaking the API. The breakage are generally minor and easy to fix. Occasionally introducing changes that are breaking the API. The breakage are generally minor and easy to fix.
Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code. Here is a change-log of API breaking changes, if you are using one of the functions listed, expect to have to fix some code.
- 2015/01/08 (1.30) XXXXXXXX - 2015/01/11 (1.30) big font/image API change. now loads TTF file. allow for multiple fonts. no need for a PNG loader.
removed GetDefaultFontData(). uses io.Font->GetTextureData*() API to retrieve uncompressed pixels.
added texture identifier in ImDrawCmd passed to your render function.
- 2014/12/10 (1.18) removed SetNewWindowDefaultPos() in favor of new generic API SetNextWindowPos(pos, ImGuiSetCondition_FirstUseEver) - 2014/12/10 (1.18) removed SetNewWindowDefaultPos() in favor of new generic API SetNextWindowPos(pos, ImGuiSetCondition_FirstUseEver)
- 2014/11/28 (1.17) moved IO.Font*** options to inside the IO.Font-> structure. - 2014/11/28 (1.17) moved IO.Font*** options to inside the IO.Font-> structure.
- 2014/11/26 (1.17) reworked syntax of IMGUI_ONCE_UPON_A_FRAME helper macro to increase compiler compatibility - 2014/11/26 (1.17) reworked syntax of IMGUI_ONCE_UPON_A_FRAME helper macro to increase compiler compatibility
@ -157,9 +165,9 @@
e.g. "##Foobar" display an empty label and uses "##Foobar" as ID e.g. "##Foobar" display an empty label and uses "##Foobar" as ID
- read articles about the imgui principles (see web links) to understand the requirement and use of ID. - read articles about the imgui principles (see web links) to understand the requirement and use of ID.
If you want to use a different font than the default embedded copy of ProggyClean.ttf (size 13): If you want to use a different font than the default embedded copy of ProggyClean.ttf (size 13), before calling io.Font->GetTextureData():
ImGuiIO& io = ImGui::GetIO(); ImGuiIO& io = ImGui::GetIO();
io.Font = new Font();
io.Font->LoadFromFileTTF("myfontfile.ttf", size_pixels); io.Font->LoadFromFileTTF("myfontfile.ttf", size_pixels);
If you want to input Japanese/Chinese/Korean in the text input widget: If you want to input Japanese/Chinese/Korean in the text input widget:
@ -420,7 +428,7 @@ ImGuiStyle::ImGuiStyle()
// We statically allocate a default font storage for the user. // We statically allocate a default font storage for the user.
// This allows the user to avoid newing the default font, while keeping IO.Font a pointer which is easy to swap if needed. // This allows the user to avoid newing the default font, while keeping IO.Font a pointer which is easy to swap if needed.
// We cannot new() the font because user may override MemAllocFn after the ImGuiIO() constructor is called. // We cannot new() the font because user may override MemAllocFn after the ImGuiIO() constructor is called.
// For the same reason we cannot call LoadDefault() on the font. // For the same reason we cannot call LoadDefault() on the font by default, but it is called by GetTextureData*() API.
static ImFont GDefaultStaticFont; static ImFont GDefaultStaticFont;
ImGuiIO::ImGuiIO() ImGuiIO::ImGuiIO()

Loading…
Cancel
Save