mirror of
https://github.com/dpethes/rerogue.git
synced 2025-06-07 18:58:32 +02:00
update imgui and SDL2 bindings
This commit is contained in:
parent
14c05bec13
commit
2cd5eef69d
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
Bindings for dear imgui (AKA ImGui) - a bloat-free graphical user interface library for C++
|
Bindings for dear imgui (AKA ImGui) - a bloat-free graphical user interface library for C++
|
||||||
Based on cimgui+ImGui 1.49/1.50
|
Based on ImGui 1.50 + cimgui wrapper
|
||||||
Not all functions were tested.
|
Not all functions were tested.
|
||||||
}
|
}
|
||||||
unit fpimgui;
|
unit fpimgui;
|
||||||
@ -30,14 +30,7 @@ type
|
|||||||
TLongInt3 = array[0..2] of longint;
|
TLongInt3 = array[0..2] of longint;
|
||||||
TLongInt4 = array[0..3] of longint;
|
TLongInt4 = array[0..3] of longint;
|
||||||
|
|
||||||
PImDrawData = ^ImDrawData;
|
|
||||||
PImFont = ^ImFont;
|
|
||||||
PImFontAtlas = ^ImFontAtlas;
|
|
||||||
PImFontConfig = ^ImFontConfig;
|
|
||||||
PImGuiContext = Pointer;
|
PImGuiContext = Pointer;
|
||||||
PImGuiSizeConstraintCallbackData = ^ImGuiSizeConstraintCallbackData;
|
|
||||||
PImGuiStorage = ^ImGuiStorage;
|
|
||||||
PImGuiTextEditCallbackData = ^ImGuiTextEditCallbackData;
|
|
||||||
|
|
||||||
ImVec2 = record
|
ImVec2 = record
|
||||||
x, y: single;
|
x, y: single;
|
||||||
@ -50,32 +43,53 @@ type
|
|||||||
|
|
||||||
ImU32 = dword;
|
ImU32 = dword;
|
||||||
ImWchar = word;
|
ImWchar = word;
|
||||||
|
PImWchar = PWord;
|
||||||
ImTextureID = pointer;
|
ImTextureID = pointer;
|
||||||
ImGuiID = ImU32;
|
ImGuiID = ImU32;
|
||||||
ImGuiCol = longint;
|
ImGuiCol = longint;
|
||||||
ImGuiStyleVar = longint;
|
ImGuiStyleVar = longint;
|
||||||
ImGuiKey = longint;
|
ImGuiKey = longint;
|
||||||
ImGuiAlign = longint;
|
|
||||||
ImGuiColorEditMode = longint;
|
|
||||||
ImGuiMouseCursor = longint;
|
|
||||||
ImGuiWindowFlags = longint;
|
|
||||||
ImGuiSetCond = longint;
|
|
||||||
ImGuiInputTextFlags = longint;
|
ImGuiInputTextFlags = longint;
|
||||||
ImGuiSelectableFlags = longint;
|
ImGuiSelectableFlags = longint;
|
||||||
|
|
||||||
{ Enums }
|
{ Enums }
|
||||||
|
|
||||||
ImGuiTreeNodeFlags = (
|
ImGuiWindowFlags = longint;
|
||||||
Selected = 1 shl 0,
|
ImGuiWindowFlagsEnum = (
|
||||||
Framed = 1 shl 1,
|
ImGuiWindowFlags_Default = 0, // Default: 0
|
||||||
AllowOverlapMode = 1 shl 2,
|
ImGuiWindowFlags_NoTitleBar = 1 shl 0, // Disable title-bar
|
||||||
NoTreePushOnOpen = 1 shl 3,
|
ImGuiWindowFlags_NoResize = 1 shl 1, // Disable user resizing with the lower-right grip
|
||||||
NoAutoOpenOnLog = 1 shl 4,
|
ImGuiWindowFlags_NoMove = 1 shl 2, // Disable user moving the window
|
||||||
DefaultOpen = 1 shl 5,
|
ImGuiWindowFlags_NoScrollbar = 1 shl 3, // Disable scrollbars (window can still scroll with mouse or programatically)
|
||||||
OpenOnDoubleClick = 1 shl 6,
|
ImGuiWindowFlags_NoScrollWithMouse = 1 shl 4, // Disable user vertically scrolling with mouse wheel
|
||||||
OpenOnArrow = 1 shl 7,
|
ImGuiWindowFlags_NoCollapse = 1 shl 5, // Disable user collapsing window by double-clicking on it
|
||||||
Leaf = 1 shl 8,
|
ImGuiWindowFlags_AlwaysAutoResize = 1 shl 6, // Resize every window to its content every frame
|
||||||
Bullet = 1 shl 9
|
ImGuiWindowFlags_ShowBorders = 1 shl 7, // Show borders around windows and items
|
||||||
|
ImGuiWindowFlags_NoSavedSettings = 1 shl 8, // Never load/save settings in .ini file
|
||||||
|
ImGuiWindowFlags_NoInputs = 1 shl 9, // Disable catching mouse or keyboard inputs
|
||||||
|
ImGuiWindowFlags_MenuBar = 1 shl 10, // Has a menu-bar
|
||||||
|
ImGuiWindowFlags_HorizontalScrollbar = 1 shl 11, // Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the "Horizontal Scrolling" section.
|
||||||
|
ImGuiWindowFlags_NoFocusOnAppearing = 1 shl 12, // Disable taking focus when transitioning from hidden to visible state
|
||||||
|
ImGuiWindowFlags_NoBringToFrontOnFocus = 1 shl 13, // Disable bringing window to front when taking focus (e.g. clicking on it or programatically giving it focus)
|
||||||
|
ImGuiWindowFlags_AlwaysVerticalScrollbar= 1 shl 14, // Always show vertical scrollbar (even if ContentSize.y < Size.y)
|
||||||
|
ImGuiWindowFlags_AlwaysHorizontalScrollbar=1shl 15, // Always show horizontal scrollbar (even if ContentSize.x < Size.x)
|
||||||
|
ImGuiWindowFlags_AlwaysUseWindowPadding = 1 shl 16 // Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*()
|
||||||
|
ImGuiTreeNodeFlags = longint;
|
||||||
|
ImGuiTreeNodeFlagsEnum = (
|
||||||
|
ImGuiTreeNodeFlags_Selected = 1 shl 0,
|
||||||
|
ImGuiTreeNodeFlags_Framed = 1 shl 1,
|
||||||
|
ImGuiTreeNodeFlags_AllowOverlapMode = 1 shl 2,
|
||||||
|
ImGuiTreeNodeFlags_NoTreePushOnOpen = 1 shl 3,
|
||||||
|
ImGuiTreeNodeFlags_NoAutoOpenOnLog = 1 shl 4,
|
||||||
|
ImGuiTreeNodeFlags_CollapsingHeader = (1 shl 1) or (1 shl 4), //Framed or NoAutoOpenOnLog
|
||||||
|
ImGuiTreeNodeFlags_DefaultOpen = 1 shl 5,
|
||||||
|
ImGuiTreeNodeFlags_OpenOnDoubleClick = 1 shl 6,
|
||||||
|
ImGuiTreeNodeFlags_OpenOnArrow = 1 shl 7,
|
||||||
|
ImGuiTreeNodeFlags_Leaf = 1 shl 8,
|
||||||
|
ImGuiTreeNodeFlags_Bullet = 1 shl 9
|
||||||
);
|
);
|
||||||
|
|
||||||
ImGuiKey_ = (
|
ImGuiKey_ = (
|
||||||
@ -148,7 +162,55 @@ type
|
|||||||
//ImGuiCol_COUNT - unnecessary
|
//ImGuiCol_COUNT - unnecessary
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// Enumeration for PushStyleVar() / PopStyleVar()
|
||||||
|
// NB: the enum only refers to fields of ImGuiStyle() which makes sense to be pushed/poped in UI code. Feel free to add others.
|
||||||
|
ImGuiStyleVar_ = (
|
||||||
|
ImGuiStyleVar_Alpha, // float
|
||||||
|
ImGuiStyleVar_WindowPadding, // ImVec2
|
||||||
|
ImGuiStyleVar_WindowRounding, // float
|
||||||
|
ImGuiStyleVar_WindowMinSize, // ImVec2
|
||||||
|
ImGuiStyleVar_ChildWindowRounding, // float
|
||||||
|
ImGuiStyleVar_FramePadding, // ImVec2
|
||||||
|
ImGuiStyleVar_FrameRounding, // float
|
||||||
|
ImGuiStyleVar_ItemSpacing, // ImVec2
|
||||||
|
ImGuiStyleVar_ItemInnerSpacing, // ImVec2
|
||||||
|
ImGuiStyleVar_IndentSpacing, // float
|
||||||
|
ImGuiStyleVar_GrabMinSize, // float
|
||||||
|
ImGuiStyleVar_ButtonTextAlign // flags ImGuiAlign_*
|
||||||
|
//ImGuiStyleVar_Count_ - unnecessary
|
||||||
|
);
|
||||||
|
|
||||||
|
// Enumeration for ColorEditMode()
|
||||||
|
// FIXME-OBSOLETE: Will be replaced by future color/picker api
|
||||||
|
ImGuiColorEditMode = longint;
|
||||||
|
|
||||||
|
// Enumeration for GetMouseCursor()
|
||||||
|
ImGuiMouseCursor = longint;
|
||||||
|
ImGuiMouseCursorEnum = (
|
||||||
|
ImGuiMouseCursor_None = -1,
|
||||||
|
ImGuiMouseCursor_Arrow = 0,
|
||||||
|
ImGuiMouseCursor_TextInput,
|
||||||
|
ImGuiMouseCursor_Move,
|
||||||
|
ImGuiMouseCursor_ResizeNS,
|
||||||
|
ImGuiMouseCursor_ResizeEW,
|
||||||
|
ImGuiMouseCursor_ResizeNESW,
|
||||||
|
ImGuiMouseCursor_ResizeNWSE
|
||||||
|
//ImGuiMouseCursor_Count_ - unnecessary
|
||||||
|
);
|
||||||
|
|
||||||
|
// Condition flags for ImGui::SetWindow***(), SetNextWindow***(), SetNextTreeNode***() functions
|
||||||
|
// All those functions treat 0 as a shortcut to ImGuiSetCond_Always
|
||||||
|
ImGuiSetCond = longint;
|
||||||
|
ImGuiSetCondEnum = (
|
||||||
|
ImGuiSetCond_Always = 1 shl 0, // Set the variable
|
||||||
|
ImGuiSetCond_Once = 1 shl 1, // Set the variable once per runtime session (only the first call with succeed)
|
||||||
|
ImGuiSetCond_FirstUseEver = 1 shl 2, // Set the variable if the window has no saved data (if doesn't exist in the .ini file)
|
||||||
|
ImGuiSetCond_Appearing = 1 shl 3 // Set the variable if the window is appearing after being hidden/inactive (or the first time)
|
||||||
|
);
|
||||||
|
|
||||||
{ Structs }
|
{ Structs }
|
||||||
|
|
||||||
ImGuiStyle = record
|
ImGuiStyle = record
|
||||||
Alpha : single;
|
Alpha : single;
|
||||||
WindowPadding : ImVec2;
|
WindowPadding : ImVec2;
|
||||||
@ -177,6 +239,14 @@ type
|
|||||||
end;
|
end;
|
||||||
PImGuiStyle = ^ImGuiStyle;
|
PImGuiStyle = ^ImGuiStyle;
|
||||||
|
|
||||||
|
//forward decls for ImGuiIO
|
||||||
|
PImDrawData = ^ImDrawData;
|
||||||
|
PImFont = ^ImFont;
|
||||||
|
PImFontAtlas = ^ImFontAtlas;
|
||||||
|
PImFontConfig = ^ImFontConfig;
|
||||||
|
PImGuiSizeConstraintCallbackData = ^ImGuiSizeConstraintCallbackData;
|
||||||
|
PImGuiStorage = ^ImGuiStorage;
|
||||||
|
PImGuiTextEditCallbackData = ^ImGuiTextEditCallbackData;
|
||||||
ImGuiIO = record
|
ImGuiIO = record
|
||||||
DisplaySize : ImVec2;
|
DisplaySize : ImVec2;
|
||||||
DeltaTime : single;
|
DeltaTime : single;
|
||||||
@ -190,6 +260,7 @@ type
|
|||||||
KeyRepeatDelay : single;
|
KeyRepeatDelay : single;
|
||||||
KeyRepeatRate : single;
|
KeyRepeatRate : single;
|
||||||
UserData : pointer;
|
UserData : pointer;
|
||||||
|
|
||||||
Fonts : PImFontAtlas;
|
Fonts : PImFontAtlas;
|
||||||
FontGlobalScale : single;
|
FontGlobalScale : single;
|
||||||
FontAllowUserScaling : bool;
|
FontAllowUserScaling : bool;
|
||||||
@ -197,15 +268,24 @@ type
|
|||||||
DisplayFramebufferScale : ImVec2;
|
DisplayFramebufferScale : ImVec2;
|
||||||
DisplayVisibleMin : ImVec2;
|
DisplayVisibleMin : ImVec2;
|
||||||
DisplayVisibleMax : ImVec2;
|
DisplayVisibleMax : ImVec2;
|
||||||
|
|
||||||
|
// Advanced/subtle behaviors
|
||||||
OSXBehaviors : bool;
|
OSXBehaviors : bool;
|
||||||
|
|
||||||
|
// User Functions
|
||||||
RenderDrawListsFn : procedure (data:PImDrawData);cdecl;
|
RenderDrawListsFn : procedure (data:PImDrawData);cdecl;
|
||||||
|
|
||||||
GetClipboardTextFn : function (user_data:pointer):Pchar;cdecl;
|
GetClipboardTextFn : function (user_data:pointer):Pchar;cdecl;
|
||||||
SetClipboardTextFn : procedure (user_data:pointer; text:Pchar);cdecl;
|
SetClipboardTextFn : procedure (user_data:pointer; text:Pchar);cdecl;
|
||||||
ClipboardUserData : pointer;
|
ClipboardUserData : pointer;
|
||||||
|
|
||||||
MemAllocFn : function (sz:size_t):pointer;cdecl;
|
MemAllocFn : function (sz:size_t):pointer;cdecl;
|
||||||
MemFreeFn : procedure (ptr:pointer);cdecl;
|
MemFreeFn : procedure (ptr:pointer);cdecl;
|
||||||
|
|
||||||
ImeSetInputScreenPosFn : procedure (x:longint; y:longint);cdecl;
|
ImeSetInputScreenPosFn : procedure (x:longint; y:longint);cdecl;
|
||||||
ImeWindowHandle : pointer;
|
ImeWindowHandle : pointer;
|
||||||
|
|
||||||
|
// Input - Fill before calling NewFrame()
|
||||||
MousePos : ImVec2;
|
MousePos : ImVec2;
|
||||||
MouseDown : array[0..4] of bool;
|
MouseDown : array[0..4] of bool;
|
||||||
MouseWheel : single;
|
MouseWheel : single;
|
||||||
@ -215,7 +295,9 @@ type
|
|||||||
KeyAlt : bool;
|
KeyAlt : bool;
|
||||||
KeySuper : bool;
|
KeySuper : bool;
|
||||||
KeysDown : array[0..511] of bool;
|
KeysDown : array[0..511] of bool;
|
||||||
InputCharacters : array[0..(16+1)-1] of ImWchar;
|
InputCharacters : array[0..16] of ImWchar;
|
||||||
|
|
||||||
|
// Output - Retrieve after calling NewFrame()
|
||||||
WantCaptureMouse : bool;
|
WantCaptureMouse : bool;
|
||||||
WantCaptureKeyboard : bool;
|
WantCaptureKeyboard : bool;
|
||||||
WantTextInput : bool;
|
WantTextInput : bool;
|
||||||
@ -224,7 +306,11 @@ type
|
|||||||
MetricsRenderVertices : longint;
|
MetricsRenderVertices : longint;
|
||||||
MetricsRenderIndices : longint;
|
MetricsRenderIndices : longint;
|
||||||
MetricsActiveWindows : longint;
|
MetricsActiveWindows : longint;
|
||||||
|
|
||||||
MouseDelta : ImVec2;
|
MouseDelta : ImVec2;
|
||||||
|
|
||||||
|
// [Private] ImGui will maintain those fields. Forward compatibility not guaranteed!
|
||||||
|
// this part is not included, so be careful when doing sizeof(ImGuiIO) for example
|
||||||
end;
|
end;
|
||||||
PImGuiIO = ^ImGuiIO;
|
PImGuiIO = ^ImGuiIO;
|
||||||
|
|
||||||
@ -273,27 +359,34 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
ImGuiTextEditCallbackData = record
|
ImGuiTextEditCallbackData = record
|
||||||
|
//not translated
|
||||||
end;
|
end;
|
||||||
ImGuiSizeConstraintCallbackData = record
|
ImGuiSizeConstraintCallbackData = record
|
||||||
|
//not translated
|
||||||
end;
|
end;
|
||||||
ImGuiStorage = record
|
ImGuiStorage = record
|
||||||
|
//not translated
|
||||||
end;
|
end;
|
||||||
ImFont = record
|
ImFont = record
|
||||||
|
//not translated
|
||||||
end;
|
end;
|
||||||
ImFontConfig = record
|
ImFontConfig = record
|
||||||
|
//not translated
|
||||||
end;
|
end;
|
||||||
ImFontAtlas = record
|
ImFontAtlas = record
|
||||||
|
//not translated
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
ImGuiTextEditCallback = function(Data: PImGuiTextEditCallbackData): longint; cdecl;
|
ImGuiTextEditCallback = function(Data: PImGuiTextEditCallbackData): longint; cdecl;
|
||||||
ImGuiSizeConstraintCallback = procedure(Data: PImGuiSizeConstraintCallbackData); cdecl;
|
ImGuiSizeConstraintCallback = procedure(Data: PImGuiSizeConstraintCallbackData); cdecl;
|
||||||
|
|
||||||
|
//binding helpers
|
||||||
|
type
|
||||||
TCol3 = array[0..2] of single; //todo : does this work?
|
TCol3 = array[0..2] of single; //todo : does this work?
|
||||||
TCol4 = array[0..3] of single;
|
TCol4 = array[0..3] of single;
|
||||||
|
|
||||||
//binding helpers
|
|
||||||
function ImVec2Init(const x, y: single): Imvec2; inline;
|
function ImVec2Init(const x, y: single): Imvec2; inline;
|
||||||
|
function ImIDPtr(const i: integer): pointer; inline;
|
||||||
|
|
||||||
{ Static ImGui class, wraps external cimgui dll calls
|
{ Static ImGui class, wraps external cimgui dll calls
|
||||||
Used for:
|
Used for:
|
||||||
@ -370,13 +463,13 @@ public
|
|||||||
class procedure PushFont(font: PImFont); inline;
|
class procedure PushFont(font: PImFont); inline;
|
||||||
class procedure PopFont; inline;
|
class procedure PopFont; inline;
|
||||||
class procedure PushStyleColor(idx: ImGuiCol; col: ImVec4); inline;
|
class procedure PushStyleColor(idx: ImGuiCol; col: ImVec4); inline;
|
||||||
class procedure PopStyleColor(Count: longint); inline;
|
class procedure PopStyleColor(count: longint); inline;
|
||||||
class procedure PushStyleVar(idx: ImGuiStyleVar; val: single); inline;
|
class procedure PushStyleVar(idx: ImGuiStyleVar; val: single); inline;
|
||||||
class procedure PushStyleVarVec(idx: ImGuiStyleVar; val: ImVec2); inline;
|
class procedure PushStyleVarVec(idx: ImGuiStyleVar; val: ImVec2); inline;
|
||||||
class procedure PopStyleVar(Count: longint); inline;
|
class procedure PopStyleVar(count: longint = 1); inline;
|
||||||
class function GetFont(): PImFont; inline;
|
class function GetFont(): PImFont; inline;
|
||||||
class function GetFontSize: single; inline;
|
class function GetFontSize: single; inline;
|
||||||
class procedure GetFontTexUvWhitePixel(pOut: PImVec2); inline;
|
class function GetFontTexUvWhitePixel(): ImVec2;
|
||||||
class function GetColorU32(idx: ImGuiCol; alpha_mul: single): ImU32; inline;
|
class function GetColorU32(idx: ImGuiCol; alpha_mul: single): ImU32; inline;
|
||||||
class function GetColorU32Vec(col: PImVec4): ImU32; inline;
|
class function GetColorU32Vec(col: PImVec4): ImU32; inline;
|
||||||
|
|
||||||
@ -437,7 +530,6 @@ public
|
|||||||
class function GetIdPtr(ptr_id: pointer): ImGuiID; inline;
|
class function GetIdPtr(ptr_id: pointer): ImGuiID; inline;
|
||||||
|
|
||||||
{ Widgets }
|
{ Widgets }
|
||||||
{ Text() wraps TextUnformatted(), not Text() - formatting is done by pascal's Format }
|
|
||||||
class procedure Text(const text_: string);
|
class procedure Text(const text_: string);
|
||||||
class procedure Text(const Fmt: string; const Args: array of Const);
|
class procedure Text(const Fmt: string; const Args: array of Const);
|
||||||
//procedure igTextV(fmt:Pchar; args:va_list);cdecl;external ImguiLibName;
|
//procedure igTextV(fmt:Pchar; args:va_list);cdecl;external ImguiLibName;
|
||||||
@ -534,20 +626,17 @@ public
|
|||||||
class function InputInt4(_label: PChar; v: TLongInt4; extra_flags: ImGuiInputTextFlags): bool; inline;
|
class function InputInt4(_label: PChar; v: TLongInt4; extra_flags: ImGuiInputTextFlags): bool; inline;
|
||||||
|
|
||||||
{ Widgets: Trees }
|
{ Widgets: Trees }
|
||||||
class function TreeNode(_label: PChar): bool; inline;
|
class function TreeNode(_label: string): bool; inline;
|
||||||
class function TreeNodeStr(str_id: PChar; fmt: string; args: array of const): bool; {inline;}
|
class function TreeNode(str_id: string; fmt: string; args: array of const): bool; {inline;}
|
||||||
class function TreeNodeStr(str_id: PChar; fmt: string): bool; inline;
|
class function TreeNode(str_id: string; fmt: string): bool; inline;
|
||||||
class function TreeNodePtr(ptr_id: pointer; fmt: string; args: array of const): bool; {inline;}
|
class function TreeNode(ptr_id: pointer; fmt: string; args: array of const): bool; {inline;}
|
||||||
class function TreeNodePtr(ptr_id: pointer; fmt: string): bool; inline;
|
class function TreeNode(ptr_id: pointer; fmt: string): bool; inline;
|
||||||
//todo : vargs
|
|
||||||
// function igTreeNodeStrV(str_id:Pchar; fmt:Pchar; args:va_list):bool;cdecl;external ImguiLibName;
|
|
||||||
//todo : vargs
|
|
||||||
// function igTreeNodePtrV(ptr_id:pointer; fmt:Pchar; args:va_list):bool;cdecl;external ImguiLibName;
|
|
||||||
class function TreeNodeEx(_label: PChar; flags: ImGuiTreeNodeFlags): bool; inline;
|
class function TreeNodeEx(_label: PChar; flags: ImGuiTreeNodeFlags): bool; inline;
|
||||||
class function TreeNodeExStr(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool; {inline;}
|
class function TreeNodeEx(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool; {inline;}
|
||||||
class function TreeNodeExStr(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string): bool; inline;
|
class function TreeNodeEx(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string): bool; inline;
|
||||||
class function TreeNodeExPtr(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool; {inline;}
|
class function TreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool; {inline;}
|
||||||
class function TreeNodeExPtr(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string): bool; inline;
|
class function TreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string): bool; inline;
|
||||||
//todo : vargs
|
//todo : vargs
|
||||||
// function igTreeNodeExV(str_id:Pchar; flags:ImGuiTreeNodeFlags; fmt:Pchar; args:va_list):bool;cdecl;external ImguiLibName;
|
// function igTreeNodeExV(str_id:Pchar; flags:ImGuiTreeNodeFlags; fmt:Pchar; args:va_list):bool;cdecl;external ImguiLibName;
|
||||||
//todo : vargs
|
//todo : vargs
|
||||||
@ -558,8 +647,8 @@ public
|
|||||||
class procedure TreeAdvanceToLabelPos; inline;
|
class procedure TreeAdvanceToLabelPos; inline;
|
||||||
class function GetTreeNodeToLabelSpacing: single; inline;
|
class function GetTreeNodeToLabelSpacing: single; inline;
|
||||||
class procedure SetNextTreeNodeOpen(opened: bool; cond: ImGuiSetCond = 0); inline;
|
class procedure SetNextTreeNodeOpen(opened: bool; cond: ImGuiSetCond = 0); inline;
|
||||||
class function CollapsingHeader(_label: PChar; flags: ImGuiTreeNodeFlags): bool; inline;
|
class function CollapsingHeader(_label: PChar; flags: ImGuiTreeNodeFlags = 0): bool; inline;
|
||||||
class function CollapsingHeaderEx(_label: PChar; p_open: Pbool; flags: ImGuiTreeNodeFlags): bool; inline;
|
class function CollapsingHeader(_label: PChar; p_open: Pbool; flags: ImGuiTreeNodeFlags = 0): bool; inline;
|
||||||
|
|
||||||
{ Widgets: Selectable / Lists }
|
{ Widgets: Selectable / Lists }
|
||||||
class function Selectable(_label: string; selected: bool; flags: ImGuiSelectableFlags; size: ImVec2): bool;
|
class function Selectable(_label: string; selected: bool; flags: ImGuiSelectableFlags; size: ImVec2): bool;
|
||||||
@ -579,7 +668,7 @@ public
|
|||||||
class procedure ValueUInt(prefix: PChar; v: dword); inline;
|
class procedure ValueUInt(prefix: PChar; v: dword); inline;
|
||||||
class procedure ValueFloat(prefix: PChar; v: single; float_format: PChar); inline;
|
class procedure ValueFloat(prefix: PChar; v: single; float_format: PChar); inline;
|
||||||
class procedure ValueColor(prefix: PChar; v: ImVec4); inline;
|
class procedure ValueColor(prefix: PChar; v: ImVec4); inline;
|
||||||
class procedure ValueColor2(prefix: PChar; v: dword); inline;
|
class procedure ValueColor(prefix: PChar; v: ImU32); inline;
|
||||||
|
|
||||||
{ Tooltip }
|
{ Tooltip }
|
||||||
class procedure SetTooltip(fmt: string; args: array of const); {inline}
|
class procedure SetTooltip(fmt: string; args: array of const); {inline}
|
||||||
@ -594,10 +683,10 @@ public
|
|||||||
class procedure EndMainMenuBar; inline;
|
class procedure EndMainMenuBar; inline;
|
||||||
class function BeginMenuBar: bool; inline;
|
class function BeginMenuBar: bool; inline;
|
||||||
class procedure EndMenuBar; inline;
|
class procedure EndMenuBar; inline;
|
||||||
class function BeginMenu(_label: PChar; Enabled: bool): bool; inline;
|
class function BeginMenu(_label: PChar; Enabled: bool = true): bool; inline;
|
||||||
class procedure EndMenu; inline;
|
class procedure EndMenu; inline;
|
||||||
class function MenuItem(_label: PChar; shortcut: PChar; selected: bool; Enabled: bool): bool; inline;
|
class function MenuItem(_label: PChar; shortcut: PChar; selected: bool; Enabled: bool = true): bool; inline;
|
||||||
class function MenuItemPtr(_label: PChar; shortcut: PChar; p_selected: Pbool; Enabled: bool): bool; inline;
|
class function MenuItem(_label: PChar; shortcut: PChar; p_selected: Pbool; Enabled: bool = true): bool; inline;
|
||||||
|
|
||||||
{ Popup }
|
{ Popup }
|
||||||
class procedure OpenPopup(str_id: PChar); inline;
|
class procedure OpenPopup(str_id: PChar); inline;
|
||||||
@ -626,7 +715,7 @@ public
|
|||||||
class function IsItemHovered: bool; inline;
|
class function IsItemHovered: bool; inline;
|
||||||
class function IsItemHoveredRect: bool; inline;
|
class function IsItemHoveredRect: bool; inline;
|
||||||
class function IsItemActive: bool; inline;
|
class function IsItemActive: bool; inline;
|
||||||
class function IsItemClicked(mouse_button: longint): bool; inline;
|
class function IsItemClicked(mouse_button: longint = 0): bool; inline;
|
||||||
class function IsItemVisible: bool; inline;
|
class function IsItemVisible: bool; inline;
|
||||||
class function IsAnyItemHovered: bool; inline;
|
class function IsAnyItemHovered: bool; inline;
|
||||||
class function IsAnyItemActive: bool; inline;
|
class function IsAnyItemActive: bool; inline;
|
||||||
@ -639,7 +728,9 @@ public
|
|||||||
class function IsRootWindowFocused: bool; inline;
|
class function IsRootWindowFocused: bool; inline;
|
||||||
class function IsRootWindowOrAnyChildFocused: bool; inline;
|
class function IsRootWindowOrAnyChildFocused: bool; inline;
|
||||||
class function IsRootWindowOrAnyChildHovered: bool; inline;
|
class function IsRootWindowOrAnyChildHovered: bool; inline;
|
||||||
class function IsRectVisible(item_size: ImVec2): bool; inline;
|
class function IsRectVisible(const item_size: ImVec2): bool; inline;
|
||||||
|
class function IsRectVisible(const rect_min, rect_max: PImVec2): bool; inline;
|
||||||
|
|
||||||
class function IsPosHoveringAnyWindow(pos: ImVec2): bool; inline;
|
class function IsPosHoveringAnyWindow(pos: ImVec2): bool; inline;
|
||||||
class function GetTime: single; inline;
|
class function GetTime: single; inline;
|
||||||
class function GetFrameCount: longint; inline;
|
class function GetFrameCount: longint; inline;
|
||||||
@ -657,9 +748,9 @@ public
|
|||||||
class procedure ColorConvertHSVtoRGB(h: single; s: single; v: single; out_r: Psingle; out_g: Psingle; out_b: Psingle); inline;
|
class procedure ColorConvertHSVtoRGB(h: single; s: single; v: single; out_r: Psingle; out_g: Psingle; out_b: Psingle); inline;
|
||||||
|
|
||||||
class function GetKeyIndex(key: ImGuiKey): longint; inline;
|
class function GetKeyIndex(key: ImGuiKey): longint; inline;
|
||||||
class function IsKeyDown(key_index: longint): bool; inline;
|
class function IsKeyDown(user_key_index: longint): bool; inline;
|
||||||
class function IsKeyPressed(key_index: longint; _repeat: bool): bool; inline;
|
class function IsKeyPressed(user_key_index: longint; _repeat: bool): bool; inline;
|
||||||
class function IsKeyReleased(key_index: longint): bool; inline;
|
class function IsKeyReleased(user_key_index: longint): bool; inline;
|
||||||
class function IsMouseDown(_button: longint): bool; inline;
|
class function IsMouseDown(_button: longint): bool; inline;
|
||||||
class function IsMouseClicked(_button: longint; _repeat: bool): bool; inline;
|
class function IsMouseClicked(_button: longint; _repeat: bool): bool; inline;
|
||||||
class function IsMouseDoubleClicked(_button: longint): bool; inline;
|
class function IsMouseDoubleClicked(_button: longint): bool; inline;
|
||||||
@ -969,7 +1060,7 @@ procedure igValueInt(prefix: PChar; v: longint); cdecl; external ImguiLibName;
|
|||||||
procedure igValueUInt(prefix: PChar; v: dword); cdecl; external ImguiLibName;
|
procedure igValueUInt(prefix: PChar; v: dword); cdecl; external ImguiLibName;
|
||||||
procedure igValueFloat(prefix: PChar; v: single; float_format: PChar); cdecl; external ImguiLibName;
|
procedure igValueFloat(prefix: PChar; v: single; float_format: PChar); cdecl; external ImguiLibName;
|
||||||
procedure igValueColor(prefix: PChar; v: ImVec4); cdecl; external ImguiLibName;
|
procedure igValueColor(prefix: PChar; v: ImVec4); cdecl; external ImguiLibName;
|
||||||
procedure igValueColor2(prefix: PChar; v: dword); cdecl; external ImguiLibName;
|
procedure igValueColor2(prefix: PChar; v: ImU32); cdecl; external ImguiLibName;
|
||||||
|
|
||||||
{ Tooltip }
|
{ Tooltip }
|
||||||
procedure igSetTooltip(fmt: PChar; args: array of const); cdecl; external ImguiLibName;
|
procedure igSetTooltip(fmt: PChar; args: array of const); cdecl; external ImguiLibName;
|
||||||
@ -1029,7 +1120,9 @@ function igIsWindowFocused: bool; cdecl; external ImguiLibName;
|
|||||||
function igIsRootWindowFocused: bool; cdecl; external ImguiLibName;
|
function igIsRootWindowFocused: bool; cdecl; external ImguiLibName;
|
||||||
function igIsRootWindowOrAnyChildFocused: bool; cdecl; external ImguiLibName;
|
function igIsRootWindowOrAnyChildFocused: bool; cdecl; external ImguiLibName;
|
||||||
function igIsRootWindowOrAnyChildHovered: bool; cdecl; external ImguiLibName;
|
function igIsRootWindowOrAnyChildHovered: bool; cdecl; external ImguiLibName;
|
||||||
function igIsRectVisible(item_size: ImVec2): bool; cdecl; external ImguiLibName;
|
function igIsRectVisible(const item_size: ImVec2): bool; cdecl; external ImguiLibName;
|
||||||
|
function igIsRectVisible2(const rect_min, rect_max: PImVec2): bool; cdecl; external ImguiLibName;
|
||||||
|
|
||||||
function igIsPosHoveringAnyWindow(pos: ImVec2): bool; cdecl; external ImguiLibName;
|
function igIsPosHoveringAnyWindow(pos: ImVec2): bool; cdecl; external ImguiLibName;
|
||||||
function igGetTime: single; cdecl; external ImguiLibName;
|
function igGetTime: single; cdecl; external ImguiLibName;
|
||||||
function igGetFrameCount: longint; cdecl; external ImguiLibName;
|
function igGetFrameCount: longint; cdecl; external ImguiLibName;
|
||||||
@ -1047,9 +1140,9 @@ procedure igColorConvertRGBtoHSV(r: single; g: single; b: single; out_h: Psingle
|
|||||||
procedure igColorConvertHSVtoRGB(h: single; s: single; v: single; out_r: Psingle; out_g: Psingle; out_b: Psingle); cdecl; external ImguiLibName;
|
procedure igColorConvertHSVtoRGB(h: single; s: single; v: single; out_r: Psingle; out_g: Psingle; out_b: Psingle); cdecl; external ImguiLibName;
|
||||||
|
|
||||||
function igGetKeyIndex(key: ImGuiKey): longint; cdecl; external ImguiLibName;
|
function igGetKeyIndex(key: ImGuiKey): longint; cdecl; external ImguiLibName;
|
||||||
function igIsKeyDown(key_index: longint): bool; cdecl; external ImguiLibName;
|
function igIsKeyDown(user_key_index: longint): bool; cdecl; external ImguiLibName;
|
||||||
function igIsKeyPressed(key_index: longint; _repeat: bool): bool; cdecl; external ImguiLibName;
|
function igIsKeyPressed(user_key_index: longint; _repeat: bool): bool; cdecl; external ImguiLibName;
|
||||||
function igIsKeyReleased(key_index: longint): bool; cdecl; external ImguiLibName;
|
function igIsKeyReleased(user_key_index: longint): bool; cdecl; external ImguiLibName;
|
||||||
function igIsMouseDown(button: longint): bool; cdecl; external ImguiLibName;
|
function igIsMouseDown(button: longint): bool; cdecl; external ImguiLibName;
|
||||||
function igIsMouseClicked(button: longint; _repeat: bool): bool; cdecl; external ImguiLibName;
|
function igIsMouseClicked(button: longint; _repeat: bool): bool; cdecl; external ImguiLibName;
|
||||||
function igIsMouseDoubleClicked(button: longint): bool; cdecl; external ImguiLibName;
|
function igIsMouseDoubleClicked(button: longint): bool; cdecl; external ImguiLibName;
|
||||||
@ -1075,23 +1168,34 @@ procedure igSetClipboardText(Text: PChar); cdecl; external ImguiLibName;
|
|||||||
|
|
||||||
{ Internal state access - if you want to share ImGui state between modules (e.g. DLL) or allocate it yourself }
|
{ Internal state access - if you want to share ImGui state between modules (e.g. DLL) or allocate it yourself }
|
||||||
function igGetVersion(): PChar; cdecl; external ImguiLibName;
|
function igGetVersion(): PChar; cdecl; external ImguiLibName;
|
||||||
|
function igGetCurrentContext(): PImGuiContext; cdecl; external ImguiLibName;
|
||||||
|
procedure igSetCurrentContext(ctx: PImGuiContext); cdecl; external ImguiLibName;
|
||||||
|
|
||||||
procedure ImFontConfig_DefaultConstructor(config: PImFontConfig); cdecl; external ImguiLibName;
|
procedure ImFontConfig_DefaultConstructor(config: PImFontConfig); cdecl; external ImguiLibName;
|
||||||
|
|
||||||
procedure ImFontAtlas_GetTexDataAsRGBA32(atlas: PImFontAtlas; out_pixels: PPByte; out_width, out_height: PInteger; out_bytes_per_pixel: PInteger = nil); cdecl; external ImguiLibName;
|
procedure ImFontAtlas_GetTexDataAsRGBA32(atlas: PImFontAtlas; out_pixels: PPByte; out_width, out_height: PInteger; out_bytes_per_pixel: PInteger = nil); cdecl; external ImguiLibName;
|
||||||
procedure ImFontAtlas_GetTexDataAsAlpha8(atlas: PImFontAtlas; out_pixels: PPByte; out_width, out_height: PInteger; out_bytes_per_pixel: PInteger = nil); cdecl; external ImguiLibName;
|
procedure ImFontAtlas_GetTexDataAsAlpha8(atlas: PImFontAtlas; out_pixels: PPByte; out_width, out_height: PInteger; out_bytes_per_pixel: PInteger = nil); cdecl; external ImguiLibName;
|
||||||
procedure ImFontAtlas_SetTexID(atlas: PImFontAtlas; tex: Pointer); cdecl; external ImguiLibName;
|
procedure ImFontAtlas_SetTexID(atlas: PImFontAtlas; id: ImTextureID); cdecl; external ImguiLibName;
|
||||||
|
|
||||||
function ImFontAtlas_AddFontDefault(atlas: PImFontAtlas; config: PImFontConfig = nil): PImFont; cdecl; external ImguiLibName;
|
function ImFontAtlas_AddFontDefault(atlas: PImFontAtlas; config: PImFontConfig = nil): PImFont; cdecl; external ImguiLibName;
|
||||||
|
function ImFontAtlas_AddFont(atlas: PImFontAtlas; const font_cfg: PImFontConfig): PImFont; cdecl; external ImguiLibName;
|
||||||
|
function ImFontAtlas_AddFontFromFileTTF(atlas: PImFontAtlas; const filename: PChar; size_pixels: single; const font_cfg: PImFontConfig; const glyph_ranges: PImWchar): PImFont; cdecl; external ImguiLibName;
|
||||||
{todo
|
{todo
|
||||||
function ImFontAtlas_AddFont(struct ImFontAtlas* atlas, CONST struct ImFontConfig* font_cfg): PImFont;
|
|
||||||
function ImFontAtlas_AddFontFromFileTTF(struct ImFontAtlas* atlas, CONST char* filename, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges): PImFont;
|
|
||||||
function ImFontAtlas_AddFontFromMemoryTTF(struct ImFontAtlas* atlas, void* ttf_data, int ttf_size, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges): PImFont;
|
function ImFontAtlas_AddFontFromMemoryTTF(struct ImFontAtlas* atlas, void* ttf_data, int ttf_size, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges): PImFont;
|
||||||
function ImFontAtlas_AddFontFromMemoryCompressedTTF(struct ImFontAtlas* atlas, CONST void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges): PImFont;
|
function ImFontAtlas_AddFontFromMemoryCompressedTTF(struct ImFontAtlas* atlas, CONST void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges): PImFont;
|
||||||
function ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(struct ImFontAtlas* atlas, CONST char* compressed_ttf_data_base85, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges): PImFont;
|
function ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(struct ImFontAtlas* atlas, CONST char* compressed_ttf_data_base85, float size_pixels, CONST struct ImFontConfig* font_cfg, CONST ImWchar* glyph_ranges): PImFont;
|
||||||
}
|
}
|
||||||
|
|
||||||
procedure ImFontAtlas_ClearTexData(atlas: PImFontAtlas); cdecl; external ImguiLibName;
|
procedure ImFontAtlas_ClearTexData(atlas: PImFontAtlas); cdecl; external ImguiLibName;
|
||||||
procedure ImFontAtlas_Clear(atlas: PImFontAtlas); cdecl; external ImguiLibName;
|
procedure ImFontAtlas_Clear(atlas: PImFontAtlas); cdecl; external ImguiLibName;
|
||||||
|
|
||||||
|
function ImFontAtlas_GetGlyphRangesDefault(atlas: PImFontAtlas): PImWchar; cdecl; external ImguiLibName;
|
||||||
|
function ImFontAtlas_GetGlyphRangesKorean(atlas: PImFontAtlas): PImWchar; cdecl; external ImguiLibName;
|
||||||
|
function ImFontAtlas_GetGlyphRangesJapanese(atlas: PImFontAtlas): PImWchar; cdecl; external ImguiLibName;
|
||||||
|
function ImFontAtlas_GetGlyphRangesChinese(atlas: PImFontAtlas): PImWchar; cdecl; external ImguiLibName;
|
||||||
|
function ImFontAtlas_GetGlyphRangesCyrillic(atlas: PImFontAtlas): PImWchar; cdecl; external ImguiLibName;
|
||||||
|
function ImFontAtlas_GetGlyphRangesThai(atlas: PImFontAtlas): PImWchar; cdecl; external ImguiLibName;
|
||||||
|
|
||||||
procedure ImGuiIO_AddInputCharacter(c: word); cdecl; external ImguiLibName;
|
procedure ImGuiIO_AddInputCharacter(c: word); cdecl; external ImguiLibName;
|
||||||
procedure ImGuiIO_AddInputCharactersUTF8(utf8_chars: pchar); cdecl; external ImguiLibName;
|
procedure ImGuiIO_AddInputCharactersUTF8(utf8_chars: pchar); cdecl; external ImguiLibName;
|
||||||
procedure ImGuiIO_ClearInputCharacters(); cdecl; external ImguiLibName;
|
procedure ImGuiIO_ClearInputCharacters(); cdecl; external ImguiLibName;
|
||||||
@ -1117,8 +1221,8 @@ procedure ImDrawList_PopTextureID(list: PImDrawList); cdecl; external ImguiLibNa
|
|||||||
|
|
||||||
{ Primitives }
|
{ Primitives }
|
||||||
procedure ImDrawList_AddLine(list: PImDrawList; a: ImVec2; b: ImVec2; col: ImU32; thickness: single); cdecl; external ImguiLibName;
|
procedure ImDrawList_AddLine(list: PImDrawList; a: ImVec2; b: ImVec2; col: ImU32; thickness: single); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_AddRect(list: PImDrawList; a: ImVec2; b: ImVec2; col: ImU32; rounding: single; rounding_corners: longint; thickness: single); cdecl; external ImguiLibName;
|
procedure ImDrawList_AddRect(list: PImDrawList; a: ImVec2; b: ImVec2; col: ImU32; rounding: single; rounding_corners_flags: longint; thickness: single); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_AddRectFilled(list: PImDrawList; a: ImVec2; b: ImVec2; col: ImU32; rounding: single; rounding_corners: longint); cdecl; external ImguiLibName;
|
procedure ImDrawList_AddRectFilled(list: PImDrawList; a: ImVec2; b: ImVec2; col: ImU32; rounding: single; rounding_corners_flags: longint); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_AddRectFilledMultiColor(list: PImDrawList; a: ImVec2; b: ImVec2; col_upr_left: ImU32; col_upr_right: ImU32;
|
procedure ImDrawList_AddRectFilledMultiColor(list: PImDrawList; a: ImVec2; b: ImVec2; col_upr_left: ImU32; col_upr_right: ImU32;
|
||||||
col_bot_right: ImU32; col_bot_left: ImU32); cdecl; external ImguiLibName;
|
col_bot_right: ImU32; col_bot_left: ImU32); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_AddQuad(list: PImDrawList; a: ImVec2; b: ImVec2; c: ImVec2; d: ImVec2; col: ImU32; thickness: single); cdecl; external ImguiLibName;
|
procedure ImDrawList_AddQuad(list: PImDrawList; a: ImVec2; b: ImVec2; c: ImVec2; d: ImVec2; col: ImU32; thickness: single); cdecl; external ImguiLibName;
|
||||||
@ -1130,7 +1234,7 @@ procedure ImDrawList_AddCircleFilled(list: PImDrawList; centre: ImVec2; radius:
|
|||||||
procedure ImDrawList_AddText(list: PImDrawList; pos: ImVec2; col: ImU32; text_begin: PChar; text_end: PChar); cdecl; external ImguiLibName;
|
procedure ImDrawList_AddText(list: PImDrawList; pos: ImVec2; col: ImU32; text_begin: PChar; text_end: PChar); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_AddTextExt(list: PImDrawList; font: PImFont; font_size: single; pos: ImVec2; col: ImU32; text_begin: PChar;
|
procedure ImDrawList_AddTextExt(list: PImDrawList; font: PImFont; font_size: single; pos: ImVec2; col: ImU32; text_begin: PChar;
|
||||||
text_end: PChar; wrap_width: single; cpu_fine_clip_rect: PImVec4); cdecl; external ImguiLibName;
|
text_end: PChar; wrap_width: single; cpu_fine_clip_rect: PImVec4); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_AddImage(list: PImDrawList; user_texture_id: ImTextureID; a: ImVec2; b: ImVec2; uv0: ImVec2; uv1: ImVec2; col: ImU32); cdecl; external ImguiLibName;
|
procedure ImDrawList_AddImage(list: PImDrawList; user_texture_id: ImTextureID; a: ImVec2; b: ImVec2; uva: ImVec2; uvb: ImVec2; col: ImU32); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_AddPolyline(list: PImDrawList; points: PImVec2; num_points: longint; col: ImU32; closed: bool; thickness: single;
|
procedure ImDrawList_AddPolyline(list: PImDrawList; points: PImVec2; num_points: longint; col: ImU32; closed: bool; thickness: single;
|
||||||
anti_aliased: bool); cdecl; external ImguiLibName;
|
anti_aliased: bool); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_AddConvexPolyFilled(list: PImDrawList; points: PImVec2; num_points: longint; col: ImU32; anti_aliased: bool); cdecl; external ImguiLibName;
|
procedure ImDrawList_AddConvexPolyFilled(list: PImDrawList; points: PImVec2; num_points: longint; col: ImU32; anti_aliased: bool); cdecl; external ImguiLibName;
|
||||||
@ -1141,13 +1245,13 @@ procedure ImDrawList_AddBezierCurve(list: PImDrawList; pos0: ImVec2; cp0: ImVec2
|
|||||||
procedure ImDrawList_PathClear(list: PImDrawList); cdecl; external ImguiLibName;
|
procedure ImDrawList_PathClear(list: PImDrawList); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_PathLineTo(list: PImDrawList; pos: ImVec2); cdecl; external ImguiLibName;
|
procedure ImDrawList_PathLineTo(list: PImDrawList; pos: ImVec2); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_PathLineToMergeDuplicate(list: PImDrawList; pos: ImVec2); cdecl; external ImguiLibName;
|
procedure ImDrawList_PathLineToMergeDuplicate(list: PImDrawList; pos: ImVec2); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_PathFill(list: PImDrawList; col: ImU32); cdecl; external ImguiLibName;
|
procedure ImDrawList_PathFillConvex(list: PImDrawList; col: ImU32); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_PathStroke(list: PImDrawList; col: ImU32; closed: bool; thickness: single); cdecl; external ImguiLibName;
|
procedure ImDrawList_PathStroke(list: PImDrawList; col: ImU32; closed: bool; thickness: single); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_PathArcTo(list: PImDrawList; centre: ImVec2; radius: single; a_min: single; a_max: single; num_segments: longint); cdecl; external ImguiLibName;
|
procedure ImDrawList_PathArcTo(list: PImDrawList; centre: ImVec2; radius: single; a_min: single; a_max: single; num_segments: longint); cdecl; external ImguiLibName;
|
||||||
{ Use precomputed angles for a 12 steps circle }
|
{ Use precomputed angles for a 12 steps circle }
|
||||||
procedure ImDrawList_PathArcToFast(list: PImDrawList; centre: ImVec2; radius: single; a_min_of_12: longint; a_max_of_12: longint); cdecl; external ImguiLibName;
|
procedure ImDrawList_PathArcToFast(list: PImDrawList; centre: ImVec2; radius: single; a_min_of_12: longint; a_max_of_12: longint); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_PathBezierCurveTo(list: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; num_segments: longint); cdecl; external ImguiLibName;
|
procedure ImDrawList_PathBezierCurveTo(list: PImDrawList; p1: ImVec2; p2: ImVec2; p3: ImVec2; num_segments: longint); cdecl; external ImguiLibName;
|
||||||
procedure ImDrawList_PathRect(list: PImDrawList; rect_min: ImVec2; rect_max: ImVec2; rounding: single; rounding_corners: longint); cdecl; external ImguiLibName;
|
procedure ImDrawList_PathRect(list: PImDrawList; rect_min: ImVec2; rect_max: ImVec2; rounding: single; rounding_corners_flags: longint); cdecl; external ImguiLibName;
|
||||||
|
|
||||||
{ Channels }
|
{ Channels }
|
||||||
procedure ImDrawList_ChannelsSplit(list: PImDrawList; channels_count: longint); cdecl; external ImguiLibName;
|
procedure ImDrawList_ChannelsSplit(list: PImDrawList; channels_count: longint); cdecl; external ImguiLibName;
|
||||||
@ -1181,6 +1285,12 @@ begin
|
|||||||
result.y := y;
|
result.y := y;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
//Replacement for (void*)(intptr_t) int cast, used for IDs. Generates warnings
|
||||||
|
function ImIDPtr(const i: integer): pointer;
|
||||||
|
begin
|
||||||
|
result := pointer( IntPtr(i) )
|
||||||
|
end;
|
||||||
|
|
||||||
{ ImGui
|
{ ImGui
|
||||||
Keep functions short, they're mostly just wrappers. Inlining begin/end with trivial function body is ok
|
Keep functions short, they're mostly just wrappers. Inlining begin/end with trivial function body is ok
|
||||||
}
|
}
|
||||||
@ -1296,20 +1406,20 @@ class procedure ImGui.PopFont;
|
|||||||
begin igPopFont end;
|
begin igPopFont end;
|
||||||
class procedure ImGui.PushStyleColor(idx: ImGuiCol; col: ImVec4);
|
class procedure ImGui.PushStyleColor(idx: ImGuiCol; col: ImVec4);
|
||||||
begin igPushStyleColor(idx, col) end;
|
begin igPushStyleColor(idx, col) end;
|
||||||
class procedure ImGui.PopStyleColor(Count: longint);
|
class procedure ImGui.PopStyleColor(count: longint);
|
||||||
begin igPopStyleColor(Count) end;
|
begin igPopStyleColor(Count) end;
|
||||||
class procedure ImGui.PushStyleVar(idx: ImGuiStyleVar; val: single);
|
class procedure ImGui.PushStyleVar(idx: ImGuiStyleVar; val: single);
|
||||||
begin igPushStyleVar(idx, val) end;
|
begin igPushStyleVar(idx, val) end;
|
||||||
class procedure ImGui.PushStyleVarVec(idx: ImGuiStyleVar; val: ImVec2);
|
class procedure ImGui.PushStyleVarVec(idx: ImGuiStyleVar; val: ImVec2);
|
||||||
begin igPushStyleVarVec(idx, val) end;
|
begin igPushStyleVarVec(idx, val) end;
|
||||||
class procedure ImGui.PopStyleVar(Count: longint);
|
class procedure ImGui.PopStyleVar(count: longint);
|
||||||
begin igPopStyleVar(Count) end;
|
begin igPopStyleVar(count) end;
|
||||||
class function ImGui.GetFont(): PImFont;
|
class function ImGui.GetFont(): PImFont;
|
||||||
begin result := igGetFont end;
|
begin result := igGetFont end;
|
||||||
class function ImGui.GetFontSize: single;
|
class function ImGui.GetFontSize: single;
|
||||||
begin result := igGetFontSize end;
|
begin result := igGetFontSize end;
|
||||||
class procedure ImGui.GetFontTexUvWhitePixel(pOut: PImVec2);
|
class function ImGui.GetFontTexUvWhitePixel():ImVec2;
|
||||||
begin igGetFontTexUvWhitePixel(pOut) end;
|
begin igGetFontTexUvWhitePixel(@result); end;
|
||||||
class function ImGui.GetColorU32(idx: ImGuiCol; alpha_mul: single): ImU32;
|
class function ImGui.GetColorU32(idx: ImGuiCol; alpha_mul: single): ImU32;
|
||||||
begin result := igGetColorU32(idx, alpha_mul) end;
|
begin result := igGetColorU32(idx, alpha_mul) end;
|
||||||
class function ImGui.GetColorU32Vec(col: PImVec4): ImU32;
|
class function ImGui.GetColorU32Vec(col: PImVec4): ImU32;
|
||||||
@ -1419,9 +1529,9 @@ class function ImGui.GetIdPtr(ptr_id: pointer): ImGuiID;
|
|||||||
|
|
||||||
{ Widgets }
|
{ Widgets }
|
||||||
class procedure ImGui.Text(const text_: string);
|
class procedure ImGui.Text(const text_: string);
|
||||||
begin TextUnformatted(text_) end;
|
begin igText(Pchar(text_)) end;
|
||||||
class procedure ImGui.Text(const Fmt: string; const Args: array of const);
|
class procedure ImGui.Text(const Fmt: string; const Args: array of const);
|
||||||
begin TextUnformatted(Format(fmt, args)) end;
|
begin Text(Format(fmt, args)) end;
|
||||||
class procedure ImGui.TextColored(col: ImVec4; fmt: PChar; args: array of const);
|
class procedure ImGui.TextColored(col: ImVec4; fmt: PChar; args: array of const);
|
||||||
begin TextColored(col, Format(fmt, args)) end;
|
begin TextColored(col, Format(fmt, args)) end;
|
||||||
class procedure ImGui.TextColored(col: ImVec4; const fmt: string);
|
class procedure ImGui.TextColored(col: ImVec4; const fmt: string);
|
||||||
@ -1564,25 +1674,26 @@ class function ImGui.InputInt4(_label: PChar; v: TLongInt4; extra_flags: ImGuiIn
|
|||||||
begin result := igInputInt4(_label, v, extra_flags) end;
|
begin result := igInputInt4(_label, v, extra_flags) end;
|
||||||
|
|
||||||
{ Widgets: Trees }
|
{ Widgets: Trees }
|
||||||
class function ImGui.TreeNode(_label: PChar): bool;
|
class function ImGui.TreeNode(_label: string): bool;
|
||||||
begin result := igTreeNode(_label) end;
|
begin result := igTreeNode(pchar(_label)) end;
|
||||||
class function ImGui.TreeNodeStr(str_id: PChar; fmt: string; args: array of const): bool;
|
class function ImGui.TreeNode(str_id: string; fmt: string; args: array of const): bool;
|
||||||
begin result := TreeNodeStr(str_id, Format(fmt, args)) end;
|
begin result := TreeNode(str_id, Format(fmt, args)) end;
|
||||||
class function ImGui.TreeNodeStr(str_id: PChar; fmt: string): bool;
|
class function ImGui.TreeNode(str_id: string; fmt: string): bool;
|
||||||
begin result := igTreeNodeStr(str_id, pchar(fmt)) end;
|
begin result := igTreeNodeStr(pchar(str_id), pchar(fmt)) end;
|
||||||
class function ImGui.TreeNodePtr(ptr_id: pointer; fmt: string; args: array of const): bool;
|
class function ImGui.TreeNode(ptr_id: pointer; fmt: string; args: array of const): bool;
|
||||||
begin result := TreeNodePtr(ptr_id, Format(fmt, args)) end;
|
begin result := TreeNode(ptr_id, Format(fmt, args)) end;
|
||||||
class function ImGui.TreeNodePtr(ptr_id: pointer; fmt: string): bool;
|
class function ImGui.TreeNode(ptr_id: pointer; fmt: string): bool;
|
||||||
begin result := igTreeNodePtr(ptr_id, pchar(fmt)) end;
|
begin result := igTreeNodePtr(ptr_id, pchar(fmt)) end;
|
||||||
|
|
||||||
class function ImGui.TreeNodeEx(_label: PChar; flags: ImGuiTreeNodeFlags): bool;
|
class function ImGui.TreeNodeEx(_label: PChar; flags: ImGuiTreeNodeFlags): bool;
|
||||||
begin result := igTreeNodeEx(_label, flags) end;
|
begin result := igTreeNodeEx(_label, flags) end;
|
||||||
class function ImGui.TreeNodeExStr(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool;
|
class function ImGui.TreeNodeEx(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool;
|
||||||
begin result := TreeNodeExStr(str_id, flags, Format(fmt, args)) end;
|
begin result := TreeNodeEx(str_id, flags, Format(fmt, args)) end;
|
||||||
class function ImGui.TreeNodeExStr(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string): bool;
|
class function ImGui.TreeNodeEx(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string): bool;
|
||||||
begin result := igTreeNodeExStr(str_id, flags, pchar(fmt)) end;
|
begin result := igTreeNodeExStr(str_id, flags, pchar(fmt)) end;
|
||||||
class function ImGui.TreeNodeExPtr(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool;
|
class function ImGui.TreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool;
|
||||||
begin result := TreeNodeExPtr(ptr_id, flags, Format(fmt, args)) end;
|
begin result := TreeNodeEx(ptr_id, flags, Format(fmt, args)) end;
|
||||||
class function ImGui.TreeNodeExPtr(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string): bool;
|
class function ImGui.TreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string): bool;
|
||||||
begin result := igTreeNodeExPtr(ptr_id, flags, pchar(fmt)) end;
|
begin result := igTreeNodeExPtr(ptr_id, flags, pchar(fmt)) end;
|
||||||
class procedure ImGui.TreePushStr(str_id: PChar);
|
class procedure ImGui.TreePushStr(str_id: PChar);
|
||||||
begin igTreePushStr(str_id) end;
|
begin igTreePushStr(str_id) end;
|
||||||
@ -1598,7 +1709,7 @@ class procedure ImGui.SetNextTreeNodeOpen(opened: bool; cond: ImGuiSetCond = 0);
|
|||||||
begin igSetNextTreeNodeOpen(opened, cond) end;
|
begin igSetNextTreeNodeOpen(opened, cond) end;
|
||||||
class function ImGui.CollapsingHeader(_label: PChar; flags: ImGuiTreeNodeFlags): bool;
|
class function ImGui.CollapsingHeader(_label: PChar; flags: ImGuiTreeNodeFlags): bool;
|
||||||
begin result := igCollapsingHeader(_label, flags) end;
|
begin result := igCollapsingHeader(_label, flags) end;
|
||||||
class function ImGui.CollapsingHeaderEx(_label: PChar; p_open: Pbool; flags: ImGuiTreeNodeFlags): bool;
|
class function ImGui.CollapsingHeader(_label: PChar; p_open: Pbool; flags: ImGuiTreeNodeFlags): bool;
|
||||||
begin result := igCollapsingHeaderEx(_label, p_open, flags) end;
|
begin result := igCollapsingHeaderEx(_label, p_open, flags) end;
|
||||||
|
|
||||||
{ Widgets: Selectable / Lists }
|
{ Widgets: Selectable / Lists }
|
||||||
@ -1628,7 +1739,7 @@ class procedure ImGui.ValueFloat(prefix: PChar; v: single; float_format: PChar);
|
|||||||
begin igValueFloat(prefix, v, float_format) end;
|
begin igValueFloat(prefix, v, float_format) end;
|
||||||
class procedure ImGui.ValueColor(prefix: PChar; v: ImVec4);
|
class procedure ImGui.ValueColor(prefix: PChar; v: ImVec4);
|
||||||
begin igValueColor(prefix, v) end;
|
begin igValueColor(prefix, v) end;
|
||||||
class procedure ImGui.ValueColor2(prefix: PChar; v: dword);
|
class procedure ImGui.ValueColor(prefix: PChar; v: ImU32);
|
||||||
begin igValueColor2(prefix, v) end;
|
begin igValueColor2(prefix, v) end;
|
||||||
|
|
||||||
{ Tooltip }
|
{ Tooltip }
|
||||||
@ -1656,7 +1767,7 @@ class procedure ImGui.EndMenu;
|
|||||||
begin igEndMenu end;
|
begin igEndMenu end;
|
||||||
class function ImGui.MenuItem(_label: PChar; shortcut: PChar; selected: bool; Enabled: bool): bool;
|
class function ImGui.MenuItem(_label: PChar; shortcut: PChar; selected: bool; Enabled: bool): bool;
|
||||||
begin result := igMenuItem(_label, shortcut, selected, Enabled) end;
|
begin result := igMenuItem(_label, shortcut, selected, Enabled) end;
|
||||||
class function ImGui.MenuItemPtr(_label: PChar; shortcut: PChar; p_selected: Pbool; Enabled: bool): bool;
|
class function ImGui.MenuItem(_label: PChar; shortcut: PChar; p_selected: Pbool; Enabled: bool): bool;
|
||||||
begin result := igMenuItemPtr(_label, shortcut, p_selected, Enabled) end;
|
begin result := igMenuItemPtr(_label, shortcut, p_selected, Enabled) end;
|
||||||
|
|
||||||
{ Popup }
|
{ Popup }
|
||||||
@ -1732,8 +1843,10 @@ class function ImGui.IsRootWindowOrAnyChildFocused: bool;
|
|||||||
begin result := igIsRootWindowOrAnyChildFocused end;
|
begin result := igIsRootWindowOrAnyChildFocused end;
|
||||||
class function ImGui.IsRootWindowOrAnyChildHovered: bool;
|
class function ImGui.IsRootWindowOrAnyChildHovered: bool;
|
||||||
begin result := igIsRootWindowOrAnyChildHovered end;
|
begin result := igIsRootWindowOrAnyChildHovered end;
|
||||||
class function ImGui.IsRectVisible(item_size: ImVec2): bool;
|
class function ImGui.IsRectVisible(const item_size: ImVec2): bool;
|
||||||
begin result := igIsRectVisible(item_size) end;
|
begin result := igIsRectVisible(item_size) end;
|
||||||
|
class function ImGui.IsRectVisible(const rect_min, rect_max: PImVec2): bool;
|
||||||
|
begin result := igIsRectVisible2(rect_min, rect_max) end;
|
||||||
class function ImGui.IsPosHoveringAnyWindow(pos: ImVec2): bool;
|
class function ImGui.IsPosHoveringAnyWindow(pos: ImVec2): bool;
|
||||||
begin result := igIsPosHoveringAnyWindow(pos) end;
|
begin result := igIsPosHoveringAnyWindow(pos) end;
|
||||||
class function ImGui.GetTime: single;
|
class function ImGui.GetTime: single;
|
||||||
@ -1766,12 +1879,12 @@ class procedure ImGui.ColorConvertHSVtoRGB(h: single; s: single; v: single; out_
|
|||||||
|
|
||||||
class function ImGui.GetKeyIndex(key: ImGuiKey): longint;
|
class function ImGui.GetKeyIndex(key: ImGuiKey): longint;
|
||||||
begin result := igGetKeyIndex(key) end;
|
begin result := igGetKeyIndex(key) end;
|
||||||
class function ImGui.IsKeyDown(key_index: longint): bool;
|
class function ImGui.IsKeyDown(user_key_index: longint): bool;
|
||||||
begin result := igIsKeyDown(key_index) end;
|
begin result := igIsKeyDown(user_key_index) end;
|
||||||
class function ImGui.IsKeyPressed(key_index: longint; _repeat: bool): bool;
|
class function ImGui.IsKeyPressed(user_key_index: longint; _repeat: bool): bool;
|
||||||
begin result := igIsKeyPressed(key_index, _repeat) end;
|
begin result := igIsKeyPressed(user_key_index, _repeat) end;
|
||||||
class function ImGui.IsKeyReleased(key_index: longint): bool;
|
class function ImGui.IsKeyReleased(user_key_index: longint): bool;
|
||||||
begin result := igIsKeyReleased(key_index) end;
|
begin result := igIsKeyReleased(user_key_index) end;
|
||||||
class function ImGui.IsMouseDown(_button: longint): bool;
|
class function ImGui.IsMouseDown(_button: longint): bool;
|
||||||
begin result := igIsMouseDown(_button) end;
|
begin result := igIsMouseDown(_button) end;
|
||||||
class function ImGui.IsMouseClicked(_button: longint; _repeat: bool): bool;
|
class function ImGui.IsMouseClicked(_button: longint; _repeat: bool): bool;
|
||||||
|
@ -58,6 +58,7 @@
|
|||||||
<Unit5>
|
<Unit5>
|
||||||
<Filename Value="sdl2\sdl2.pas"/>
|
<Filename Value="sdl2\sdl2.pas"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
<UnitName Value="SDL2"/>
|
||||||
</Unit5>
|
</Unit5>
|
||||||
<Unit6>
|
<Unit6>
|
||||||
<Filename Value="imgui\fpimgui.pas"/>
|
<Filename Value="imgui\fpimgui.pas"/>
|
||||||
|
@ -418,7 +418,7 @@ begin
|
|||||||
Imgui.Checkbox('textures', @view.opts.textures);
|
Imgui.Checkbox('textures', @view.opts.textures);
|
||||||
Imgui.Checkbox('vertex colors', @view.opts.vcolors);
|
Imgui.Checkbox('vertex colors', @view.opts.vcolors);
|
||||||
if g_model <> nil then
|
if g_model <> nil then
|
||||||
if Imgui.Button('Export to obj', ImVec2Init(0,0)) then
|
if Imgui.Button('Export to obj') then
|
||||||
g_model.ExportObj('rs_exported.obj');
|
g_model.ExportObj('rs_exported.obj');
|
||||||
Imgui.End_;
|
Imgui.End_;
|
||||||
|
|
||||||
|
@ -1,165 +0,0 @@
|
|||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 29 June 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
|
|
||||||
This version of the GNU Lesser General Public License incorporates
|
|
||||||
the terms and conditions of version 3 of the GNU General Public
|
|
||||||
License, supplemented by the additional permissions listed below.
|
|
||||||
|
|
||||||
0. Additional Definitions.
|
|
||||||
|
|
||||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
|
||||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
|
||||||
General Public License.
|
|
||||||
|
|
||||||
"The Library" refers to a covered work governed by this License,
|
|
||||||
other than an Application or a Combined Work as defined below.
|
|
||||||
|
|
||||||
An "Application" is any work that makes use of an interface provided
|
|
||||||
by the Library, but which is not otherwise based on the Library.
|
|
||||||
Defining a subclass of a class defined by the Library is deemed a mode
|
|
||||||
of using an interface provided by the Library.
|
|
||||||
|
|
||||||
A "Combined Work" is a work produced by combining or linking an
|
|
||||||
Application with the Library. The particular version of the Library
|
|
||||||
with which the Combined Work was made is also called the "Linked
|
|
||||||
Version".
|
|
||||||
|
|
||||||
The "Minimal Corresponding Source" for a Combined Work means the
|
|
||||||
Corresponding Source for the Combined Work, excluding any source code
|
|
||||||
for portions of the Combined Work that, considered in isolation, are
|
|
||||||
based on the Application, and not on the Linked Version.
|
|
||||||
|
|
||||||
The "Corresponding Application Code" for a Combined Work means the
|
|
||||||
object code and/or source code for the Application, including any data
|
|
||||||
and utility programs needed for reproducing the Combined Work from the
|
|
||||||
Application, but excluding the System Libraries of the Combined Work.
|
|
||||||
|
|
||||||
1. Exception to Section 3 of the GNU GPL.
|
|
||||||
|
|
||||||
You may convey a covered work under sections 3 and 4 of this License
|
|
||||||
without being bound by section 3 of the GNU GPL.
|
|
||||||
|
|
||||||
2. Conveying Modified Versions.
|
|
||||||
|
|
||||||
If you modify a copy of the Library, and, in your modifications, a
|
|
||||||
facility refers to a function or data to be supplied by an Application
|
|
||||||
that uses the facility (other than as an argument passed when the
|
|
||||||
facility is invoked), then you may convey a copy of the modified
|
|
||||||
version:
|
|
||||||
|
|
||||||
a) under this License, provided that you make a good faith effort to
|
|
||||||
ensure that, in the event an Application does not supply the
|
|
||||||
function or data, the facility still operates, and performs
|
|
||||||
whatever part of its purpose remains meaningful, or
|
|
||||||
|
|
||||||
b) under the GNU GPL, with none of the additional permissions of
|
|
||||||
this License applicable to that copy.
|
|
||||||
|
|
||||||
3. Object Code Incorporating Material from Library Header Files.
|
|
||||||
|
|
||||||
The object code form of an Application may incorporate material from
|
|
||||||
a header file that is part of the Library. You may convey such object
|
|
||||||
code under terms of your choice, provided that, if the incorporated
|
|
||||||
material is not limited to numerical parameters, data structure
|
|
||||||
layouts and accessors, or small macros, inline functions and templates
|
|
||||||
(ten or fewer lines in length), you do both of the following:
|
|
||||||
|
|
||||||
a) Give prominent notice with each copy of the object code that the
|
|
||||||
Library is used in it and that the Library and its use are
|
|
||||||
covered by this License.
|
|
||||||
|
|
||||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
|
||||||
document.
|
|
||||||
|
|
||||||
4. Combined Works.
|
|
||||||
|
|
||||||
You may convey a Combined Work under terms of your choice that,
|
|
||||||
taken together, effectively do not restrict modification of the
|
|
||||||
portions of the Library contained in the Combined Work and reverse
|
|
||||||
engineering for debugging such modifications, if you also do each of
|
|
||||||
the following:
|
|
||||||
|
|
||||||
a) Give prominent notice with each copy of the Combined Work that
|
|
||||||
the Library is used in it and that the Library and its use are
|
|
||||||
covered by this License.
|
|
||||||
|
|
||||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
|
||||||
document.
|
|
||||||
|
|
||||||
c) For a Combined Work that displays copyright notices during
|
|
||||||
execution, include the copyright notice for the Library among
|
|
||||||
these notices, as well as a reference directing the user to the
|
|
||||||
copies of the GNU GPL and this license document.
|
|
||||||
|
|
||||||
d) Do one of the following:
|
|
||||||
|
|
||||||
0) Convey the Minimal Corresponding Source under the terms of this
|
|
||||||
License, and the Corresponding Application Code in a form
|
|
||||||
suitable for, and under terms that permit, the user to
|
|
||||||
recombine or relink the Application with a modified version of
|
|
||||||
the Linked Version to produce a modified Combined Work, in the
|
|
||||||
manner specified by section 6 of the GNU GPL for conveying
|
|
||||||
Corresponding Source.
|
|
||||||
|
|
||||||
1) Use a suitable shared library mechanism for linking with the
|
|
||||||
Library. A suitable mechanism is one that (a) uses at run time
|
|
||||||
a copy of the Library already present on the user's computer
|
|
||||||
system, and (b) will operate properly with a modified version
|
|
||||||
of the Library that is interface-compatible with the Linked
|
|
||||||
Version.
|
|
||||||
|
|
||||||
e) Provide Installation Information, but only if you would otherwise
|
|
||||||
be required to provide such information under section 6 of the
|
|
||||||
GNU GPL, and only to the extent that such information is
|
|
||||||
necessary to install and execute a modified version of the
|
|
||||||
Combined Work produced by recombining or relinking the
|
|
||||||
Application with a modified version of the Linked Version. (If
|
|
||||||
you use option 4d0, the Installation Information must accompany
|
|
||||||
the Minimal Corresponding Source and Corresponding Application
|
|
||||||
Code. If you use option 4d1, you must provide the Installation
|
|
||||||
Information in the manner specified by section 6 of the GNU GPL
|
|
||||||
for conveying Corresponding Source.)
|
|
||||||
|
|
||||||
5. Combined Libraries.
|
|
||||||
|
|
||||||
You may place library facilities that are a work based on the
|
|
||||||
Library side by side in a single library together with other library
|
|
||||||
facilities that are not Applications and are not covered by this
|
|
||||||
License, and convey such a combined library under terms of your
|
|
||||||
choice, if you do both of the following:
|
|
||||||
|
|
||||||
a) Accompany the combined library with a copy of the same work based
|
|
||||||
on the Library, uncombined with any other library facilities,
|
|
||||||
conveyed under the terms of this License.
|
|
||||||
|
|
||||||
b) Give prominent notice with the combined library that part of it
|
|
||||||
is a work based on the Library, and explaining where to find the
|
|
||||||
accompanying uncombined form of the same work.
|
|
||||||
|
|
||||||
6. Revised Versions of the GNU Lesser General Public License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions
|
|
||||||
of the GNU Lesser General Public License from time to time. Such new
|
|
||||||
versions will be similar in spirit to the present version, but may
|
|
||||||
differ in detail to address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the
|
|
||||||
Library as you received it specifies that a certain numbered version
|
|
||||||
of the GNU Lesser General Public License "or any later version"
|
|
||||||
applies to it, you have the option of following the terms and
|
|
||||||
conditions either of that published version or of any later version
|
|
||||||
published by the Free Software Foundation. If the Library as you
|
|
||||||
received it does not specify a version number of the GNU Lesser
|
|
||||||
General Public License, you may choose any version of the GNU Lesser
|
|
||||||
General Public License ever published by the Free Software Foundation.
|
|
||||||
|
|
||||||
If the Library as you received it specifies that a proxy can decide
|
|
||||||
whether future versions of the GNU Lesser General Public License shall
|
|
||||||
apply, that proxy's public statement of acceptance of any version is
|
|
||||||
permanent authorization for you to choose that version for the
|
|
||||||
Library.
|
|
373
model_viewer/sdl2/sdl2-LICENSE
Normal file
373
model_viewer/sdl2/sdl2-LICENSE
Normal file
@ -0,0 +1,373 @@
|
|||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user