WindowTitleAlign=ImVec2(0.0f,0.5f);// Alignment for title bar text
ChildRounding=0.0f;// Radius of child window corners rounding. Set to 0.0f to have rectangular child windows
ChildBorderSize=1.0f;// Thickness of border around child windows. Generally set to 0.0f or 1.0f. Other values not well tested.
PopupRounding=0.0f;// Radius of popup window corners rounding. Set to 0.0f to have rectangular child windows
PopupBorderSize=1.0f;// Thickness of border around popup or tooltip windows. Generally set to 0.0f or 1.0f. Other values not well tested.
FramePadding=ImVec2(4,3);// Padding within a framed rectangle (used by most widgets)
FrameRounding=0.0f;// Radius of frame corners rounding. Set to 0.0f to have rectangular frames (used by most widgets).
FrameBorderSize=0.0f;// Thickness of border around frames. Generally set to 0.0f or 1.0f. Other values not well tested.
ItemSpacing=ImVec2(8,4);// Horizontal and vertical spacing between widgets/lines
ItemInnerSpacing=ImVec2(4,4);// Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label)
TouchExtraPadding=ImVec2(0,0);// Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much!
IM_ASSERT(g.Style.Alpha>=0.0f&&g.Style.Alpha<=1.0f);// Invalid style setting. Alpha cannot be negative (allows us to avoid a few clamps in color computations)
// (We pass an error message in the assert expression as a trick to get it visible to programmers who are not using a debugger, as most assert handlers display their argument)
IM_ASSERT(g.IO.DeltaTime>=0.0f&&"Need a positive DeltaTime (zero is tolerated but will cause some timing issues)");
IM_ASSERT(g.Style.Alpha>=0.0f&&g.Style.Alpha<=1.0f&&"Invalid style setting. Alpha cannot be negative (allows us to avoid a few clamps in color computations)");
IM_ASSERT((g.FrameCount==0||g.FrameCountEnded==g.FrameCount)&&"Forgot to call Render() or EndFrame() at the end of the previous frame?");
// Initialize on first frame
if(!g.Initialized)
@ -3547,7 +3556,8 @@ void ImGui::EndFrame()
{
ImGuiContext&g=*GImGui;
IM_ASSERT(g.Initialized);// Forgot to call ImGui::NewFrame()
IM_ASSERT(g.FrameCountEnded!=g.FrameCount);// ImGui::EndFrame() called multiple times, or forgot to call ImGui::NewFrame() again
if(g.FrameCountEnded==g.FrameCount)// Don't process EndFrame() multiple times.
return;
// Notify OS when our Input Method Editor cursor has moved (e.g. CJK inputs using Microsoft IME)
// Position our combo ABOVE because there's more space to fit! (FIXME: Handle in Begin() or use a shared helper. We have similar code in Begin() for popup placement)
IMGUI_APIImDrawData*GetDrawData();// same value as passed to your io.RenderDrawListsFn() function. valid after Render() and until the next call to NewFrame()
IMGUI_APIvoidNewFrame();// start a new ImGui frame, you can submit any command from this point until NewFrame()/Render().
IMGUI_APIvoidRender();// ends the ImGui frame, finalize rendering data, then call your io.RenderDrawListsFn() function if set.
IMGUI_APIvoidNewFrame();// start a new ImGui frame, you can submit any command from this point until Render()/EndFrame().
IMGUI_APIvoidRender();// ends the ImGui frame, finalize the draw data, then call your io.RenderDrawListsFn() function if set.
IMGUI_APIvoidEndFrame();// ends the ImGui frame. automatically called by Render(), so most likely don't need to ever call that yourself directly. If you don't need to render you may call EndFrame() but you'll have wasted CPU already. If you don't need to render, better to not create any imgui windows instead!
IMGUI_APIvoidTreePush(constchar*str_id=NULL);// ~ Indent()+PushId(). Already called by TreeNode() when returning true, but you can call Push/Pop yourself for layout purpose
IMGUI_APIvoidTreePush(constchar*str_id);// ~ Indent()+PushId(). Already called by TreeNode() when returning true, but you can call Push/Pop yourself for layout purpose
IMGUI_APIvoidTreePush(constvoid*ptr_id=NULL);// "
IMGUI_APIvoidTreePop();// ~ Unindent()+PopId()
IMGUI_APIvoidTreeAdvanceToLabelPos();// advance cursor x position by GetTreeNodeToLabelSpacing()
@ -512,7 +513,7 @@ enum ImGuiWindowFlags_
ImGuiWindowFlags_NoScrollWithMouse=1<<4,// Disable user vertically scrolling with mouse wheel
ImGuiWindowFlags_NoCollapse=1<<5,// Disable user collapsing window by double-clicking on it
ImGuiWindowFlags_AlwaysAutoResize=1<<6,// Resize every window to its content every frame
ImGuiWindowFlags_ShowBorders=1<<7,// Show borders around windows and items
//ImGuiWindowFlags_ShowBorders = 1 << 7, // Show borders around windows and items (OBSOLETE! Use e.g. style.FrameBorderSize=1.0f to enable borders).
ImGuiWindowFlags_NoSavedSettings=1<<8,// Never load/save settings in .ini file
ImGuiWindowFlags_NoInputs=1<<9,// Disable catching mouse or keyboard inputs, hovering test with pass through.
ImGuiWindowFlags_MenuBar=1<<10,// Has a menu-bar
@ -656,7 +657,7 @@ enum ImGuiCol_
ImGuiCol_Text,
ImGuiCol_TextDisabled,
ImGuiCol_WindowBg,// Background of normal windows
ImGuiCol_ChildWindowBg,// Background of child windows
ImGuiCol_ChildBg,// Background of child windows
ImGuiCol_PopupBg,// Background of popups, menus, tooltips windows
floatAlpha;// Global alpha applies to everything in ImGui
ImVec2WindowPadding;// Padding within a window
ImVec2WindowMinSize;// Minimum window size
floatWindowRounding;// Radius of window corners rounding. Set to 0.0f to have rectangular windows
floatWindowBorderSize;// Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly)
ImVec2WindowMinSize;// Minimum window size
ImVec2WindowTitleAlign;// Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered.
floatChildRounding;// Radius of child window corners rounding. Set to 0.0f to have rectangular windows.
floatChildBorderSize;// Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly)
floatPopupRounding;// Radius of popup window corners rounding.
floatPopupBorderSize;// Thickness of border around popup windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly)
ImVec2FramePadding;// Padding within a framed rectangle (used by most widgets)
floatFrameRounding;// Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets).
floatFrameBorderSize;// Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly)
ImVec2ItemSpacing;// Horizontal and vertical spacing between widgets/lines
ImVec2ItemInnerSpacing;// Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label)
ImVec2TouchExtraPadding;// Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much!
ImGui::SliderFloat2("ButtonTextAlign",(float*)&style.ButtonTextAlign,0.0f,1.0f,"%.2f");ImGui::SameLine();ShowHelpMarker("Alignment applies when a button is larger than its text content.");
IMGUI_APIvoidEndFrame();// Ends the ImGui frame. Automatically called by Render()! you most likely don't need to ever call that yourself directly. If you don't need to render you can call EndFrame() but you'll have wasted CPU already. If you don't need to render, don't create any windows instead!