package Ġimg ui Ċ Ċ import Ġglm _. b Ċ import Ġglm _. i Ċ import Ġimg ui . img ui .* Ċ Ċ /** Ġ----------------------------------------------------------------------------- Ċ Ġ* ĠĠĠĠĠ ĠContext Ċ Ġ* Ġ Ġ----------------------------------------------------------------------------- Ċ Ġ* Ċ Ġ* Ġ ĠCurrent Ġcontext Ġpointer . ĠImp licit ely Ġused Ġby Ġall ĠImGui Ġfunctions . ĠAlways Ġassumed Ġto Ġbe Ġ!= Ġnull . Ċ Ġ* Ġ Ġ:: create Context () Ġwill Ġautomatically Ġset Ġthis Ġpointer Ġif Ġit Ġis Ġnull . ĠChange Ġto Ġa Ġdifferent Ġcontext Ġby Ġcalling Ċ Ġ* Ġ Ġ:: setCurrent Context (). Ċ Ġ* Ġ ĠIf Ġyou Ġuse ĠDLL Ġhot re loading Ġyou Ġmight Ġneed Ġto Ġcall Ġ:: setCurrent Context () Ġafter Ġre loading Ġcode Ġfrom Ġthis Ġfile . Ċ Ġ* Ġ ĠImGui Ġfunctions Ġare Ġnot Ġthread - safe Ġbecause Ġof Ġthis Ġpointer . ĠIf Ġyou Ġwant Ġthread - safety Ġto Ġallow ĠN Ġthreads Ġto Ġaccess Ċ Ġ* Ġ ĠN Ġdifferent Ġcontexts , Ġyou Ġcan : Ċ Ġ* ĠĠĠĠĠ Ġ- ĠChange Ġthis Ġvariable Ġto Ġuse Ġthread Ġlocal Ġstorage . ĠYou Ġmay Ġ# define ĠG ImGui Ġin Ġim config . h Ġfor Ġthat Ġpurpose . Ċ Ġ* ĠĠĠĠĠĠĠĠĠ ĠFuture Ġdevelopment Ġaim Ġto Ġmake Ġthis Ġcontext Ġpointer Ġexplicit Ġto Ġall Ġcalls . Ċ Ġ* ĠĠĠĠĠĠĠĠĠ ĠAlso Ġread Ġhttps :// github . com / oc orn ut / img ui / issues / 5 8 6 Ċ Ġ* ĠĠĠĠĠ Ġ- ĠHaving Ġmultiple Ġinstances Ġof Ġthe ĠImGui Ġcode Ġcompiled Ġinside Ġdifferent Ġnamespace Ġ( e asi est / saf est , Ġif Ġyou Ġhave Ċ Ġ* ĠĠĠĠĠĠĠĠĠ Ġa Ġfinite Ġnumber Ġof Ġcontexts ) ĠĠĠ Ġ*/ Ċ val Ġg Ġget () Ġ= Ġg ImGui !! Ċ var Ġg ImGui : ĠContext ? Ġ= Ġnull Ċ Ċ // ĠHelpers Ġmacros Ġto Ġgenerate Ġ 3 2 - bits Ġencoded Ġcolors Ċ var ĠUSE _ BGR A _ PACK ED _ COLOR Ġ= Ġfalse Ċ Ċ val ĠCOL 3 2 _ R _ SHIFT Ġby Ġlazy Ġ{ Ġif Ġ( USE _ BGR A _ PACK ED _ COLOR ) Ġ 1 6 Ġelse Ġ 0 Ġ} Ċ val ĠCOL 3 2 _ G _ SHIFT Ġ= Ġ 8 Ċ val ĠCOL 3 2 _ B _ SHIFT Ġby Ġlazy Ġ{ Ġif Ġ( USE _ BGR A _ PACK ED _ COLOR ) Ġ 0 Ġelse Ġ 1 6 Ġ} Ċ val ĠCOL 3 2 _ A _ SHIFT Ġ= Ġ 2 4 Ċ val ĠCOL 3 2 _ A _ MASK Ġ= Ġ 0 xFF 0 0 0 0 0 0 . i Ċ Ċ fun ĠCOL 3 2 ( r : ĠInt , Ġg : ĠInt , Ġb : ĠInt , Ġa : ĠInt ) Ġ= Ġ( a Ġshl ĠCOL 3 2 _ A _ SHIFT ) Ġor Ġ( b Ġshl ĠCOL 3 2 _ B _ SHIFT ) Ġor Ġ( g Ġshl ĠCOL 3 2 _ G _ SHIFT ) Ġor Ġ( r Ġshl ĠCOL 3 2 _ R _ SHIFT ) Ċ val ĠCOL 3 2 _ WHITE Ġ= ĠCOL 3 2 ( 2 5 5 , Ġ 2 5 5 , Ġ 2 5 5 , Ġ 2 5 5 ) Ġ// ĠO pa que Ġwhite Ġ= Ġ 0 xFFFFFFFF Ċ val ĠCOL 3 2 _ BLACK Ġ= ĠCOL 3 2 ( 0 , Ġ 0 , Ġ 0 , Ġ 2 5 5 ) ĠĠĠĠĠĠ Ġ// ĠO pa que Ġblack Ċ val ĠCOL 3 2 _ BLACK _ TRANS Ġ= ĠCOL 3 2 ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĠĠ Ġ// ĠTr ansparent Ġblack Ġ= Ġ 0 x 0 0 0 0 0 0 0 0 Ċ Ċ val ĠMO USE _ INVALID Ġ= Ġ- 2 5 6 0 0 0 f Ċ Ċ val ĠIM GUI _ DEBUG _ NAV _ SC OR ING Ġ= Ġfalse Ċ val ĠIM GUI _ DEBUG _ NAV _ RECT S Ġ= Ġfalse Ċ Ċ object ĠImGui Ġ: ĊĊĠĠĠĠĠĠĠ Ġimg ui _ main , ĊĠĠĠĠĠĠĠ Ġimg ui _ demo Debug Inform ations , ĊĠĠĠĠĠĠĠ Ġimg ui _ window , ĊĠĠĠĠĠĠĠ Ġimg ui _ parameters Stack s , ĊĠĠĠĠĠĠĠ Ġimg ui _ cursor Layout , ĊĠĠĠĠĠĠĠ Ġimg ui _ col ums , ĊĠĠĠĠĠĠĠ Ġimg ui _ id Scopes , ĊĠĠĠĠĠĠĠ Ġimg ui _ widgets Text , ĊĠĠĠĠĠĠĠ Ġimg ui _ widgets Main , ĊĠĠĠĠĠĠĠ Ġimg ui _ widgets ComboBox , ĊĠĠĠĠĠĠĠ Ġimg ui _ widgets Drag , ĊĠĠĠĠĠĠĠ Ġimg ui _ widgets Input Keyboard , ĊĠĠĠĠĠĠĠ Ġimg ui _ widgets Sl iders , ĊĠĠĠĠĠĠĠ Ġimg ui _ widgets Color Editor Picker , ĊĠĠĠĠĠĠĠ Ġimg ui _ widgets Trees , ĊĠĠĠĠĠĠĠ Ġimg ui _ widgets Selectable Lists , ĊĠĠĠĠĠĠĠ Ġimg ui _ tooltip s , ĊĠĠĠĠĠĠĠ Ġimg ui _ menus , ĊĠĠĠĠĠĠĠ Ġimg ui _ pop ups , ĊĠĠĠĠĠĠĠ Ġimg ui _ logging , ĊĠĠĠĠĠĠĠ Ġimg ui _ drag And Drop , ĊĠĠĠĠĠĠĠ Ġimg ui _ cli pping , ĊĠĠĠĠĠĠĠ Ġimg ui _ styles , ĊĠĠĠĠĠĠĠ Ġimg ui _ focus Activation , ĊĠĠĠĠĠĠĠ Ġimg ui _ utilities , ĊĠĠĠĠĠĠĠ Ġimg ui _ inputs , ĊĠĠĠĠĠĠĠ Ġimg ui _ helpers , ĊĊĠĠĠĠĠĠĠ Ġimg ui _ internal Ġ{ ĊĊĠĠĠ Ġval Ġversion Ġ= Ġ" 1 . 6 0 ĠWIP " Ċ } Ċ Ċ var Ġptr Indices Ġ= Ġ 0 Ċ var Ġptr Id Ġ= ĠArray ( 5 1 2 , Ġ{ Ġjava . lang . Byte ( it . b ) Ġ}) Ċ Ċ // ĠTODO Ġget Ġrid Ġof Ġlocal Ġtop Ġvalue ĠK Mutable Property Ġin Ġfavor Ġof Ġthe Ġbetter Ġwith * {} Ġsolution Ċ Ċ type alias ĠSize Callback Ġ= Ġ( Size Callback Data ) Ġ-> ĠUnit Ċ Ċ // Ġdummy Ġmain Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ Ċ Ċ } Ċ Ċ val ĠN UL Ġ= Ġ'\ u 0 0 0 0 ' Ċ Ċ var ĠDEBUG Ġ= Ġtrue Ċ Ċ operator Ġfun ĠStringBuilder . plus Assign ( string : ĠString ) Ġ{ ĊĠĠĠ Ġappend ( string ) Ċ }