KarmaEngine
Game Engine for practical learning and research purposes
Loading...
Searching...
No Matches
KarmaGui.h File Reference

This file constains KarmaGui class. The chief class for our UI needs.. More...

#include "krpch.h"
Include dependency graph for KarmaGui.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  KGVec2
 
struct  KGVec4
 
class  Karma::KarmaGui
 
struct  KGNewWrapper
 
struct  KGVector< T >
 
struct  KarmaGuiStyle
 
struct  KarmaGuiKeyData
 
struct  KarmaGuiIO
 
struct  KarmaGuiInputTextCallbackData
 
struct  KarmaGuiSizeCallbackData
 
struct  KarmaGuiWindowClass
 
struct  KarmaGuiPayload
 
struct  KarmaGuiTableColumnSortSpecs
 
struct  KarmaGuiTableSortSpecs
 
struct  KarmaGuiOnceUponAFrame
 
struct  KarmaGuiTextFilter
 
struct  KarmaGuiTextFilter::ImGuiTextRange
 
struct  KarmaGuiTextBuffer
 
struct  KarmaGuiStorage
 
struct  KarmaGuiStorage::ImGuiStoragePair
 
struct  KarmaGuiListClipper
 
struct  KGColor
 
struct  KGDrawCmd
 
struct  KGDrawVert
 
struct  ImDrawCmdHeader
 
struct  KGDrawChannel
 
struct  KGDrawListSplitter
 
struct  KGDrawList
 Draw command list. More...
 
struct  KGDrawData
 
struct  KGFontConfig
 
struct  KGFontGlyph
 
struct  KGFontGlyphRangesBuilder
 
struct  KGFontAtlasCustomRect
 
struct  KGFontAtlas
 
struct  KGFont
 
struct  KarmaGuiViewport
 A Platform Window (always 1 unless multi-viewport are enabled. One per platform window to output to). In the future, may represent Platform Monitor. More...
 
struct  KarmaGuiPlatformIO
 
struct  KarmaGuiPlatformMonitor
 
struct  KarmaGuiPlatformImeData
 

Macros

#define KG_FMTARGS(FMT)
 
#define KG_FMTLIST(FMT)
 
#define KG_ARRAYSIZE(_ARR)
 
#define KG_UNUSED(_VAR)
 
#define KG_OFFSETOF(_TYPE, _MEMBER)
 
#define KARMAGUI_PAYLOAD_TYPE_COLOR_3F   "_COL3F"
 
#define KARMAGUI_PAYLOAD_TYPE_COLOR_4F   "_COL4F"
 
#define KG_ALLOC(_SIZE)
 
#define KG_FREE(_PTR)
 
#define KG_PLACEMENT_NEW(_PTR)
 
#define KG_NEW(_TYPE)
 
#define KG_UNICODE_CODEPOINT_INVALID   0xFFFD
 
#define KG_UNICODE_CODEPOINT_MAX   0xFFFF
 
#define KG_COL32_R_SHIFT   0
 
#define KG_COL32_G_SHIFT   8
 
#define KG_COL32_B_SHIFT   16
 
#define KG_COL32_A_SHIFT   24
 
#define KG_COL32_A_MASK   0xFF000000
 
#define KG_COL32(R, G, B, A)
 
#define KG_COL32_WHITE   KG_COL32(255,255,255,255)
 
#define KG_COL32_BLACK   KG_COL32(0,0,0,255)
 
#define KG_COL32_BLACK_TRANS   KG_COL32(0,0,0,0)
 
#define KG_DRAWLIST_TEX_LINES_WIDTH_MAX   (63)
 
#define KGDrawCallback_ResetRenderState   (KGDrawCallback)(-1)
 

Typedefs

typedef int KarmaGuiCol
 
typedef int KarmaGuiCond
 
typedef int KarmaGuiDataType
 
typedef int KarmaGuiDir
 
typedef int KarmaGuiMouseButton
 
typedef int KarmaGuiMouseCursor
 
typedef int KarmaGuiSortDirection
 
typedef int KarmaGuiStyleVar
 
typedef int KarmaGuiTableBgTarget
 
typedef int KGDrawFlags
 
typedef int KGDrawListFlags
 
typedef int KGFontAtlasFlags
 
typedef int KarmaGuiBackendFlags
 
typedef int KarmaGuiButtonFlags
 
typedef int KarmaGuiColorEditFlags
 
typedef int KarmaGuiConfigFlags
 
typedef int KarmaGuiComboFlags
 
typedef int KarmaGuiDockNodeFlags
 
typedef int KarmaGuiDragDropFlags
 
typedef int KarmaGuiFocusedFlags
 
typedef int KarmaGuiHoveredFlags
 
typedef int KarmaGuiInputFlags
 
typedef int KarmaGuiInputTextFlags
 
typedef int KarmaGuiKeyChord
 
typedef int KarmaGuiPopupFlags
 
typedef int KarmaGuiSelectableFlags
 
typedef int KarmaGuiSliderFlags
 
typedef int KarmaGuiTabBarFlags
 
typedef int KarmaGuiTabItemFlags
 
typedef int KarmaGuiTableFlags
 
typedef int KarmaGuiTableColumnFlags
 
typedef int KarmaGuiTableRowFlags
 
typedef int KarmaGuiTreeNodeFlags
 
typedef int KarmaGuiViewportFlags
 
typedef int KarmaGuiWindowFlags
 
typedef void * KGTextureID
 
typedef unsigned short KGDrawIdx
 
typedef unsigned int KGGuiID
 
typedef signed char KGS8
 
typedef unsigned char KGU8
 
typedef signed short KGS16
 
typedef unsigned short KGU16
 
typedef signed int KGS32
 
typedef unsigned int KGU32
 
typedef signed long long KGS64
 
typedef unsigned long long KGU64
 
typedef unsigned short KGWchar16
 
typedef KGWchar16 KGWchar
 
typedef int(* KarmaGuiInputTextCallback) (KarmaGuiInputTextCallbackData *data)
 
typedef void(* KarmaGuiSizeCallback) (KarmaGuiSizeCallbackData *data)
 
typedef void *(* KarmaGuiMemAllocFunc) (size_t sz, void *user_data)
 
typedef void(* KarmaGuiMemFreeFunc) (void *ptr, void *user_data)
 
typedef void(* KGDrawCallback) (const KGDrawList *parent_list, const KGDrawCmd *cmd)
 

Enumerations

enum  KGGuiWindowFlags_ {
  KGGuiWindowFlags_None = 0 , KGGuiWindowFlags_NoTitleBar = 1 << 0 , KGGuiWindowFlags_NoResize = 1 << 1 , KGGuiWindowFlags_NoMove = 1 << 2 ,
  KGGuiWindowFlags_NoScrollbar = 1 << 3 , KGGuiWindowFlags_NoScrollWithMouse = 1 << 4 , KGGuiWindowFlags_NoCollapse = 1 << 5 , KGGuiWindowFlags_AlwaysAutoResize = 1 << 6 ,
  KGGuiWindowFlags_NoBackground = 1 << 7 , KGGuiWindowFlags_NoSavedSettings = 1 << 8 , KGGuiWindowFlags_NoMouseInputs = 1 << 9 , KGGuiWindowFlags_MenuBar = 1 << 10 ,
  KGGuiWindowFlags_HorizontalScrollbar = 1 << 11 , KGGuiWindowFlags_NoFocusOnAppearing = 1 << 12 , KGGuiWindowFlags_NoBringToFrontOnFocus = 1 << 13 , KGGuiWindowFlags_AlwaysVerticalScrollbar = 1 << 14 ,
  KGGuiWindowFlags_AlwaysHorizontalScrollbar =1<< 15 , KGGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16 , KGGuiWindowFlags_NoNavInputs = 1 << 18 , KGGuiWindowFlags_NoNavFocus = 1 << 19 ,
  KGGuiWindowFlags_UnsavedDocument = 1 << 20 , KGGuiWindowFlags_NoDocking = 1 << 21 , KGGuiWindowFlags_NoNav = KGGuiWindowFlags_NoNavInputs | KGGuiWindowFlags_NoNavFocus , KGGuiWindowFlags_NoDecoration = KGGuiWindowFlags_NoTitleBar | KGGuiWindowFlags_NoResize | KGGuiWindowFlags_NoScrollbar | KGGuiWindowFlags_NoCollapse ,
  KGGuiWindowFlags_NoInputs = KGGuiWindowFlags_NoMouseInputs | KGGuiWindowFlags_NoNavInputs | KGGuiWindowFlags_NoNavFocus , KGGuiWindowFlags_NavFlattened = 1 << 23 , KGGuiWindowFlags_ChildWindow = 1 << 24 , KGGuiWindowFlags_Tooltip = 1 << 25 ,
  KGGuiWindowFlags_Popup = 1 << 26 , KGGuiWindowFlags_Modal = 1 << 27 , KGGuiWindowFlags_ChildMenu = 1 << 28 , KGGuiWindowFlags_DockNodeHost = 1 << 29
}
 
enum  KGGuiInputTextFlags_ {
  KGGuiInputTextFlags_None = 0 , KGGuiInputTextFlags_CharsDecimal = 1 << 0 , KGGuiInputTextFlags_CharsHexadecimal = 1 << 1 , KGGuiInputTextFlags_CharsUppercase = 1 << 2 ,
  KGGuiInputTextFlags_CharsNoBlank = 1 << 3 , KGGuiInputTextFlags_AutoSelectAll = 1 << 4 , KGGuiInputTextFlags_EnterReturnsTrue = 1 << 5 , KGGuiInputTextFlags_CallbackCompletion = 1 << 6 ,
  KGGuiInputTextFlags_CallbackHistory = 1 << 7 , KGGuiInputTextFlags_CallbackAlways = 1 << 8 , KGGuiInputTextFlags_CallbackCharFilter = 1 << 9 , KGGuiInputTextFlags_AllowTabInput = 1 << 10 ,
  KGGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11 , KGGuiInputTextFlags_NoHorizontalScroll = 1 << 12 , KGGuiInputTextFlags_AlwaysOverwrite = 1 << 13 , KGGuiInputTextFlags_ReadOnly = 1 << 14 ,
  KGGuiInputTextFlags_Password = 1 << 15 , KGGuiInputTextFlags_NoUndoRedo = 1 << 16 , KGGuiInputTextFlags_CharsScientific = 1 << 17 , KGGuiInputTextFlags_CallbackResize = 1 << 18 ,
  KGGuiInputTextFlags_CallbackEdit = 1 << 19 , KGGuiInputTextFlags_EscapeClearsAll = 1 << 20 , KGGuiInputTextFlags_AlwaysInsertMode = KGGuiInputTextFlags_AlwaysOverwrite
}
 
enum  KGGuiTreeNodeFlags_ {
  KGGuiTreeNodeFlags_None = 0 , KGGuiTreeNodeFlags_Selected = 1 << 0 , KGGuiTreeNodeFlags_Framed = 1 << 1 , KGGuiTreeNodeFlags_AllowItemOverlap = 1 << 2 ,
  KGGuiTreeNodeFlags_NoTreePushOnOpen = 1 << 3 , KGGuiTreeNodeFlags_NoAutoOpenOnLog = 1 << 4 , KGGuiTreeNodeFlags_DefaultOpen = 1 << 5 , KGGuiTreeNodeFlags_OpenOnDoubleClick = 1 << 6 ,
  KGGuiTreeNodeFlags_OpenOnArrow = 1 << 7 , KGGuiTreeNodeFlags_Leaf = 1 << 8 , KGGuiTreeNodeFlags_Bullet = 1 << 9 , KGGuiTreeNodeFlags_FramePadding = 1 << 10 ,
  KGGuiTreeNodeFlags_SpanAvailWidth = 1 << 11 , KGGuiTreeNodeFlags_SpanFullWidth = 1 << 12 , KGGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 13 , KGGuiTreeNodeFlags_CollapsingHeader = KGGuiTreeNodeFlags_Framed | KGGuiTreeNodeFlags_NoTreePushOnOpen | KGGuiTreeNodeFlags_NoAutoOpenOnLog
}
 
enum  KGGuiPopupFlags_ {
  KGGuiPopupFlags_None = 0 , KGGuiPopupFlags_MouseButtonLeft = 0 , KGGuiPopupFlags_MouseButtonRight = 1 , KGGuiPopupFlags_MouseButtonMiddle = 2 ,
  KGGuiPopupFlags_MouseButtonMask_ = 0x1F , KGGuiPopupFlags_MouseButtonDefault_ = 1 , KGGuiPopupFlags_NoOpenOverExistingPopup = 1 << 5 , KGGuiPopupFlags_NoOpenOverItems = 1 << 6 ,
  KGGuiPopupFlags_AnyPopupId = 1 << 7 , KGGuiPopupFlags_AnyPopupLevel = 1 << 8 , KGGuiPopupFlags_AnyPopup = KGGuiPopupFlags_AnyPopupId | KGGuiPopupFlags_AnyPopupLevel
}
 
enum  KGGuiSelectableFlags_ {
  KGGuiSelectableFlags_None = 0 , KGGuiSelectableFlags_DontClosePopups = 1 << 0 , KGGuiSelectableFlags_SpanAllColumns = 1 << 1 , KGGuiSelectableFlags_AllowDoubleClick = 1 << 2 ,
  KGGuiSelectableFlags_Disabled = 1 << 3 , KGGuiSelectableFlags_AllowItemOverlap = 1 << 4
}
 
enum  KGGuiComboFlags_ {
  KGGuiComboFlags_None = 0 , KGGuiComboFlags_PopupAlignLeft = 1 << 0 , KGGuiComboFlags_HeightSmall = 1 << 1 , KGGuiComboFlags_HeightRegular = 1 << 2 ,
  KGGuiComboFlags_HeightLarge = 1 << 3 , KGGuiComboFlags_HeightLargest = 1 << 4 , KGGuiComboFlags_NoArrowButton = 1 << 5 , KGGuiComboFlags_NoPreview = 1 << 6 ,
  KGGuiComboFlags_HeightMask_ = KGGuiComboFlags_HeightSmall | KGGuiComboFlags_HeightRegular | KGGuiComboFlags_HeightLarge | KGGuiComboFlags_HeightLargest
}
 
enum  KGGuiTabBarFlags_ {
  KGGuiTabBarFlags_None = 0 , KGGuiTabBarFlags_Reorderable = 1 << 0 , KGGuiTabBarFlags_AutoSelectNewTabs = 1 << 1 , KGGuiTabBarFlags_TabListPopupButton = 1 << 2 ,
  KGGuiTabBarFlags_NoCloseWithMiddleMouseButton = 1 << 3 , KGGuiTabBarFlags_NoTabListScrollingButtons = 1 << 4 , KGGuiTabBarFlags_NoTooltip = 1 << 5 , KGGuiTabBarFlags_FittingPolicyResizeDown = 1 << 6 ,
  KGGuiTabBarFlags_FittingPolicyScroll = 1 << 7 , KGGuiTabBarFlags_FittingPolicyMask_ = KGGuiTabBarFlags_FittingPolicyResizeDown | KGGuiTabBarFlags_FittingPolicyScroll , KGGuiTabBarFlags_FittingPolicyDefault_ = KGGuiTabBarFlags_FittingPolicyResizeDown
}
 
enum  KGGuiTabItemFlags_ {
  KGGuiTabItemFlags_None = 0 , KGGuiTabItemFlags_UnsavedDocument = 1 << 0 , KGGuiTabItemFlags_SetSelected = 1 << 1 , KGGuiTabItemFlags_NoCloseWithMiddleMouseButton = 1 << 2 ,
  KGGuiTabItemFlags_NoPushId = 1 << 3 , KGGuiTabItemFlags_NoTooltip = 1 << 4 , KGGuiTabItemFlags_NoReorder = 1 << 5 , KGGuiTabItemFlags_Leading = 1 << 6 ,
  KGGuiTabItemFlags_Trailing = 1 << 7
}
 
enum  KGGuiTableFlags_ {
  KGGuiTableFlags_None = 0 , KGGuiTableFlags_Resizable = 1 << 0 , KGGuiTableFlags_Reorderable = 1 << 1 , KGGuiTableFlags_Hideable = 1 << 2 ,
  KGGuiTableFlags_Sortable = 1 << 3 , KGGuiTableFlags_NoSavedSettings = 1 << 4 , KGGuiTableFlags_ContextMenuInBody = 1 << 5 , KGGuiTableFlags_RowBg = 1 << 6 ,
  KGGuiTableFlags_BordersInnerH = 1 << 7 , KGGuiTableFlags_BordersOuterH = 1 << 8 , KGGuiTableFlags_BordersInnerV = 1 << 9 , KGGuiTableFlags_BordersOuterV = 1 << 10 ,
  KGGuiTableFlags_BordersH = KGGuiTableFlags_BordersInnerH | KGGuiTableFlags_BordersOuterH , KGGuiTableFlags_BordersV = KGGuiTableFlags_BordersInnerV | KGGuiTableFlags_BordersOuterV , KGGuiTableFlags_BordersInner = KGGuiTableFlags_BordersInnerV | KGGuiTableFlags_BordersInnerH , KGGuiTableFlags_BordersOuter = KGGuiTableFlags_BordersOuterV | KGGuiTableFlags_BordersOuterH ,
  KGGuiTableFlags_Borders = KGGuiTableFlags_BordersInner | KGGuiTableFlags_BordersOuter , KGGuiTableFlags_NoBordersInBody = 1 << 11 , KGGuiTableFlags_NoBordersInBodyUntilResize = 1 << 12 , KGGuiTableFlags_SizingFixedFit = 1 << 13 ,
  KGGuiTableFlags_SizingFixedSame = 2 << 13 , KGGuiTableFlags_SizingStretchProp = 3 << 13 , KGGuiTableFlags_SizingStretchSame = 4 << 13 , KGGuiTableFlags_NoHostExtendX = 1 << 16 ,
  KGGuiTableFlags_NoHostExtendY = 1 << 17 , KGGuiTableFlags_NoKeepColumnsVisible = 1 << 18 , KGGuiTableFlags_PreciseWidths = 1 << 19 , KGGuiTableFlags_NoClip = 1 << 20 ,
  KGGuiTableFlags_PadOuterX = 1 << 21 , KGGuiTableFlags_NoPadOuterX = 1 << 22 , KGGuiTableFlags_NoPadInnerX = 1 << 23 , KGGuiTableFlags_ScrollX = 1 << 24 ,
  KGGuiTableFlags_ScrollY = 1 << 25 , KGGuiTableFlags_SortMulti = 1 << 26 , KGGuiTableFlags_SortTristate = 1 << 27 , KGGuiTableFlags_SizingMask_ = KGGuiTableFlags_SizingFixedFit | KGGuiTableFlags_SizingFixedSame | KGGuiTableFlags_SizingStretchProp | KGGuiTableFlags_SizingStretchSame
}
 
enum  KGGuiTableColumnFlags_ {
  KGGuiTableColumnFlags_None = 0 , KGGuiTableColumnFlags_Disabled = 1 << 0 , KGGuiTableColumnFlags_DefaultHide = 1 << 1 , KGGuiTableColumnFlags_DefaultSort = 1 << 2 ,
  KGGuiTableColumnFlags_WidthStretch = 1 << 3 , KGGuiTableColumnFlags_WidthFixed = 1 << 4 , KGGuiTableColumnFlags_NoResize = 1 << 5 , KGGuiTableColumnFlags_NoReorder = 1 << 6 ,
  KGGuiTableColumnFlags_NoHide = 1 << 7 , KGGuiTableColumnFlags_NoClip = 1 << 8 , KGGuiTableColumnFlags_NoSort = 1 << 9 , KGGuiTableColumnFlags_NoSortAscending = 1 << 10 ,
  KGGuiTableColumnFlags_NoSortDescending = 1 << 11 , KGGuiTableColumnFlags_NoHeaderLabel = 1 << 12 , KGGuiTableColumnFlags_NoHeaderWidth = 1 << 13 , KGGuiTableColumnFlags_PreferSortAscending = 1 << 14 ,
  KGGuiTableColumnFlags_PreferSortDescending = 1 << 15 , KGGuiTableColumnFlags_IndentEnable = 1 << 16 , KGGuiTableColumnFlags_IndentDisable = 1 << 17 , KGGuiTableColumnFlags_IsEnabled = 1 << 24 ,
  KGGuiTableColumnFlags_IsVisible = 1 << 25 , KGGuiTableColumnFlags_IsSorted = 1 << 26 , KGGuiTableColumnFlags_IsHovered = 1 << 27 , KGGuiTableColumnFlags_WidthMask_ = KGGuiTableColumnFlags_WidthStretch | KGGuiTableColumnFlags_WidthFixed ,
  KGGuiTableColumnFlags_IndentMask_ = KGGuiTableColumnFlags_IndentEnable | KGGuiTableColumnFlags_IndentDisable , KGGuiTableColumnFlags_StatusMask_ = KGGuiTableColumnFlags_IsEnabled | KGGuiTableColumnFlags_IsVisible | KGGuiTableColumnFlags_IsSorted | KGGuiTableColumnFlags_IsHovered , KGGuiTableColumnFlags_NoDirectResize_ = 1 << 30
}
 
enum  KGGuiTableRowFlags_ { KGGuiTableRowFlags_None = 0 , KGGuiTableRowFlags_Headers = 1 << 0 }
 
enum  KGGuiTableBgTarget_ { KGGuiTableBgTarget_None = 0 , KGGuiTableBgTarget_RowBg0 = 1 , KGGuiTableBgTarget_RowBg1 = 2 , KGGuiTableBgTarget_CellBg = 3 }
 
enum  KGGuiFocusedFlags_ {
  KGGuiFocusedFlags_None = 0 , KGGuiFocusedFlags_ChildWindows = 1 << 0 , KGGuiFocusedFlags_RootWindow = 1 << 1 , KGGuiFocusedFlags_AnyWindow = 1 << 2 ,
  KGGuiFocusedFlags_NoPopupHierarchy = 1 << 3 , KGGuiFocusedFlags_DockHierarchy = 1 << 4 , KGGuiFocusedFlags_RootAndChildWindows = KGGuiFocusedFlags_RootWindow | KGGuiFocusedFlags_ChildWindows
}
 
enum  KGGuiHoveredFlags_ {
  KGGuiHoveredFlags_None = 0 , KGGuiHoveredFlags_ChildWindows = 1 << 0 , KGGuiHoveredFlags_RootWindow = 1 << 1 , KGGuiHoveredFlags_AnyWindow = 1 << 2 ,
  KGGuiHoveredFlags_NoPopupHierarchy = 1 << 3 , KGGuiHoveredFlags_DockHierarchy = 1 << 4 , KGGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 5 , KGGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 7 ,
  KGGuiHoveredFlags_AllowWhenOverlapped = 1 << 8 , KGGuiHoveredFlags_AllowWhenDisabled = 1 << 9 , KGGuiHoveredFlags_NoNavOverride = 1 << 10 , KGGuiHoveredFlags_RectOnly = KGGuiHoveredFlags_AllowWhenBlockedByPopup | KGGuiHoveredFlags_AllowWhenBlockedByActiveItem | KGGuiHoveredFlags_AllowWhenOverlapped ,
  KGGuiHoveredFlags_RootAndChildWindows = KGGuiHoveredFlags_RootWindow | KGGuiHoveredFlags_ChildWindows , KGGuiHoveredFlags_DelayNormal = 1 << 11 , KGGuiHoveredFlags_DelayShort = 1 << 12 , KGGuiHoveredFlags_NoSharedDelay = 1 << 13
}
 
enum  KGGuiDockNodeFlags_ {
  KGGuiDockNodeFlags_None = 0 , KGGuiDockNodeFlags_KeepAliveOnly = 1 << 0 , KGGuiDockNodeFlags_NoDockingInCentralNode = 1 << 2 , KGGuiDockNodeFlags_PassthruCentralNode = 1 << 3 ,
  KGGuiDockNodeFlags_NoSplit = 1 << 4 , KGGuiDockNodeFlags_NoResize = 1 << 5 , KGGuiDockNodeFlags_AutoHideTabBar = 1 << 6
}
 
enum  KGGuiDragDropFlags_ {
  KGGuiDragDropFlags_None = 0 , KGGuiDragDropFlags_SourceNoPreviewTooltip = 1 << 0 , KGGuiDragDropFlags_SourceNoDisableHover = 1 << 1 , KGGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 << 2 ,
  KGGuiDragDropFlags_SourceAllowNullID = 1 << 3 , KGGuiDragDropFlags_SourceExtern = 1 << 4 , KGGuiDragDropFlags_SourceAutoExpirePayload = 1 << 5 , KGGuiDragDropFlags_AcceptBeforeDelivery = 1 << 10 ,
  KGGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 << 11 , KGGuiDragDropFlags_AcceptNoPreviewTooltip = 1 << 12 , KGGuiDragDropFlags_AcceptPeekOnly = KGGuiDragDropFlags_AcceptBeforeDelivery | KGGuiDragDropFlags_AcceptNoDrawDefaultRect
}
 
enum  KGGuiDataType_ {
  KGGuiDataType_S8 , KGGuiDataType_U8 , KGGuiDataType_S16 , KGGuiDataType_U16 ,
  KGGuiDataType_S32 , KGGuiDataType_U32 , KGGuiDataType_S64 , KGGuiDataType_U64 ,
  KGGuiDataType_Float , KGGuiDataType_Double , KGGuiDataType_COUNT
}
 
enum  KGGuiDir_ {
  KGGuiDir_None = -1 , KGGuiDir_Left = 0 , KGGuiDir_Right = 1 , KGGuiDir_Up = 2 ,
  KGGuiDir_Down = 3 , KGGuiDir_COUNT
}
 
enum  KGGuiSortDirection_ { KGGuiSortDirection_None = 0 , KGGuiSortDirection_Ascending = 1 , KGGuiSortDirection_Descending = 2 }
 
enum  KarmaGuiKey : int {
  KGGuiKey_None = 0 , KGGuiKey_Tab = 512 , KGGuiKey_LeftArrow , KGGuiKey_RightArrow ,
  KGGuiKey_UpArrow , KGGuiKey_DownArrow , KGGuiKey_PageUp , KGGuiKey_PageDown ,
  KGGuiKey_Home , KGGuiKey_End , KGGuiKey_Insert , KGGuiKey_Delete ,
  KGGuiKey_Backspace , KGGuiKey_Space , KGGuiKey_Enter , KGGuiKey_Escape ,
  KGGuiKey_LeftCtrl , KGGuiKey_LeftShift , KGGuiKey_LeftAlt , KGGuiKey_LeftSuper ,
  KGGuiKey_RightCtrl , KGGuiKey_RightShift , KGGuiKey_RightAlt , KGGuiKey_RightSuper ,
  KGGuiKey_Menu , KGGuiKey_0 , KGGuiKey_1 , KGGuiKey_2 ,
  KGGuiKey_3 , KGGuiKey_4 , KGGuiKey_5 , KGGuiKey_6 ,
  KGGuiKey_7 , KGGuiKey_8 , KGGuiKey_9 , KGGuiKey_A ,
  KGGuiKey_B , KGGuiKey_C , KGGuiKey_D , KGGuiKey_E ,
  KGGuiKey_F , KGGuiKey_G , KGGuiKey_H , KGGuiKey_I ,
  KGGuiKey_J , KGGuiKey_K , KGGuiKey_L , KGGuiKey_M ,
  KGGuiKey_N , KGGuiKey_O , KGGuiKey_P , KGGuiKey_Q ,
  KGGuiKey_R , KGGuiKey_S , KGGuiKey_T , KGGuiKey_U ,
  KGGuiKey_V , KGGuiKey_W , KGGuiKey_X , KGGuiKey_Y ,
  KGGuiKey_Z , KGGuiKey_F1 , KGGuiKey_F2 , KGGuiKey_F3 ,
  KGGuiKey_F4 , KGGuiKey_F5 , KGGuiKey_F6 , KGGuiKey_F7 ,
  KGGuiKey_F8 , KGGuiKey_F9 , KGGuiKey_F10 , KGGuiKey_F11 ,
  KGGuiKey_F12 , KGGuiKey_Apostrophe , KGGuiKey_Comma , KGGuiKey_Minus ,
  KGGuiKey_Period , KGGuiKey_Slash , KGGuiKey_Semicolon , KGGuiKey_Equal ,
  KGGuiKey_LeftBracket , KGGuiKey_Backslash , KGGuiKey_RightBracket , KGGuiKey_GraveAccent ,
  KGGuiKey_CapsLock , KGGuiKey_ScrollLock , KGGuiKey_NumLock , KGGuiKey_PrintScreen ,
  KGGuiKey_Pause , KGGuiKey_Keypad0 , KGGuiKey_Keypad1 , KGGuiKey_Keypad2 ,
  KGGuiKey_Keypad3 , KGGuiKey_Keypad4 , KGGuiKey_Keypad5 , KGGuiKey_Keypad6 ,
  KGGuiKey_Keypad7 , KGGuiKey_Keypad8 , KGGuiKey_Keypad9 , KGGuiKey_KeypadDecimal ,
  KGGuiKey_KeypadDivide , KGGuiKey_KeypadMultiply , KGGuiKey_KeypadSubtract , KGGuiKey_KeypadAdd ,
  KGGuiKey_KeypadEnter , KGGuiKey_KeypadEqual , KGGuiKey_GamepadStart , KGGuiKey_GamepadBack ,
  KGGuiKey_GamepadFaceLeft , KGGuiKey_GamepadFaceRight , KGGuiKey_GamepadFaceUp , KGGuiKey_GamepadFaceDown ,
  KGGuiKey_GamepadDpadLeft , KGGuiKey_GamepadDpadRight , KGGuiKey_GamepadDpadUp , KGGuiKey_GamepadDpadDown ,
  KGGuiKey_GamepadL1 , KGGuiKey_GamepadR1 , KGGuiKey_GamepadL2 , KGGuiKey_GamepadR2 ,
  KGGuiKey_GamepadL3 , KGGuiKey_GamepadR3 , KGGuiKey_GamepadLStickLeft , KGGuiKey_GamepadLStickRight ,
  KGGuiKey_GamepadLStickUp , KGGuiKey_GamepadLStickDown , KGGuiKey_GamepadRStickLeft , KGGuiKey_GamepadRStickRight ,
  KGGuiKey_GamepadRStickUp , KGGuiKey_GamepadRStickDown , KGGuiKey_MouseLeft , KGGuiKey_MouseRight ,
  KGGuiKey_MouseMiddle , KGGuiKey_MouseX1 , KGGuiKey_MouseX2 , KGGuiKey_MouseWheelX ,
  KGGuiKey_MouseWheelY , KGGuiKey_ReservedForModCtrl , KGGuiKey_ReservedForModShift , KGGuiKey_ReservedForModAlt ,
  KGGuiKey_ReservedForModSuper , KGGuiKey_COUNT , KGGuiMod_None = 0 , KGGuiMod_Ctrl = 1 << 12 ,
  KGGuiMod_Shift = 1 << 13 , KGGuiMod_Alt = 1 << 14 , KGGuiMod_Super = 1 << 15 , KGGuiMod_Shortcut = 1 << 11 ,
  KGGuiMod_Mask_ = 0xF800 , KGGuiKey_NamedKey_BEGIN = 512 , KGGuiKey_NamedKey_END = KGGuiKey_COUNT , KGGuiKey_NamedKey_COUNT = KGGuiKey_NamedKey_END - KGGuiKey_NamedKey_BEGIN ,
  KGGuiKey_KeysData_SIZE = KGGuiKey_COUNT , KGGuiKey_KeysData_OFFSET = 0 , KGGuiKey_ModCtrl = KGGuiMod_Ctrl , KGGuiKey_ModShift = KGGuiMod_Shift ,
  KGGuiKey_ModAlt = KGGuiMod_Alt , KGGuiKey_ModSuper = KGGuiMod_Super , KGGuiKey_KeyPadEnter = KGGuiKey_KeypadEnter
}
 
enum  KGGuiInputFlags_ {
  KGGuiInputFlags_None = 0 , KGGuiInputFlags_Repeat = 1 << 0 , KGGuiInputFlags_RouteFocused = 1 << 8 , KGGuiInputFlags_RouteGlobalLow = 1 << 9 ,
  KGGuiInputFlags_RouteGlobal = 1 << 10 , KGGuiInputFlags_RouteGlobalHigh = 1 << 11 , KGGuiInputFlags_RouteAlways = 1 << 12 , KGGuiInputFlags_RouteUnlessBgFocused = 1 << 13
}
 
enum  KGGuiNavInput {
  KGGuiNavInput_Activate , KGGuiNavInput_Cancel , KGGuiNavInput_Input , KGGuiNavInput_Menu ,
  KGGuiNavInput_DpadLeft , KGGuiNavInput_DpadRight , KGGuiNavInput_DpadUp , KGGuiNavInput_DpadDown ,
  KGGuiNavInput_LStickLeft , KGGuiNavInput_LStickRight , KGGuiNavInput_LStickUp , KGGuiNavInput_LStickDown ,
  KGGuiNavInput_FocusPrev , KGGuiNavInput_FocusNext , KGGuiNavInput_TweakSlow , KGGuiNavInput_TweakFast ,
  KGGuiNavInput_COUNT
}
 
enum  KGGuiConfigFlags_ {
  KGGuiConfigFlags_None = 0 , KGGuiConfigFlags_NavEnableKeyboard = 1 << 0 , KGGuiConfigFlags_NavEnableGamepad = 1 << 1 , KGGuiConfigFlags_NavEnableSetMousePos = 1 << 2 ,
  KGGuiConfigFlags_NavNoCaptureKeyboard = 1 << 3 , KGGuiConfigFlags_NoMouse = 1 << 4 , KGGuiConfigFlags_NoMouseCursorChange = 1 << 5 , KGGuiConfigFlags_DockingEnable = 1 << 6 ,
  KGGuiConfigFlags_ViewportsEnable = 1 << 10 , KGGuiConfigFlags_DpiEnableScaleViewports = 1 << 14 , KGGuiConfigFlags_DpiEnableScaleFonts = 1 << 15 , KGGuiConfigFlags_IsSRGB = 1 << 20 ,
  KGGuiConfigFlags_IsTouchScreen = 1 << 21
}
 
enum  KGGuiBackendFlags_ {
  KGGuiBackendFlags_None = 0 , KGGuiBackendFlags_HasGamepad = 1 << 0 , KGGuiBackendFlags_HasMouseCursors = 1 << 1 , KGGuiBackendFlags_HasSetMousePos = 1 << 2 ,
  KGGuiBackendFlags_RendererHasVtxOffset = 1 << 3 , KGGuiBackendFlags_PlatformHasViewports = 1 << 10 , KGGuiBackendFlags_HasMouseHoveredViewport =1 << 11 , KGGuiBackendFlags_RendererHasViewports = 1 << 12
}
 
enum  KGGuiCol_ {
  KGGuiCol_Text , KGGuiCol_TextDisabled , KGGuiCol_WindowBg , KGGuiCol_ChildBg ,
  KGGuiCol_PopupBg , KGGuiCol_Border , KGGuiCol_BorderShadow , KGGuiCol_FrameBg ,
  KGGuiCol_FrameBgHovered , KGGuiCol_FrameBgActive , KGGuiCol_TitleBg , KGGuiCol_TitleBgActive ,
  KGGuiCol_TitleBgCollapsed , KGGuiCol_MenuBarBg , KGGuiCol_ScrollbarBg , KGGuiCol_ScrollbarGrab ,
  KGGuiCol_ScrollbarGrabHovered , KGGuiCol_ScrollbarGrabActive , KGGuiCol_CheckMark , KGGuiCol_SliderGrab ,
  KGGuiCol_SliderGrabActive , KGGuiCol_Button , KGGuiCol_ButtonHovered , KGGuiCol_ButtonActive ,
  KGGuiCol_Header , KGGuiCol_HeaderHovered , KGGuiCol_HeaderActive , KGGuiCol_Separator ,
  KGGuiCol_SeparatorHovered , KGGuiCol_SeparatorActive , KGGuiCol_ResizeGrip , KGGuiCol_ResizeGripHovered ,
  KGGuiCol_ResizeGripActive , KGGuiCol_Tab , KGGuiCol_TabHovered , KGGuiCol_TabActive ,
  KGGuiCol_TabUnfocused , KGGuiCol_TabUnfocusedActive , KGGuiCol_DockingPreview , KGGuiCol_DockingEmptyBg ,
  KGGuiCol_PlotLines , KGGuiCol_PlotLinesHovered , KGGuiCol_PlotHistogram , KGGuiCol_PlotHistogramHovered ,
  KGGuiCol_TableHeaderBg , KGGuiCol_TableBorderStrong , KGGuiCol_TableBorderLight , KGGuiCol_TableRowBg ,
  KGGuiCol_TableRowBgAlt , KGGuiCol_TextSelectedBg , KGGuiCol_DragDropTarget , KGGuiCol_NavHighlight ,
  KGGuiCol_NavWindowingHighlight , KGGuiCol_NavWindowingDimBg , KGGuiCol_ModalWindowDimBg , KGGuiCol_COUNT
}
 
enum  KGGuiStyleVar_ {
  KGGuiStyleVar_Alpha , KGGuiStyleVar_DisabledAlpha , KGGuiStyleVar_WindowPadding , KGGuiStyleVar_WindowRounding ,
  KGGuiStyleVar_WindowBorderSize , KGGuiStyleVar_WindowMinSize , KGGuiStyleVar_WindowTitleAlign , KGGuiStyleVar_ChildRounding ,
  KGGuiStyleVar_ChildBorderSize , KGGuiStyleVar_PopupRounding , KGGuiStyleVar_PopupBorderSize , KGGuiStyleVar_FramePadding ,
  KGGuiStyleVar_FrameRounding , KGGuiStyleVar_FrameBorderSize , KGGuiStyleVar_ItemSpacing , KGGuiStyleVar_ItemInnerSpacing ,
  KGGuiStyleVar_IndentSpacing , KGGuiStyleVar_CellPadding , KGGuiStyleVar_ScrollbarSize , KGGuiStyleVar_ScrollbarRounding ,
  KGGuiStyleVar_GrabMinSize , KGGuiStyleVar_GrabRounding , KGGuiStyleVar_TabRounding , KGGuiStyleVar_ButtonTextAlign ,
  KGGuiStyleVar_SelectableTextAlign , KGGuiStyleVar_COUNT
}
 
enum  KGGuiButtonFlags_ {
  KGGuiButtonFlags_None = 0 , KGGuiButtonFlags_MouseButtonLeft = 1 << 0 , KGGuiButtonFlags_MouseButtonRight = 1 << 1 , KGGuiButtonFlags_MouseButtonMiddle = 1 << 2 ,
  KGGuiButtonFlags_MouseButtonMask_ = KGGuiButtonFlags_MouseButtonLeft | KGGuiButtonFlags_MouseButtonRight | KGGuiButtonFlags_MouseButtonMiddle , KGGuiButtonFlags_MouseButtonDefault_ = KGGuiButtonFlags_MouseButtonLeft
}
 
enum  KGGuiColorEditFlags_ {
  KGGuiColorEditFlags_None = 0 , KGGuiColorEditFlags_NoAlpha = 1 << 1 , KGGuiColorEditFlags_NoPicker = 1 << 2 , KGGuiColorEditFlags_NoOptions = 1 << 3 ,
  KGGuiColorEditFlags_NoSmallPreview = 1 << 4 , KGGuiColorEditFlags_NoInputs = 1 << 5 , KGGuiColorEditFlags_NoTooltip = 1 << 6 , KGGuiColorEditFlags_NoLabel = 1 << 7 ,
  KGGuiColorEditFlags_NoSidePreview = 1 << 8 , KGGuiColorEditFlags_NoDragDrop = 1 << 9 , KGGuiColorEditFlags_NoBorder = 1 << 10 , KGGuiColorEditFlags_AlphaBar = 1 << 16 ,
  KGGuiColorEditFlags_AlphaPreview = 1 << 17 , KGGuiColorEditFlags_AlphaPreviewHalf = 1 << 18 , KGGuiColorEditFlags_HDR = 1 << 19 , KGGuiColorEditFlags_DisplayRGB = 1 << 20 ,
  KGGuiColorEditFlags_DisplayHSV = 1 << 21 , KGGuiColorEditFlags_DisplayHex = 1 << 22 , KGGuiColorEditFlags_Uint8 = 1 << 23 , KGGuiColorEditFlags_Float = 1 << 24 ,
  KGGuiColorEditFlags_PickerHueBar = 1 << 25 , KGGuiColorEditFlags_PickerHueWheel = 1 << 26 , KGGuiColorEditFlags_InputRGB = 1 << 27 , KGGuiColorEditFlags_InputHSV = 1 << 28 ,
  KGGuiColorEditFlags_DefaultOptions_ = KGGuiColorEditFlags_Uint8 | KGGuiColorEditFlags_DisplayRGB | KGGuiColorEditFlags_InputRGB | KGGuiColorEditFlags_PickerHueBar , KGGuiColorEditFlags_DisplayMask_ = KGGuiColorEditFlags_DisplayRGB | KGGuiColorEditFlags_DisplayHSV | KGGuiColorEditFlags_DisplayHex , KGGuiColorEditFlags_DataTypeMask_ = KGGuiColorEditFlags_Uint8 | KGGuiColorEditFlags_Float , KGGuiColorEditFlags_PickerMask_ = KGGuiColorEditFlags_PickerHueWheel | KGGuiColorEditFlags_PickerHueBar ,
  KGGuiColorEditFlags_InputMask_ = KGGuiColorEditFlags_InputRGB | KGGuiColorEditFlags_InputHSV
}
 
enum  KGGuiSliderFlags_ {
  KGGuiSliderFlags_None = 0 , KGGuiSliderFlags_AlwaysClamp = 1 << 4 , KGGuiSliderFlags_Logarithmic = 1 << 5 , KGGuiSliderFlags_NoRoundToFormat = 1 << 6 ,
  KGGuiSliderFlags_NoInput = 1 << 7 , KGGuiSliderFlags_InvalidMask_ = 0x7000000F , KGGuiSliderFlags_ClampOnInput = KGGuiSliderFlags_AlwaysClamp
}
 
enum  KGGuiMouseButton_ { KGGuiMouseButton_Left = 0 , KGGuiMouseButton_Right = 1 , KGGuiMouseButton_Middle = 2 , KGGuiMouseButton_COUNT = 5 }
 
enum  KGGuiMouseCursor_ {
  KGGuiMouseCursor_None = -1 , KGGuiMouseCursor_Arrow = 0 , KGGuiMouseCursor_TextInput , KGGuiMouseCursor_ResizeAll ,
  KGGuiMouseCursor_ResizeNS , KGGuiMouseCursor_ResizeEW , KGGuiMouseCursor_ResizeNESW , KGGuiMouseCursor_ResizeNWSE ,
  KGGuiMouseCursor_Hand , KGGuiMouseCursor_NotAllowed , KGGuiMouseCursor_COUNT
}
 
enum  KGGuiCond_ {
  KGGuiCond_None = 0 , KGGuiCond_Always = 1 << 0 , KGGuiCond_Once = 1 << 1 , KGGuiCond_FirstUseEver = 1 << 2 ,
  KGGuiCond_Appearing = 1 << 3
}
 
enum  KGDrawFlags_ {
  KGDrawFlags_None = 0 , KGDrawFlags_Closed = 1 << 0 , KGDrawFlags_RoundCornersTopLeft = 1 << 4 , KGDrawFlags_RoundCornersTopRight = 1 << 5 ,
  KGDrawFlags_RoundCornersBottomLeft = 1 << 6 , KGDrawFlags_RoundCornersBottomRight = 1 << 7 , KGDrawFlags_RoundCornersNone = 1 << 8 , KGDrawFlags_RoundCornersTop = KGDrawFlags_RoundCornersTopLeft | KGDrawFlags_RoundCornersTopRight ,
  KGDrawFlags_RoundCornersBottom = KGDrawFlags_RoundCornersBottomLeft | KGDrawFlags_RoundCornersBottomRight , KGDrawFlags_RoundCornersLeft = KGDrawFlags_RoundCornersBottomLeft | KGDrawFlags_RoundCornersTopLeft , KGDrawFlags_RoundCornersRight = KGDrawFlags_RoundCornersBottomRight | KGDrawFlags_RoundCornersTopRight , KGDrawFlags_RoundCornersAll = KGDrawFlags_RoundCornersTopLeft | KGDrawFlags_RoundCornersTopRight | KGDrawFlags_RoundCornersBottomLeft | KGDrawFlags_RoundCornersBottomRight ,
  KGDrawFlags_RoundCornersDefault_ = KGDrawFlags_RoundCornersAll , KGDrawFlags_RoundCornersMask_ = KGDrawFlags_RoundCornersAll | KGDrawFlags_RoundCornersNone
}
 
enum  KGDrawListFlags_ {
  KGDrawListFlags_None = 0 , KGDrawListFlags_AntiAliasedLines = 1 << 0 , KGDrawListFlags_AntiAliasedLinesUseTex = 1 << 1 , KGDrawListFlags_AntiAliasedFill = 1 << 2 ,
  KGDrawListFlags_AllowVtxOffset = 1 << 3
}
 
enum  KGFontAtlasFlags_ { KGFontAtlasFlags_None = 0 , KGFontAtlasFlags_NoPowerOfTwoHeight = 1 << 0 , KGFontAtlasFlags_NoMouseCursors = 1 << 1 , KGFontAtlasFlags_NoBakedLines = 1 << 2 }
 
enum  KGGuiViewportFlags_ {
  KGGuiViewportFlags_None = 0 , KGGuiViewportFlags_IsPlatformWindow = 1 << 0 , KGGuiViewportFlags_IsPlatformMonitor = 1 << 1 , KGGuiViewportFlags_OwnedByApp = 1 << 2 ,
  KGGuiViewportFlags_NoDecoration = 1 << 3 , KGGuiViewportFlags_NoTaskBarIcon = 1 << 4 , KGGuiViewportFlags_NoFocusOnAppearing = 1 << 5 , KGGuiViewportFlags_NoFocusOnClick = 1 << 6 ,
  KGGuiViewportFlags_NoInputs = 1 << 7 , KGGuiViewportFlags_NoRendererClear = 1 << 8 , KGGuiViewportFlags_TopMost = 1 << 9 , KGGuiViewportFlags_Minimized = 1 << 10 ,
  KGGuiViewportFlags_NoAutoMerge = 1 << 11 , KGGuiViewportFlags_CanHostOtherWindows = 1 << 12
}
 

Functions

void * operator new (size_t, KGNewWrapper, void *ptr)
 
void operator delete (void *, KGNewWrapper, void *)
 
template<typename T>
void KG_DELETE (T *p)
 

Detailed Description

This file constains KarmaGui class. The chief class for our UI needs..

Author
Ravi Mohan (the_cowboy)
Version
1.0
Date
January 10, 2023

Macro Definition Documentation

◆ KG_ALLOC

#define KG_ALLOC ( _SIZE)
Value:
static void * MemAlloc(size_t size)
A legacy function brought from ImGui for UI relevant memory allocation.
Definition KarmaGui.cpp:3094

◆ KG_ARRAYSIZE

#define KG_ARRAYSIZE ( _ARR)
Value:
((int)(sizeof(_ARR) / sizeof(*(_ARR))))

◆ KG_COL32

#define KG_COL32 ( R,
G,
B,
A )
Value:
(((KGU32)(A)<<KG_COL32_A_SHIFT) | ((KGU32)(B)<<KG_COL32_B_SHIFT) | ((KGU32)(G)<<KG_COL32_G_SHIFT) | ((KGU32)(R)<<KG_COL32_R_SHIFT))

◆ KG_FREE

#define KG_FREE ( _PTR)
Value:
static void MemFree(void *ptr)
A legacy function brought from ImGui for UI relevant memory deallocation.
Definition KarmaGui.cpp:3102

◆ KG_NEW

#define KG_NEW ( _TYPE)
Value:
new(KGNewWrapper(), Karma::KarmaGui::MemAlloc(sizeof(_TYPE))) _TYPE
Definition KarmaGui.h:1785

◆ KG_OFFSETOF

#define KG_OFFSETOF ( _TYPE,
_MEMBER )
Value:
offsetof(_TYPE, _MEMBER)

◆ KG_PLACEMENT_NEW

#define KG_PLACEMENT_NEW ( _PTR)
Value:
new(KGNewWrapper(), _PTR)

◆ KG_UNUSED

#define KG_UNUSED ( _VAR)
Value:
((void)(_VAR))