浏览代码

Sync with v1.90.9

Updated for Windows x64bit only - Will update the rest when I have time ^_^
Coldzer0 1 年之前
父节点
当前提交
848b83a6fb

+ 60 - 46
PasImGui_SDL2_OpenGL3_Demo/ImGui_SDL2_OpenGL3_Demo.dpr

@@ -15,6 +15,7 @@
 Program ImGui_SDL2_OpenGL3_Demo;
 Program ImGui_SDL2_OpenGL3_Demo;
 {$IFDEF FPC}
 {$IFDEF FPC}
   {$mode objfpc}{$H+}{$J-}
   {$mode objfpc}{$H+}{$J-}
+  {$Optimization FASTMATH}
 {$ENDIF}
 {$ENDIF}
 {$IfDef LINUX}
 {$IfDef LINUX}
   {$IfDef FPC}
   {$IfDef FPC}
@@ -53,7 +54,6 @@ Var
   ShowAnotherWindow: Boolean = False;
   ShowAnotherWindow: Boolean = False;
   ShowDemoWindow: Boolean = False;
   ShowDemoWindow: Boolean = False;
   ShowNodeWindow: Boolean = False;
   ShowNodeWindow: Boolean = False;
-  ShowImPlotDemo: Boolean = False;
   ShowImPlotPascalDemo: Boolean = False;
   ShowImPlotPascalDemo: Boolean = False;
   clearColor: ImVec4;
   clearColor: ImVec4;
 
 
@@ -194,7 +194,6 @@ Var
       ImGui.Text('This is some useful text');
       ImGui.Text('This is some useful text');
 
 
       ImGui.Checkbox('ImGui Demo', @showDemoWindow); ImGui.SameLine();
       ImGui.Checkbox('ImGui Demo', @showDemoWindow); ImGui.SameLine();
-      ImGui.Checkbox('ImPlot Demo', @ShowImPlotDemo);
       ImGui.Checkbox('ImPlot Pascal Demo', @ShowImPlotPascalDemo);
       ImGui.Checkbox('ImPlot Pascal Demo', @ShowImPlotPascalDemo);
       ImGui.Checkbox('Pascal Node Window', @showNodeWindow);
       ImGui.Checkbox('Pascal Node Window', @showNodeWindow);
       ImGui.Checkbox('Pascal Demo Window', @showPascalDemoWindow);
       ImGui.Checkbox('Pascal Demo Window', @showPascalDemoWindow);
@@ -212,9 +211,9 @@ Var
       ImGui.ColorEdit3('color_for_pops', @color_for_pops);
       ImGui.ColorEdit3('color_for_pops', @color_for_pops);
 
 
       //If (ImGui.Button('Apply')) Then
       //If (ImGui.Button('Apply')) Then
-      //begin
+      begin
          imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops);
          imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops);
-      //end;
+      end;
 
 
       ImGui.NewLine();
       ImGui.NewLine();
       ImGui.Separator();
       ImGui.Separator();
@@ -256,9 +255,60 @@ Var
     {$IFDEF FPC}cmem.Free(ptr);{$ELSE}FreeMem(ptr);{$ENDIF}
     {$IFDEF FPC}cmem.Free(ptr);{$ELSE}FreeMem(ptr);{$ENDIF}
   End;
   End;
 
 
-
   {$R *.res}
   {$R *.res}
 
 
+  procedure DrawGUI();
+  begin
+    // start imgui frame
+    ImGui_OpenGL3_NewFrame();
+    ImGui_ImplSDL2_NewFrame_Pas();
+    ImGui.NewFrame();
+
+    // Main UI Code
+    Begin
+      RenderPascalCode();
+      if showNodeWindow then
+        ShowExampleAppCustomNodeGraph(@showNodeWindow);
+      If showPascalDemoWindow Then
+        testwin.Show(showPascalDemoWindow);
+      if ShowImPlotPascalDemo then
+        ImPlotPascalDemoWindow();
+    End;
+
+    // render
+    ImGui.Render();
+    SDL_GL_MakeCurrent(window, gl_context);
+
+    glViewport(0, 0, Trunc(IO^.DisplaySize.x), Trunc(IO^.DisplaySize.y));
+    glClearColor(clearColor.x, clearColor.y, clearColor.z, clearColor.w);
+    glClear(GL_COLOR_BUFFER_BIT);
+    ImGui_OpenGL3_RenderDrawData(ImGui.GetDrawData());
+
+
+    // IMGUI_DOCK
+    If (IO^.ConfigFlags And ImGuiConfigFlags_ViewportsEnable) <> 0 Then
+    Begin
+      backup_current_window := SDL_GL_GetCurrentWindow();
+      backup_current_context := SDL_GL_GetCurrentContext();
+      ImGui.UpdatePlatformWindows();
+      ImGui.RenderPlatformWindowsDefault(nil, nil);
+      SDL_GL_MakeCurrent(backup_current_window, backup_current_context);
+    End;
+
+    //show frame on display
+    SDL_GL_SwapWindow(window);
+  end;
+
+  function window_redraw_on_resize(userdata: Pointer; e : PSDL_Event): Int32; cdecl;
+  begin
+    if (e^.type_ = SDL_WINDOWEVENT) and (e^.window.event = SDL_WINDOWEVENT_RESIZED) then
+    begin
+      glViewport(0, 0, e^.window.data1, e^.window.data2);
+      DrawGUI();
+    end;
+    Result := 1;
+  end;
+
 Begin
 Begin
   { TODO: This is here for testing - Remove this later :V }
   { TODO: This is here for testing - Remove this later :V }
   //DeleteFile('MyApp.ini');
   //DeleteFile('MyApp.ini');
@@ -303,6 +353,8 @@ Begin
   SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
   SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
   SDL_GetCurrentDisplayMode(0, @current);
   SDL_GetCurrentDisplayMode(0, @current);
 
 
+
+
   flags := SDL_WINDOW_OPENGL Or SDL_WINDOW_RESIZABLE Or SDL_WINDOW_ALLOW_HIGHDPI;
   flags := SDL_WINDOW_OPENGL Or SDL_WINDOW_RESIZABLE Or SDL_WINDOW_ALLOW_HIGHDPI;
   //flags := flags or SDL_WINDOW_FULLSCREEN_DESKTOP;
   //flags := flags or SDL_WINDOW_FULLSCREEN_DESKTOP;
 
 
@@ -377,6 +429,8 @@ Begin
   testwin := TTestWindow.Create;
   testwin := TTestWindow.Create;
   counter := 0;
   counter := 0;
   quit := False;
   quit := False;
+
+  SDL_SetEventFilter(@window_redraw_on_resize, nil);
   While Not quit Do
   While Not quit Do
   Begin
   Begin
     //handle input
     //handle input
@@ -390,47 +444,7 @@ Begin
         quit := True;
         quit := True;
     End;
     End;
 
 
-    // start imgui frame
-    ImGui_OpenGL3_NewFrame();
-    ImGui_ImplSDL2_NewFrame_Pas();
-    ImGui.NewFrame();
-
-    // Main UI Code
-    Begin
-      RenderPascalCode();
-      if showNodeWindow then
-        ShowExampleAppCustomNodeGraph(@showNodeWindow);
-      If showPascalDemoWindow Then
-        testwin.Show(showPascalDemoWindow);
-      if ShowImPlotDemo then
-        ImPlot_ShowDemoWindow(@ShowImPlotDemo);
-      if ShowImPlotPascalDemo then
-        ImPlotPascalDemoWindow();
-    End;
-
-    // render
-    ImGui.Render();
-    SDL_GL_MakeCurrent(window, gl_context);
-
-    glViewport(0, 0, Trunc(IO^.DisplaySize.x), Trunc(IO^.DisplaySize.y));
-    glClearColor(clearColor.x, clearColor.y, clearColor.z, clearColor.w);
-    glClear(GL_COLOR_BUFFER_BIT);
-    ImGui_OpenGL3_RenderDrawData(ImGui.GetDrawData());
-
-
-    // IMGUI_DOCK
-    If (IO^.ConfigFlags And ImGuiConfigFlags_ViewportsEnable) <> 0 Then
-    Begin
-      backup_current_window := SDL_GL_GetCurrentWindow();
-      backup_current_context := SDL_GL_GetCurrentContext();
-      ImGui.UpdatePlatformWindows();
-      ImGui.RenderPlatformWindowsDefault(nil, nil);
-      SDL_GL_MakeCurrent(backup_current_window, backup_current_context);
-    End;
-
-    //show frame on display
-    SDL_GL_SwapWindow(window);
-    //Assert(glGetError() = GL_NO_ERROR);
+    DrawGUI();
   End;
   End;
   testwin.Free;
   testwin.Free;
 
 

+ 25 - 20
PasImGui_SDL2_OpenGL3_Demo/ImGui_SDL2_OpenGL3_Demo.lpi

@@ -56,15 +56,11 @@
             <VerifyObjMethodCallValidity Value="True"/>
             <VerifyObjMethodCallValidity Value="True"/>
             <TargetCPU Value="i386"/>
             <TargetCPU Value="i386"/>
             <TargetOS Value="win32"/>
             <TargetOS Value="win32"/>
-            <Optimizations>
-              <OptimizationLevel Value="3"/>
-            </Optimizations>
           </CodeGeneration>
           </CodeGeneration>
           <Linking>
           <Linking>
             <Debugging>
             <Debugging>
               <DebugInfoType Value="dsDwarf3"/>
               <DebugInfoType Value="dsDwarf3"/>
               <UseHeaptrc Value="True"/>
               <UseHeaptrc Value="True"/>
-              <UseExternalDbgSyms Value="True"/>
             </Debugging>
             </Debugging>
           </Linking>
           </Linking>
         </CompilerOptions>
         </CompilerOptions>
@@ -96,6 +92,11 @@
               <RunWithoutDebug Value="True"/>
               <RunWithoutDebug Value="True"/>
             </Debugging>
             </Debugging>
             <LinkSmart Value="True"/>
             <LinkSmart Value="True"/>
+            <Options>
+              <Win32>
+                <GraphicApplication Value="True"/>
+              </Win32>
+            </Options>
           </Linking>
           </Linking>
         </CompilerOptions>
         </CompilerOptions>
       </Item3>
       </Item3>
@@ -151,6 +152,7 @@
           </SearchPaths>
           </SearchPaths>
           <CodeGeneration>
           <CodeGeneration>
             <SmartLinkUnit Value="True"/>
             <SmartLinkUnit Value="True"/>
+            <TargetProcessor Value="COREAVX2"/>
             <Optimizations>
             <Optimizations>
               <OptimizationLevel Value="3"/>
               <OptimizationLevel Value="3"/>
             </Optimizations>
             </Optimizations>
@@ -161,6 +163,11 @@
               <RunWithoutDebug Value="True"/>
               <RunWithoutDebug Value="True"/>
             </Debugging>
             </Debugging>
             <LinkSmart Value="True"/>
             <LinkSmart Value="True"/>
+            <Options>
+              <Win32>
+                <GraphicApplication Value="True"/>
+              </Win32>
+            </Options>
           </Linking>
           </Linking>
         </CompilerOptions>
         </CompilerOptions>
       </Item5>
       </Item5>
@@ -194,9 +201,11 @@
           </Linking>
           </Linking>
         </CompilerOptions>
         </CompilerOptions>
       </Item6>
       </Item6>
-      <SharedMatrixOptions Count="2">
+      <SharedMatrixOptions Count="4">
         <Item1 ID="825586496411" Value="-Xm"/>
         <Item1 ID="825586496411" Value="-Xm"/>
-        <Item2 ID="511072737543" Modes="Debug_windows_32" Value="-WN -Cg"/>
+        <Item2 ID="187403506791" Modes="Release_windows_64,Release_linux_64,Release_windows_32" Value="-CfAVX -CpCOREAVX -OpCOREAVX"/>
+        <Item3 ID="940053534749" Value="-FWtwpo4-1.wpo -OWall"/>
+        <Item4 ID="883228556756" Modes="Release_windows_64,Debug_windows_64,Release_windows_32,Release_linux_64,Debug_windows_32" Value="-dSDL2"/>
       </SharedMatrixOptions>
       </SharedMatrixOptions>
     </BuildModes>
     </BuildModes>
     <PublishOptions>
     <PublishOptions>
@@ -208,7 +217,7 @@
         <Mode0 Name="default"/>
         <Mode0 Name="default"/>
       </Modes>
       </Modes>
     </RunParams>
     </RunParams>
-    <Units Count="12">
+    <Units Count="11">
       <Unit0>
       <Unit0>
         <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
         <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
@@ -222,42 +231,38 @@
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
       </Unit2>
       </Unit2>
       <Unit3>
       <Unit3>
-        <Filename Value="..\src\PasImGui.Apis.pas"/>
+        <Filename Value="..\impl\PasImGui.Backend.SDL2.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
       </Unit3>
       </Unit3>
       <Unit4>
       <Unit4>
-        <Filename Value="..\impl\PasImGui.Backend.SDL2.pas"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
       </Unit4>
       </Unit4>
       <Unit5>
       <Unit5>
-        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Filename Value="..\impl\glad_gl.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
       </Unit5>
       </Unit5>
       <Unit6>
       <Unit6>
-        <Filename Value="..\impl\glad_gl.pas"/>
+        <Filename Value="..\impl\glfw.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
       </Unit6>
       </Unit6>
       <Unit7>
       <Unit7>
-        <Filename Value="..\impl\glfw.pas"/>
+        <Filename Value="..\examples\CustomNodeGraph.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
       </Unit7>
       </Unit7>
       <Unit8>
       <Unit8>
-        <Filename Value="..\examples\CustomNodeGraph.pas"/>
+        <Filename Value="..\examples\testwindow.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
+        <UnitName Value="TestWindow"/>
       </Unit8>
       </Unit8>
       <Unit9>
       <Unit9>
-        <Filename Value="..\examples\testwindow.pas"/>
+        <Filename Value="..\src\PasImGui.Utils.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
-        <UnitName Value="TestWindow"/>
       </Unit9>
       </Unit9>
       <Unit10>
       <Unit10>
-        <Filename Value="..\src\PasImGui.Utils.pas"/>
-        <IsPartOfProject Value="True"/>
-      </Unit10>
-      <Unit11>
         <Filename Value="..\src\PasImGui.ImPlot.pas"/>
         <Filename Value="..\src\PasImGui.ImPlot.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
-      </Unit11>
+      </Unit10>
     </Units>
     </Units>
   </ProjectOptions>
   </ProjectOptions>
   <CompilerOptions>
   <CompilerOptions>

+ 307 - 262
PasImGui_SDL2_OpenGL3_Demo/ImGui_SDL2_OpenGL3_Demo.lps

@@ -10,8 +10,8 @@
         <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
         <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
         <IsVisibleTab Value="True"/>
         <IsVisibleTab Value="True"/>
-        <TopLine Value="392"/>
-        <CursorPos Y="421"/>
+        <TopLine Value="427"/>
+        <CursorPos X="114" Y="205"/>
         <UsageCount Value="200"/>
         <UsageCount Value="200"/>
         <Loaded Value="True"/>
         <Loaded Value="True"/>
       </Unit0>
       </Unit0>
@@ -19,7 +19,8 @@
         <Filename Value="..\OpenGL3\OpenGl3.Loader.pas"/>
         <Filename Value="..\OpenGL3\OpenGl3.Loader.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="2" Y="13"/>
+        <TopLine Value="12"/>
+        <CursorPos X="81" Y="33"/>
         <UsageCount Value="204"/>
         <UsageCount Value="204"/>
       </Unit1>
       </Unit1>
       <Unit2>
       <Unit2>
@@ -27,79 +28,82 @@
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="85"/>
         <TopLine Value="85"/>
-        <UsageCount Value="111"/>
+        <UsageCount Value="201"/>
       </Unit2>
       </Unit2>
       <Unit3>
       <Unit3>
-        <Filename Value="..\src\PasImGui.Apis.pas"/>
+        <Filename Value="..\impl\PasImGui.Backend.SDL2.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="14" Y="8"/>
-        <UsageCount Value="111"/>
+        <TopLine Value="1108"/>
+        <CursorPos X="31" Y="572"/>
+        <UsageCount Value="201"/>
       </Unit3>
       </Unit3>
       <Unit4>
       <Unit4>
-        <Filename Value="..\impl\PasImGui.Backend.SDL2.pas"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
-        <EditorIndex Value="-1"/>
-        <TopLine Value="121"/>
-        <CursorPos X="40" Y="124"/>
-        <UsageCount Value="111"/>
+        <EditorIndex Value="1"/>
+        <TopLine Value="668"/>
+        <CursorPos Y="681"/>
+        <UsageCount Value="205"/>
+        <Loaded Value="True"/>
       </Unit4>
       </Unit4>
       <Unit5>
       <Unit5>
-        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
-        <IsPartOfProject Value="True"/>
-        <EditorIndex Value="-1"/>
-        <TopLine Value="689"/>
-        <CursorPos X="27" Y="703"/>
-        <UsageCount Value="115"/>
-      </Unit5>
-      <Unit6>
         <Filename Value="..\impl\glad_gl.pas"/>
         <Filename Value="..\impl\glad_gl.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="2456"/>
         <TopLine Value="2456"/>
         <CursorPos X="56" Y="2472"/>
         <CursorPos X="56" Y="2472"/>
-        <UsageCount Value="111"/>
-      </Unit6>
-      <Unit7>
+        <UsageCount Value="201"/>
+      </Unit5>
+      <Unit6>
         <Filename Value="..\impl\glfw.pas"/>
         <Filename Value="..\impl\glfw.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <WindowIndex Value="-1"/>
         <WindowIndex Value="-1"/>
         <TopLine Value="-1"/>
         <TopLine Value="-1"/>
         <CursorPos X="-1" Y="-1"/>
         <CursorPos X="-1" Y="-1"/>
-        <UsageCount Value="111"/>
-      </Unit7>
-      <Unit8>
+        <UsageCount Value="201"/>
+      </Unit6>
+      <Unit7>
         <Filename Value="..\examples\CustomNodeGraph.pas"/>
         <Filename Value="..\examples\CustomNodeGraph.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
-        <EditorIndex Value="1"/>
-        <UsageCount Value="74"/>
+        <EditorIndex Value="6"/>
+        <TopLine Value="138"/>
+        <CursorPos X="40" Y="152"/>
+        <UsageCount Value="201"/>
         <Loaded Value="True"/>
         <Loaded Value="True"/>
-      </Unit8>
-      <Unit9>
+      </Unit7>
+      <Unit8>
         <Filename Value="..\examples\testwindow.pas"/>
         <Filename Value="..\examples\testwindow.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
         <UnitName Value="TestWindow"/>
         <UnitName Value="TestWindow"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="16"/>
-        <CursorPos X="12" Y="37"/>
-        <UsageCount Value="74"/>
+        <TopLine Value="308"/>
+        <CursorPos X="72" Y="205"/>
+        <UsageCount Value="201"/>
+      </Unit8>
+      <Unit9>
+        <Filename Value="..\src\PasImGui.Utils.pas"/>
+        <IsPartOfProject Value="True"/>
+        <EditorIndex Value="2"/>
+        <TopLine Value="64"/>
+        <CursorPos Y="84"/>
+        <UsageCount Value="201"/>
+        <Loaded Value="True"/>
       </Unit9>
       </Unit9>
       <Unit10>
       <Unit10>
-        <Filename Value="..\src\PasImGui.Utils.pas"/>
+        <Filename Value="..\src\PasImGui.ImPlot.pas"/>
         <IsPartOfProject Value="True"/>
         <IsPartOfProject Value="True"/>
-        <EditorIndex Value="-1"/>
-        <TopLine Value="61"/>
-        <CursorPos Y="63"/>
-        <UsageCount Value="74"/>
+        <EditorIndex Value="3"/>
+        <TopLine Value="49"/>
+        <UsageCount Value="197"/>
+        <Loaded Value="True"/>
       </Unit10>
       </Unit10>
       <Unit11>
       <Unit11>
-        <Filename Value="..\src\PasImGui.ImPlot.pas"/>
-        <IsPartOfProject Value="True"/>
+        <Filename Value="..\src\PasImGui.Apis.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="9"/>
-        <CursorPos X="31" Y="25"/>
-        <UsageCount Value="49"/>
+        <CursorPos X="14" Y="8"/>
+        <UsageCount Value="195"/>
       </Unit11>
       </Unit11>
       <Unit12>
       <Unit12>
         <Filename Value="testwindow.pas"/>
         <Filename Value="testwindow.pas"/>
@@ -107,40 +111,40 @@
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="119"/>
         <TopLine Value="119"/>
         <CursorPos X="92" Y="135"/>
         <CursorPos X="92" Y="135"/>
-        <UsageCount Value="196"/>
+        <UsageCount Value="181"/>
       </Unit12>
       </Unit12>
       <Unit13>
       <Unit13>
         <Filename Value="imgui_extra.pas"/>
         <Filename Value="imgui_extra.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="23"/>
         <TopLine Value="23"/>
         <CursorPos X="30" Y="51"/>
         <CursorPos X="30" Y="51"/>
-        <UsageCount Value="196"/>
+        <UsageCount Value="181"/>
       </Unit13>
       </Unit13>
       <Unit14>
       <Unit14>
         <Filename Value="CustomNodeGraph.pas"/>
         <Filename Value="CustomNodeGraph.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="295"/>
         <TopLine Value="295"/>
         <CursorPos X="23" Y="307"/>
         <CursorPos X="23" Y="307"/>
-        <UsageCount Value="104"/>
+        <UsageCount Value="89"/>
       </Unit14>
       </Unit14>
       <Unit15>
       <Unit15>
         <Filename Value="glad_gl.pas"/>
         <Filename Value="glad_gl.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <CursorPos X="29" Y="4"/>
         <CursorPos X="29" Y="4"/>
-        <UsageCount Value="192"/>
+        <UsageCount Value="177"/>
       </Unit15>
       </Unit15>
       <Unit16>
       <Unit16>
         <Filename Value="..\impl\PasImGui.OpenGL3.pas"/>
         <Filename Value="..\impl\PasImGui.OpenGL3.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <CursorPos X="26"/>
         <CursorPos X="26"/>
-        <UsageCount Value="43"/>
+        <UsageCount Value="28"/>
       </Unit16>
       </Unit16>
       <Unit17>
       <Unit17>
         <Filename Value="display.pas"/>
         <Filename Value="display.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="135"/>
         <TopLine Value="135"/>
         <CursorPos X="10" Y="143"/>
         <CursorPos X="10" Y="143"/>
-        <UsageCount Value="181"/>
+        <UsageCount Value="166"/>
       </Unit17>
       </Unit17>
       <Unit18>
       <Unit18>
         <Filename Value="sdl2.pas"/>
         <Filename Value="sdl2.pas"/>
@@ -148,460 +152,501 @@
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="9926"/>
         <TopLine Value="9926"/>
         <CursorPos X="30" Y="9944"/>
         <CursorPos X="30" Y="9944"/>
-        <UsageCount Value="181"/>
+        <UsageCount Value="166"/>
       </Unit18>
       </Unit18>
       <Unit19>
       <Unit19>
         <Filename Value="..\fpimgui.pas"/>
         <Filename Value="..\fpimgui.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <CursorPos X="16" Y="6"/>
         <CursorPos X="16" Y="6"/>
-        <UsageCount Value="181"/>
+        <UsageCount Value="166"/>
       </Unit19>
       </Unit19>
       <Unit20>
       <Unit20>
         <Filename Value="..\examples\fpimgui_impl_sdlgl2.pas"/>
         <Filename Value="..\examples\fpimgui_impl_sdlgl2.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <UsageCount Value="181"/>
+        <UsageCount Value="166"/>
       </Unit20>
       </Unit20>
       <Unit21>
       <Unit21>
         <Filename Value="..\ImGui.Types.pas"/>
         <Filename Value="..\ImGui.Types.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="518"/>
         <TopLine Value="518"/>
         <CursorPos X="23" Y="535"/>
         <CursorPos X="23" Y="535"/>
-        <UsageCount Value="181"/>
+        <UsageCount Value="166"/>
       </Unit21>
       </Unit21>
       <Unit22>
       <Unit22>
         <Filename Value="ImGui.Enums.pas"/>
         <Filename Value="ImGui.Enums.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <UsageCount Value="183"/>
+        <UsageCount Value="168"/>
       </Unit22>
       </Unit22>
       <Unit23>
       <Unit23>
         <Filename Value="..\impl\PasImGui.Impl.SDL2.pas"/>
         <Filename Value="..\impl\PasImGui.Impl.SDL2.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <CursorPos X="27" Y="16"/>
         <CursorPos X="27" Y="16"/>
-        <UsageCount Value="181"/>
+        <UsageCount Value="166"/>
       </Unit23>
       </Unit23>
       <Unit24>
       <Unit24>
         <Filename Value="..\impl\PasImGui.Impl.OpenGL3.pas"/>
         <Filename Value="..\impl\PasImGui.Impl.OpenGL3.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="36"/>
         <TopLine Value="36"/>
         <CursorPos X="56" Y="45"/>
         <CursorPos X="56" Y="45"/>
-        <UsageCount Value="181"/>
+        <UsageCount Value="166"/>
       </Unit24>
       </Unit24>
       <Unit25>
       <Unit25>
         <Filename Value="..\PasImGui.Gen.Types.pas"/>
         <Filename Value="..\PasImGui.Gen.Types.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="163"/>
         <TopLine Value="163"/>
         <CursorPos Y="177"/>
         <CursorPos Y="177"/>
-        <UsageCount Value="186"/>
+        <UsageCount Value="171"/>
       </Unit25>
       </Unit25>
       <Unit26>
       <Unit26>
         <Filename Value="..\PasImGui.SDL2.pas"/>
         <Filename Value="..\PasImGui.SDL2.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="114"/>
         <TopLine Value="114"/>
         <CursorPos X="52" Y="143"/>
         <CursorPos X="52" Y="143"/>
-        <UsageCount Value="147"/>
+        <UsageCount Value="132"/>
       </Unit26>
       </Unit26>
       <Unit27>
       <Unit27>
         <Filename Value="..\PasImGui.Apis.pas"/>
         <Filename Value="..\PasImGui.Apis.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="106"/>
         <TopLine Value="106"/>
         <CursorPos X="31" Y="122"/>
         <CursorPos X="31" Y="122"/>
-        <UsageCount Value="89"/>
+        <UsageCount Value="74"/>
       </Unit27>
       </Unit27>
       <Unit28>
       <Unit28>
         <Filename Value="..\PasImGui.Types.pas"/>
         <Filename Value="..\PasImGui.Types.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="30"/>
         <TopLine Value="30"/>
         <CursorPos X="24" Y="40"/>
         <CursorPos X="24" Y="40"/>
-        <UsageCount Value="88"/>
+        <UsageCount Value="73"/>
       </Unit28>
       </Unit28>
       <Unit29>
       <Unit29>
         <Filename Value="..\PasImGui.Enums.pas"/>
         <Filename Value="..\PasImGui.Enums.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="703"/>
         <TopLine Value="703"/>
         <CursorPos X="40" Y="729"/>
         <CursorPos X="40" Y="729"/>
-        <UsageCount Value="83"/>
+        <UsageCount Value="68"/>
       </Unit29>
       </Unit29>
       <Unit30>
       <Unit30>
         <Filename Value="..\PasImGui.pas"/>
         <Filename Value="..\PasImGui.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="42"/>
         <TopLine Value="42"/>
         <CursorPos X="20" Y="58"/>
         <CursorPos X="20" Y="58"/>
-        <UsageCount Value="81"/>
+        <UsageCount Value="66"/>
       </Unit30>
       </Unit30>
       <Unit31>
       <Unit31>
         <Filename Value="..\..\PasGen\PasImGui.Apis.pas"/>
         <Filename Value="..\..\PasGen\PasImGui.Apis.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
         <TopLine Value="20"/>
         <TopLine Value="20"/>
         <CursorPos X="32" Y="24"/>
         <CursorPos X="32" Y="24"/>
-        <UsageCount Value="10"/>
+        <UsageCount Value="5"/>
       </Unit31>
       </Unit31>
       <Unit32>
       <Unit32>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\win\wininc\base.inc"/>
+        <Filename Value="F:\FPCross\fpcsrc\rtl\win\wininc\defines.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="135"/>
-        <CursorPos X="6" Y="150"/>
-        <UsageCount Value="7"/>
+        <TopLine Value="3011"/>
+        <CursorPos X="6" Y="3021"/>
+        <UsageCount Value="5"/>
       </Unit32>
       </Unit32>
       <Unit33>
       <Unit33>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\systemh.inc"/>
+        <Filename Value="..\SDL2-for-Pascal\units\sdlversion.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="1754"/>
-        <CursorPos X="11" Y="1769"/>
-        <UsageCount Value="11"/>
+        <TopLine Value="20"/>
+        <CursorPos X="3" Y="34"/>
+        <UsageCount Value="1"/>
       </Unit33>
       </Unit33>
       <Unit34>
       <Unit34>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\win\wininc\defines.inc"/>
+        <Filename Value="..\SDL2-for-Pascal\units\sdlerror.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="3011"/>
-        <CursorPos X="6" Y="3021"/>
-        <UsageCount Value="10"/>
+        <CursorPos X="10" Y="30"/>
+        <UsageCount Value="5"/>
       </Unit34>
       </Unit34>
       <Unit35>
       <Unit35>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\resh.inc"/>
+        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\currh.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="48"/>
-        <CursorPos X="10" Y="64"/>
-        <UsageCount Value="4"/>
+        <CursorPos X="14" Y="17"/>
+        <UsageCount Value="7"/>
       </Unit35>
       </Unit35>
       <Unit36>
       <Unit36>
-        <Filename Value="..\SDL2-for-Pascal\units\sdlkeycode.inc"/>
+        <Filename Value="..\impl\CImGui.Impl.OpenGL3.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="17"/>
-        <CursorPos X="37" Y="37"/>
+        <TopLine Value="28"/>
+        <CursorPos X="33" Y="37"/>
         <UsageCount Value="5"/>
         <UsageCount Value="5"/>
       </Unit36>
       </Unit36>
       <Unit37>
       <Unit37>
-        <Filename Value="..\SDL2-for-Pascal\units\sdlsyswm.inc"/>
+        <Filename Value="..\src\PasImGui.Types.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="224"/>
-        <CursorPos X="4" Y="240"/>
-        <UsageCount Value="7"/>
+        <TopLine Value="2652"/>
+        <CursorPos Y="2654"/>
+        <UsageCount Value="16"/>
       </Unit37>
       </Unit37>
       <Unit38>
       <Unit38>
-        <Filename Value="..\SDL2-for-Pascal\units\sdlversion.inc"/>
+        <Filename Value="..\src\PasImGui.Enums.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="20"/>
-        <CursorPos X="3" Y="34"/>
-        <UsageCount Value="6"/>
+        <CursorPos Y="18"/>
+        <UsageCount Value="4"/>
       </Unit38>
       </Unit38>
       <Unit39>
       <Unit39>
-        <Filename Value="..\SDL2-for-Pascal\units\sdlerror.inc"/>
-        <EditorIndex Value="-1"/>
-        <CursorPos X="10" Y="30"/>
-        <UsageCount Value="10"/>
+        <Filename Value="..\src\PasImGui.pas"/>
+        <EditorIndex Value="4"/>
+        <TopLine Value="1252"/>
+        <CursorPos X="48" Y="1260"/>
+        <UsageCount Value="94"/>
+        <Loaded Value="True"/>
       </Unit39>
       </Unit39>
       <Unit40>
       <Unit40>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\currh.inc"/>
+        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\heaph.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="14" Y="22"/>
-        <UsageCount Value="10"/>
+        <TopLine Value="66"/>
+        <CursorPos X="10" Y="104"/>
+        <UsageCount Value="5"/>
       </Unit40>
       </Unit40>
       <Unit41>
       <Unit41>
-        <Filename Value="..\impl\CImGui.Impl.OpenGL3.pas"/>
+        <Filename Value="..\SDL2-for-Pascal\units\sdlstdinc.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="28"/>
-        <CursorPos X="33" Y="37"/>
-        <UsageCount Value="10"/>
+        <TopLine Value="65"/>
+        <CursorPos X="52" Y="79"/>
+        <UsageCount Value="5"/>
       </Unit41>
       </Unit41>
       <Unit42>
       <Unit42>
-        <Filename Value="..\impl\PasImGui.SDL2.pas"/>
+        <Filename Value="..\SDL2-for-Pascal\units\sdlrwops.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="2"/>
-        <CursorPos X="68" Y="15"/>
-        <FoldState Value=" T3lB0I01722 PiQkO0%"/>
+        <TopLine Value="123"/>
+        <CursorPos X="9" Y="136"/>
         <UsageCount Value="5"/>
         <UsageCount Value="5"/>
       </Unit42>
       </Unit42>
       <Unit43>
       <Unit43>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\dynlibs.pas"/>
+        <Filename Value="..\impl\PasImGui.Backend.OpenGL3.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="17"/>
-        <CursorPos X="3" Y="30"/>
+        <TopLine Value="40"/>
+        <CursorPos X="58" Y="55"/>
         <UsageCount Value="5"/>
         <UsageCount Value="5"/>
       </Unit43>
       </Unit43>
       <Unit44>
       <Unit44>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\unix\sysdlh.inc"/>
+        <Filename Value="..\impl\gles20.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="3" Y="28"/>
+        <TopLine Value="46"/>
+        <CursorPos X="64" Y="59"/>
         <UsageCount Value="5"/>
         <UsageCount Value="5"/>
       </Unit44>
       </Unit44>
       <Unit45>
       <Unit45>
-        <Filename Value="..\src\PasImGui.Types.pas"/>
+        <Filename Value="F:\FPCross\fpcsrc\packages\opengles\namespaced\Api.OpenGL.Gles20.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="2652"/>
-        <CursorPos Y="2654"/>
-        <UsageCount Value="31"/>
+        <CursorPos X="9" Y="2"/>
+        <UsageCount Value="5"/>
       </Unit45>
       </Unit45>
       <Unit46>
       <Unit46>
-        <Filename Value="..\src\PasImGui.Enums.pas"/>
+        <Filename Value="F:\FPCross\fpcsrc\packages\opengles\src\gles20.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <CursorPos Y="18"/>
-        <UsageCount Value="19"/>
+        <TopLine Value="1242"/>
+        <CursorPos X="11" Y="1263"/>
+        <UsageCount Value="5"/>
       </Unit46>
       </Unit46>
       <Unit47>
       <Unit47>
-        <Filename Value="..\src\PasImGui.pas"/>
+        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\lineinfo.pp"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="115"/>
-        <UsageCount Value="47"/>
+        <TopLine Value="332"/>
+        <CursorPos X="25" Y="178"/>
+        <UsageCount Value="5"/>
       </Unit47>
       </Unit47>
       <Unit48>
       <Unit48>
-        <Filename Value="..\SDL2-for-Pascal\units\sdlevents.inc"/>
+        <Filename Value="..\SDL2-for-Pascal\tests\testinit.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="46"/>
-        <CursorPos X="27" Y="59"/>
-        <UsageCount Value="4"/>
+        <TopLine Value="31"/>
+        <CursorPos X="3" Y="54"/>
+        <UsageCount Value="7"/>
       </Unit48>
       </Unit48>
       <Unit49>
       <Unit49>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\cmem.pp"/>
+        <Filename Value="..\src\ImGuiPasDef.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="155"/>
-        <CursorPos X="16" Y="53"/>
-        <UsageCount Value="4"/>
+        <CursorPos X="81" Y="4"/>
+        <UsageCount Value="7"/>
       </Unit49>
       </Unit49>
       <Unit50>
       <Unit50>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\heaph.inc"/>
+        <Filename Value="..\..\VulkanPas\pasvulkan\externals\pasgltf\src\PasGLTF.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="79"/>
-        <CursorPos X="10" Y="102"/>
-        <UsageCount Value="4"/>
+        <TopLine Value="6785"/>
+        <UsageCount Value="7"/>
       </Unit50>
       </Unit50>
       <Unit51>
       <Unit51>
-        <Filename Value="..\SDL2-for-Pascal\units\sdlhints.inc"/>
+        <Filename Value="..\examples\imgui_extra.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="2410"/>
-        <CursorPos Y="2426"/>
-        <UsageCount Value="4"/>
+        <WindowIndex Value="-1"/>
+        <TopLine Value="-1"/>
+        <CursorPos X="-1" Y="-1"/>
+        <UsageCount Value="1"/>
       </Unit51>
       </Unit51>
       <Unit52>
       <Unit52>
-        <Filename Value="F:\FPCross\fpcsrc\packages\rtl-generics\src\generics.collections.pas"/>
-        <UnitName Value="Generics.Collections"/>
+        <Filename Value="..\..\PasGen\PasImPlot.Apis.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="1272"/>
-        <CursorPos X="50" Y="1287"/>
+        <TopLine Value="10565"/>
+        <CursorPos X="13" Y="10582"/>
         <UsageCount Value="5"/>
         <UsageCount Value="5"/>
       </Unit52>
       </Unit52>
       <Unit53>
       <Unit53>
-        <Filename Value="..\SDL2-for-Pascal\units\sdlstdinc.inc"/>
+        <Filename Value="..\src\PasImGui.Apis__old.pas"/>
+        <UnitName Value="PasImGui.Apis"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="65"/>
-        <CursorPos X="52" Y="79"/>
-        <UsageCount Value="10"/>
+        <TopLine Value="4"/>
+        <CursorPos X="44" Y="22"/>
+        <UsageCount Value="4"/>
       </Unit53>
       </Unit53>
       <Unit54>
       <Unit54>
-        <Filename Value="..\SDL2-for-Pascal\units\sdlrwops.inc"/>
-        <EditorIndex Value="-1"/>
-        <TopLine Value="123"/>
-        <CursorPos X="9" Y="136"/>
-        <UsageCount Value="10"/>
+        <Filename Value="..\src\PasImGui.Apis.inc"/>
+        <EditorIndex Value="5"/>
+        <TopLine Value="2180"/>
+        <CursorPos X="11" Y="2192"/>
+        <UsageCount Value="53"/>
+        <Loaded Value="True"/>
       </Unit54>
       </Unit54>
       <Unit55>
       <Unit55>
-        <Filename Value="..\impl\PasImGui.Backend.OpenGL3.pas"/>
+        <Filename Value="..\..\..\FPC_D3D\D3D10\D3D10.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="40"/>
-        <CursorPos X="58" Y="55"/>
-        <UsageCount Value="10"/>
+        <TopLine Value="316"/>
+        <CursorPos X="98" Y="342"/>
+        <UsageCount Value="4"/>
       </Unit55>
       </Unit55>
       <Unit56>
       <Unit56>
-        <Filename Value="..\impl\gles20.pas"/>
+        <Filename Value="F:\FPCross\fpcsrc\compiler\ogcoff.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="46"/>
-        <CursorPos X="64" Y="59"/>
-        <UsageCount Value="10"/>
+        <TopLine Value="1427"/>
+        <CursorPos X="32" Y="1436"/>
+        <UsageCount Value="8"/>
       </Unit56>
       </Unit56>
       <Unit57>
       <Unit57>
-        <Filename Value="F:\FPCross\fpcsrc\packages\opengles\namespaced\Api.OpenGL.Gles20.pas"/>
+        <Filename Value="F:\FPCross\fpcsrc\compiler\x86\cpubase.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="9" Y="2"/>
-        <UsageCount Value="10"/>
+        <TopLine Value="302"/>
+        <CursorPos X="9" Y="306"/>
+        <UsageCount Value="7"/>
       </Unit57>
       </Unit57>
       <Unit58>
       <Unit58>
-        <Filename Value="F:\FPCross\fpcsrc\packages\opengles\src\gles20.pas"/>
+        <Filename Value="..\SDL2-for-Pascal\units\sdlvideo.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="1242"/>
-        <CursorPos X="11" Y="1263"/>
-        <UsageCount Value="10"/>
+        <TopLine Value="38"/>
+        <CursorPos X="105" Y="54"/>
+        <UsageCount Value="11"/>
       </Unit58>
       </Unit58>
       <Unit59>
       <Unit59>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\lineinfo.pp"/>
+        <Filename Value="F:\Projects\Coldroot\Coldroot_UI\ColdrootUltraUI\coldroot.defines.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="332"/>
-        <CursorPos X="25" Y="178"/>
-        <UsageCount Value="10"/>
+        <CursorPos X="32" Y="11"/>
+        <UsageCount Value="1"/>
       </Unit59>
       </Unit59>
       <Unit60>
       <Unit60>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\win\systhrd.inc"/>
+        <Filename Value="F:\Projects\Coldroot\Coldroot_UI\ColdrootUltraUI\UI\OpenGL\glfw.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="534"/>
-        <CursorPos X="8" Y="549"/>
-        <UsageCount Value="11"/>
+        <TopLine Value="224"/>
+        <CursorPos X="33" Y="238"/>
+        <UsageCount Value="1"/>
       </Unit60>
       </Unit60>
       <Unit61>
       <Unit61>
-        <Filename Value="..\SDL2-for-Pascal\tests\testinit.pas"/>
+        <Filename Value="F:\Projects\Coldroot\Coldroot_UI\ColdrootUltraUI\UI\OpenGL\OpenGl3.Loader.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="31"/>
-        <CursorPos X="3" Y="54"/>
-        <UsageCount Value="2"/>
+        <TopLine Value="16"/>
+        <UsageCount Value="3"/>
       </Unit61>
       </Unit61>
       <Unit62>
       <Unit62>
-        <Filename Value="..\src\ImGuiPasDef.inc"/>
+        <Filename Value="F:\Projects\Coldroot\Coldroot_UI\ColdrootGUI\Core\Build.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="74" Y="3"/>
-        <UsageCount Value="11"/>
+        <UsageCount Value="4"/>
       </Unit62>
       </Unit62>
       <Unit63>
       <Unit63>
-        <Filename Value="..\..\VulkanPas\pasvulkan\externals\pasgltf\src\PasGLTF.pas"/>
+        <Filename Value="F:\Projects\Coldroot\Coldroot_UI\ColdrootUltraUI\Core\JSON\superobject.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="6785"/>
-        <UsageCount Value="2"/>
+        <TopLine Value="106"/>
+        <CursorPos X="17" Y="118"/>
+        <UsageCount Value="10"/>
       </Unit63>
       </Unit63>
       <Unit64>
       <Unit64>
-        <Filename Value="..\examples\imgui_extra.pas"/>
+        <Filename Value="..\SDL2-for-Pascal\units\sdlevents.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <WindowIndex Value="-1"/>
-        <TopLine Value="-1"/>
-        <CursorPos X="-1" Y="-1"/>
-        <UsageCount Value="16"/>
+        <TopLine Value="784"/>
+        <CursorPos X="13" Y="800"/>
+        <UsageCount Value="11"/>
       </Unit64>
       </Unit64>
       <Unit65>
       <Unit65>
-        <Filename Value="..\..\PasGen\PasImPlot.Apis.pas"/>
+        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\ctypes.pp"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="10565"/>
-        <CursorPos X="13" Y="10582"/>
-        <UsageCount Value="10"/>
+        <TopLine Value="74"/>
+        <CursorPos X="32" Y="90"/>
+        <UsageCount Value="11"/>
       </Unit65>
       </Unit65>
       <Unit66>
       <Unit66>
-        <Filename Value="..\src\PasImGui.Apis__old.pas"/>
-        <UnitName Value="PasImGui.Apis"/>
+        <Filename Value="..\SDL2-for-Pascal\units\sdlrenderer.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="4"/>
-        <CursorPos X="44" Y="22"/>
-        <UsageCount Value="9"/>
+        <TopLine Value="556"/>
+        <CursorPos X="10" Y="576"/>
+        <UsageCount Value="7"/>
       </Unit66>
       </Unit66>
       <Unit67>
       <Unit67>
-        <Filename Value="..\src\PasImGui.Apis.inc"/>
+        <Filename Value="F:\FPCross\fpcsrc\rtl\win\systhrd.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="1013"/>
-        <CursorPos X="19" Y="1028"/>
-        <UsageCount Value="18"/>
+        <TopLine Value="533"/>
+        <CursorPos X="8" Y="549"/>
+        <UsageCount Value="7"/>
       </Unit67>
       </Unit67>
       <Unit68>
       <Unit68>
-        <Filename Value="..\src\ImPlotTypes.inc"/>
+        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\mathh.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <CursorPos X="5"/>
-        <UsageCount Value="8"/>
+        <TopLine Value="223"/>
+        <CursorPos X="23" Y="135"/>
+        <UsageCount Value="7"/>
       </Unit68>
       </Unit68>
       <Unit69>
       <Unit69>
-        <Filename Value="..\..\..\FPC_D3D\D3D10\D3D10.pas"/>
+        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\innr.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="316"/>
-        <CursorPos X="98" Y="342"/>
-        <UsageCount Value="9"/>
+        <TopLine Value="127"/>
+        <CursorPos X="4" Y="123"/>
+        <UsageCount Value="7"/>
       </Unit69>
       </Unit69>
       <Unit70>
       <Unit70>
-        <Filename Value="F:\FPCross\fpcsrc\rtl\inc\system.inc"/>
+        <Filename Value="..\..\PasGen\PasImGui.ApisEx.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="1695"/>
-        <CursorPos Y="1709"/>
-        <UsageCount Value="11"/>
+        <CursorPos X="38" Y="8233"/>
+        <UsageCount Value="7"/>
+        <DefaultSyntaxHighlighter Value="Delphi"/>
       </Unit70>
       </Unit70>
       <Unit71>
       <Unit71>
-        <Filename Value="F:\FPCross\fpcsrc\compiler\ogcoff.pas"/>
+        <Filename Value="..\..\PasGen\PasImGui.Enums.pas"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="1427"/>
-        <CursorPos X="32" Y="1436"/>
-        <UsageCount Value="13"/>
+        <UsageCount Value="7"/>
+        <DefaultSyntaxHighlighter Value="Delphi"/>
       </Unit71>
       </Unit71>
       <Unit72>
       <Unit72>
-        <Filename Value="F:\FPCross\fpcsrc\compiler\x86\cpubase.pas"/>
+        <Filename Value="..\src\ImGuiApis.Impl.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="302"/>
-        <CursorPos X="9" Y="306"/>
-        <UsageCount Value="12"/>
+        <TopLine Value="77"/>
+        <UsageCount Value="7"/>
+        <DefaultSyntaxHighlighter Value="Delphi"/>
       </Unit72>
       </Unit72>
       <Unit73>
       <Unit73>
-        <Filename Value="..\SDL2-for-Pascal\units\sdlvideo.inc"/>
+        <Filename Value="..\src\ImPlotTypes.inc"/>
         <EditorIndex Value="-1"/>
         <EditorIndex Value="-1"/>
-        <TopLine Value="39"/>
-        <CursorPos X="3" Y="54"/>
-        <UsageCount Value="10"/>
+        <UsageCount Value="7"/>
+        <DefaultSyntaxHighlighter Value="Delphi"/>
       </Unit73>
       </Unit73>
     </Units>
     </Units>
-    <JumpHistory Count="19" HistoryIndex="18">
+    <JumpHistory Count="30" HistoryIndex="29">
       <Position1>
       <Position1>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="413" Column="48" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="703" TopLine="695"/>
       </Position1>
       </Position1>
       <Position2>
       <Position2>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="417" Column="37" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="704" TopLine="695"/>
       </Position2>
       </Position2>
       <Position3>
       <Position3>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="419" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="705" TopLine="695"/>
       </Position3>
       </Position3>
       <Position4>
       <Position4>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="414" Column="71" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="710" TopLine="695"/>
       </Position4>
       </Position4>
       <Position5>
       <Position5>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="415" Column="39" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="719" TopLine="699"/>
       </Position5>
       </Position5>
       <Position6>
       <Position6>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="413" Column="55" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="700" TopLine="694"/>
       </Position6>
       </Position6>
       <Position7>
       <Position7>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="417" Column="47" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="720" TopLine="708"/>
       </Position7>
       </Position7>
       <Position8>
       <Position8>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="413" Column="55" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="700" TopLine="687"/>
       </Position8>
       </Position8>
       <Position9>
       <Position9>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="419" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="720" TopLine="708"/>
       </Position9>
       </Position9>
       <Position10>
       <Position10>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="419" TopLine="401"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="964" TopLine="952"/>
       </Position10>
       </Position10>
       <Position11>
       <Position11>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="335" Column="12" TopLine="30"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="965" TopLine="952"/>
       </Position11>
       </Position11>
       <Position12>
       <Position12>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="335" Column="12" TopLine="311"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="966" TopLine="952"/>
       </Position12>
       </Position12>
       <Position13>
       <Position13>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="419" TopLine="396"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="967" TopLine="952"/>
       </Position13>
       </Position13>
       <Position14>
       <Position14>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="421" TopLine="398"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="968" TopLine="960"/>
       </Position14>
       </Position14>
       <Position15>
       <Position15>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="414" Column="38" TopLine="398"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="970" TopLine="960"/>
       </Position15>
       </Position15>
       <Position16>
       <Position16>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="278" Column="81" TopLine="37"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="971" TopLine="960"/>
       </Position16>
       </Position16>
       <Position17>
       <Position17>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="270" Column="42" TopLine="8"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="972" TopLine="960"/>
       </Position17>
       </Position17>
       <Position18>
       <Position18>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="50" Column="14" TopLine="81"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="973" TopLine="960"/>
       </Position18>
       </Position18>
       <Position19>
       <Position19>
-        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
-        <Caret Line="403" Column="31" TopLine="392"/>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="975" TopLine="968"/>
       </Position19>
       </Position19>
+      <Position20>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="976" TopLine="968"/>
+      </Position20>
+      <Position21>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="977" TopLine="968"/>
+      </Position21>
+      <Position22>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="978" TopLine="968"/>
+      </Position22>
+      <Position23>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="979" TopLine="968"/>
+      </Position23>
+      <Position24>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="982" TopLine="970"/>
+      </Position24>
+      <Position25>
+        <Filename Value="..\impl\PasImGui.Renderer.OpenGL3.pas"/>
+        <Caret Line="681" TopLine="668"/>
+      </Position25>
+      <Position26>
+        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
+        <Caret Line="215" TopLine="203"/>
+      </Position26>
+      <Position27>
+        <Filename Value="ImGui_SDL2_OpenGL3_Demo.dpr"/>
+        <Caret Line="205" Column="114" TopLine="203"/>
+      </Position27>
+      <Position28>
+        <Filename Value="..\src\PasImGui.pas"/>
+        <Caret Line="419" Column="20" TopLine="407"/>
+      </Position28>
+      <Position29>
+        <Filename Value="..\src\PasImGui.pas"/>
+        <Caret Line="196" Column="30" TopLine="185"/>
+      </Position29>
+      <Position30>
+        <Filename Value="..\src\PasImGui.Apis.inc"/>
+        <Caret Line="581" Column="35" TopLine="573"/>
+      </Position30>
     </JumpHistory>
     </JumpHistory>
     <RunParams>
     <RunParams>
       <FormatVersion Value="2"/>
       <FormatVersion Value="2"/>

二进制
PasImGui_SDL2_OpenGL3_Demo/Win64/ImGui_SDL2_OpenGL3_Demo.exe


二进制
PasImGui_SDL2_OpenGL3_Demo/Win64/cimgui.dll


二进制
PasImGui_SDL2_OpenGL3_Demo/Win64/fonts/DroidSans.ttf


二进制
PasImGui_SDL2_OpenGL3_Demo/Win64/fonts/JetBrainsMonoNerdFontPropo-Italic.ttf


+ 93 - 0
PasImGui_SDL2_OpenGL3_Demo/Win64/fonts/OFL.txt

@@ -0,0 +1,93 @@
+Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+https://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded, 
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.

+ 19 - 31
impl/PasImGui.Backend.SDL2.pas

@@ -34,8 +34,7 @@ Uses
   PasImGui,
   PasImGui,
   PasImGui.Utils;
   PasImGui.Utils;
 
 
-Function ImGui_ImplSDL2_InitForOpenGL_Pas(window: PSDL_Window;
-  sdl_gl_context: Pointer): Boolean;
+Function ImGui_ImplSDL2_InitForOpenGL_Pas(window: PSDL_Window; sdl_gl_context: Pointer): Boolean;
 Function ImGui_ImplSDL2_ProcessEvent_Pas(event: PSDL_Event): Boolean;
 Function ImGui_ImplSDL2_ProcessEvent_Pas(event: PSDL_Event): Boolean;
 Procedure ImGui_ImplSDL2_NewFrame_Pas();
 Procedure ImGui_ImplSDL2_NewFrame_Pas();
 Procedure ImGui_ImplSDL2_Shutdown_Pas();
 Procedure ImGui_ImplSDL2_Shutdown_Pas();
@@ -126,8 +125,7 @@ Begin
   //if bd^.UseVulkan then
   //if bd^.UseVulkan then
   //  sdl_flags := sdl_flags or SDL_WINDOW_VULKAN;
   //  sdl_flags := sdl_flags or SDL_WINDOW_VULKAN;
 
 
-  sdl_flags := sdl_flags Or (SDL_GetWindowFlags(bd^.Window) And
-    SDL_WINDOW_ALLOW_HIGHDPI);
+  sdl_flags := sdl_flags Or (SDL_GetWindowFlags(bd^.Window) And SDL_WINDOW_ALLOW_HIGHDPI);
 
 
   sdl_flags := sdl_flags Or SDL_WINDOW_HIDDEN;
   sdl_flags := sdl_flags Or SDL_WINDOW_HIDDEN;
 
 
@@ -148,9 +146,8 @@ Begin
   End;
   End;
 
 
 
 
-  vd^.Window := SDL_CreateWindow('No Title Yet', Trunc(viewport^.Pos.x),
-    Trunc(viewport^.Pos.y), Trunc(viewport^.Size.x), Trunc(viewport^.Size.y),
-    sdl_flags);
+  vd^.Window := SDL_CreateWindow('No Title Yet', Trunc(viewport^.Pos.x), Trunc(viewport^.Pos.y),
+    Trunc(viewport^.Size.x), Trunc(viewport^.Size.y), sdl_flags);
 
 
   vd^.WindowOwned := True;
   vd^.WindowOwned := True;
   If use_opengl Then
   If use_opengl Then
@@ -346,8 +343,7 @@ Begin
 End;
 End;
 
 
 // Done
 // Done
-Procedure ImGui_ImplSDL2_InitPlatformInterface(window: PSDL_Window;
-  sdl_gl_context: Pointer);
+Procedure ImGui_ImplSDL2_InitPlatformInterface(window: PSDL_Window; sdl_gl_context: Pointer);
 Var
 Var
   platform_io: PImGuiPlatformIO;
   platform_io: PImGuiPlatformIO;
   main_viewport: PImGuiViewport;
   main_viewport: PImGuiViewport;
@@ -421,8 +417,7 @@ End;
 
 
 // Done
 // Done
 // Note: native IME will only display if user calls SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1") _before_ SDL_CreateWindow().
 // Note: native IME will only display if user calls SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1") _before_ SDL_CreateWindow().
-Procedure ImGui_ImplSDL2_SetPlatformImeData(viewport: PImGuiViewport;
-  Data: PImGuiPlatformImeData); Cdecl;
+Procedure ImGui_ImplSDL2_SetPlatformImeData(viewport: PImGuiViewport; Data: PImGuiPlatformImeData); Cdecl;
 Var
 Var
   r: TSDL_Rect;
   r: TSDL_Rect;
 Begin
 Begin
@@ -560,8 +555,7 @@ Begin
 End;
 End;
 
 
 // FIXME
 // FIXME
-Function ImGui_ImplSDL2_Init(window: PSDL_Window; renderer: PSDL_Renderer;
-  sdl_gl_context: Pointer): Boolean;
+Function ImGui_ImplSDL2_Init(window: PSDL_Window; renderer: PSDL_Renderer; sdl_gl_context: Pointer): Boolean;
 Var
 Var
   io: PImGuiIO;
   io: PImGuiIO;
   bd: PImGui_ImplSDL2_Data;
   bd: PImGui_ImplSDL2_Data;
@@ -572,7 +566,7 @@ Var
   info: TSDL_SysWMinfo;
   info: TSDL_SysWMinfo;
 Const
 Const
   global_mouse_whitelist: Array[0..4] Of
   global_mouse_whitelist: Array[0..4] Of
-    Pansichar = ('windows', 'cocoa', 'x11', 'DIVE', 'VMAN');
+    PAnsiChar = ('windows', 'cocoa', 'x11', 'DIVE', 'VMAN');
 Begin
 Begin
 
 
   io := ImGui.GetIO();
   io := ImGui.GetIO();
@@ -682,8 +676,7 @@ Begin
 End;
 End;
 
 
 // Done
 // Done
-Function ImGui_ImplSDL2_InitForOpenGL_Pas(window: PSDL_Window;
-  sdl_gl_context: Pointer): Boolean;
+Function ImGui_ImplSDL2_InitForOpenGL_Pas(window: PSDL_Window; sdl_gl_context: Pointer): Boolean;
 Begin
 Begin
   Result := ImGui_ImplSDL2_Init(window, nil, sdl_gl_context);
   Result := ImGui_ImplSDL2_Init(window, nil, sdl_gl_context);
 End;
 End;
@@ -774,8 +767,7 @@ Begin
   SDL_CaptureMouse(mouse_btn);
   SDL_CaptureMouse(mouse_btn);
 
 
   focused_window := SDL_GetKeyboardFocus;
   focused_window := SDL_GetKeyboardFocus;
-  is_app_focused := (focused_window <> nil) And
-    ((bd^.Window = focused_window) Or
+  is_app_focused := (focused_window <> nil) And ((bd^.Window = focused_window) Or
     (ImGui.FindViewportByPlatformHandle(focused_window) <> nil));
     (ImGui.FindViewportByPlatformHandle(focused_window) <> nil));
   {$ELSE}
   {$ELSE}
   focused_window := bd^.Window;
   focused_window := bd^.Window;
@@ -929,8 +921,8 @@ Begin
   bd^.Time := current_time;
   bd^.Time := current_time;
 
 
 
 
-  If ((bd^.PendingMouseLeaveFrame > 0) And (bd^.PendingMouseLeaveFrame >=
-    ImGui.GetFrameCount()) And (bd^.MouseButtonsDown = 0)) Then
+  If ((bd^.PendingMouseLeaveFrame > 0) And (bd^.PendingMouseLeaveFrame >= ImGui.GetFrameCount()) And
+    (bd^.MouseButtonsDown = 0)) Then
   Begin
   Begin
     bd^.MouseWindowID := 0;
     bd^.MouseWindowID := 0;
     bd^.PendingMouseLeaveFrame := 0;
     bd^.PendingMouseLeaveFrame := 0;
@@ -943,8 +935,7 @@ Begin
   If (bd^.MouseCanReportHoveredViewport And (ImGui.GetDragDropPayload() = nil)) Then
   If (bd^.MouseCanReportHoveredViewport And (ImGui.GetDragDropPayload() = nil)) Then
     io^.BackendFlags := io^.BackendFlags Or ImGuiBackendFlags_HasMouseHoveredViewport
     io^.BackendFlags := io^.BackendFlags Or ImGuiBackendFlags_HasMouseHoveredViewport
   Else
   Else
-    io^.BackendFlags := io^.BackendFlags And Not
-      ImGuiBackendFlags_HasMouseHoveredViewport;
+    io^.BackendFlags := io^.BackendFlags And Not ImGuiBackendFlags_HasMouseHoveredViewport;
 
 
 
 
   ImGui_ImplSDL2_UpdateMouseData();
   ImGui_ImplSDL2_UpdateMouseData();
@@ -981,9 +972,8 @@ Begin
   io^.BackendPlatformName := nil;
   io^.BackendPlatformName := nil;
   io^.BackendPlatformUserData := nil;
   io^.BackendPlatformUserData := nil;
 
 
-  io^.BackendFlags := io^.BackendFlags And Not
-    (ImGuiBackendFlags_HasMouseCursors Or ImGuiBackendFlags_HasSetMousePos Or
-    ImGuiBackendFlags_HasGamepad Or ImGuiBackendFlags_PlatformHasViewports Or
+  io^.BackendFlags := io^.BackendFlags And Not (ImGuiBackendFlags_HasMouseCursors Or
+    ImGuiBackendFlags_HasSetMousePos Or ImGuiBackendFlags_HasGamepad Or ImGuiBackendFlags_PlatformHasViewports Or
     ImGuiBackendFlags_HasMouseHoveredViewport);
     ImGuiBackendFlags_HasMouseHoveredViewport);
 
 
   // Free Allocated Monitors
   // Free Allocated Monitors
@@ -1020,8 +1010,7 @@ Begin
       mouse_pos := ImVec2.New(Single(event^.motion.x), Single(event^.motion.y));
       mouse_pos := ImVec2.New(Single(event^.motion.x), Single(event^.motion.y));
       If Int64(io^.ConfigFlags And ImGuiConfigFlags_ViewportsEnable) <> 0 Then
       If Int64(io^.ConfigFlags And ImGuiConfigFlags_ViewportsEnable) <> 0 Then
       Begin
       Begin
-        SDL_GetWindowPosition(SDL_GetWindowFromID(event^.motion.windowID),
-          @window_x, @window_y);
+        SDL_GetWindowPosition(SDL_GetWindowFromID(event^.motion.windowID), @window_x, @window_y);
         mouse_pos.x := mouse_pos.x + window_x;
         mouse_pos.x := mouse_pos.x + window_x;
         mouse_pos.y := mouse_pos.y + window_y;
         mouse_pos.y := mouse_pos.y + window_y;
       End;
       End;
@@ -1126,11 +1115,10 @@ Begin
       Else If window_event = SDL_WINDOWEVENT_FOCUS_LOST Then
       Else If window_event = SDL_WINDOWEVENT_FOCUS_LOST Then
         ImGui.AddFocusEvent(False);
         ImGui.AddFocusEvent(False);
 
 
-      If (window_event = SDL_WINDOWEVENT_CLOSE) Or (window_event =
-        SDL_WINDOWEVENT_MOVED) Or (window_event = SDL_WINDOWEVENT_RESIZED) Then
+      If (window_event = SDL_WINDOWEVENT_CLOSE) Or (window_event = SDL_WINDOWEVENT_MOVED) Or
+        (window_event = SDL_WINDOWEVENT_RESIZED) Then
       Begin
       Begin
-        viewport := ImGui.FindViewportByPlatformHandle(
-          SDL_GetWindowFromID(event^.window.windowID));
+        viewport := ImGui.FindViewportByPlatformHandle(SDL_GetWindowFromID(event^.window.windowID));
         If viewport <> nil Then
         If viewport <> nil Then
         Begin
         Begin
           If window_event = SDL_WINDOWEVENT_CLOSE Then
           If window_event = SDL_WINDOWEVENT_CLOSE Then

二进制
libs/dynamic/windows/64bit/cimgui.dll


二进制
libs/static/win64/libcimgui.a


+ 14 - 12
src/ImGuiApis.Impl.inc

@@ -1,6 +1,7 @@
-{ImGuiTableColumnSortSpecs}
 
 
-function ImGuiTableColumnSortSpecs.GetData0Value(const AIndex: Integer): Cardinal;
+{ImFontGlyph}
+
+function ImFontGlyph.GetData0Value(const AIndex: Integer): Cardinal;
 var
 var
   BitCount, Offset, Mask: Cardinal;
   BitCount, Offset, Mask: Cardinal;
 begin
 begin
@@ -10,7 +11,7 @@ begin
   Result := (Data0 shr Offset) and Mask;
   Result := (Data0 shr Offset) and Mask;
 end;
 end;
 
 
-procedure ImGuiTableColumnSortSpecs.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+procedure ImFontGlyph.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
 var
 var
   BitCount, Offset, Mask: Cardinal;
   BitCount, Offset, Mask: Cardinal;
 begin
 begin
@@ -20,9 +21,9 @@ begin
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
 end;
 end;
 
 
-{ImFontGlyph}
+{ImGuiDockNode}
 
 
-function ImFontGlyph.GetData0Value(const AIndex: Integer): Cardinal;
+function ImGuiDockNode.GetData0Value(const AIndex: Integer): Cardinal;
 var
 var
   BitCount, Offset, Mask: Cardinal;
   BitCount, Offset, Mask: Cardinal;
 begin
 begin
@@ -32,7 +33,7 @@ begin
   Result := (Data0 shr Offset) and Mask;
   Result := (Data0 shr Offset) and Mask;
 end;
 end;
 
 
-procedure ImFontGlyph.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+procedure ImGuiDockNode.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
 var
 var
   BitCount, Offset, Mask: Cardinal;
   BitCount, Offset, Mask: Cardinal;
 begin
 begin
@@ -42,9 +43,9 @@ begin
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
 end;
 end;
 
 
-{ImGuiDockNode}
+{ImGuiStackLevelInfo}
 
 
-function ImGuiDockNode.GetData0Value(const AIndex: Integer): Cardinal;
+function ImGuiStackLevelInfo.GetData0Value(const AIndex: Integer): Cardinal;
 var
 var
   BitCount, Offset, Mask: Cardinal;
   BitCount, Offset, Mask: Cardinal;
 begin
 begin
@@ -54,7 +55,7 @@ begin
   Result := (Data0 shr Offset) and Mask;
   Result := (Data0 shr Offset) and Mask;
 end;
 end;
 
 
-procedure ImGuiDockNode.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+procedure ImGuiStackLevelInfo.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
 var
 var
   BitCount, Offset, Mask: Cardinal;
   BitCount, Offset, Mask: Cardinal;
 begin
 begin
@@ -64,9 +65,9 @@ begin
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
 end;
 end;
 
 
-{ImGuiStackLevelInfo}
+{ImGuiContext}
 
 
-function ImGuiStackLevelInfo.GetData0Value(const AIndex: Integer): Cardinal;
+function ImGuiContext.GetData0Value(const AIndex: Integer): Cardinal;
 var
 var
   BitCount, Offset, Mask: Cardinal;
   BitCount, Offset, Mask: Cardinal;
 begin
 begin
@@ -76,7 +77,7 @@ begin
   Result := (Data0 shr Offset) and Mask;
   Result := (Data0 shr Offset) and Mask;
 end;
 end;
 
 
-procedure ImGuiStackLevelInfo.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
+procedure ImGuiContext.SetData0Value(const AIndex: Integer; const AValue: Cardinal);
 var
 var
   BitCount, Offset, Mask: Cardinal;
   BitCount, Offset, Mask: Cardinal;
 begin
 begin
@@ -195,3 +196,4 @@ begin
   Mask := ((1 shl BitCount) - 1);
   Mask := ((1 shl BitCount) - 1);
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
   Data0 := (Data0 and (not (Mask shl Offset))) or (AValue shl Offset);
 end;
 end;
+

文件差异内容过多而无法显示
+ 322 - 277
src/PasImGui.Apis.inc


+ 0 - 67
src/PasImGui.Utils.pas

@@ -31,78 +31,11 @@ interface
 uses
 uses
   PasImGui;
   PasImGui;
 
 
-Type
-
-  { TImVec2 }
-  TImVec2 = Record helper For ImVec2
-    class function New(const _x, _y: Single) : ImVec2; static;
-  end;
-
-  { TImVec3 }
-  TImVec3 = Record helper For ImVec3
-    class function New(const _x, _y, _z: Single) : ImVec3; static;
-  end;
-
-  { TImVec4 }
-  TImVec4 = Record helper For ImVec4
-    class function New(const _x, _y, _z: Single; _w: Single = 1.0) : ImVec4; static;
-  end;
-
-  { TImDrawCmd }
-
-  TImDrawCmd = Record helper for ImDrawCmd
-    function GetTexID : ImTextureID;
-  end;
-
-
-
 procedure imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops: ImVec3);
 procedure imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops: ImVec3);
 procedure SetupImGuiStyle2();
 procedure SetupImGuiStyle2();
 
 
 implementation
 implementation
 
 
-class function TImVec2.New(const _x, _y: Single): ImVec2;
-begin
-  Result.x := _x;
-  Result.y := _y;
-end;
-
-{ TImVec3 }
-
-class function TImVec3.New(const _x, _y, _z: Single): ImVec3;
-begin
-  Result.x := _x;
-  Result.y := _y;
-  Result.z := _z;
-end;
-
-{ TImVec4 }
-
-class function TImVec4.New(const _x, _y, _z: Single; _w: Single): ImVec4;
-begin
-  Result.x := _x;
-  Result.y := _y;
-  Result.z := _z;
-  Result.w := _w;
-end;
-
-{ TImDrawCmd }
-
-function TImDrawCmd.GetTexID: ImTextureID;
-begin
-  Result := Self.TextureId;
-end;
-
-//operator Add(lhs, rhs: ImVec2): ImVec2;
-//begin
-//  Result := ImVec2.new(lhs.x + rhs.x, lhs.y + rhs.y);
-//end;
-//
-//operator Subtract(lhs, rhs: ImVec2): ImVec2;
-//begin
-//  Result := ImVec2.new(lhs.x - rhs.x, lhs.y - rhs.y);
-//end;
-
 procedure imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops: ImVec3);
 procedure imgui_easy_theming(color_for_text, color_for_head, color_for_area, color_for_body, color_for_pops: ImVec3);
 var
 var
   style: PImGuiStyle;
   style: PImGuiStyle;

文件差异内容过多而无法显示
+ 228 - 162
src/PasImGui.pas


部分文件因为文件数量过多而无法显示