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++
|
||||
Based on cimgui+ImGui 1.49/1.50
|
||||
Based on ImGui 1.50 + cimgui wrapper
|
||||
Not all functions were tested.
|
||||
}
|
||||
unit fpimgui;
|
||||
@ -30,14 +30,7 @@ type
|
||||
TLongInt3 = array[0..2] of longint;
|
||||
TLongInt4 = array[0..3] of longint;
|
||||
|
||||
PImDrawData = ^ImDrawData;
|
||||
PImFont = ^ImFont;
|
||||
PImFontAtlas = ^ImFontAtlas;
|
||||
PImFontConfig = ^ImFontConfig;
|
||||
PImGuiContext = Pointer;
|
||||
PImGuiSizeConstraintCallbackData = ^ImGuiSizeConstraintCallbackData;
|
||||
PImGuiStorage = ^ImGuiStorage;
|
||||
PImGuiTextEditCallbackData = ^ImGuiTextEditCallbackData;
|
||||
|
||||
ImVec2 = record
|
||||
x, y: single;
|
||||
@ -50,32 +43,53 @@ type
|
||||
|
||||
ImU32 = dword;
|
||||
ImWchar = word;
|
||||
PImWchar = PWord;
|
||||
ImTextureID = pointer;
|
||||
ImGuiID = ImU32;
|
||||
ImGuiCol = longint;
|
||||
ImGuiStyleVar = longint;
|
||||
ImGuiKey = longint;
|
||||
ImGuiAlign = longint;
|
||||
ImGuiColorEditMode = longint;
|
||||
ImGuiMouseCursor = longint;
|
||||
ImGuiWindowFlags = longint;
|
||||
ImGuiSetCond = longint;
|
||||
ImGuiInputTextFlags = longint;
|
||||
ImGuiSelectableFlags = longint;
|
||||
|
||||
{ Enums }
|
||||
|
||||
ImGuiTreeNodeFlags = (
|
||||
Selected = 1 shl 0,
|
||||
Framed = 1 shl 1,
|
||||
AllowOverlapMode = 1 shl 2,
|
||||
NoTreePushOnOpen = 1 shl 3,
|
||||
NoAutoOpenOnLog = 1 shl 4,
|
||||
DefaultOpen = 1 shl 5,
|
||||
OpenOnDoubleClick = 1 shl 6,
|
||||
OpenOnArrow = 1 shl 7,
|
||||
Leaf = 1 shl 8,
|
||||
Bullet = 1 shl 9
|
||||
ImGuiWindowFlags = longint;
|
||||
ImGuiWindowFlagsEnum = (
|
||||
ImGuiWindowFlags_Default = 0, // Default: 0
|
||||
ImGuiWindowFlags_NoTitleBar = 1 shl 0, // Disable title-bar
|
||||
ImGuiWindowFlags_NoResize = 1 shl 1, // Disable user resizing with the lower-right grip
|
||||
ImGuiWindowFlags_NoMove = 1 shl 2, // Disable user moving the window
|
||||
ImGuiWindowFlags_NoScrollbar = 1 shl 3, // Disable scrollbars (window can still scroll with mouse or programatically)
|
||||
ImGuiWindowFlags_NoScrollWithMouse = 1 shl 4, // Disable user vertically scrolling with mouse wheel
|
||||
ImGuiWindowFlags_NoCollapse = 1 shl 5, // Disable user collapsing window by double-clicking on it
|
||||
ImGuiWindowFlags_AlwaysAutoResize = 1 shl 6, // Resize every window to its content every frame
|
||||
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_ = (
|
||||
@ -148,7 +162,55 @@ type
|
||||
//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 }
|
||||
|
||||
ImGuiStyle = record
|
||||
Alpha : single;
|
||||
WindowPadding : ImVec2;
|
||||
@ -177,6 +239,14 @@ type
|
||||
end;
|
||||
PImGuiStyle = ^ImGuiStyle;
|
||||
|
||||
//forward decls for ImGuiIO
|
||||
PImDrawData = ^ImDrawData;
|
||||
PImFont = ^ImFont;
|
||||
PImFontAtlas = ^ImFontAtlas;
|
||||
PImFontConfig = ^ImFontConfig;
|
||||
PImGuiSizeConstraintCallbackData = ^ImGuiSizeConstraintCallbackData;
|
||||
PImGuiStorage = ^ImGuiStorage;
|
||||
PImGuiTextEditCallbackData = ^ImGuiTextEditCallbackData;
|
||||
ImGuiIO = record
|
||||
DisplaySize : ImVec2;
|
||||
DeltaTime : single;
|
||||
@ -190,6 +260,7 @@ type
|
||||
KeyRepeatDelay : single;
|
||||
KeyRepeatRate : single;
|
||||
UserData : pointer;
|
||||
|
||||
Fonts : PImFontAtlas;
|
||||
FontGlobalScale : single;
|
||||
FontAllowUserScaling : bool;
|
||||
@ -197,15 +268,24 @@ type
|
||||
DisplayFramebufferScale : ImVec2;
|
||||
DisplayVisibleMin : ImVec2;
|
||||
DisplayVisibleMax : ImVec2;
|
||||
|
||||
// Advanced/subtle behaviors
|
||||
OSXBehaviors : bool;
|
||||
|
||||
// User Functions
|
||||
RenderDrawListsFn : procedure (data:PImDrawData);cdecl;
|
||||
|
||||
GetClipboardTextFn : function (user_data:pointer):Pchar;cdecl;
|
||||
SetClipboardTextFn : procedure (user_data:pointer; text:Pchar);cdecl;
|
||||
ClipboardUserData : pointer;
|
||||
|
||||
MemAllocFn : function (sz:size_t):pointer;cdecl;
|
||||
MemFreeFn : procedure (ptr:pointer);cdecl;
|
||||
|
||||
ImeSetInputScreenPosFn : procedure (x:longint; y:longint);cdecl;
|
||||
ImeWindowHandle : pointer;
|
||||
|
||||
// Input - Fill before calling NewFrame()
|
||||
MousePos : ImVec2;
|
||||
MouseDown : array[0..4] of bool;
|
||||
MouseWheel : single;
|
||||
@ -215,7 +295,9 @@ type
|
||||
KeyAlt : bool;
|
||||
KeySuper : 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;
|
||||
WantCaptureKeyboard : bool;
|
||||
WantTextInput : bool;
|
||||
@ -224,7 +306,11 @@ type
|
||||
MetricsRenderVertices : longint;
|
||||
MetricsRenderIndices : longint;
|
||||
MetricsActiveWindows : longint;
|
||||
|
||||
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;
|
||||
PImGuiIO = ^ImGuiIO;
|
||||
|
||||
@ -273,27 +359,34 @@ type
|
||||
end;
|
||||
|
||||
ImGuiTextEditCallbackData = record
|
||||
//not translated
|
||||
end;
|
||||
ImGuiSizeConstraintCallbackData = record
|
||||
//not translated
|
||||
end;
|
||||
ImGuiStorage = record
|
||||
//not translated
|
||||
end;
|
||||
ImFont = record
|
||||
//not translated
|
||||
end;
|
||||
ImFontConfig = record
|
||||
//not translated
|
||||
end;
|
||||
ImFontAtlas = record
|
||||
//not translated
|
||||
end;
|
||||
|
||||
|
||||
ImGuiTextEditCallback = function(Data: PImGuiTextEditCallbackData): longint; cdecl;
|
||||
ImGuiSizeConstraintCallback = procedure(Data: PImGuiSizeConstraintCallbackData); cdecl;
|
||||
|
||||
//binding helpers
|
||||
type
|
||||
TCol3 = array[0..2] of single; //todo : does this work?
|
||||
TCol4 = array[0..3] of single;
|
||||
|
||||
//binding helpers
|
||||
function ImVec2Init(const x, y: single): Imvec2; inline;
|
||||
function ImIDPtr(const i: integer): pointer; inline;
|
||||
|
||||
{ Static ImGui class, wraps external cimgui dll calls
|
||||
Used for:
|
||||
@ -370,13 +463,13 @@ public
|
||||
class procedure PushFont(font: PImFont); inline;
|
||||
class procedure PopFont; 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 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 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 GetColorU32Vec(col: PImVec4): ImU32; inline;
|
||||
|
||||
@ -437,7 +530,6 @@ public
|
||||
class function GetIdPtr(ptr_id: pointer): ImGuiID; inline;
|
||||
|
||||
{ Widgets }
|
||||
{ Text() wraps TextUnformatted(), not Text() - formatting is done by pascal's Format }
|
||||
class procedure Text(const text_: string);
|
||||
class procedure Text(const Fmt: string; const Args: array of Const);
|
||||
//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;
|
||||
|
||||
{ Widgets: Trees }
|
||||
class function TreeNode(_label: PChar): bool; inline;
|
||||
class function TreeNodeStr(str_id: PChar; fmt: string; args: array of const): bool; {inline;}
|
||||
class function TreeNodeStr(str_id: PChar; fmt: string): bool; inline;
|
||||
class function TreeNodePtr(ptr_id: pointer; fmt: string; args: array of const): bool; {inline;}
|
||||
class function TreeNodePtr(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 TreeNode(_label: string): bool; inline;
|
||||
class function TreeNode(str_id: string; fmt: string; args: array of const): bool; {inline;}
|
||||
class function TreeNode(str_id: string; fmt: string): bool; inline;
|
||||
class function TreeNode(ptr_id: pointer; fmt: string; args: array of const): bool; {inline;}
|
||||
class function TreeNode(ptr_id: pointer; fmt: string): 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 TreeNodeExStr(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 TreeNodeExPtr(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string): bool; inline;
|
||||
class function TreeNodeEx(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool; {inline;}
|
||||
class function TreeNodeEx(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string): bool; inline;
|
||||
class function TreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool; {inline;}
|
||||
class function TreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string): bool; inline;
|
||||
//todo : vargs
|
||||
// function igTreeNodeExV(str_id:Pchar; flags:ImGuiTreeNodeFlags; fmt:Pchar; args:va_list):bool;cdecl;external ImguiLibName;
|
||||
//todo : vargs
|
||||
@ -558,8 +647,8 @@ public
|
||||
class procedure TreeAdvanceToLabelPos; inline;
|
||||
class function GetTreeNodeToLabelSpacing: single; inline;
|
||||
class procedure SetNextTreeNodeOpen(opened: bool; cond: ImGuiSetCond = 0); inline;
|
||||
class function CollapsingHeader(_label: PChar; flags: ImGuiTreeNodeFlags): bool; inline;
|
||||
class function CollapsingHeaderEx(_label: PChar; p_open: Pbool; flags: ImGuiTreeNodeFlags): bool; inline;
|
||||
class function CollapsingHeader(_label: PChar; flags: ImGuiTreeNodeFlags = 0): bool; inline;
|
||||
class function CollapsingHeader(_label: PChar; p_open: Pbool; flags: ImGuiTreeNodeFlags = 0): bool; inline;
|
||||
|
||||
{ Widgets: Selectable / Lists }
|
||||
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 ValueFloat(prefix: PChar; v: single; float_format: PChar); 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 }
|
||||
class procedure SetTooltip(fmt: string; args: array of const); {inline}
|
||||
@ -594,10 +683,10 @@ public
|
||||
class procedure EndMainMenuBar; inline;
|
||||
class function BeginMenuBar: bool; 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 function MenuItem(_label: PChar; shortcut: PChar; selected: bool; Enabled: bool): bool; inline;
|
||||
class function MenuItemPtr(_label: PChar; shortcut: PChar; p_selected: Pbool; Enabled: bool): bool; inline;
|
||||
class function MenuItem(_label: PChar; shortcut: PChar; selected: bool; Enabled: bool = true): bool; inline;
|
||||
class function MenuItem(_label: PChar; shortcut: PChar; p_selected: Pbool; Enabled: bool = true): bool; inline;
|
||||
|
||||
{ Popup }
|
||||
class procedure OpenPopup(str_id: PChar); inline;
|
||||
@ -626,7 +715,7 @@ public
|
||||
class function IsItemHovered: bool; inline;
|
||||
class function IsItemHoveredRect: 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 IsAnyItemHovered: bool; inline;
|
||||
class function IsAnyItemActive: bool; inline;
|
||||
@ -639,7 +728,9 @@ public
|
||||
class function IsRootWindowFocused: bool; inline;
|
||||
class function IsRootWindowOrAnyChildFocused: 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 GetTime: single; 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 function GetKeyIndex(key: ImGuiKey): longint; inline;
|
||||
class function IsKeyDown(key_index: longint): bool; inline;
|
||||
class function IsKeyPressed(key_index: longint; _repeat: bool): bool; inline;
|
||||
class function IsKeyReleased(key_index: longint): bool; inline;
|
||||
class function IsKeyDown(user_key_index: longint): bool; inline;
|
||||
class function IsKeyPressed(user_key_index: longint; _repeat: bool): bool; inline;
|
||||
class function IsKeyReleased(user_key_index: longint): bool; inline;
|
||||
class function IsMouseDown(_button: longint): bool; inline;
|
||||
class function IsMouseClicked(_button: longint; _repeat: bool): 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 igValueFloat(prefix: PChar; v: single; float_format: PChar); 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 }
|
||||
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 igIsRootWindowOrAnyChildFocused: 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 igGetTime: single; 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;
|
||||
|
||||
function igGetKeyIndex(key: ImGuiKey): longint; cdecl; external ImguiLibName;
|
||||
function igIsKeyDown(key_index: longint): bool; cdecl; external ImguiLibName;
|
||||
function igIsKeyPressed(key_index: longint; _repeat: bool): bool; cdecl; external ImguiLibName;
|
||||
function igIsKeyReleased(key_index: longint): bool; cdecl; external ImguiLibName;
|
||||
function igIsKeyDown(user_key_index: longint): bool; cdecl; external ImguiLibName;
|
||||
function igIsKeyPressed(user_key_index: longint; _repeat: bool): bool; cdecl; external ImguiLibName;
|
||||
function igIsKeyReleased(user_key_index: longint): bool; cdecl; external ImguiLibName;
|
||||
function igIsMouseDown(button: longint): bool; cdecl; external ImguiLibName;
|
||||
function igIsMouseClicked(button: longint; _repeat: bool): 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 }
|
||||
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 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_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_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
|
||||
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_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;
|
||||
}
|
||||
|
||||
procedure ImFontAtlas_ClearTexData(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_AddInputCharactersUTF8(utf8_chars: pchar); cdecl; external ImguiLibName;
|
||||
procedure ImGuiIO_ClearInputCharacters(); cdecl; external ImguiLibName;
|
||||
@ -1117,8 +1221,8 @@ procedure ImDrawList_PopTextureID(list: PImDrawList); cdecl; external ImguiLibNa
|
||||
|
||||
{ Primitives }
|
||||
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_AddRectFilled(list: PImDrawList; a: ImVec2; b: ImVec2; col: ImU32; rounding: single; rounding_corners: longint); 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_flags: longint); cdecl; external ImguiLibName;
|
||||
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;
|
||||
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_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;
|
||||
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;
|
||||
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_PathLineTo(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_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 }
|
||||
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_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 }
|
||||
procedure ImDrawList_ChannelsSplit(list: PImDrawList; channels_count: longint); cdecl; external ImguiLibName;
|
||||
@ -1181,6 +1285,12 @@ begin
|
||||
result.y := y;
|
||||
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
|
||||
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;
|
||||
class procedure ImGui.PushStyleColor(idx: ImGuiCol; col: ImVec4);
|
||||
begin igPushStyleColor(idx, col) end;
|
||||
class procedure ImGui.PopStyleColor(Count: longint);
|
||||
class procedure ImGui.PopStyleColor(count: longint);
|
||||
begin igPopStyleColor(Count) end;
|
||||
class procedure ImGui.PushStyleVar(idx: ImGuiStyleVar; val: single);
|
||||
begin igPushStyleVar(idx, val) end;
|
||||
class procedure ImGui.PushStyleVarVec(idx: ImGuiStyleVar; val: ImVec2);
|
||||
begin igPushStyleVarVec(idx, val) end;
|
||||
class procedure ImGui.PopStyleVar(Count: longint);
|
||||
begin igPopStyleVar(Count) end;
|
||||
class procedure ImGui.PopStyleVar(count: longint);
|
||||
begin igPopStyleVar(count) end;
|
||||
class function ImGui.GetFont(): PImFont;
|
||||
begin result := igGetFont end;
|
||||
class function ImGui.GetFontSize: single;
|
||||
begin result := igGetFontSize end;
|
||||
class procedure ImGui.GetFontTexUvWhitePixel(pOut: PImVec2);
|
||||
begin igGetFontTexUvWhitePixel(pOut) end;
|
||||
class function ImGui.GetFontTexUvWhitePixel():ImVec2;
|
||||
begin igGetFontTexUvWhitePixel(@result); end;
|
||||
class function ImGui.GetColorU32(idx: ImGuiCol; alpha_mul: single): ImU32;
|
||||
begin result := igGetColorU32(idx, alpha_mul) end;
|
||||
class function ImGui.GetColorU32Vec(col: PImVec4): ImU32;
|
||||
@ -1419,9 +1529,9 @@ class function ImGui.GetIdPtr(ptr_id: pointer): ImGuiID;
|
||||
|
||||
{ Widgets }
|
||||
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);
|
||||
begin TextUnformatted(Format(fmt, args)) end;
|
||||
begin Text(Format(fmt, args)) end;
|
||||
class procedure ImGui.TextColored(col: ImVec4; fmt: PChar; args: array of const);
|
||||
begin TextColored(col, Format(fmt, args)) end;
|
||||
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;
|
||||
|
||||
{ Widgets: Trees }
|
||||
class function ImGui.TreeNode(_label: PChar): bool;
|
||||
begin result := igTreeNode(_label) end;
|
||||
class function ImGui.TreeNodeStr(str_id: PChar; fmt: string; args: array of const): bool;
|
||||
begin result := TreeNodeStr(str_id, Format(fmt, args)) end;
|
||||
class function ImGui.TreeNodeStr(str_id: PChar; fmt: string): bool;
|
||||
begin result := igTreeNodeStr(str_id, pchar(fmt)) end;
|
||||
class function ImGui.TreeNodePtr(ptr_id: pointer; fmt: string; args: array of const): bool;
|
||||
begin result := TreeNodePtr(ptr_id, Format(fmt, args)) end;
|
||||
class function ImGui.TreeNodePtr(ptr_id: pointer; fmt: string): bool;
|
||||
class function ImGui.TreeNode(_label: string): bool;
|
||||
begin result := igTreeNode(pchar(_label)) end;
|
||||
class function ImGui.TreeNode(str_id: string; fmt: string; args: array of const): bool;
|
||||
begin result := TreeNode(str_id, Format(fmt, args)) end;
|
||||
class function ImGui.TreeNode(str_id: string; fmt: string): bool;
|
||||
begin result := igTreeNodeStr(pchar(str_id), pchar(fmt)) end;
|
||||
class function ImGui.TreeNode(ptr_id: pointer; fmt: string; args: array of const): bool;
|
||||
begin result := TreeNode(ptr_id, Format(fmt, args)) end;
|
||||
class function ImGui.TreeNode(ptr_id: pointer; fmt: string): bool;
|
||||
begin result := igTreeNodePtr(ptr_id, pchar(fmt)) end;
|
||||
|
||||
class function ImGui.TreeNodeEx(_label: PChar; flags: ImGuiTreeNodeFlags): bool;
|
||||
begin result := igTreeNodeEx(_label, flags) end;
|
||||
class function ImGui.TreeNodeExStr(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string; args: array of const): bool;
|
||||
begin result := TreeNodeExStr(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; args: array of const): bool;
|
||||
begin result := TreeNodeEx(str_id, flags, Format(fmt, args)) end;
|
||||
class function ImGui.TreeNodeEx(str_id: PChar; flags: ImGuiTreeNodeFlags; fmt: string): bool;
|
||||
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;
|
||||
begin result := TreeNodeExPtr(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; args: array of const): bool;
|
||||
begin result := TreeNodeEx(ptr_id, flags, Format(fmt, args)) end;
|
||||
class function ImGui.TreeNodeEx(ptr_id: pointer; flags: ImGuiTreeNodeFlags; fmt: string): bool;
|
||||
begin result := igTreeNodeExPtr(ptr_id, flags, pchar(fmt)) end;
|
||||
class procedure ImGui.TreePushStr(str_id: PChar);
|
||||
begin igTreePushStr(str_id) end;
|
||||
@ -1598,7 +1709,7 @@ class procedure ImGui.SetNextTreeNodeOpen(opened: bool; cond: ImGuiSetCond = 0);
|
||||
begin igSetNextTreeNodeOpen(opened, cond) end;
|
||||
class function ImGui.CollapsingHeader(_label: PChar; flags: ImGuiTreeNodeFlags): bool;
|
||||
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;
|
||||
|
||||
{ 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;
|
||||
class procedure ImGui.ValueColor(prefix: PChar; v: ImVec4);
|
||||
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;
|
||||
|
||||
{ Tooltip }
|
||||
@ -1656,7 +1767,7 @@ class procedure ImGui.EndMenu;
|
||||
begin igEndMenu end;
|
||||
class function ImGui.MenuItem(_label: PChar; shortcut: PChar; selected: bool; Enabled: bool): bool;
|
||||
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;
|
||||
|
||||
{ Popup }
|
||||
@ -1732,8 +1843,10 @@ class function ImGui.IsRootWindowOrAnyChildFocused: bool;
|
||||
begin result := igIsRootWindowOrAnyChildFocused end;
|
||||
class function ImGui.IsRootWindowOrAnyChildHovered: bool;
|
||||
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;
|
||||
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;
|
||||
begin result := igIsPosHoveringAnyWindow(pos) end;
|
||||
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;
|
||||
begin result := igGetKeyIndex(key) end;
|
||||
class function ImGui.IsKeyDown(key_index: longint): bool;
|
||||
begin result := igIsKeyDown(key_index) end;
|
||||
class function ImGui.IsKeyPressed(key_index: longint; _repeat: bool): bool;
|
||||
begin result := igIsKeyPressed(key_index, _repeat) end;
|
||||
class function ImGui.IsKeyReleased(key_index: longint): bool;
|
||||
begin result := igIsKeyReleased(key_index) end;
|
||||
class function ImGui.IsKeyDown(user_key_index: longint): bool;
|
||||
begin result := igIsKeyDown(user_key_index) end;
|
||||
class function ImGui.IsKeyPressed(user_key_index: longint; _repeat: bool): bool;
|
||||
begin result := igIsKeyPressed(user_key_index, _repeat) end;
|
||||
class function ImGui.IsKeyReleased(user_key_index: longint): bool;
|
||||
begin result := igIsKeyReleased(user_key_index) end;
|
||||
class function ImGui.IsMouseDown(_button: longint): bool;
|
||||
begin result := igIsMouseDown(_button) end;
|
||||
class function ImGui.IsMouseClicked(_button: longint; _repeat: bool): bool;
|
||||
|
@ -58,6 +58,7 @@
|
||||
<Unit5>
|
||||
<Filename Value="sdl2\sdl2.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="SDL2"/>
|
||||
</Unit5>
|
||||
<Unit6>
|
||||
<Filename Value="imgui\fpimgui.pas"/>
|
||||
|
@ -418,7 +418,7 @@ begin
|
||||
Imgui.Checkbox('textures', @view.opts.textures);
|
||||
Imgui.Checkbox('vertex colors', @view.opts.vcolors);
|
||||
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');
|
||||
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.
|
@ -1,5 +1,6 @@
|
||||
unit SDL2;
|
||||
|
||||
//sdl2 unit build, 4.6.2017
|
||||
//source: https://github.com/ev1313/Pascal-SDL-2-Headers, 11.5.2017, #3820ac1c55c563cfc4a2bcb8eadb8addc7806abe
|
||||
{
|
||||
Simple DirectMedia Layer
|
||||
Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
|
||||
@ -585,6 +586,7 @@ unit SDL2;
|
||||
{$IFDEF FPC}
|
||||
{$H+}
|
||||
{$PACKRECORDS C} // Added for record
|
||||
{$PACKENUM DEFAULT} // Added for c-like enumerators
|
||||
{$MACRO ON} // Added For OpenGL
|
||||
{$DEFINE Delphi}
|
||||
{$DEFINE UseAT}
|
||||
@ -663,19 +665,15 @@ interface
|
||||
Windows;
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF LINUX}
|
||||
{$IFDEF UNIX}
|
||||
uses
|
||||
{$IFDEF DARWIN}
|
||||
CocoaAll,
|
||||
{$ENDIF}
|
||||
X,
|
||||
XLib;
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF DARWIN}
|
||||
uses
|
||||
X,
|
||||
XLib,
|
||||
CocoaAll;
|
||||
{$ENDIF}
|
||||
|
||||
const
|
||||
|
||||
{$IFDEF WINDOWS}
|
||||
@ -2030,15 +2028,15 @@ function SDL_PointInRect(const p: PSDL_Point; const r: PSDL_Rect): Boolean; Inli
|
||||
* Returns true if the rectangle has no area.
|
||||
*}
|
||||
|
||||
//changed from variant(b�����h!) to TSDL_Rect
|
||||
//changed from variant(b�����h!) to TSDL_Rect
|
||||
//maybe PSDL_Rect?
|
||||
function SDL_RectEmpty(X: TSDL_Rect): Boolean;
|
||||
function SDL_RectEmpty(const r: PSDL_Rect): Boolean; inline;
|
||||
|
||||
{**
|
||||
* Returns true if the two rectangles are equal.
|
||||
*}
|
||||
|
||||
function SDL_RectEquals(A: TSDL_Rect; B: TSDL_Rect): Boolean;
|
||||
function SDL_RectEquals(const a, b: PSDL_Rect): Boolean; inline;
|
||||
|
||||
{**
|
||||
* Determine whether two rectangles intersect.
|
||||
@ -2046,7 +2044,7 @@ function SDL_RectEquals(A: TSDL_Rect; B: TSDL_Rect): Boolean;
|
||||
* SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
|
||||
*}
|
||||
|
||||
function SDL_HasIntersection(const A: PSDL_Rect; const B: PSDL_Rect): TSDL_Bool cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_HasIntersection' {$ENDIF} {$ENDIF};
|
||||
function SDL_HasIntersection(const a, b: PSDL_Rect): TSDL_Bool cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_HasIntersection' {$ENDIF} {$ENDIF};
|
||||
|
||||
{**
|
||||
* Calculate the intersection of two rectangles.
|
||||
@ -2054,13 +2052,13 @@ function SDL_HasIntersection(const A: PSDL_Rect; const B: PSDL_Rect): TSDL_Bool
|
||||
* SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
|
||||
*}
|
||||
|
||||
function SDL_IntersectRect(const A: PSDL_Rect; const B: PSDL_Rect; result: PSDL_Rect): TSDL_Bool cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_IntersectRect' {$ENDIF} {$ENDIF};
|
||||
function SDL_IntersectRect(const A, B: PSDL_Rect; result: PSDL_Rect): TSDL_Bool cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_IntersectRect' {$ENDIF} {$ENDIF};
|
||||
|
||||
{**
|
||||
* Calculate the union of two rectangles.
|
||||
*}
|
||||
|
||||
procedure SDL_UnionRect(const A: PSDL_Rect; const B: PSDL_Rect; result: PSDL_Rect) cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_UnionRect' {$ENDIF} {$ENDIF};
|
||||
procedure SDL_UnionRect(const A, B: PSDL_Rect; result: PSDL_Rect) cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_UnionRect' {$ENDIF} {$ENDIF};
|
||||
|
||||
{**
|
||||
* Calculate a minimal rectangle enclosing a set of points
|
||||
@ -2076,7 +2074,7 @@ function SDL_EnclosePoints(const points: PSDL_Point; count: SInt32; const clip:
|
||||
* SDL_TRUE if there is an intersection, SDL_FALSE otherwise.
|
||||
*}
|
||||
|
||||
function SDL_IntersectRectAndLine(const rect: PSDL_Rect; X1: PInt; Y1: PInt; X2: PInt; Y2: PInt): TSDL_Bool cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_IntersectRectAndLine' {$ENDIF} {$ENDIF};
|
||||
function SDL_IntersectRectAndLine(const rect: PSDL_Rect; X1, Y1, X2, Y2: PInt): TSDL_Bool cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_IntersectRectAndLine' {$ENDIF} {$ENDIF};
|
||||
|
||||
{ included sdlrwops.inc}
|
||||
//from "sdl_rwops"
|
||||
@ -4585,6 +4583,7 @@ function SDL_GL_GetCurrentContext: TSDL_GLContext cdecl; external SDL_LibName {$
|
||||
*}
|
||||
|
||||
procedure SDL_GL_GetDrawableSize(window: PSDL_Window; w: PInt; h: PInt); cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GL_GetDrawableSize' {$ENDIF} {$ENDIF};
|
||||
|
||||
{**
|
||||
* Set the swap interval for the current OpenGL context.
|
||||
*
|
||||
@ -4672,8 +4671,9 @@ procedure SDL_GL_DeleteContext(context: TSDL_GLContext) cdecl; external SDL_LibN
|
||||
*/
|
||||
}
|
||||
|
||||
const
|
||||
|
||||
(**
|
||||
{/**
|
||||
* \brief A variable controlling how 3D acceleration is used to accelerate the SDL screen surface.
|
||||
*
|
||||
* SDL can try to accelerate the SDL screen surface by using streaming
|
||||
@ -4687,8 +4687,7 @@ procedure SDL_GL_DeleteContext(context: TSDL_GLContext) cdecl; external SDL_LibN
|
||||
*
|
||||
* By default SDL tries to make a best guess for each platform whether
|
||||
* to use acceleration or not.
|
||||
*)
|
||||
const
|
||||
*/}
|
||||
SDL_HINT_FRAMEBUFFER_ACCELERATION = 'SDL_FRAMEBUFFER_ACCELERATION';
|
||||
|
||||
{/**
|
||||
@ -4721,7 +4720,7 @@ SDL_HINT_RENDER_DRIVER = 'SDL_RENDER_DRIVER';
|
||||
*/}
|
||||
SDL_HINT_RENDER_OPENGL_SHADERS = 'SDL_RENDER_OPENGL_SHADERS';
|
||||
|
||||
{**
|
||||
{/**
|
||||
* \brief A variable controlling whether the Direct3D device is initialized for thread-safe operations.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
@ -4729,10 +4728,10 @@ SDL_HINT_RENDER_OPENGL_SHADERS = 'SDL_RENDER_OPENGL_SHADERS';
|
||||
* "1" - Thread-safety is enabled
|
||||
*
|
||||
* By default the Direct3D device is created with thread-safety disabled.
|
||||
*}
|
||||
*/}
|
||||
SDL_HINT_RENDER_DIRECT3D_THREADSAFE = 'SDL_RENDER_DIRECT3D_THREADSAFE';
|
||||
|
||||
{**
|
||||
{/**
|
||||
* \brief A variable controlling whether to enable Direct3D 11+'s Debug Layer.
|
||||
*
|
||||
* This variable does not have any effect on the Direct3D 9 based renderer.
|
||||
@ -4742,8 +4741,8 @@ SDL_HINT_RENDER_DIRECT3D_THREADSAFE = 'SDL_RENDER_DIRECT3D_THREADSAFE';
|
||||
* "1" - Enable Debug Layer use
|
||||
*
|
||||
* By default, SDL does not use Direct3D Debug Layer.
|
||||
*}
|
||||
SDL_HINT_RENDER_DIRECT3D11_DEBUG = 'SDL_HINT_RENDER_DIRECT3D11_DEBUG';
|
||||
*/}
|
||||
SDL_HINT_RENDER_DIRECT3D11_DEBUG = 'SDL_RENDER_DIRECT3D11_DEBUG';
|
||||
|
||||
{/**
|
||||
* \brief A variable controlling the scaling quality
|
||||
@ -4812,6 +4811,42 @@ SDL_HINT_VIDEO_X11_XINERAMA = 'SDL_VIDEO_X11_XINERAMA';
|
||||
*/}
|
||||
SDL_HINT_VIDEO_X11_XRANDR = 'SDL_VIDEO_X11_XRANDR';
|
||||
|
||||
{/**
|
||||
* \brief A variable controlling whether the X11 _NET_WM_PING protocol should be supported.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Disable _NET_WM_PING
|
||||
* "1" - Enable _NET_WM_PING
|
||||
*
|
||||
* By default SDL will use _NET_WM_PING, but for applications that know they
|
||||
* will not always be able to respond to ping requests in a timely manner they can
|
||||
* turn it off to avoid the window manager thinking the app is hung.
|
||||
* The hint is checked in CreateWindow.
|
||||
*/}
|
||||
SDL_HINT_VIDEO_X11_NET_WM_PING = 'SDL_VIDEO_X11_NET_WM_PING';
|
||||
|
||||
{/**
|
||||
* \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc)
|
||||
* "1" - The window frame is interactive when the cursor is hidden
|
||||
*
|
||||
* By default SDL will allow interaction with the window frame when the cursor is hidden
|
||||
*/}
|
||||
SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN = 'SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN';
|
||||
|
||||
{/**
|
||||
* \brief A variable controlling whether the windows message loop is processed by SDL
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - The window message loop is not run
|
||||
* "1" - The window message loop is processed in SDL_PumpEvents()
|
||||
*
|
||||
* By default SDL will process the windows message loop
|
||||
*/}
|
||||
SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP = 'SDL_WINDOWS_ENABLE_MESSAGELOOP';
|
||||
|
||||
{/**
|
||||
* \brief A variable controlling whether grabbing input grabs the keyboard
|
||||
*
|
||||
@ -4834,13 +4869,23 @@ SDL_HINT_GRAB_KEYBOARD = 'SDL_GRAB_KEYBOARD';
|
||||
*/}
|
||||
SDL_HINT_MOUSE_RELATIVE_MODE_WARP = 'SDL_MOUSE_RELATIVE_MODE_WARP';
|
||||
|
||||
{/**
|
||||
* \brief Allow mouse click events when clicking to focus an SDL window
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Ignore mouse clicks that activate a window
|
||||
* "1" - Generate events for mouse clicks that activate a window
|
||||
*
|
||||
* By default SDL will ignore mouse clicks that activate a window
|
||||
*/}
|
||||
SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH = 'SDL_MOUSE_FOCUS_CLICKTHROUGH';
|
||||
|
||||
{/**
|
||||
* \brief Minimize your SDL_Window if it loses key focus when in Fullscreen mode. Defaults to true.
|
||||
*
|
||||
*/}
|
||||
SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS = 'SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS';
|
||||
|
||||
|
||||
{/**
|
||||
* \brief A variable controlling whether the idle timer is disabled on iOS.
|
||||
*
|
||||
@ -4849,6 +4894,9 @@ SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS = 'SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS';
|
||||
* this is problematic. This functionality can be disabled by setting this
|
||||
* hint.
|
||||
*
|
||||
* As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver()
|
||||
* accomplish the same thing on iOS. They should be preferred over this hint.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Enable idle timer
|
||||
* "1" - Disable idle timer
|
||||
@ -4867,8 +4915,37 @@ SDL_HINT_IDLE_TIMER_DISABLED = 'SDL_IOS_IDLE_TIMER_DISABLED';
|
||||
SDL_HINT_ORIENTATIONS = 'SDL_IOS_ORIENTATIONS';
|
||||
|
||||
{/**
|
||||
* \brief A variable controlling whether an Android built-in accelerometer should be
|
||||
* listed as a joystick device, rather than listing actual joysticks only.
|
||||
* \brief A variable controlling whether controllers used with the Apple TV
|
||||
* generate UI events.
|
||||
*
|
||||
* When UI events are generated by controller input, the app will be
|
||||
* backgrounded when the Apple TV remote's menu button is pressed, and when the
|
||||
* pause or B buttons on gamepads are pressed.
|
||||
*
|
||||
* More information about properly making use of controllers for the Apple TV
|
||||
* can be found here:
|
||||
* https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Controller input does not generate UI events (the default).
|
||||
* "1" - Controller input generates UI events.
|
||||
*/}
|
||||
SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS = 'SDL_APPLE_TV_CONTROLLER_UI_EVENTS';
|
||||
|
||||
{/**
|
||||
* \brief A variable controlling whether the Apple TV remote's joystick axes
|
||||
* will automatically match the rotation of the remote.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - Remote orientation does not affect joystick axes (the default).
|
||||
* "1" - Joystick axes are based on the orientation of the remote.
|
||||
*/}
|
||||
SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION = 'SDL_APPLE_TV_REMOTE_ALLOW_ROTATION';
|
||||
|
||||
{/**
|
||||
* \brief A variable controlling whether the Android / iOS built-in
|
||||
* accelerometer should be listed as a joystick device, rather than listing
|
||||
* actual joysticks only.
|
||||
*
|
||||
* This variable can be set to the following values:
|
||||
* "0" - List only real joysticks and accept input from them
|
||||
@ -4886,15 +4963,13 @@ SDL_HINT_ACCELEROMETER_AS_JOYSTICK = 'SDL_ACCELEROMETER_AS_JOYSTICK';
|
||||
SDL_HINT_XINPUT_ENABLED = 'SDL_XINPUT_ENABLED';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies that SDL should use the old axis and button mapping for XInput devices.
|
||||
* \brief A variable that causes SDL to use the old axis and button mapping for XInput devices.
|
||||
*
|
||||
* The variable can be set to the following values:
|
||||
* 0 use the old axis and button mapping for XInput devices
|
||||
* 1 do not use old axis and button mapping for XInput devices
|
||||
* This hint is for backwards compatibility only and will be removed in SDL 2.1
|
||||
*
|
||||
* By default SDL does not use the old axis and button mapping for XInput devices.
|
||||
* The default value is "0". This hint must be set before SDL_Init()
|
||||
*}
|
||||
SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING = 'SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING';
|
||||
SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING = 'SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING';
|
||||
|
||||
{/**
|
||||
* \brief A variable that lets you manually hint extra gamecontroller db entries
|
||||
@ -4906,7 +4981,6 @@ SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING = 'SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAP
|
||||
*/}
|
||||
SDL_HINT_GAMECONTROLLERCONFIG = 'SDL_GAMECONTROLLERCONFIG';
|
||||
|
||||
|
||||
{/**
|
||||
* \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background.
|
||||
*
|
||||
@ -4920,7 +4994,6 @@ SDL_HINT_GAMECONTROLLERCONFIG = 'SDL_GAMECONTROLLERCONFIG';
|
||||
*/}
|
||||
SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS = 'SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS';
|
||||
|
||||
|
||||
{/**
|
||||
* \brief If set to 0 then never set the top most bit on a SDL Window, even if the video mode expects it.
|
||||
* This is a debugging aid for developers and not expected to be used by end users. The default is "1"
|
||||
@ -4931,7 +5004,6 @@ SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS = 'SDL_JOYSTICK_ALLOW_BACKGROUND_EVENT
|
||||
*/}
|
||||
SDL_HINT_ALLOW_TOPMOST = 'SDL_ALLOW_TOPMOST';
|
||||
|
||||
|
||||
{/**
|
||||
* \brief A variable that controls the timer resolution, in milliseconds.
|
||||
*
|
||||
@ -4948,29 +5020,30 @@ SDL_HINT_ALLOW_TOPMOST = 'SDL_ALLOW_TOPMOST';
|
||||
*/}
|
||||
SDL_HINT_TIMER_RESOLUTION = 'SDL_TIMER_RESOLUTION';
|
||||
|
||||
{**
|
||||
* \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac)
|
||||
*}
|
||||
{/**
|
||||
* \brief A string specifying SDL's threads stack size in bytes or "0" for the backend's default size
|
||||
*
|
||||
* Use this hint in case you need to set SDL's threads stack size to other than the default.
|
||||
* This is specially useful if you build SDL against a non glibc libc library (such as musl) which
|
||||
* provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses).
|
||||
* Support for this hint is currently available only in the pthread, Windows, and PSP backend.
|
||||
*/}
|
||||
SDL_HINT_THREAD_STACK_SIZE = 'SDL_THREAD_STACK_SIZE';
|
||||
|
||||
{/**
|
||||
* \brief If set to 1, then do not allow high-DPI windows. ("Retina" on Mac and iOS)
|
||||
*/}
|
||||
SDL_HINT_VIDEO_HIGHDPI_DISABLED = 'SDL_VIDEO_HIGHDPI_DISABLED';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies if the SDL app should not be forced to become a foreground process on Mac OS X.
|
||||
*
|
||||
* Possible values:
|
||||
* 0 force the SDL app to become a foreground process (default)
|
||||
* 1 do not force the SDL app to become a foreground process
|
||||
*}
|
||||
SDL_HINT_MAC_BACKGROUND_APP = 'SDL_HINT_MAC_BACKGROUND_APP';
|
||||
|
||||
{**
|
||||
{/**
|
||||
* \brief A variable that determines whether ctrl+click should generate a right-click event on Mac
|
||||
*
|
||||
* If present, holding ctrl while left clicking will generate a right click
|
||||
* event when on Mac.
|
||||
*}
|
||||
*/}
|
||||
SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK = 'SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK';
|
||||
|
||||
{**
|
||||
{/**
|
||||
* \brief A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries
|
||||
*
|
||||
* SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It
|
||||
@ -4983,7 +5056,7 @@ SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK = 'SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_
|
||||
* "d3dcompiler_43.dll" - for XP support.
|
||||
* "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries.
|
||||
*
|
||||
*}
|
||||
*/}
|
||||
SDL_HINT_VIDEO_WIN_D3DCOMPILER = 'SDL_VIDEO_WIN_D3DCOMPILER';
|
||||
|
||||
{/**
|
||||
@ -5005,7 +5078,7 @@ SDL_HINT_VIDEO_WIN_D3DCOMPILER = 'SDL_VIDEO_WIN_D3DCOMPILER';
|
||||
*/}
|
||||
SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT = 'SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT';
|
||||
|
||||
{**
|
||||
{/**
|
||||
* \brief A URL to a WinRT app's privacy policy
|
||||
*
|
||||
* All network-enabled WinRT apps must make a privacy policy available to its
|
||||
@ -5015,7 +5088,7 @@ SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT = 'SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT'
|
||||
* privacy policy.
|
||||
*
|
||||
* To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL
|
||||
* before calling any SDL_Init functions. The contents of the hint should
|
||||
* before calling any SDL_Init() functions. The contents of the hint should
|
||||
* be a valid URL. For example, "http://www.example.com".
|
||||
*
|
||||
* The default value is "", which will prevent SDL from adding a privacy policy
|
||||
@ -5028,15 +5101,15 @@ SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT = 'SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT'
|
||||
* for displaying a privacy policy link, and as such, SDL_HINT_WINRT_PRIVACY_POLICY_URL
|
||||
* will not get used on that platform. Network-enabled phone apps should display
|
||||
* their privacy policy through some other, in-app means.
|
||||
*}
|
||||
SDL_HINT_WINRT_PRIVACY_POLICY_URL = 'SDL_HINT_WINRT_PRIVACY_POLICY_URL';
|
||||
*/}
|
||||
SDL_HINT_WINRT_PRIVACY_POLICY_URL = 'SDL_WINRT_PRIVACY_POLICY_URL';
|
||||
|
||||
{**
|
||||
{/**
|
||||
* \brief Label text for a WinRT app's privacy policy link
|
||||
*
|
||||
* Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT,
|
||||
* Microsoft mandates that this policy be available via the Windows Settings charm.
|
||||
* SDL provides code to add a link there, with it's label text being set via the
|
||||
* SDL provides code to add a link there, with its label text being set via the
|
||||
* optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL.
|
||||
*
|
||||
* Please note that a privacy policy's contents are not set via this hint. A separate
|
||||
@ -5046,24 +5119,67 @@ SDL_HINT_WINRT_PRIVACY_POLICY_URL = 'SDL_HINT_WINRT_PRIVACY_POLICY_URL';
|
||||
* The contents of this hint should be encoded as a UTF8 string.
|
||||
*
|
||||
* The default value is "Privacy Policy". This hint should only be set during app
|
||||
* initialization, preferably before any calls to SDL_Init.
|
||||
* initialization, preferably before any calls to SDL_Init().
|
||||
*
|
||||
* For additional information on linking to a privacy policy, see the documentation for
|
||||
* SDL_HINT_WINRT_PRIVACY_POLICY_URL.
|
||||
*}
|
||||
SDL_HINT_WINRT_PRIVACY_POLICY_LABEL = 'SDL_HINT_WINRT_PRIVACY_POLICY_LABEL';
|
||||
*/}
|
||||
SDL_HINT_WINRT_PRIVACY_POLICY_LABEL = 'SDL_WINRT_PRIVACY_POLICY_LABEL';
|
||||
|
||||
{**
|
||||
* \brief If set to 1, back button press events on Windows Phone 8+ will be marked as handled.
|
||||
{/**
|
||||
* \brief Allows back-button-press events on Windows Phone to be marked as handled
|
||||
*
|
||||
* TODO, WinRT: document SDL_HINT_WINRT_HANDLE_BACK_BUTTON need and use
|
||||
* For now, more details on why this is needed can be found at the
|
||||
* beginning of the following web page:
|
||||
* Windows Phone devices typically feature a Back button. When pressed,
|
||||
* the OS will emit back-button-press events, which apps are expected to
|
||||
* handle in an appropriate manner. If apps do not explicitly mark these
|
||||
* events as 'Handled', then the OS will invoke its default behavior for
|
||||
* unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to
|
||||
* terminate the app (and attempt to switch to the previous app, or to the
|
||||
* device's home screen).
|
||||
*
|
||||
* Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL
|
||||
* to mark back-button-press events as Handled, if and when one is sent to
|
||||
* the app.
|
||||
*
|
||||
* Internally, Windows Phone sends back button events as parameters to
|
||||
* special back-button-press callback functions. Apps that need to respond
|
||||
* to back-button-press events are expected to register one or more
|
||||
* callback functions for such, shortly after being launched (during the
|
||||
* app's initialization phase). After the back button is pressed, the OS
|
||||
* will invoke these callbacks. If the app's callback(s) do not explicitly
|
||||
* mark the event as handled by the time they return, or if the app never
|
||||
* registers one of these callback, the OS will consider the event
|
||||
* un-handled, and it will apply its default back button behavior (terminate
|
||||
* the app).
|
||||
*
|
||||
* SDL registers its own back-button-press callback with the Windows Phone
|
||||
* OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN
|
||||
* and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which
|
||||
* it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON.
|
||||
* If the hint's value is set to "1", the back button event's Handled
|
||||
* property will get set to 'true'. If the hint's value is set to something
|
||||
* else, or if it is unset, SDL will leave the event's Handled property
|
||||
* alone. (By default, the OS sets this property to 'false', to note.)
|
||||
*
|
||||
* SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a
|
||||
* back button is pressed, or can set it in direct-response to a back button
|
||||
* being pressed.
|
||||
*
|
||||
* In order to get notified when a back button is pressed, SDL apps should
|
||||
* register a callback function with SDL_AddEventWatch(), and have it listen
|
||||
* for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK.
|
||||
* (Alternatively, SDL_KEYUP events can be listened-for. Listening for
|
||||
* either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON
|
||||
* set by such a callback, will be applied to the OS' current
|
||||
* back-button-press event.
|
||||
*
|
||||
* More details on back button behavior in Windows Phone apps can be found
|
||||
* at the following page, on Microsoft's developer site:
|
||||
* http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx
|
||||
*}
|
||||
SDL_HINT_WINRT_HANDLE_BACK_BUTTON = 'SDL_HINT_WINRT_HANDLE_BACK_BUTTON';
|
||||
*/}
|
||||
SDL_HINT_WINRT_HANDLE_BACK_BUTTON = 'SDL_WINRT_HANDLE_BACK_BUTTON';
|
||||
|
||||
{**
|
||||
{/**
|
||||
* \brief A variable that dictates policy for fullscreen Spaces on Mac OS X.
|
||||
*
|
||||
* This hint only applies to Mac OS X.
|
||||
@ -5074,121 +5190,106 @@ SDL_HINT_WINRT_HANDLE_BACK_BUTTON = 'SDL_HINT_WINRT_HANDLE_BACK_BUTTON';
|
||||
* button on their titlebars).
|
||||
* "1" - Enable Spaces support (FULLSCREEN_DESKTOP will use them and
|
||||
* SDL_WINDOW_RESIZABLE windows will offer the "fullscreen"
|
||||
* button on their titlebars.
|
||||
* button on their titlebars).
|
||||
*
|
||||
* The default value is "1". Spaces are disabled regardless of this hint if
|
||||
* the OS isn't at least Mac OS X Lion (10.7). This hint must be set before
|
||||
* any windows are created.
|
||||
*}
|
||||
*/}
|
||||
SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES = 'SDL_VIDEO_MAC_FULLSCREEN_SPACES';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies the Android APK expansion main file version.
|
||||
{/**
|
||||
* \brief When set don't force the SDL app to become a foreground process
|
||||
*
|
||||
* The variable should specify the Android APK expansion main file version (a string number like "1", "2" etc.).
|
||||
* This hint must be set together with the hint SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION.
|
||||
* This hint only applies to Mac OS X.
|
||||
*
|
||||
*/}
|
||||
SDL_HINT_MAC_BACKGROUND_APP = 'SDL_MAC_BACKGROUND_APP';
|
||||
|
||||
{/**
|
||||
* \brief Android APK expansion main file version. Should be a string number like "1", "2" etc.
|
||||
*
|
||||
* Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION.
|
||||
*
|
||||
* If both hints were set then SDL_RWFromFile() will look into expansion files
|
||||
* after a given relative path was not found in the internal storage and assets.
|
||||
* By default this hint is not set and the APK expansion files are not searched.
|
||||
*}
|
||||
SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION = 'SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies the Android APK expansion patch file version.
|
||||
*
|
||||
* The variable should specify the Android APK expansion patch file version (a string number like "1", "2" etc.).
|
||||
* This hint must be set together with the hint SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION.
|
||||
* By default this hint is not set and the APK expansion files are not searched.
|
||||
*/}
|
||||
SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION = 'SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION';
|
||||
|
||||
{/**
|
||||
* \brief Android APK expansion patch file version. Should be a string number like "1", "2" etc.
|
||||
*
|
||||
* Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION.
|
||||
*
|
||||
* If both hints were set then SDL_RWFromFile() will look into expansion files
|
||||
* after a given relative path was not found in the internal storage and assets.
|
||||
*
|
||||
* By default this hint is not set and the APK expansion files are not searched.
|
||||
*}
|
||||
SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION = 'SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION';
|
||||
*/}
|
||||
SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION = 'SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies a variable to control whether mouse and touch events are to be treated together or separately.
|
||||
{/**
|
||||
* \brief A variable to control whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events.
|
||||
*
|
||||
* Possible values:
|
||||
* 0 mouse events will be handled as touch events and touch will raise fake mouse events
|
||||
* 1 mouse events will be handled separately from pure touch events
|
||||
*
|
||||
* By default mouse events will be handled as touch events and touch will raise fake mouse events.
|
||||
* The value of this hint is used at runtime, so it can be changed at any time.
|
||||
*}
|
||||
SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH = 'SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies a value to override the binding element for keyboard inputs for Emscripten builds.
|
||||
*
|
||||
* Possible values:
|
||||
* #window the JavaScript window object (this is the default)
|
||||
* #document the JavaScript document object
|
||||
* #screen the JavaScript window.screen object
|
||||
* #canvas the default WebGL canvas element
|
||||
*
|
||||
* Any other string without a leading # sign applies to the element on the page with that ID.
|
||||
* This hint only applies to the Emscripten platform.
|
||||
*}
|
||||
SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT = 'SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events.
|
||||
*
|
||||
* Possible values:
|
||||
* 0 SDL_TEXTEDITING events are sent, and it is the application's responsibility
|
||||
* to render the text from these events and differentiate it somehow from committed text. (default)
|
||||
*
|
||||
* 1 If supported by the IME then SDL_TEXTEDITING events are not sent,
|
||||
* The variable can be set to the following values:
|
||||
* "0" - SDL_TEXTEDITING events are sent, and it is the application's
|
||||
* responsibility to render the text from these events and
|
||||
* differentiate it somehow from committed text. (default)
|
||||
* "1" - If supported by the IME then SDL_TEXTEDITING events are not sent,
|
||||
* and text that is being composed will be rendered in its own UI.
|
||||
*}
|
||||
SDL_HINT_IME_INTERNAL_EDITING = 'SDL_HINT_IME_INTERNAL_EDITING';
|
||||
*/}
|
||||
SDL_HINT_IME_INTERNAL_EDITING = 'SDL_IME_INTERNAL_EDITING';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies not to catch the SIGINT or SIGTERM signals.
|
||||
{/**
|
||||
* \brief A variable to control whether mouse and touch events are to be treated together or separately
|
||||
*
|
||||
* Possible values:
|
||||
* 0 SDL will install a SIGINT and SIGTERM handler, and when it catches a signal, convert it into an SDL_QUIT event (default)
|
||||
* 1 SDL will not install a signal handler at all
|
||||
* The variable can be set to the following values:
|
||||
* "0" - Mouse events will be handled as touch events, and touch will raise fake mouse
|
||||
* events. This is the behaviour of SDL <= 2.0.3. (default)
|
||||
* "1" - Mouse events will be handled separately from pure touch events.
|
||||
*
|
||||
* The value of this hint is used at runtime, so it can be changed at any time.
|
||||
*/}
|
||||
SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH = 'SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH';
|
||||
|
||||
{/**
|
||||
* \brief override the binding element for keyboard inputs for Emscripten builds
|
||||
*
|
||||
* This hint only applies to the emscripten platform
|
||||
*
|
||||
* The variable can be one of
|
||||
* "#window" - The javascript window object (this is the default)
|
||||
* "#document" - The javascript document object
|
||||
* "#screen" - the javascript window.screen object
|
||||
* "#canvas" - the WebGL canvas element
|
||||
* any other string without a leading # sign applies to the element on the page with that ID.
|
||||
*/}
|
||||
SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT = 'SDL_EMSCRIPTEN_KEYBOARD_ELEMENT';
|
||||
|
||||
{/**
|
||||
* \brief Tell SDL not to catch the SIGINT or SIGTERM signals.
|
||||
*
|
||||
* This hint only applies to Unix-like platforms.
|
||||
*}
|
||||
SDL_HINT_NO_SIGNAL_HANDLERS = 'SDL_HINT_NO_SIGNAL_HANDLERS';
|
||||
*
|
||||
* The variable can be set to the following values:
|
||||
* "0" - SDL will install a SIGINT and SIGTERM handler, and when it
|
||||
* catches a signal, convert it into an SDL_QUIT event.
|
||||
* "1" - SDL will not install a signal handler at all.
|
||||
*/}
|
||||
SDL_HINT_NO_SIGNAL_HANDLERS = 'SDL_NO_SIGNAL_HANDLERS';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies a variable specifying SDL's threads stack size in bytes or "0" for the backend's default size.
|
||||
{/**
|
||||
* \brief Tell SDL not to generate window-close events for Alt+F4 on Windows.
|
||||
*
|
||||
* Possible values for this hint are:
|
||||
* 0 use the backend's default threads stack size (default)
|
||||
* X use the provided positive threads stack size
|
||||
*
|
||||
* Use this hint in case you need to set SDL's threads stack size to other than the default.
|
||||
* This is specially useful if you build SDL against a non glibc libc library (such as musl)
|
||||
* which provides a relatively small default thread stack size (a few kilobytes versus the default 8 MB glibc uses).
|
||||
*
|
||||
* Support for this hint is currently available only in the pthread backend.
|
||||
*}
|
||||
SDL_HINT_THREAD_STACK_SIZE = 'SDL_HINT_THREAD_STACK_SIZE';
|
||||
* The variable can be set to the following values:
|
||||
* "0" - SDL will generate a window-close event when it sees Alt+F4.
|
||||
* "1" - SDL will only do normal key handling for Alt+F4.
|
||||
*/}
|
||||
SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 = 'SDL_WINDOWS_NO_CLOSE_ON_ALT_F4';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies whether the windows message loop is processed by SDL.
|
||||
*
|
||||
* Possible values for this hint:
|
||||
* 0 the window message loop is not run
|
||||
* 1 the window message loop is processed in SDL_PumpEvents() [default]
|
||||
*}
|
||||
SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP = 'SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP';
|
||||
|
||||
{**
|
||||
* \brief A hint that specifies that SDL should not to generate SDL_WINDOWEVENT_CLOSE events for Alt+F4 on Microsoft Windows.
|
||||
*
|
||||
* Possible values for this hint:
|
||||
* 0 generate an SDL_WINDOWEVENT_CLOSE event for Alt+F4 (default)
|
||||
* 1 do not generate event and only do normal key handling for Alt+F4
|
||||
*}
|
||||
SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 = 'SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4';
|
||||
|
||||
{**
|
||||
{/**
|
||||
* \brief Prevent SDL from using version 4 of the bitmap header when saving BMPs.
|
||||
*
|
||||
* The bitmap header version 4 is required for proper alpha channel support and
|
||||
@ -5204,10 +5305,10 @@ SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 = 'SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4';
|
||||
* will be in the file, but applications are going to ignore it.
|
||||
*
|
||||
* The default value is "0".
|
||||
*}
|
||||
*/}
|
||||
SDL_HINT_BMP_SAVE_LEGACY_FORMAT = 'SDL_BMP_SAVE_LEGACY_FORMAT';
|
||||
|
||||
{**
|
||||
{/**
|
||||
* \brief Tell SDL not to name threads on Windows.
|
||||
*
|
||||
* The variable can be set to the following values:
|
||||
@ -5215,26 +5316,24 @@ SDL_HINT_BMP_SAVE_LEGACY_FORMAT = 'SDL_BMP_SAVE_LEGACY_FORMAT';
|
||||
* This is the default behavior of SDL <= 2.0.4. (default)
|
||||
* "1" - SDL will not raise this exception, and threads will be unnamed.
|
||||
* For .NET languages this is required when running under a debugger.
|
||||
*}
|
||||
*/}
|
||||
SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING = 'SDL_WINDOWS_DISABLE_THREAD_NAMING';
|
||||
{**
|
||||
* \brief A hint that specifies whether the window frame and title bar are interactive when the cursor is hidden.
|
||||
|
||||
{/**
|
||||
* \brief Tell SDL which Dispmanx layer to use on a Raspberry PI
|
||||
*
|
||||
* Possible values for this hint:
|
||||
* 0 the window frame is not interactive when the cursor is hidden (no move, resize, etc)
|
||||
* 1 the window frame is interactive when the cursor is hidden
|
||||
*
|
||||
* By default SDL will allow interaction with the window frame when the cursor is hidden.
|
||||
*}
|
||||
SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN = 'SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN';
|
||||
* Also known as Z-order. The variable can take a negative or positive value.
|
||||
* The default is 10000.
|
||||
*/}
|
||||
SDL_HINT_RPI_VIDEO_LAYER = 'SDL_RPI_VIDEO_LAYER';
|
||||
|
||||
type
|
||||
|
||||
{/**
|
||||
* \brief An enumeration of hint priorities
|
||||
*/}
|
||||
type
|
||||
SDL_HintPriority = (SDL_HINT_DEFAULT, SDL_HINT_NORMAL, SDL_HINT_OVERRIDE);
|
||||
|
||||
|
||||
{/**
|
||||
* \brief Set a hint with a specific priority
|
||||
*
|
||||
@ -5246,9 +5345,6 @@ type
|
||||
*/}
|
||||
function SDL_SetHintWithPriority(const name: PChar; const value: PChar; priority: SDL_HintPriority) : boolean; cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_SetHintWithPriority' {$ENDIF} {$ENDIF};
|
||||
|
||||
// extern DECLSPEC SDL_bool SDLCALL SDL_SetHintWithPriority(const char *name,
|
||||
// const char *value,
|
||||
// SDL_HintPriority priority);
|
||||
{/**
|
||||
* \brief Set a hint with normal priority
|
||||
*
|
||||
@ -5256,17 +5352,21 @@ function SDL_SetHintWithPriority( const name: PChar; const value: PChar; priorit
|
||||
*/}
|
||||
function SDL_SetHint(const name: PChar; const value: PChar): boolean; cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_SetHint' {$ENDIF} {$ENDIF};
|
||||
|
||||
//extern DECLSPEC SDL_bool SDLCALL SDL_SetHint(const char *name,
|
||||
// const char *value);
|
||||
|
||||
{/**
|
||||
* \brief Get a hint
|
||||
*
|
||||
* \return The string value of a hint variable.
|
||||
*/}
|
||||
function SDL_GetHint(const name: PChar): PChar; cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetHint' {$ENDIF} {$ENDIF};
|
||||
//extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name);
|
||||
|
||||
{/**
|
||||
* \brief Get a hint
|
||||
*
|
||||
* \return The boolean value of a hint variable.
|
||||
*/}
|
||||
function SDL_GetHintBoolean(const name: PChar; default_value: boolean): boolean; cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetHintBoolean' {$ENDIF} {$ENDIF};
|
||||
|
||||
type
|
||||
|
||||
{/**
|
||||
* \brief Add a function to watch a particular hint
|
||||
@ -5275,13 +5375,9 @@ function SDL_GetHint( const name: PChar): PChar; cdecl; external SDL_LibName {$I
|
||||
* \param callback The function to call when the hint value changes
|
||||
* \param userdata A pointer to pass to the callback function
|
||||
*/}
|
||||
type
|
||||
TSDL_HintCallback = procedure(userdata: Pointer; const name: PChar; const oldValue: PChar; const newValue: PChar);
|
||||
|
||||
procedure SDL_AddHintCallback(const name: PChar; callback: TSDL_HintCallback; userdata: Pointer); cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_AddHintCallback' {$ENDIF} {$ENDIF};
|
||||
//typedef void (*SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue);
|
||||
//extern DECLSPEC void SDLCALL SDL_AddHintCallback(const char *name,
|
||||
// SDL_HintCallback callback,
|
||||
// void *userdata);
|
||||
|
||||
{/**
|
||||
* \brief Remove a function watching a particular hint
|
||||
@ -5291,19 +5387,14 @@ procedure SDL_AddHintCallback(const name: PChar; callback: TSDL_HintCallback; us
|
||||
* \param userdata A pointer being passed to the callback function
|
||||
*/}
|
||||
procedure SDL_DelHintCallback(const name: PChar; callback: TSDL_HintCallback; userdata: Pointer); cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_DelHintCallback' {$ENDIF} {$ENDIF};
|
||||
//extern DECLSPEC void SDLCALL SDL_DelHintCallback(const char *name,
|
||||
// SDL_HintCallback callback,
|
||||
// void *userdata);
|
||||
|
||||
{/**
|
||||
* \brief Clear all hints
|
||||
*
|
||||
* This function is called during SDL_Quit() to free stored hints.
|
||||
*/}
|
||||
//extern DECLSPEC void SDLCALL SDL_ClearHints(void);
|
||||
procedure SDL_ClearHints(); cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_ClearHints' {$ENDIF} {$ENDIF};
|
||||
|
||||
|
||||
{ included sdlloadso.inc}
|
||||
//from sdl_loadso.h
|
||||
|
||||
@ -6420,11 +6511,11 @@ const
|
||||
SDL_SCANCODE_INTERNATIONAL7 = 141;
|
||||
SDL_SCANCODE_INTERNATIONAL8 = 142;
|
||||
SDL_SCANCODE_INTERNATIONAL9 = 143;
|
||||
SDL_SCANCODE_LANG1 = 144; {**< Hangul/English toggle *}
|
||||
SDL_SCANCODE_LANG1 = 144; {**< Hangul{English toggle *}
|
||||
SDL_SCANCODE_LANG2 = 145; {**< Hanja conversion *}
|
||||
SDL_SCANCODE_LANG3 = 146; {**< Katakana *}
|
||||
SDL_SCANCODE_LANG4 = 147; {**< Hiragana *}
|
||||
SDL_SCANCODE_LANG5 = 148; {**< Zenkaku/Hankaku *}
|
||||
SDL_SCANCODE_LANG5 = 148; {**< Zenkaku{Hankaku *}
|
||||
SDL_SCANCODE_LANG6 = 149; {**< reserved *}
|
||||
SDL_SCANCODE_LANG7 = 150; {**< reserved *}
|
||||
SDL_SCANCODE_LANG8 = 151; {**< reserved *}
|
||||
@ -6540,7 +6631,7 @@ const
|
||||
|
||||
SDL_SCANCODE_BRIGHTNESSDOWN = 275;
|
||||
SDL_SCANCODE_BRIGHTNESSUP = 276;
|
||||
SDL_SCANCODE_DISPLAYSWITCH = 277; {**< display mirroring/dual display
|
||||
SDL_SCANCODE_DISPLAYSWITCH = 277; {**< display mirroring{dual display
|
||||
switch; video mode switch *}
|
||||
SDL_SCANCODE_KBDILLUMTOGGLE = 278;
|
||||
SDL_SCANCODE_KBDILLUMDOWN = 279;
|
||||
@ -7257,6 +7348,12 @@ type
|
||||
|
||||
function SDL_GetCursor: PSDL_Cursor cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetCursor' {$ENDIF}{$ENDIF};
|
||||
|
||||
{**
|
||||
* Return the default cursor.
|
||||
*}
|
||||
|
||||
function SDL_GetDefaultCursor: PSDL_Cursor cdecl; external SDL_LibName {$IFDEF DELPHI} {$IFDEF MACOS} name '_SDL_GetDefaultCursor' {$ENDIF}{$ENDIF};
|
||||
|
||||
{**
|
||||
* Frees a cursor created with SDL_CreateCursor().
|
||||
*
|
||||
@ -9018,6 +9115,15 @@ function SDL_LoadDollarTemplates(touchId: TSDL_TouchID; src: PSDL_RWops): SInt32
|
||||
{$DEFINE SDL_VIDEO_DRIVER_COCOA}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF ANDROID}
|
||||
{$DEFINE SDL_VIDEO_DRIVER_ANDROID}
|
||||
{$ENDIF}
|
||||
|
||||
{$IFDEF VIVANTE}
|
||||
{$DEFINE SDL_VIDEO_DRIVER_VIVANTE}
|
||||
{$ENDIF}
|
||||
|
||||
|
||||
{**
|
||||
* These are the various supported windowing subsystems
|
||||
*}
|
||||
@ -9060,11 +9166,19 @@ Type
|
||||
{$IFDEF SDL_VIDEO_DRIVER_COCOA}
|
||||
__SYSWM_COCOA = record
|
||||
(* No Cocoa window events yet *)
|
||||
dummy: integer;
|
||||
end;
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_UIKIT}
|
||||
__SYSWM_UIKIT = record
|
||||
(* No UIKit window events yet *)
|
||||
dummy: integer;
|
||||
end;
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_VIVANTE}
|
||||
__SYSWM_VIVANTE = record
|
||||
(* No Vivante window events yet *)
|
||||
dummy: integer;
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
@ -9074,24 +9188,23 @@ Type
|
||||
PSDL_SysWMmsg = ^TSDL_SysWMmsg;
|
||||
TSDL_SysWMmsg = record
|
||||
version: TSDL_version;
|
||||
Case subsystem: TSDL_SYSWM_TYPE of
|
||||
(* Cannot have empty record case *)
|
||||
SDL_SYSWM_UNKNOWN: (dummy: sInt32);
|
||||
subsystem: TSDL_SYSWM_TYPE;
|
||||
{$IFDEF SDL_VIDEO_DRIVER_WINDOWS}
|
||||
SDL_SYSWM_WINDOWS: (win: __SYSWM_WINDOWS);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_X11}
|
||||
SDL_SYSWM_X11: (x11: __SYSWM_X11);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_DIRECTFB}
|
||||
SDL_SYSWM_DIRECTFB: (dfb: __SYSWM_DIRECTFB);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_COCOA}
|
||||
SDL_SYSWM_COCOA: (cocoa: __SYSWM_COCOA);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_UIKIT}
|
||||
SDL_SYSWM_UIKIT: (uikit: __SYSWM_UIKIT);
|
||||
{$ENDIF}
|
||||
win: __SYSWM_WINDOWS;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_X11}
|
||||
x11: __SYSWM_X11;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_DIRECTFB}
|
||||
dfb: __SYSWM_DIRECTFB;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_COCOA}
|
||||
cocoa: __SYSWM_COCOA;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_UIKIT}
|
||||
uikit: __SYSWM_UIKIT;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_VIVANTE}
|
||||
vivante: __SYSWM_VIVANTE;
|
||||
{$ELSE}
|
||||
(* Cannot have empty record case *)
|
||||
dummy: integer;
|
||||
{$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF}
|
||||
end;
|
||||
|
||||
/// Once again, sdl_syswm.h uses anonymous structs, declared right in SDL_SysWMinfo.
|
||||
@ -9099,6 +9212,7 @@ Type
|
||||
{$IFDEF SDL_VIDEO_DRIVER_WINDOWS}
|
||||
__WMINFO_WINDOWS = record
|
||||
window: HWND; {**< The window handle *}
|
||||
hdc: HDC; {**< The window device context *}
|
||||
end;
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_WINRT} // Since SDL 2.0.3
|
||||
@ -9127,6 +9241,9 @@ Type
|
||||
{$IFDEF SDL_VIDEO_DRIVER_UIKIT}
|
||||
__WMINFO_UIKIT = record
|
||||
window: UIWindow; {* The UIKit window *}
|
||||
framebuffer: GLuint; {* The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. *}
|
||||
colorbuffer: GLuint; {* The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. *}
|
||||
resolveFramebuffer: GLuint; {* The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. *}
|
||||
end;
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_WAYLAND} // Since SDL 2.0.2
|
||||
@ -9142,12 +9259,18 @@ Type
|
||||
surface: PMirSurface; {**< Mir surface *}
|
||||
end;
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_ANDROID} // Planned for SDL 2.0.4
|
||||
{$IFDEF SDL_VIDEO_DRIVER_ANDROID}
|
||||
__WMINFO_ANDROID = record
|
||||
window: PANativeWindow;
|
||||
surface: PEGLSurface;
|
||||
end;
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_VIVANTE}
|
||||
__WMINFO_VIVANTE = record
|
||||
display: EGLNativeDisplayType;
|
||||
window: EGLNativeWindowType;
|
||||
end;
|
||||
{$ENDIF}
|
||||
|
||||
{**
|
||||
* The custom window manager information structure.
|
||||
@ -9158,33 +9281,31 @@ Type
|
||||
PSDL_SysWMinfo = ^TSDL_SysWMinfo;
|
||||
TSDL_SysWMinfo = record
|
||||
version: TSDL_version;
|
||||
Case subsystem: TSDL_SYSWM_TYPE of
|
||||
(* Cannot have empty record case *)
|
||||
SDL_SYSWM_UNKNOWN: (dummy: sInt32);
|
||||
subsystem: TSDL_SYSWM_TYPE;
|
||||
{$IFDEF SDL_VIDEO_DRIVER_WINDOWS}
|
||||
SDL_SYSWM_WINDOWS: (win : __WMINFO_WINDOWS);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_WINRT}
|
||||
SDL_SYSWM_WINRT: (winrt : __WMINFO_WINRT);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_X11}
|
||||
SDL_SYSWM_X11: (x11 : __WMINFO_X11);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_DIRECTFB}
|
||||
SDL_SYSWM_DIRECTFB: (dfb : __WMINFO_DFB);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_COCOA}
|
||||
SDL_SYSWM_COCOA: (cocoa : __WMINFO_COCOA);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_UIKIT}
|
||||
SDL_SYSWM_UIKIT: (uikit : __WMINFO_UIKIT);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_WAYLAND}
|
||||
SDL_SYSWM_WAYLAND: (wl : __WMINFO_WAYLAND);
|
||||
{$ENDIF}
|
||||
{$IFDEF SDL_VIDEO_DRIVER_MIR}
|
||||
SDL_SYSWM_MIR: (mir : __WMINFO_MIR);
|
||||
{$ENDIF}
|
||||
win : __WMINFO_WINDOWS;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_WINRT}
|
||||
winrt : __WMINFO_WINRT;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_X11}
|
||||
x11 : __WMINFO_X11;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_DIRECTFB}
|
||||
dfb : __WMINFO_DFB;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_COCOA}
|
||||
cocoa : __WMINFO_COCOA;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_UIKIT}
|
||||
uikit : __WMINFO_UIKIT;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_WAYLAND}
|
||||
wl : __WMINFO_WAYLAND;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_MIR}
|
||||
mir : __WMINFO_MIR;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_ANDROID}
|
||||
android: __WMINFO_ANDROID;
|
||||
{$ELSE} {$IFDEF SDL_VIDEO_DRIVER_VIVANTE}
|
||||
vivante: __WMINFO_VIVANTE;
|
||||
{$ELSE}
|
||||
(* Cannot have empty record case *)
|
||||
dummy: integer;
|
||||
{$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF} {$ENDIF}
|
||||
end;
|
||||
|
||||
{* Function prototypes *}
|
||||
@ -10480,17 +10601,17 @@ end;
|
||||
{$ENDIF}
|
||||
|
||||
//from "sdl_rect.h"
|
||||
function SDL_RectEmpty(X: TSDL_Rect): Boolean;
|
||||
function SDL_RectEmpty(const r: PSDL_Rect): Boolean;
|
||||
begin
|
||||
Result := (X.w <= 0) or (X.h <= 0);
|
||||
Result := (r^.w <= 0) or (r^.h <= 0);
|
||||
end;
|
||||
|
||||
function SDL_RectEquals(A: TSDL_Rect; B: TSDL_Rect): Boolean;
|
||||
function SDL_RectEquals(const a, b: PSDL_Rect): Boolean;
|
||||
begin
|
||||
Result := (A.x = B.x) and (A.y = B.y) and (A.w = B.w) and (A.h = B.h);
|
||||
Result := (a^.x = b^.x) and (a^.y = b^.y) and (a^.w = b^.w) and (a^.h = b^.h);
|
||||
end;
|
||||
|
||||
function SDL_PointInRect(const p: PSDL_Point; const r: PSDL_Rect): Boolean; Inline;
|
||||
function SDL_PointInRect(const p: PSDL_Point; const r: PSDL_Rect): Boolean;
|
||||
begin
|
||||
Result :=
|
||||
(p^.x >= r^.x) and (p^.x < (r^.x + r^.w))
|
||||
@ -10658,3 +10779,4 @@ begin
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user