Compare commits

..

37 Commits
1.71 ... 1.74

Author SHA1 Message Date
sonoro1234
d9e1d9a80d drop cimgui_internal.h generation 2019-12-02 10:50:47 +01:00
sonoro1234
4d7a7ac09f cimgui_internal.h generation 2019-11-28 11:59:25 +01:00
sonoro1234
8096fb69fe pull imgui correction for unnamed argument 2019-11-27 15:02:40 +01:00
Victor Bombi
97cfb930e0 Merge pull request #110 from cimgui/internal
more preparation for imgui_internal inclusion, main change replace en…
2019-11-27 12:35:57 +01:00
sonoro1234
549e3cc8f8 more preparation for imgui_internal inclusion, main change replace enum with typedef enum 2019-11-27 12:31:16 +01:00
sonoro1234
3a7d0d46f8 pull ImGui 1.74 and generation 2019-11-26 10:02:00 +01:00
sonoro1234
e3cbc0119e generator.lua: preparation of imgui_internal inclusion 2019-11-26 09:56:37 +01:00
sonoro1234
7c405d3a38 cpp2ffi: add order table 2019-11-26 09:55:30 +01:00
sonoro1234
a310379820 generator.lua: use namespace in function generation, parseImGuiHeader as function 2019-11-21 13:14:41 +01:00
sonoro1234
e53a7beaeb cimgui_template: include imgui_internal.h before cimgui.h 2019-11-21 13:12:39 +01:00
sonoro1234
e7c5c6b9a1 cpp2ffi:better function return detection 2019-11-21 13:11:19 +01:00
Victor Bombi
c09dc063b0 Merge pull request #107 from rokups/workflows
github actions build script
Thanks @rokups and @lmariscal for the work done!!
2019-11-06 10:33:26 +01:00
Rokas Kupstys
e3136bb882 CI tall luajit and add bindings generation step. 2019-11-06 11:00:05 +02:00
Rokas Kupstys
59583ea35a Implement weekly builds using github actions. Based on a script from @nimgl - thanks! 2019-11-05 09:53:49 +02:00
Victor Bombi
c05aa00083 Merge pull request #104 from s-ol/no-stdcpp
Compile without exception support to link without stdc++
2019-10-21 15:41:10 +02:00
s-ol
75f2167111 compile without exception support to link without stdc++ 2019-10-17 23:31:45 +02:00
sonoro1234
bc5f64b2c2 add colon left out in ImVector_ImWchar_destroy manual declaration 2019-09-29 12:39:50 +02:00
sonoro1234
7cafceccae Add ImVector_ImWchar_destroy manual function 2019-09-27 12:31:42 +02:00
sonoro1234
1c65ee2bdc pull imgui 1.73 2019-09-25 12:44:17 +02:00
sonoro1234
0f5aa16fe8 drop ImVector functions 2019-09-25 12:39:51 +02:00
Victor Bombi
cde83f9fe8 Merge pull request #102 from lmariscal/ci
Update CMake to a modern module system and create simple test
2019-08-01 18:41:43 +02:00
sonoro1234
eefd229b68 readme: use cimgui travis account 2019-08-01 18:37:28 +02:00
Leonardo Mariscal
df61f2c552 Add Windows to travis CI 2019-08-01 07:59:37 -05:00
sonoro1234
c0d75f6f8d pull imgui 1.72b 2019-08-01 12:23:17 +02:00
Leonardo Mariscal
14e8be9af1 Update CMake to a more modern module management system and create simple test based on imgui null example 2019-07-31 19:37:51 -05:00
Victor Bombi
ccf494d1c3 Merge pull request #101 from AODQ/master
adds generator shell script
2019-07-31 10:13:05 +02:00
aodq
8c817de195 adds generator shell script 2019-07-30 23:15:39 -04:00
sonoro1234
8f3ab64917 Do with ImGuiStoragePair what was done with Pair (unnamed union correction) 2019-07-29 12:42:50 +02:00
sonoro1234
14251bb176 update readme 2019-07-29 12:20:19 +02:00
sonoro1234
e61825224b pull imgui 1.72 and regenerate 2019-07-29 12:17:38 +02:00
sonoro1234
94ab1adf9e generator corrections for vector<type>name to vector<type> name and take care of Pair not present (after 1.71) 2019-07-29 12:16:29 +02:00
sonoro1234
094a52e6b6 revert ApplicationServices linking if APPLE(only needed in 1.71) 2019-07-29 12:14:13 +02:00
sonoro1234
f7520ee03d Revert "revert last commit see: https://github.com/cimgui/cimgui/pull/98#issuecomment-513867796"
This reverts commit b0c65144ab.

will have to be reverted in 1.72
2019-07-22 19:53:20 +02:00
sonoro1234
b0c65144ab revert last commit see: https://github.com/cimgui/cimgui/pull/98#issuecomment-513867796 2019-07-22 19:14:41 +02:00
Victor Bombi
50ded57ba3 Merge pull request #98 from mellinoe/fix-macos-build
Link to ApplicationServices.framework on macOS.
2019-07-17 19:39:22 +02:00
Eric Mellino
50ae38591a Link to ApplicationServices.framework on macOS. 2019-07-17 09:52:54 -07:00
sonoro1234
975a735d38 rename generator2 to generator and generator to generator_old 2019-06-25 10:50:04 +02:00
34 changed files with 4335 additions and 28356 deletions

76
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,76 @@
name: Build
on:
push: {}
pull_request: {}
schedule:
- cron: '0 9 * * 1'
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- uses: actions/checkout@v1
- name: Install Dependencies
shell: bash
env:
GITHUB_OS: ${{ matrix.os }}
run: |
if [ "$GITHUB_OS" == "macOS-latest" ];
then
brew install luajit
elif [ "$GITHUB_OS" == "ubuntu-latest" ];
then
sudo apt-get install -y luajit
elif [ "$GITHUB_OS" == "windows-latest" ];
then
vcpkg install luajit
fi
- name: Download Submodules
run: |
git submodule update --init --recursive
if: github.event_name != 'schedule'
- name: Download Latest ImGui
shell: bash
run: |
rm -rf imgui
git clone https://github.com/ocornut/imgui.git
if: github.event_name == 'schedule'
- name: Generate Bindings
shell: bash
run: |
export PATH=$PATH:/C/vcpkg/packages/luajit_x86-windows/tools/:/C/vcpkg/packages/luajit_x86-windows/bin/
cd ./generator
bash ./generator.sh
- name: CMake
run: |
mkdir cmake-build
cd cmake-build
cmake -DCIMGUI_TEST=1 ..
- name: Build
working-directory: cmake-build
run: |
cmake --build .
- name: Test
shell: bash
env:
GITHUB_OS: ${{ matrix.os }}
working-directory: cmake-build
run: |
if [ "$GITHUB_OS" == "windows-latest" ];
then
./Debug/cimgui_test.exe
else
./cimgui_test
fi

5
.gitignore vendored
View File

@@ -32,7 +32,10 @@ cimgui/cimgui.sdf
cimgui/cimgui.v12.suo
cimgui/Release/
.idea
CMakeLists.txt
cimgui/.vs/
cimgui/cimgui.vcxproj.user
cimgui/x64/
# Test / Build
bld/
build/

View File

@@ -1,11 +1,32 @@
language: cpp
dist: trusty
os:
- linux
- osx
- windows
compiler:
- gcc
- clang
env:
- MSBUILD_PATH="c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin"
script:
make
- mkdir bld
- cd bld
- cmake -D CIMGUI_TEST=1 ..
- |
if [ "$TRAVIS_OS_NAME" == "windows" ]; then
export PATH=$MSBUILD_PATH:$PATH
MSBuild.exe cimgui.sln
else
make
fi
- |
if [ "$TRAVIS_OS_NAME" == "windows" ]; then
./Debug/cimgui_test.exe
else
./cimgui_test
fi

View File

@@ -1,20 +1,15 @@
Project(cimgui)
cmake_minimum_required(VERSION 2.8)
cmake_minimum_required(VERSION 3.1)
project(cimgui)
#general settings
include_directories(imgui)
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
include_directories(.)
set(IMGUI_SOURCES ./cimgui.cpp ./imgui/imgui.cpp ./imgui/imgui_draw.cpp ./imgui/imgui_demo.cpp ./imgui/imgui_widgets.cpp)
set(IMGUI_LIBRARIES )
if (WIN32)
add_definitions("-DIMGUI_IMPL_API=extern \"C\" __declspec\(dllexport\)")
else(WIN32)
add_definitions("-DIMGUI_IMPL_API=extern \"C\" ")
endif(WIN32)
file(GLOB IMGUI_SOURCES
cimgui.cpp
imgui/imgui.cpp
imgui/imgui_draw.cpp
imgui/imgui_demo.cpp
imgui/imgui_widgets.cpp
)
set(IMGUI_STATIC "no" CACHE STRING "Build as a static library")
@@ -25,12 +20,27 @@ else (IMGUI_STATIC)
add_library(cimgui SHARED ${IMGUI_SOURCES})
endif (IMGUI_STATIC)
target_link_libraries(cimgui ${IMGUI_LIBRARIES})
target_compile_definitions(cimgui PUBLIC IMGUI_DISABLE_OBSOLETE_FUNCTIONS=1)
if (WIN32)
target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API="extern \"C\" __declspec\(dllexport\)")
else (WIN32)
target_compile_definitions(cimgui PUBLIC IMGUI_IMPL_API="extern \"C\" ")
endif (WIN32)
target_include_directories(cimgui PUBLIC ${CMAKE_SOURCE_DIR})
target_include_directories(cimgui PUBLIC ${CMAKE_SOURCE_DIR}/imgui)
set_target_properties(cimgui PROPERTIES PREFIX "")
#install
install(TARGETS cimgui
RUNTIME DESTINATION .
LIBRARY DESTINATION .
ARCHIVE DESTINATION .
)
RUNTIME DESTINATION .
LIBRARY DESTINATION .
ARCHIVE DESTINATION .
)
#test
set(CIMGUI_TEST "no" CACHE STRING "Enable compilation of a test unit based on imgui null")
if (CIMGUI_TEST)
add_subdirectory(test)
endif ()

View File

@@ -8,7 +8,7 @@ OBJS += ./imgui/imgui_draw.o
OBJS += ./imgui/imgui_demo.o
OBJS += ./imgui/imgui_widgets.o
CXXFLAGS=-O2
CXXFLAGS=-O2 -fno-exceptions -fno-rtti
UNAME_S := $(shell uname -s)

View File

@@ -1,4 +1,4 @@
# cimgui [![Build Status](https://travis-ci.org/sonoro1234/cimgui.svg?branch=master)](https://travis-ci.org/sonoro1234/cimgui)
# cimgui [![Build Status](https://travis-ci.org/cimgui/cimgui.svg?branch=master)](https://travis-ci.org/cimgui/cimgui)
This is a thin c-api wrapper programmatically generated for the excellent C++ immediate mode gui [Dear ImGui](https://github.com/ocornut/imgui).
@@ -11,7 +11,7 @@ History:
Initially cimgui was developed by Stephan Dilly as hand-written code but lately turned into an auto-generated version by sonoro1234 in order to keep up with imgui more easily (letting the user select the desired branch and commit)
Notes:
* currently this wrapper is based on version [1.71 of Dear ImGui]
* currently this wrapper is based on version [1.74 of Dear ImGui]
* only functions, structs and enums from imgui.h are wrapped.
* if you are interested in imgui implementations you should look LuaJIT-ImGui project.
* overloaded function names try to be the most compatible with traditional cimgui names. So all naming is algorithmic except for those names that were in conflict with widely used cimgui names and were thus coded in a table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L58). Current overloaded function names can be found in (https://github.com/cimgui/cimgui/blob/master/generator/output/overloads.txt)
@@ -31,7 +31,7 @@ Notes:
* you will need LuaJIT (https://github.com/LuaJIT/LuaJIT.git better 2.1 branch) or precompiled for linux/macOS/windows in https://luapower.com/luajit/download
* you can use also a C++ compiler for doing preprocessing: gcc (In windows MinGW-W64-builds for example), clang or cl (MSVC) or not use a compiler (experimental nocompiler option) at all. (this repo was done with gcc)
* update `imgui` folder to the version you desire.
* edit `generator/generator2.bat` (or make a .sh version and please PR) to choose between gcc, clang, cl or nocompiler. Run it with gcc, clang or cl and LuaJIT on your PATH.
* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, cl or nocompiler. Run it with gcc, clang or cl and LuaJIT on your PATH.
* as a result some files are generated: `cimgui.cpp` and `cimgui.h` for compiling and some lua/json files with information about the binding: `definitions.json` with function info, `structs_and_enums.json` with struct and enum info, `impl_definitions.json` with functions from the implementations info.
# generate binding

2194
cimgui.cpp

File diff suppressed because it is too large Load Diff

784
cimgui.h

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,9 @@
#include "./imgui/imgui.h"
#include "./imgui/imgui_internal.h"
#include "cimgui.h"
#include "./imgui/imgui_internal.h"
#include "auto_funcs.cpp"
@@ -44,6 +45,11 @@ CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create()
return IM_NEW(ImVector<ImWchar>) ();
}
CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self)
{
IM_DELETE(self);
}
CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p)
{
IM_PLACEMENT_NEW(p) ImVector<ImWchar>();

View File

@@ -83,6 +83,7 @@ CIMGUI_API void igColorConvertRGBtoHSV(float r,float g,float b,float *out_h,floa
CIMGUI_API void igColorConvertHSVtoRGB(float h,float s,float v,float *out_r,float *out_g,float *out_b);
CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create();
CIMGUI_API void ImVector_ImWchar_destroy(ImVector_ImWchar* self);
CIMGUI_API void ImVector_ImWchar_Init(ImVector_ImWchar* p);
CIMGUI_API void ImVector_ImWchar_UnInit(ImVector_ImWchar* p);
#endif //CIMGUI_INCLUDED

View File

@@ -104,7 +104,7 @@ local function strip(cad)
return cad:gsub("^%s*(.-)%s*$","%1") --remove initial and final spaces
end
local function strip_end(cad)
return cad:gsub("^(.-)%s*$","%1") --remove initial and final spaces
return cad:gsub("^(.-)%s*$","%1") --remove final spaces
end
local function clean_spaces(cad)
cad = strip(cad)
@@ -342,7 +342,7 @@ local function parseFunction(self,stname,lineorig,namespace)
--skip template
if line:match("template") then return end
local ret = line:match("([^%(%)]+[%*%s])%s?~?[_%w]+%b()")
local ret = line:match("([^%(%):,]+[%*%s])%s?~?[_%w]+%b()")
--local funcname, args = line:match("(~?[_%w]+)%s*(%b())")
local funcname, args, extraconst = line:match("(~?[_%w]+)%s*(%b())(.*)")
extraconst = extraconst:match("const")
@@ -630,6 +630,7 @@ end
--only basic ending
local c_types = {
["bool"]=true,
["char"]=true,
["int"]=true,
["float"]=true,
@@ -641,6 +642,7 @@ local c_types = {
["size_t"]=true,
["ptrdiff_t"]=true,
}
M.c_types = c_types
local function check_arg_detection(fdefs,typedefs)
print"-----------------check arg detection---------------------------"
for k,defT in pairs(fdefs) do
@@ -709,7 +711,7 @@ function M.Parser()
self:parseFunctions()
self:compute_overloads()
self:gen_structs_and_enums()
self:compute_templated()
--self:compute_templated()
ADDdestructors(self)
end
function par:parseItems()
@@ -808,14 +810,18 @@ function M.Parser()
--local ttype,template = it.item:match("([^%s,%(%)]+)%s*<(.+)>")
local ttype,template = it.item:match"([^%s,%(%)]+)%s*<(.+)>"
if template then
--if template=="T" then print("T found in---------");print(stru) end
local te = template:gsub("%s","_")
te = te:gsub("%*","Ptr")
self.templates[ttype] = self.templates[ttype] or {}
self.templates[ttype][template] = te
it2 = it2:gsub("(<[%w_%*%s]+>)([^%s])","%1 %2") --add if not present space after <>
it2 = it2:gsub("<([%w_%*%s]+)>","_"..te)
end
--clean mutable
it2 = it2:gsub("mutable","")
--clean namespaces
it2 = it2:gsub("%w+::","")
--skip static variables
if not (it.re_name == "vardef_re" and it2:match"static") then
table.insert(outtab,it2)
@@ -846,10 +852,26 @@ function M.Parser()
end
end
end
--get structs in namespace
for i,it in ipairs(itemsarr) do
if it.re_name == "namespace_re" then
local nsp = it.item:match("%b{}"):sub(2,-2)
local namespace = it.item:match("namespace%s+(%S+)")
local nspparr,itemsnsp = parseItems(nsp)
for insp,itnsp in ipairs(nspparr) do
if itnsp.re_name == "struct_re" then --or itnsp.re_name == "functionD_re" then
--print("in mamespace",itnsp.item,namespace)
table.insert(outtab,itnsp.item)
end
end
end
end
--then structs and enums
for i,it in ipairs(itemsarr) do
if it.re_name == "enum_re" then
table.insert(outtab,it.item)
local enumname, enumbody = it.item:match"^%s*enum%s+([^%s;{}]+)[%s\n\r]*(%b{})"
--print("enum is:",enumname, enumbody)
table.insert(outtab,"\ntypedef enum ".. enumbody..enumname..";")
elseif it.re_name == "struct_re" then
local cleanst,structname = self:clean_struct(it.item)
--if not void stname or templated
@@ -912,15 +934,44 @@ function M.Parser()
end
function par:gen_structs_and_enums_table()
local outtab = {enums={},structs={}}
local outtabpre = {}
local typedefs_table = {}
self.typedefs_table = {}
self.vardefs = {}
self.inerstructs = {}
self.order = {}
--first typedefs
for i,it in ipairs(itemsarr) do
if it.re_name == "typedef_re" then --or it.re_name == "functypedef_re" or it.re_name == "vardef_re" then
local typedefdef,typedefname = it.item:match"typedef(.+)%s([^%s;]+);$"
typedefname = strip(typedefname)
self.typedefs_table[typedefname] = strip(typedefdef)
self.order[typedefname] = i
-- add typedef after struct name
-- if it.re_name == "vardef_re" and it.item:match"struct" then
-- local stname = it.item:match("struct%s*(%S+)%s*;")
-- table.insert(typedefs_table,"typedef struct "..stname.." "..stname..";\n")
-- self.typedefs_dict[stname]="struct "..stname
-- end
end
end
--vardefs
for i,it in ipairs(itemsarr) do
if it.re_name == "vardef_re" then
local stname = it.item:match"struct%s(%S+)$"
if stname then
stname = strip(stname)
self.vardefs[stname] = true
self.order[stname] = i
end
end
end
--then structs and enums
for i,it in ipairs(itemsarr) do
if it.re_name == "enum_re" then
local enumname = it.item:match"^%s*enum%s+([^%s;{}]+)"
outtab.enums[enumname] = {}
self.order[enumname] = i
local inner = strip_end(it.item:match("%b{}"):sub(2,-2))
local enumarr = str_split(inner,",")
for j,line in ipairs(enumarr) do
@@ -937,8 +988,10 @@ function M.Parser()
elseif it.re_name == "struct_re" then
local cleanst,structname,strtab = self:clean_struct(it.item)
--if not void stname or templated
--M.prtable(cleanst,structname,strtab)
if structname and not self.typenames[structname] then
outtab.structs[structname] = {}
self.order[structname]=i
for j=3,#strtab-1 do
self:parse_struct_line(strtab[j],outtab.structs[structname])
end

File diff suppressed because it is too large Load Diff

17
generator/generator.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/usr/bin/sh
# this script must be executed in this directory
# all the output goes to generator/output folder
# .cpp and .h files:
# cimgui.h and cimgui.cpp with gcc preprocess
# cimgui_nopreprocess.h and cimgui_nopreprocess.cpp generated without preprocess
# cimgui_impl.h with implementation function cdefs
# lua and json files:
# definitions.lua for function definitions
# structs_and_enums.lua with struct and enum information-definitions
# impl_definitions.lua for implementation function definitions
#process files
# arg[1] compiler name gcc, clang, cl or nocompiler
# arg[2..n] name of implementations to generate
luajit ./generator.lua gcc glfw opengl3 opengl2 sdl

View File

@@ -1,646 +0,0 @@
--------------------------------------------------------------------------
--script for auto_funcs.h and auto_funcs.cpp generation
--expects LuaJIT
--------------------------------------------------------------------------
assert(_VERSION=='Lua 5.1',"Must use LuaJIT")
assert(bit,"Must use LuaJIT")
local script_args = {...}
local COMPILER = script_args[1]
local CPRE,CTEST
if COMPILER == "gcc" or COMPILER == "clang" then
CPRE = COMPILER..[[ -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]]
CTEST = COMPILER.." --version"
elseif COMPILER == "cl" then
CPRE = COMPILER..[[ /E /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_API="" /DIMGUI_IMPL_API="" ]]
CTEST = COMPILER
else
print("Working without compiler ")
end
--test compiler present
local HAVE_COMPILER = false
if CTEST then
local pipe,err = io.popen(CTEST,"r")
if pipe then
local str = pipe:read"*a"
print(str)
pipe:close()
if str=="" then
HAVE_COMPILER = false
else
HAVE_COMPILER = true
end
else
HAVE_COMPILER = false
print(err)
end
assert(HAVE_COMPILER,"gcc, clang or cl needed to run script")
end --CTEST
print("HAVE_COMPILER",HAVE_COMPILER)
--get implementations
local implementations = {}
for i=2,#script_args do table.insert(implementations,script_args[i]) end
--------------------------------------------------------------------------
--this table has the functions to be skipped in generation
--------------------------------------------------------------------------
local cimgui_manuals = {
igLogText = true,
ImGuiTextBuffer_appendf = true,
igColorConvertRGBtoHSV = true,
igColorConvertHSVtoRGB = true
}
--------------------------------------------------------------------------
--this table is a dictionary to force a naming of function overloading (instead of algorythmic generated)
--first level is cimguiname without postfix, second level is the signature of the function, value is the
--desired name
---------------------------------------------------------------------------
local cimgui_overloads = {
igPushID = {
--["(const char*)"] = "igPushIDStr",
["(const char*,const char*)"] = "igPushIDRange",
--["(const void*)"] = "igPushIDPtr",
--["(int)"] = "igPushIDInt"
},
igGetID = {
["(const char*,const char*)"] = "igGetIDRange",
},
ImDrawList_AddText = {
["(const ImVec2,ImU32,const char*,const char*)"] = "ImDrawList_AddText",
},
igGetColorU32 = {
["(ImGuiCol,float)"] = "igGetColorU32",
},
igCollapsingHeader = {
["(const char*,ImGuiTreeNodeFlags)"] = "igCollapsingHeader",
},
igCombo = {
["(const char*,int*,const char* const[],int,int)"] = "igCombo",
},
igPlotLines = {
["(const char*,const float*,int,int,const char*,float,float,ImVec2,int)"] = "igPlotLines",
},
igBeginChild = {
["(const char*,const ImVec2,bool,ImGuiWindowFlags)"] = "igBeginChild",
},
igSelectable = {
["(const char*,bool,ImGuiSelectableFlags,const ImVec2)"] = "igSelectable"
},
igPushStyleColor = {
["(ImGuiCol,const ImVec4)"] = "igPushStyleColor"
}
}
--------------------------header definitions
local cimgui_header =
[[//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
//based on imgui.h file version XXX from Dear ImGui https://github.com/ocornut/imgui
]]
local gdefines = {} --for FLT_MAX and others
--------------------------------------------------------------------------
--helper functions
---------------------------minimal preprocessor without compiler for ImGui.h
local function filelines(file,locats)
local split_comment = require"cpp2ffi".split_comment
local iflevels = {}
--generated known prepros
local prepro = {
["#if"]={
[ "defined(__clang__) || defined(__GNUC__)" ]=false,
[ "defined(__clang__)" ]=false,
[ "defined(_MSC_VER) && !defined(__clang__)" ]=false,
[ "!defined(IMGUI_DISABLE_INCLUDE_IMCONFIG_H) || defined(IMGUI_INCLUDE_IMCONFIG_H)" ]=false,
[ "!defined(IMGUI_IMPL_OPENGL_LOADER_GL3W) \\" ]=false,
},
["#elif"]={
[ "defined(__GNUC__) && __GNUC__ >= 8" ]=false,
[ "(defined(__clang__) || defined(__GNUC__)) && (__cplusplus < 201100)" ]=false,
},
["#ifdef"]={
[ "IM_VEC4_CLASS_EXTRA" ]=false,
[ "IMGUI_USER_CONFIG" ]=false,
[ "IMGUI_INCLUDE_IMGUI_USER_H" ]=false,
[ "IMGUI_USE_BGRA_PACKED_COLOR" ]=false,
[ "IM_VEC2_CLASS_EXTRA" ]=false,
},
["#ifndef"]={
[ "IMGUI_API" ]=false,
[ "IMGUI_IMPL_API" ]=false,
[ "IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT" ]=true,
[ "IM_ASSERT" ]=false,
[ "ImTextureID" ]=true,
[ "ImDrawIdx" ]=true,
[ "IMGUI_DISABLE_OBSOLETE_FUNCTIONS" ]=false,
},
}
local function prepro_boolif(pre,cond)
local conds = prepro[pre]
assert(conds,pre.." has no conds-----------------------------")
local res = conds[cond]
--assert(type(res)~="nil",cond.." not found")
if type(res)=="nil" then
print(pre,cond,"not found in precompiler database, returning false.")
res = false
end
return res
end
local function location_it()
repeat
local line = file:read"*l"
if not line then return nil end
line,_ = split_comment(line)
--if line:sub(1,1) == "#" then
if line:match("^%s*#") then
local pre,cond = line:match("^%s*(#%S*)%s+(.*)%s*$")
if line:match("#if") then
iflevels[#iflevels +1 ] = prepro_boolif(pre,cond)
elseif line:match("#endif") then
iflevels[#iflevels] = nil
elseif line:match("#elif") then
if not iflevels[#iflevels] then
iflevels[#iflevels] = prepro_boolif(pre,cond)
else --was true
iflevels[#iflevels] = false
end
elseif line:match("#else") then
iflevels[#iflevels] = not iflevels[#iflevels]
else
if not (pre:match("#define") or pre:match"#include" or pre:match"#pragma") then
print("not expected preprocessor directive ",pre)
end
end
-- skip
elseif #iflevels == 0 or iflevels[#iflevels] then
-- drop IMGUI_APIX
line = line:gsub("IMGUI_IMPL_API","")
-- drop IMGUI_API
line = line:gsub("IMGUI_API","")
return line,locats[1]
end
until false
end
return location_it
end
--------------------------------functions for C generation
local function func_header_impl_generate(FP)
local outtab = {}
for _,t in ipairs(FP.funcdefs) do
if t.cimguiname then
local cimf = FP.defsT[t.cimguiname]
local def = cimf[t.signature]
if def.ret then --not constructor
local addcoment = def.comment or ""
if def.stname == "" then --ImGui namespace or top level
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
else
error("class function in implementations")
end
end
else --not cimguiname
table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub
end
end
local cfuncsstr = table.concat(outtab)
cfuncsstr = cfuncsstr:gsub("\n+","\n") --several empty lines to one empty line
return cfuncsstr
end
local function func_header_generate(FP)
local outtab = {}
table.insert(outtab,"#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
for k,v in pairs(FP.embeded_structs) do
table.insert(outtab,"typedef "..v.." "..k..";\n")
end
for ttype,v in pairs(FP.templates) do
for ttypein,_ in pairs(v) do
local te = ttypein:gsub("%s","_")
te = te:gsub("%*","Ptr")
table.insert(outtab,"typedef "..ttype.."<"..ttypein.."> "..ttype.."_"..te..";\n")
end
end
table.insert(outtab,"#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
for _,t in ipairs(FP.funcdefs) do
if t.cimguiname then
local cimf = FP.defsT[t.cimguiname]
local def = cimf[t.signature]
assert(def,t.signature..t.cimguiname)
local manual = FP.get_manuals(def)
if not manual and not def.templated then
local addcoment = def.comment or ""
local empty = def.args:match("^%(%)") --no args
if def.constructor then
assert(def.stname ~= "","constructor without struct")
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n")
elseif def.destructor then
table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
else --not constructor
if def.stname == "" then --ImGui namespace or top level
table.insert(outtab,"CIMGUI_API "..def.ret.." ".. def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n")
else
table.insert(outtab,"CIMGUI_API "..def.ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
end
end
end
else --not cimguiname
table.insert(outtab,t.comment:gsub("%%","%%%%").."\n")-- %% substitution for gsub
end
end
local cfuncsstr = table.concat(outtab)
cfuncsstr = cfuncsstr:gsub("\n+","\n") --several empty lines to one empty line
return cfuncsstr
end
local function ImGui_f_implementation(outtab,def)
local ptret = def.retref and "&" or ""
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args.."\n")
table.insert(outtab,"{\n")
if def.isvararg then
local call_args = def.call_args:gsub("%.%.%.","args")
table.insert(outtab," va_list args;\n")
table.insert(outtab," va_start(args, fmt);\n")
if def.ret~="void" then
table.insert(outtab," "..def.ret.." ret = ImGui::"..def.funcname.."V"..call_args..";\n")
else
table.insert(outtab," ImGui::"..def.funcname.."V"..call_args..";\n")
end
table.insert(outtab," va_end(args);\n")
if def.ret~="void" then
table.insert(outtab," return ret;\n")
end
elseif def.nonUDT then
if def.nonUDT == 1 then
table.insert(outtab," *pOut = ImGui::"..def.funcname..def.call_args..";\n")
else --nonUDT==2
table.insert(outtab," "..def.retorig.." ret = ImGui::"..def.funcname..def.call_args..";\n")
table.insert(outtab," "..def.ret.." ret2 = "..def.retorig.."ToSimple(ret);\n")
table.insert(outtab," return ret2;\n")
end
else --standard ImGui
table.insert(outtab," return "..ptret.."ImGui::"..def.funcname..def.call_args..";\n")
end
table.insert(outtab,"}\n")
end
local function struct_f_implementation(outtab,def)
local empty = def.args:match("^%(%)") --no args
local ptret = def.retref and "&" or ""
local imgui_stname = def.stname
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args.."\n")
table.insert(outtab,"{\n")
if def.isvararg then
local call_args = def.call_args:gsub("%.%.%.","args")
table.insert(outtab," va_list args;\n")
table.insert(outtab," va_start(args, fmt);\n")
if def.ret~="void" then
table.insert(outtab," "..def.ret.." ret = self->"..def.funcname.."V"..call_args..";\n")
else
table.insert(outtab," self->"..def.funcname.."V"..call_args..";\n")
end
table.insert(outtab," va_end(args);\n")
if def.ret~="void" then
table.insert(outtab," return ret;\n")
end
elseif def.nonUDT then
if def.nonUDT == 1 then
table.insert(outtab," *pOut = self->"..def.funcname..def.call_args..";\n")
else --nonUDT==2
table.insert(outtab," "..def.retorig.." ret = self->"..def.funcname..def.call_args..";\n")
table.insert(outtab," "..def.ret.." ret2 = "..def.retorig.."ToSimple(ret);\n")
table.insert(outtab," return ret2;\n")
end
else --standard struct
table.insert(outtab," return "..ptret.."self->"..def.funcname..def.call_args..";\n")
end
table.insert(outtab,"}\n")
end
local function func_implementation(FP)
local outtab = {}
for _,t in ipairs(FP.funcdefs) do
repeat -- continue simulation
if not t.cimguiname then break end
local cimf = FP.defsT[t.cimguiname]
local def = cimf[t.signature]
assert(def)
local manual = FP.get_manuals(def)
if not manual and not def.templated then
if def.constructor then
assert(def.stname ~= "","constructor without struct")
local empty = def.args:match("^%(%)") --no args
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname..(empty and "(void)" or def.args).."\n")
table.insert(outtab,"{\n")
table.insert(outtab," return IM_NEW("..def.stname..")"..def.call_args..";\n")
table.insert(outtab,"}\n")
elseif def.destructor then
local args = "("..def.stname.."* self)"
local fname = def.stname.."_destroy"
table.insert(outtab,"CIMGUI_API void "..fname..args.."\n")
table.insert(outtab,"{\n")
table.insert(outtab," IM_DELETE(self);\n")
table.insert(outtab,"}\n")
elseif def.stname == "" then
ImGui_f_implementation(outtab,def)
else -- stname
struct_f_implementation(outtab,def)
end
end
until true
end
return table.concat(outtab)
end
-------------------functions for getting and setting defines
local function get_defines(t)
if COMPILER == "cl" then print"can't get defines with cl compiler"; return {} end
local pipe,err = io.popen(COMPILER..[[ -E -dM -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ../imgui/imgui.h]],"r")
local defines = {}
while true do
local line = pipe:read"*l"
if not line then break end
local key,value = line:match([[#define%s+(%S+)%s+(.+)]])
if not key or not value then
--print(line)
else
defines[key]=value
end
end
pipe:close()
--require"anima.utils"
--prtable(defines)
--FLT_MAX
local ret = {}
for i,v in ipairs(t) do
local aa = defines[v]
while true do
local tmp = defines[aa]
if not tmp then
break
else
aa = tmp
end
end
ret[v] = aa
end
return ret
end
--subtitution of FLT_MAX value for FLT_MAX
local function set_defines(fdefs)
for k,defT in pairs(fdefs) do
for i,def in ipairs(defT) do
for name,default in pairs(def.defaults) do
if default == gdefines.FLT_MAX then
def.defaults[name] = "FLT_MAX"
end
end
end
end
end
--this creates defsBystruct in case you need to list by struct container
local function DefsByStruct(FP)
local structs = {}
for fun,defs in pairs(FP.defsT) do
local stname = defs[1].stname
structs[stname] = structs[stname] or {}
table.insert(structs[stname],defs)--fun)
end
FP.defsBystruct = structs
end
--load parser module
local cpp2ffi = require"cpp2ffi"
local read_data = cpp2ffi.read_data
local save_data = cpp2ffi.save_data
local copyfile = cpp2ffi.copyfile
local serializeTableF = cpp2ffi.serializeTableF
----------custom ImVector templates
local function generate_templates(code,templates)
table.insert(code,[[typedef struct ImVector{int Size;int Capacity;void* Data;} ImVector;]].."\n")
for ttype,v in pairs(templates) do
--local te = k:gsub("%s","_")
--te = te:gsub("%*","Ptr")
if ttype == "ImVector" then
for te,newte in pairs(v) do
table.insert(code,"typedef struct ImVector_"..newte.." {int Size;int Capacity;"..te.."* Data;} ImVector_"..newte..";\n")
end
end
end
end
--generate cimgui.cpp cimgui.h
local function cimgui_generation(parser)
cpp2ffi.prtable(parser.templates)
cpp2ffi.prtable(parser.typenames)
-- clean ImVector:contains() for not applicable types
local clean_f = {}
for k,v in pairs(parser.defsT) do
if k:match"ImVector" and k:match"contains" then
--cpp2ffi.prtable(k,v)
local stname = v[1].stname
if not(stname:match"float" or stname:match"int" or stname:match"char") then
parser.defsT[k] = nil
--delete also from funcdefs
for i,t in ipairs(parser.funcdefs) do
if t.cimguiname == k then
table.remove(parser.funcdefs, i)
break
end
end
end
end
end
--------------------------------------------------
local hstrfile = read_data"./cimgui_template.h"
local outpre,outpost = parser:gen_structs_and_enums()
--parser.templates get completely defined here
--cpp2ffi.prtable(parser.templates)
local outtab = {}
generate_templates(outtab,parser.templates)
local cstructsstr = outpre..table.concat(outtab,"")..outpost
hstrfile = hstrfile:gsub([[#include "imgui_structs%.h"]],cstructsstr)
local cfuncsstr = func_header_generate(parser)
hstrfile = hstrfile:gsub([[#include "auto_funcs%.h"]],cfuncsstr)
save_data("./output/cimgui.h",cimgui_header,hstrfile)
--merge it in cimgui_template.cpp to cimgui.cpp
local cimplem = func_implementation(parser)
local hstrfile = read_data"./cimgui_template.cpp"
hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem)
save_data("./output/cimgui.cpp",cimgui_header,hstrfile)
end
--------------------------------------------------------
-----------------------------do it----------------------
--------------------------------------------------------
--get imgui.h version--------------------------
local pipe,err = io.open("../imgui/imgui.h","r")
if not pipe then
error("could not open file:"..err)
end
local imgui_version
while true do
local line = pipe:read"*l"
imgui_version = line:match([[#define%s+IMGUI_VERSION%s+(".+")]])
if imgui_version then break end
end
pipe:close()
cimgui_header = cimgui_header:gsub("XXX",imgui_version)
print("IMGUI_VERSION",imgui_version)
--get some defines----------------------------
if HAVE_COMPILER then
gdefines = get_defines{"IMGUI_VERSION","FLT_MAX"}
end
--generation
print("------------------generation with "..COMPILER.."------------------------")
local typedefs_dict2
--prepare parser
local parser1 = cpp2ffi.Parser()
parser1.getCname = function(stname,funcname)
local pre = (stname == "") and "ig" or stname.."_"
return pre..funcname
end
parser1.cname_overloads = cimgui_overloads
parser1.manuals = cimgui_manuals
parser1.UDTs = {"ImVec2","ImVec4","ImColor"}
local pipe,err
if HAVE_COMPILER then
pipe,err = io.popen(CPRE..[[../imgui/imgui.h]],"r")
else
pipe,err = io.open([[../imgui/imgui.h]],"r")
end
if not pipe then
error("could not execute gcc "..err)
end
--local file,err = io.open("output_compiler.txt","w")
--if not file then error(err) end
local iterator = (HAVE_COMPILER and cpp2ffi.location) or filelines
for line in iterator(pipe,{"imgui"},{}) do
parser1:insert(line)
--file:write(line)
end
--file:close()
pipe:close()
parser1:do_parse()
--table.sort(parser1.funcdefs, function(a,b) return a.cimguiname < b.cimguiname end)
--parser1:dump_alltypes()
--parser1:printItems()
save_data("./output/overloads.txt",parser1.overloadstxt)
cimgui_generation(parser1)
----------save fundefs in definitions.lua for using in bindings
--DefsByStruct(pFP)
set_defines(parser1.defsT)
save_data("./output/definitions.lua",serializeTableF(parser1.defsT))
----------save struct and enums lua table in structs_and_enums.lua for using in bindings
local structs_and_enums_table = parser1:gen_structs_and_enums_table()
--correct Pair union member
structs_and_enums_table["structs"]["Pair"][2]["name"] = ""
structs_and_enums_table["structs"]["Pair"][2]["type"] = structs_and_enums_table["structs"]["Pair"][2]["type"] .. "}"
-----------------------
save_data("./output/structs_and_enums.lua",serializeTableF(structs_and_enums_table))
save_data("./output/typedefs_dict.lua",serializeTableF(parser1.typedefs_dict))
--check every function has ov_cimguiname
-- for k,v in pairs(parser1.defsT) do
-- for _,def in ipairs(v) do
-- assert(def.ov_cimguiname)
-- end
-- end
--=================================Now implementations
local parser2
if #implementations > 0 then
parser2 = cpp2ffi.Parser()
for i,impl in ipairs(implementations) do
local source = [[../imgui/examples/imgui_impl_]].. impl .. ".h "
local locati = [[imgui_impl_]].. impl
local pipe,err
if HAVE_COMPILER then
pipe,err = io.popen(CPRE..source,"r")
else
pipe,err = io.open(source,"r")
end
if not pipe then
error("could not get file: "..err)
end
local iterator = (HAVE_COMPILER and cpp2ffi.location) or filelines
for line,locat in iterator(pipe,{locati},{}) do
--local line, comment = split_comment(line)
parser2:insert(line)
end
pipe:close()
end
parser2:do_parse()
-- save ./cimgui_impl.h
local cfuncsstr = func_header_impl_generate(parser2)
local cstructstr1,cstructstr2 = parser2:gen_structs_and_enums()
save_data("./output/cimgui_impl.h",cstructstr1,cstructstr2,cfuncsstr)
----------save fundefs in impl_definitions.lua for using in bindings
save_data("./output/impl_definitions.lua",serializeTableF(parser2.defsT))
end -- #implementations > 0 then
-------------------------------json saving
--avoid mixed tables (with string and integer keys)
local function json_prepare(defs)
--delete signatures in function
for k,def in pairs(defs) do
for k2,v in pairs(def) do
if type(k2)=="string" then
def[k2] = nil
end
end
end
return defs
end
---[[
local json = require"json"
save_data("./output/definitions.json",json.encode(json_prepare(parser1.defsT)))
save_data("./output/structs_and_enums.json",json.encode(structs_and_enums_table))
save_data("./output/typedefs_dict.json",json.encode(parser1.typedefs_dict))
if parser2 then
save_data("./output/impl_definitions.json",json.encode(json_prepare(parser2.defsT)))
end
--]]
-------------------copy C files to repo root
copyfile("./output/cimgui.h", "../cimgui.h")
copyfile("./output/cimgui.cpp", "../cimgui.cpp")
print"all done!!"

View File

@@ -16,7 +16,7 @@ set PATH=%PATH%;C:\luaGL;C:\mingw32\bin;
::process files
:: arg[1] compiler name gcc, clang, cl or nocompiler
:: arg[2..n] name of implementations to generate
luajit ./generator2.lua gcc glfw opengl3 opengl2 sdl
luajit ./generator_old.lua gcc glfw opengl3 opengl2 sdl
::leave console open
cmd /k

1682
generator/generator_old.lua Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -30,6 +30,7 @@ CIMGUI_API bool ImGui_ImplOpenGL2_CreateDeviceObjects();
CIMGUI_API void ImGui_ImplOpenGL2_DestroyDeviceObjects();
CIMGUI_API bool ImGui_ImplSDL2_InitForOpenGL(SDL_Window* window,void* sdl_gl_context);
CIMGUI_API bool ImGui_ImplSDL2_InitForVulkan(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL2_InitForD3D(SDL_Window* window);
CIMGUI_API void ImGui_ImplSDL2_Shutdown();
CIMGUI_API void ImGui_ImplSDL2_NewFrame(SDL_Window* window);
CIMGUI_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -454,6 +454,26 @@
"stname": ""
}
],
"ImGui_ImplSDL2_InitForD3D": [
{
"args": "(SDL_Window* window)",
"argsT": [
{
"name": "window",
"type": "SDL_Window*"
}
],
"argsoriginal": "(SDL_Window* window)",
"call_args": "(window)",
"cimguiname": "ImGui_ImplSDL2_InitForD3D",
"defaults": [],
"funcname": "ImGui_ImplSDL2_InitForD3D",
"ov_cimguiname": "ImGui_ImplSDL2_InitForD3D",
"ret": "bool",
"signature": "(SDL_Window*)",
"stname": ""
}
],
"ImGui_ImplSDL2_InitForOpenGL": [
{
"args": "(SDL_Window* window,void* sdl_gl_context)",

View File

@@ -399,6 +399,23 @@ defs["ImGui_ImplOpenGL3_Shutdown"][1]["ret"] = "void"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["signature"] = "()"
defs["ImGui_ImplOpenGL3_Shutdown"][1]["stname"] = ""
defs["ImGui_ImplOpenGL3_Shutdown"]["()"] = defs["ImGui_ImplOpenGL3_Shutdown"][1]
defs["ImGui_ImplSDL2_InitForD3D"] = {}
defs["ImGui_ImplSDL2_InitForD3D"][1] = {}
defs["ImGui_ImplSDL2_InitForD3D"][1]["args"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_InitForD3D"][1]["argsT"] = {}
defs["ImGui_ImplSDL2_InitForD3D"][1]["argsT"][1] = {}
defs["ImGui_ImplSDL2_InitForD3D"][1]["argsT"][1]["name"] = "window"
defs["ImGui_ImplSDL2_InitForD3D"][1]["argsT"][1]["type"] = "SDL_Window*"
defs["ImGui_ImplSDL2_InitForD3D"][1]["argsoriginal"] = "(SDL_Window* window)"
defs["ImGui_ImplSDL2_InitForD3D"][1]["call_args"] = "(window)"
defs["ImGui_ImplSDL2_InitForD3D"][1]["cimguiname"] = "ImGui_ImplSDL2_InitForD3D"
defs["ImGui_ImplSDL2_InitForD3D"][1]["defaults"] = {}
defs["ImGui_ImplSDL2_InitForD3D"][1]["funcname"] = "ImGui_ImplSDL2_InitForD3D"
defs["ImGui_ImplSDL2_InitForD3D"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_InitForD3D"
defs["ImGui_ImplSDL2_InitForD3D"][1]["ret"] = "bool"
defs["ImGui_ImplSDL2_InitForD3D"][1]["signature"] = "(SDL_Window*)"
defs["ImGui_ImplSDL2_InitForD3D"][1]["stname"] = ""
defs["ImGui_ImplSDL2_InitForD3D"]["(SDL_Window*)"] = defs["ImGui_ImplSDL2_InitForD3D"][1]
defs["ImGui_ImplSDL2_InitForOpenGL"] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1] = {}
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["args"] = "(SDL_Window* window,void* sdl_gl_context)"

View File

@@ -16,9 +16,9 @@ igIsRectVisible 2
igRadioButton 2
1 bool igRadioButtonBool (const char*,bool)
2 bool igRadioButtonIntPtr (const char*,int*,int)
ImVec2_ImVec2 2
1 nil ImVec2_ImVec2 ()
2 nil ImVec2_ImVec2Float (float,float)
ImGuiTextRange_ImGuiTextRange 2
1 nil ImGuiTextRange_ImGuiTextRange ()
2 nil ImGuiTextRange_ImGuiTextRangeStr (const char*,const char*)
ImVector_back 2
1 T* ImVector_back ()
2 const T* ImVector_back_const ()const
@@ -40,17 +40,10 @@ igPushID 4
2 void igPushIDRange (const char*,const char*)
3 void igPushIDPtr (const void*)
4 void igPushIDInt (int)
Pair_Pair 3
1 nil Pair_PairInt (ImGuiID,int)
2 nil Pair_PairFloat (ImGuiID,float)
3 nil Pair_PairPtr (ImGuiID,void*)
TextRange_TextRange 2
1 nil TextRange_TextRange ()
2 nil TextRange_TextRangeStr (const char*,const char*)
igGetColorU32 3
1 ImU32 igGetColorU32 (ImGuiCol,float)
2 ImU32 igGetColorU32Vec4 (const ImVec4)
3 ImU32 igGetColorU32U32 (ImU32)
ImGuiStoragePair_ImGuiStoragePair 3
1 nil ImGuiStoragePair_ImGuiStoragePairInt (ImGuiID,int)
2 nil ImGuiStoragePair_ImGuiStoragePairFloat (ImGuiID,float)
3 nil ImGuiStoragePair_ImGuiStoragePairPtr (ImGuiID,void*)
igTreeNode 3
1 bool igTreeNodeStr (const char*)
2 bool igTreeNodeStrStr (const char*,const char*,...)
@@ -95,38 +88,48 @@ igTreeNodeExV 2
igListBox 2
1 bool igListBoxStr_arr (const char*,int*,const char* const[],int,int)
2 bool igListBoxFnPtr (const char*,int*,bool(*)(void*,int,const char**),void*,int,int)
ImVec2_ImVec2 2
1 nil ImVec2_ImVec2 ()
2 nil ImVec2_ImVec2Float (float,float)
igCollapsingHeader 2
1 bool igCollapsingHeader (const char*,ImGuiTreeNodeFlags)
2 bool igCollapsingHeaderBoolPtr (const char*,bool*,ImGuiTreeNodeFlags)
igTreePush 2
1 void igTreePushStr (const char*)
2 void igTreePushPtr (const void*)
igListBoxHeader 2
1 bool igListBoxHeaderVec2 (const char*,const ImVec2)
2 bool igListBoxHeaderInt (const char*,int,int)
igTreeNodeEx 3
1 bool igTreeNodeExStr (const char*,ImGuiTreeNodeFlags)
2 bool igTreeNodeExStrStr (const char*,ImGuiTreeNodeFlags,const char*,...)
3 bool igTreeNodeExPtr (const void*,ImGuiTreeNodeFlags,const char*,...)
ImVector_front 2
1 T* ImVector_front ()
2 const T* ImVector_front_const ()const
igGetColorU32 3
1 ImU32 igGetColorU32 (ImGuiCol,float)
2 ImU32 igGetColorU32Vec4 (const ImVec4)
3 ImU32 igGetColorU32U32 (ImU32)
ImColor_ImColor 5
1 nil ImColor_ImColor ()
2 nil ImColor_ImColorInt (int,int,int,int)
3 nil ImColor_ImColorU32 (ImU32)
4 nil ImColor_ImColorFloat (float,float,float,float)
5 nil ImColor_ImColorVec4 (const ImVec4)
igCollapsingHeader 2
1 bool igCollapsingHeader (const char*,ImGuiTreeNodeFlags)
2 bool igCollapsingHeaderBoolPtr (const char*,bool*,ImGuiTreeNodeFlags)
ImVector_begin 2
1 T* ImVector_begin ()
2 const T* ImVector_begin_const ()const
ImVector_front 2
1 T* ImVector_front ()
2 const T* ImVector_front_const ()const
ImVector_find 2
1 T* ImVector_find (const T)
2 const T* ImVector_find_const (const T)const
igTreeNodeEx 3
1 bool igTreeNodeExStr (const char*,ImGuiTreeNodeFlags)
2 bool igTreeNodeExStrStr (const char*,ImGuiTreeNodeFlags,const char*,...)
3 bool igTreeNodeExPtr (const void*,ImGuiTreeNodeFlags,const char*,...)
igSelectable 2
1 bool igSelectable (const char*,bool,ImGuiSelectableFlags,const ImVec2)
2 bool igSelectableBoolPtr (const char*,bool*,ImGuiSelectableFlags,const ImVec2)
igMenuItem 2
1 bool igMenuItemBool (const char*,const char*,bool,bool)
2 bool igMenuItemBoolPtr (const char*,const char*,bool*,bool)
igListBoxHeader 2
1 bool igListBoxHeaderVec2 (const char*,const ImVec2)
2 bool igListBoxHeaderInt (const char*,int,int)
igTreeNodeV 2
1 bool igTreeNodeVStr (const char*,const char*,va_list)
2 bool igTreeNodeVPtr (const void*,const char*,va_list)
91 overloaded
93 overloaded

View File

@@ -1,6 +1,11 @@
{
"enums": {
"ImDrawCornerFlags_": [
{
"calc_value": 0,
"name": "ImDrawCornerFlags_None",
"value": "0"
},
{
"calc_value": 1,
"name": "ImDrawCornerFlags_TopLeft",
@@ -1033,38 +1038,43 @@
},
{
"calc_value": 15,
"name": "ImGuiKey_A",
"name": "ImGuiKey_KeyPadEnter",
"value": 15
},
{
"calc_value": 16,
"name": "ImGuiKey_C",
"name": "ImGuiKey_A",
"value": 16
},
{
"calc_value": 17,
"name": "ImGuiKey_V",
"name": "ImGuiKey_C",
"value": 17
},
{
"calc_value": 18,
"name": "ImGuiKey_X",
"name": "ImGuiKey_V",
"value": 18
},
{
"calc_value": 19,
"name": "ImGuiKey_Y",
"name": "ImGuiKey_X",
"value": 19
},
{
"calc_value": 20,
"name": "ImGuiKey_Z",
"name": "ImGuiKey_Y",
"value": 20
},
{
"calc_value": 21,
"name": "ImGuiKey_COUNT",
"name": "ImGuiKey_Z",
"value": 21
},
{
"calc_value": 22,
"name": "ImGuiKey_COUNT",
"value": 22
}
],
"ImGuiMouseCursor_": [
@@ -1207,33 +1217,28 @@
},
{
"calc_value": 17,
"name": "ImGuiNavInput_KeyTab_",
"name": "ImGuiNavInput_KeyLeft_",
"value": 17
},
{
"calc_value": 18,
"name": "ImGuiNavInput_KeyLeft_",
"name": "ImGuiNavInput_KeyRight_",
"value": 18
},
{
"calc_value": 19,
"name": "ImGuiNavInput_KeyRight_",
"name": "ImGuiNavInput_KeyUp_",
"value": 19
},
{
"calc_value": 20,
"name": "ImGuiNavInput_KeyUp_",
"name": "ImGuiNavInput_KeyDown_",
"value": 20
},
{
"calc_value": 21,
"name": "ImGuiNavInput_KeyDown_",
"value": 21
},
{
"calc_value": 22,
"name": "ImGuiNavInput_COUNT",
"value": 22
"value": 21
},
{
"calc_value": 16,
@@ -1266,6 +1271,11 @@
"calc_value": 8,
"name": "ImGuiSelectableFlags_Disabled",
"value": "1 << 3"
},
{
"calc_value": 16,
"name": "ImGuiSelectableFlags_AllowItemOverlap",
"value": "1 << 4"
}
],
"ImGuiStyleVar_": [
@@ -1535,6 +1545,16 @@
"name": "ImGuiTreeNodeFlags_FramePadding",
"value": "1 << 10"
},
{
"calc_value": 2048,
"name": "ImGuiTreeNodeFlags_SpanAvailWidth",
"value": "1 << 11"
},
{
"calc_value": 4096,
"name": "ImGuiTreeNodeFlags_SpanFullWidth",
"value": "1 << 12"
},
{
"calc_value": 8192,
"name": "ImGuiTreeNodeFlags_NavLeftJumpsBackHere",
@@ -1700,40 +1720,6 @@
]
},
"structs": {
"CustomRect": [
{
"name": "ID",
"type": "unsigned int"
},
{
"name": "Width",
"type": "unsigned short"
},
{
"name": "Height",
"type": "unsigned short"
},
{
"name": "X",
"type": "unsigned short"
},
{
"name": "Y",
"type": "unsigned short"
},
{
"name": "GlyphAdvanceX",
"type": "float"
},
{
"name": "GlyphOffset",
"type": "ImVec2"
},
{
"name": "Font",
"type": "ImFont*"
}
],
"ImColor": [
{
"name": "Value",
@@ -1957,6 +1943,10 @@
"name": "FallbackChar",
"type": "ImWchar"
},
{
"name": "EllipsisChar",
"type": "ImWchar"
},
{
"name": "Scale",
"type": "float"
@@ -2030,8 +2020,8 @@
},
{
"name": "CustomRects",
"template_type": "CustomRect",
"type": "ImVector_CustomRect"
"template_type": "ImFontAtlasCustomRect",
"type": "ImVector_ImFontAtlasCustomRect"
},
{
"name": "ConfigData",
@@ -2044,6 +2034,40 @@
"type": "int"
}
],
"ImFontAtlasCustomRect": [
{
"name": "ID",
"type": "unsigned int"
},
{
"name": "Width",
"type": "unsigned short"
},
{
"name": "Height",
"type": "unsigned short"
},
{
"name": "X",
"type": "unsigned short"
},
{
"name": "Y",
"type": "unsigned short"
},
{
"name": "GlyphAdvanceX",
"type": "float"
},
{
"name": "GlyphOffset",
"type": "ImVec2"
},
{
"name": "Font",
"type": "ImFont*"
}
],
"ImFontConfig": [
{
"name": "FontData",
@@ -2109,6 +2133,10 @@
"name": "RasterizerMultiply",
"type": "float"
},
{
"name": "EllipsisChar",
"type": "ImWchar"
},
{
"name": "Name[40]",
"size": 40,
@@ -2211,7 +2239,7 @@
},
{
"name": "KeyMap[ImGuiKey_COUNT]",
"size": 21,
"size": 22,
"type": "int"
},
{
@@ -2266,6 +2294,10 @@
"name": "ConfigWindowsMoveFromTitleBarOnly",
"type": "bool"
},
{
"name": "ConfigWindowsMemoryCompactTimer",
"type": "float"
},
{
"name": "BackendPlatformName",
"type": "const char*"
@@ -2350,7 +2382,7 @@
},
{
"name": "NavInputs[ImGuiNavInput_COUNT]",
"size": 22,
"size": 21,
"type": "float"
},
{
@@ -2480,12 +2512,12 @@
},
{
"name": "NavInputsDownDuration[ImGuiNavInput_COUNT]",
"size": 22,
"size": 21,
"type": "float"
},
{
"name": "NavInputsDownDurationPrev[ImGuiNavInput_COUNT]",
"size": 22,
"size": 21,
"type": "float"
},
{
@@ -2632,8 +2664,18 @@
"ImGuiStorage": [
{
"name": "Data",
"template_type": "Pair",
"type": "ImVector_Pair"
"template_type": "ImGuiStoragePair",
"type": "ImVector_ImGuiStoragePair"
}
],
"ImGuiStoragePair": [
{
"name": "key",
"type": "ImGuiID"
},
{
"name": "",
"type": "union { int val_i; float val_f; void* val_p;}"
}
],
"ImGuiStyle": [
@@ -2737,6 +2779,10 @@
"name": "TabBorderSize",
"type": "float"
},
{
"name": "ColorButtonPosition",
"type": "ImGuiDir"
},
{
"name": "ButtonTextAlign",
"type": "ImVec2"
@@ -2790,14 +2836,24 @@
},
{
"name": "Filters",
"template_type": "TextRange",
"type": "ImVector_TextRange"
"template_type": "ImGuiTextRange",
"type": "ImVector_ImGuiTextRange"
},
{
"name": "CountGrep",
"type": "int"
}
],
"ImGuiTextRange": [
{
"name": "b",
"type": "const char*"
},
{
"name": "e",
"type": "const char*"
}
],
"ImVec2": [
{
"name": "x",
@@ -2825,26 +2881,6 @@
"name": "w",
"type": "float"
}
],
"Pair": [
{
"name": "key",
"type": "ImGuiID"
},
{
"name": "",
"type": "union { int val_i; float val_f; void* val_p;}"
}
],
"TextRange": [
{
"name": "b",
"type": "const char*"
},
{
"name": "e",
"type": "const char*"
}
]
}
}

View File

@@ -2,41 +2,45 @@ local defs = {}
defs["enums"] = {}
defs["enums"]["ImDrawCornerFlags_"] = {}
defs["enums"]["ImDrawCornerFlags_"][1] = {}
defs["enums"]["ImDrawCornerFlags_"][1]["calc_value"] = 1
defs["enums"]["ImDrawCornerFlags_"][1]["name"] = "ImDrawCornerFlags_TopLeft"
defs["enums"]["ImDrawCornerFlags_"][1]["value"] = "1 << 0"
defs["enums"]["ImDrawCornerFlags_"][1]["calc_value"] = 0
defs["enums"]["ImDrawCornerFlags_"][1]["name"] = "ImDrawCornerFlags_None"
defs["enums"]["ImDrawCornerFlags_"][1]["value"] = "0"
defs["enums"]["ImDrawCornerFlags_"][2] = {}
defs["enums"]["ImDrawCornerFlags_"][2]["calc_value"] = 2
defs["enums"]["ImDrawCornerFlags_"][2]["name"] = "ImDrawCornerFlags_TopRight"
defs["enums"]["ImDrawCornerFlags_"][2]["value"] = "1 << 1"
defs["enums"]["ImDrawCornerFlags_"][2]["calc_value"] = 1
defs["enums"]["ImDrawCornerFlags_"][2]["name"] = "ImDrawCornerFlags_TopLeft"
defs["enums"]["ImDrawCornerFlags_"][2]["value"] = "1 << 0"
defs["enums"]["ImDrawCornerFlags_"][3] = {}
defs["enums"]["ImDrawCornerFlags_"][3]["calc_value"] = 4
defs["enums"]["ImDrawCornerFlags_"][3]["name"] = "ImDrawCornerFlags_BotLeft"
defs["enums"]["ImDrawCornerFlags_"][3]["value"] = "1 << 2"
defs["enums"]["ImDrawCornerFlags_"][3]["calc_value"] = 2
defs["enums"]["ImDrawCornerFlags_"][3]["name"] = "ImDrawCornerFlags_TopRight"
defs["enums"]["ImDrawCornerFlags_"][3]["value"] = "1 << 1"
defs["enums"]["ImDrawCornerFlags_"][4] = {}
defs["enums"]["ImDrawCornerFlags_"][4]["calc_value"] = 8
defs["enums"]["ImDrawCornerFlags_"][4]["name"] = "ImDrawCornerFlags_BotRight"
defs["enums"]["ImDrawCornerFlags_"][4]["value"] = "1 << 3"
defs["enums"]["ImDrawCornerFlags_"][4]["calc_value"] = 4
defs["enums"]["ImDrawCornerFlags_"][4]["name"] = "ImDrawCornerFlags_BotLeft"
defs["enums"]["ImDrawCornerFlags_"][4]["value"] = "1 << 2"
defs["enums"]["ImDrawCornerFlags_"][5] = {}
defs["enums"]["ImDrawCornerFlags_"][5]["calc_value"] = 3
defs["enums"]["ImDrawCornerFlags_"][5]["name"] = "ImDrawCornerFlags_Top"
defs["enums"]["ImDrawCornerFlags_"][5]["value"] = "ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_TopRight"
defs["enums"]["ImDrawCornerFlags_"][5]["calc_value"] = 8
defs["enums"]["ImDrawCornerFlags_"][5]["name"] = "ImDrawCornerFlags_BotRight"
defs["enums"]["ImDrawCornerFlags_"][5]["value"] = "1 << 3"
defs["enums"]["ImDrawCornerFlags_"][6] = {}
defs["enums"]["ImDrawCornerFlags_"][6]["calc_value"] = 12
defs["enums"]["ImDrawCornerFlags_"][6]["name"] = "ImDrawCornerFlags_Bot"
defs["enums"]["ImDrawCornerFlags_"][6]["value"] = "ImDrawCornerFlags_BotLeft | ImDrawCornerFlags_BotRight"
defs["enums"]["ImDrawCornerFlags_"][6]["calc_value"] = 3
defs["enums"]["ImDrawCornerFlags_"][6]["name"] = "ImDrawCornerFlags_Top"
defs["enums"]["ImDrawCornerFlags_"][6]["value"] = "ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_TopRight"
defs["enums"]["ImDrawCornerFlags_"][7] = {}
defs["enums"]["ImDrawCornerFlags_"][7]["calc_value"] = 5
defs["enums"]["ImDrawCornerFlags_"][7]["name"] = "ImDrawCornerFlags_Left"
defs["enums"]["ImDrawCornerFlags_"][7]["value"] = "ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_BotLeft"
defs["enums"]["ImDrawCornerFlags_"][7]["calc_value"] = 12
defs["enums"]["ImDrawCornerFlags_"][7]["name"] = "ImDrawCornerFlags_Bot"
defs["enums"]["ImDrawCornerFlags_"][7]["value"] = "ImDrawCornerFlags_BotLeft | ImDrawCornerFlags_BotRight"
defs["enums"]["ImDrawCornerFlags_"][8] = {}
defs["enums"]["ImDrawCornerFlags_"][8]["calc_value"] = 10
defs["enums"]["ImDrawCornerFlags_"][8]["name"] = "ImDrawCornerFlags_Right"
defs["enums"]["ImDrawCornerFlags_"][8]["value"] = "ImDrawCornerFlags_TopRight | ImDrawCornerFlags_BotRight"
defs["enums"]["ImDrawCornerFlags_"][8]["calc_value"] = 5
defs["enums"]["ImDrawCornerFlags_"][8]["name"] = "ImDrawCornerFlags_Left"
defs["enums"]["ImDrawCornerFlags_"][8]["value"] = "ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_BotLeft"
defs["enums"]["ImDrawCornerFlags_"][9] = {}
defs["enums"]["ImDrawCornerFlags_"][9]["calc_value"] = 15
defs["enums"]["ImDrawCornerFlags_"][9]["name"] = "ImDrawCornerFlags_All"
defs["enums"]["ImDrawCornerFlags_"][9]["value"] = "0xF"
defs["enums"]["ImDrawCornerFlags_"][9]["calc_value"] = 10
defs["enums"]["ImDrawCornerFlags_"][9]["name"] = "ImDrawCornerFlags_Right"
defs["enums"]["ImDrawCornerFlags_"][9]["value"] = "ImDrawCornerFlags_TopRight | ImDrawCornerFlags_BotRight"
defs["enums"]["ImDrawCornerFlags_"][10] = {}
defs["enums"]["ImDrawCornerFlags_"][10]["calc_value"] = 15
defs["enums"]["ImDrawCornerFlags_"][10]["name"] = "ImDrawCornerFlags_All"
defs["enums"]["ImDrawCornerFlags_"][10]["value"] = "0xF"
defs["enums"]["ImDrawListFlags_"] = {}
defs["enums"]["ImDrawListFlags_"][1] = {}
defs["enums"]["ImDrawListFlags_"][1]["calc_value"] = 0
@@ -818,32 +822,36 @@ defs["enums"]["ImGuiKey_"][15]["name"] = "ImGuiKey_Escape"
defs["enums"]["ImGuiKey_"][15]["value"] = 14
defs["enums"]["ImGuiKey_"][16] = {}
defs["enums"]["ImGuiKey_"][16]["calc_value"] = 15
defs["enums"]["ImGuiKey_"][16]["name"] = "ImGuiKey_A"
defs["enums"]["ImGuiKey_"][16]["name"] = "ImGuiKey_KeyPadEnter"
defs["enums"]["ImGuiKey_"][16]["value"] = 15
defs["enums"]["ImGuiKey_"][17] = {}
defs["enums"]["ImGuiKey_"][17]["calc_value"] = 16
defs["enums"]["ImGuiKey_"][17]["name"] = "ImGuiKey_C"
defs["enums"]["ImGuiKey_"][17]["name"] = "ImGuiKey_A"
defs["enums"]["ImGuiKey_"][17]["value"] = 16
defs["enums"]["ImGuiKey_"][18] = {}
defs["enums"]["ImGuiKey_"][18]["calc_value"] = 17
defs["enums"]["ImGuiKey_"][18]["name"] = "ImGuiKey_V"
defs["enums"]["ImGuiKey_"][18]["name"] = "ImGuiKey_C"
defs["enums"]["ImGuiKey_"][18]["value"] = 17
defs["enums"]["ImGuiKey_"][19] = {}
defs["enums"]["ImGuiKey_"][19]["calc_value"] = 18
defs["enums"]["ImGuiKey_"][19]["name"] = "ImGuiKey_X"
defs["enums"]["ImGuiKey_"][19]["name"] = "ImGuiKey_V"
defs["enums"]["ImGuiKey_"][19]["value"] = 18
defs["enums"]["ImGuiKey_"][20] = {}
defs["enums"]["ImGuiKey_"][20]["calc_value"] = 19
defs["enums"]["ImGuiKey_"][20]["name"] = "ImGuiKey_Y"
defs["enums"]["ImGuiKey_"][20]["name"] = "ImGuiKey_X"
defs["enums"]["ImGuiKey_"][20]["value"] = 19
defs["enums"]["ImGuiKey_"][21] = {}
defs["enums"]["ImGuiKey_"][21]["calc_value"] = 20
defs["enums"]["ImGuiKey_"][21]["name"] = "ImGuiKey_Z"
defs["enums"]["ImGuiKey_"][21]["name"] = "ImGuiKey_Y"
defs["enums"]["ImGuiKey_"][21]["value"] = 20
defs["enums"]["ImGuiKey_"][22] = {}
defs["enums"]["ImGuiKey_"][22]["calc_value"] = 21
defs["enums"]["ImGuiKey_"][22]["name"] = "ImGuiKey_COUNT"
defs["enums"]["ImGuiKey_"][22]["name"] = "ImGuiKey_Z"
defs["enums"]["ImGuiKey_"][22]["value"] = 21
defs["enums"]["ImGuiKey_"][23] = {}
defs["enums"]["ImGuiKey_"][23]["calc_value"] = 22
defs["enums"]["ImGuiKey_"][23]["name"] = "ImGuiKey_COUNT"
defs["enums"]["ImGuiKey_"][23]["value"] = 22
defs["enums"]["ImGuiMouseCursor_"] = {}
defs["enums"]["ImGuiMouseCursor_"][1] = {}
defs["enums"]["ImGuiMouseCursor_"][1]["calc_value"] = -1
@@ -956,32 +964,28 @@ defs["enums"]["ImGuiNavInput_"][17]["name"] = "ImGuiNavInput_KeyMenu_"
defs["enums"]["ImGuiNavInput_"][17]["value"] = 16
defs["enums"]["ImGuiNavInput_"][18] = {}
defs["enums"]["ImGuiNavInput_"][18]["calc_value"] = 17
defs["enums"]["ImGuiNavInput_"][18]["name"] = "ImGuiNavInput_KeyTab_"
defs["enums"]["ImGuiNavInput_"][18]["name"] = "ImGuiNavInput_KeyLeft_"
defs["enums"]["ImGuiNavInput_"][18]["value"] = 17
defs["enums"]["ImGuiNavInput_"][19] = {}
defs["enums"]["ImGuiNavInput_"][19]["calc_value"] = 18
defs["enums"]["ImGuiNavInput_"][19]["name"] = "ImGuiNavInput_KeyLeft_"
defs["enums"]["ImGuiNavInput_"][19]["name"] = "ImGuiNavInput_KeyRight_"
defs["enums"]["ImGuiNavInput_"][19]["value"] = 18
defs["enums"]["ImGuiNavInput_"][20] = {}
defs["enums"]["ImGuiNavInput_"][20]["calc_value"] = 19
defs["enums"]["ImGuiNavInput_"][20]["name"] = "ImGuiNavInput_KeyRight_"
defs["enums"]["ImGuiNavInput_"][20]["name"] = "ImGuiNavInput_KeyUp_"
defs["enums"]["ImGuiNavInput_"][20]["value"] = 19
defs["enums"]["ImGuiNavInput_"][21] = {}
defs["enums"]["ImGuiNavInput_"][21]["calc_value"] = 20
defs["enums"]["ImGuiNavInput_"][21]["name"] = "ImGuiNavInput_KeyUp_"
defs["enums"]["ImGuiNavInput_"][21]["name"] = "ImGuiNavInput_KeyDown_"
defs["enums"]["ImGuiNavInput_"][21]["value"] = 20
defs["enums"]["ImGuiNavInput_"][22] = {}
defs["enums"]["ImGuiNavInput_"][22]["calc_value"] = 21
defs["enums"]["ImGuiNavInput_"][22]["name"] = "ImGuiNavInput_KeyDown_"
defs["enums"]["ImGuiNavInput_"][22]["name"] = "ImGuiNavInput_COUNT"
defs["enums"]["ImGuiNavInput_"][22]["value"] = 21
defs["enums"]["ImGuiNavInput_"][23] = {}
defs["enums"]["ImGuiNavInput_"][23]["calc_value"] = 22
defs["enums"]["ImGuiNavInput_"][23]["name"] = "ImGuiNavInput_COUNT"
defs["enums"]["ImGuiNavInput_"][23]["value"] = 22
defs["enums"]["ImGuiNavInput_"][24] = {}
defs["enums"]["ImGuiNavInput_"][24]["calc_value"] = 16
defs["enums"]["ImGuiNavInput_"][24]["name"] = "ImGuiNavInput_InternalStart_"
defs["enums"]["ImGuiNavInput_"][24]["value"] = "ImGuiNavInput_KeyMenu_"
defs["enums"]["ImGuiNavInput_"][23]["calc_value"] = 16
defs["enums"]["ImGuiNavInput_"][23]["name"] = "ImGuiNavInput_InternalStart_"
defs["enums"]["ImGuiNavInput_"][23]["value"] = "ImGuiNavInput_KeyMenu_"
defs["enums"]["ImGuiSelectableFlags_"] = {}
defs["enums"]["ImGuiSelectableFlags_"][1] = {}
defs["enums"]["ImGuiSelectableFlags_"][1]["calc_value"] = 0
@@ -1003,6 +1007,10 @@ defs["enums"]["ImGuiSelectableFlags_"][5] = {}
defs["enums"]["ImGuiSelectableFlags_"][5]["calc_value"] = 8
defs["enums"]["ImGuiSelectableFlags_"][5]["name"] = "ImGuiSelectableFlags_Disabled"
defs["enums"]["ImGuiSelectableFlags_"][5]["value"] = "1 << 3"
defs["enums"]["ImGuiSelectableFlags_"][6] = {}
defs["enums"]["ImGuiSelectableFlags_"][6]["calc_value"] = 16
defs["enums"]["ImGuiSelectableFlags_"][6]["name"] = "ImGuiSelectableFlags_AllowItemOverlap"
defs["enums"]["ImGuiSelectableFlags_"][6]["value"] = "1 << 4"
defs["enums"]["ImGuiStyleVar_"] = {}
defs["enums"]["ImGuiStyleVar_"][1] = {}
defs["enums"]["ImGuiStyleVar_"][1]["calc_value"] = 0
@@ -1216,13 +1224,21 @@ defs["enums"]["ImGuiTreeNodeFlags_"][12]["calc_value"] = 1024
defs["enums"]["ImGuiTreeNodeFlags_"][12]["name"] = "ImGuiTreeNodeFlags_FramePadding"
defs["enums"]["ImGuiTreeNodeFlags_"][12]["value"] = "1 << 10"
defs["enums"]["ImGuiTreeNodeFlags_"][13] = {}
defs["enums"]["ImGuiTreeNodeFlags_"][13]["calc_value"] = 8192
defs["enums"]["ImGuiTreeNodeFlags_"][13]["name"] = "ImGuiTreeNodeFlags_NavLeftJumpsBackHere"
defs["enums"]["ImGuiTreeNodeFlags_"][13]["value"] = "1 << 13"
defs["enums"]["ImGuiTreeNodeFlags_"][13]["calc_value"] = 2048
defs["enums"]["ImGuiTreeNodeFlags_"][13]["name"] = "ImGuiTreeNodeFlags_SpanAvailWidth"
defs["enums"]["ImGuiTreeNodeFlags_"][13]["value"] = "1 << 11"
defs["enums"]["ImGuiTreeNodeFlags_"][14] = {}
defs["enums"]["ImGuiTreeNodeFlags_"][14]["calc_value"] = 26
defs["enums"]["ImGuiTreeNodeFlags_"][14]["name"] = "ImGuiTreeNodeFlags_CollapsingHeader"
defs["enums"]["ImGuiTreeNodeFlags_"][14]["value"] = "ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog"
defs["enums"]["ImGuiTreeNodeFlags_"][14]["calc_value"] = 4096
defs["enums"]["ImGuiTreeNodeFlags_"][14]["name"] = "ImGuiTreeNodeFlags_SpanFullWidth"
defs["enums"]["ImGuiTreeNodeFlags_"][14]["value"] = "1 << 12"
defs["enums"]["ImGuiTreeNodeFlags_"][15] = {}
defs["enums"]["ImGuiTreeNodeFlags_"][15]["calc_value"] = 8192
defs["enums"]["ImGuiTreeNodeFlags_"][15]["name"] = "ImGuiTreeNodeFlags_NavLeftJumpsBackHere"
defs["enums"]["ImGuiTreeNodeFlags_"][15]["value"] = "1 << 13"
defs["enums"]["ImGuiTreeNodeFlags_"][16] = {}
defs["enums"]["ImGuiTreeNodeFlags_"][16]["calc_value"] = 26
defs["enums"]["ImGuiTreeNodeFlags_"][16]["name"] = "ImGuiTreeNodeFlags_CollapsingHeader"
defs["enums"]["ImGuiTreeNodeFlags_"][16]["value"] = "ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog"
defs["enums"]["ImGuiWindowFlags_"] = {}
defs["enums"]["ImGuiWindowFlags_"][1] = {}
defs["enums"]["ImGuiWindowFlags_"][1]["calc_value"] = 0
@@ -1345,31 +1361,6 @@ defs["enums"]["ImGuiWindowFlags_"][30]["calc_value"] = 268435456
defs["enums"]["ImGuiWindowFlags_"][30]["name"] = "ImGuiWindowFlags_ChildMenu"
defs["enums"]["ImGuiWindowFlags_"][30]["value"] = "1 << 28"
defs["structs"] = {}
defs["structs"]["CustomRect"] = {}
defs["structs"]["CustomRect"][1] = {}
defs["structs"]["CustomRect"][1]["name"] = "ID"
defs["structs"]["CustomRect"][1]["type"] = "unsigned int"
defs["structs"]["CustomRect"][2] = {}
defs["structs"]["CustomRect"][2]["name"] = "Width"
defs["structs"]["CustomRect"][2]["type"] = "unsigned short"
defs["structs"]["CustomRect"][3] = {}
defs["structs"]["CustomRect"][3]["name"] = "Height"
defs["structs"]["CustomRect"][3]["type"] = "unsigned short"
defs["structs"]["CustomRect"][4] = {}
defs["structs"]["CustomRect"][4]["name"] = "X"
defs["structs"]["CustomRect"][4]["type"] = "unsigned short"
defs["structs"]["CustomRect"][5] = {}
defs["structs"]["CustomRect"][5]["name"] = "Y"
defs["structs"]["CustomRect"][5]["type"] = "unsigned short"
defs["structs"]["CustomRect"][6] = {}
defs["structs"]["CustomRect"][6]["name"] = "GlyphAdvanceX"
defs["structs"]["CustomRect"][6]["type"] = "float"
defs["structs"]["CustomRect"][7] = {}
defs["structs"]["CustomRect"][7]["name"] = "GlyphOffset"
defs["structs"]["CustomRect"][7]["type"] = "ImVec2"
defs["structs"]["CustomRect"][8] = {}
defs["structs"]["CustomRect"][8]["name"] = "Font"
defs["structs"]["CustomRect"][8]["type"] = "ImFont*"
defs["structs"]["ImColor"] = {}
defs["structs"]["ImColor"][1] = {}
defs["structs"]["ImColor"][1]["name"] = "Value"
@@ -1538,20 +1529,23 @@ defs["structs"]["ImFont"][11] = {}
defs["structs"]["ImFont"][11]["name"] = "FallbackChar"
defs["structs"]["ImFont"][11]["type"] = "ImWchar"
defs["structs"]["ImFont"][12] = {}
defs["structs"]["ImFont"][12]["name"] = "Scale"
defs["structs"]["ImFont"][12]["type"] = "float"
defs["structs"]["ImFont"][12]["name"] = "EllipsisChar"
defs["structs"]["ImFont"][12]["type"] = "ImWchar"
defs["structs"]["ImFont"][13] = {}
defs["structs"]["ImFont"][13]["name"] = "Ascent"
defs["structs"]["ImFont"][13]["name"] = "Scale"
defs["structs"]["ImFont"][13]["type"] = "float"
defs["structs"]["ImFont"][14] = {}
defs["structs"]["ImFont"][14]["name"] = "Descent"
defs["structs"]["ImFont"][14]["name"] = "Ascent"
defs["structs"]["ImFont"][14]["type"] = "float"
defs["structs"]["ImFont"][15] = {}
defs["structs"]["ImFont"][15]["name"] = "MetricsTotalSurface"
defs["structs"]["ImFont"][15]["type"] = "int"
defs["structs"]["ImFont"][15]["name"] = "Descent"
defs["structs"]["ImFont"][15]["type"] = "float"
defs["structs"]["ImFont"][16] = {}
defs["structs"]["ImFont"][16]["name"] = "DirtyLookupTables"
defs["structs"]["ImFont"][16]["type"] = "bool"
defs["structs"]["ImFont"][16]["name"] = "MetricsTotalSurface"
defs["structs"]["ImFont"][16]["type"] = "int"
defs["structs"]["ImFont"][17] = {}
defs["structs"]["ImFont"][17]["name"] = "DirtyLookupTables"
defs["structs"]["ImFont"][17]["type"] = "bool"
defs["structs"]["ImFontAtlas"] = {}
defs["structs"]["ImFontAtlas"][1] = {}
defs["structs"]["ImFontAtlas"][1]["name"] = "Locked"
@@ -1592,8 +1586,8 @@ defs["structs"]["ImFontAtlas"][12]["template_type"] = "ImFont*"
defs["structs"]["ImFontAtlas"][12]["type"] = "ImVector_ImFontPtr"
defs["structs"]["ImFontAtlas"][13] = {}
defs["structs"]["ImFontAtlas"][13]["name"] = "CustomRects"
defs["structs"]["ImFontAtlas"][13]["template_type"] = "CustomRect"
defs["structs"]["ImFontAtlas"][13]["type"] = "ImVector_CustomRect"
defs["structs"]["ImFontAtlas"][13]["template_type"] = "ImFontAtlasCustomRect"
defs["structs"]["ImFontAtlas"][13]["type"] = "ImVector_ImFontAtlasCustomRect"
defs["structs"]["ImFontAtlas"][14] = {}
defs["structs"]["ImFontAtlas"][14]["name"] = "ConfigData"
defs["structs"]["ImFontAtlas"][14]["template_type"] = "ImFontConfig"
@@ -1602,6 +1596,31 @@ defs["structs"]["ImFontAtlas"][15] = {}
defs["structs"]["ImFontAtlas"][15]["name"] = "CustomRectIds[1]"
defs["structs"]["ImFontAtlas"][15]["size"] = 1
defs["structs"]["ImFontAtlas"][15]["type"] = "int"
defs["structs"]["ImFontAtlasCustomRect"] = {}
defs["structs"]["ImFontAtlasCustomRect"][1] = {}
defs["structs"]["ImFontAtlasCustomRect"][1]["name"] = "ID"
defs["structs"]["ImFontAtlasCustomRect"][1]["type"] = "unsigned int"
defs["structs"]["ImFontAtlasCustomRect"][2] = {}
defs["structs"]["ImFontAtlasCustomRect"][2]["name"] = "Width"
defs["structs"]["ImFontAtlasCustomRect"][2]["type"] = "unsigned short"
defs["structs"]["ImFontAtlasCustomRect"][3] = {}
defs["structs"]["ImFontAtlasCustomRect"][3]["name"] = "Height"
defs["structs"]["ImFontAtlasCustomRect"][3]["type"] = "unsigned short"
defs["structs"]["ImFontAtlasCustomRect"][4] = {}
defs["structs"]["ImFontAtlasCustomRect"][4]["name"] = "X"
defs["structs"]["ImFontAtlasCustomRect"][4]["type"] = "unsigned short"
defs["structs"]["ImFontAtlasCustomRect"][5] = {}
defs["structs"]["ImFontAtlasCustomRect"][5]["name"] = "Y"
defs["structs"]["ImFontAtlasCustomRect"][5]["type"] = "unsigned short"
defs["structs"]["ImFontAtlasCustomRect"][6] = {}
defs["structs"]["ImFontAtlasCustomRect"][6]["name"] = "GlyphAdvanceX"
defs["structs"]["ImFontAtlasCustomRect"][6]["type"] = "float"
defs["structs"]["ImFontAtlasCustomRect"][7] = {}
defs["structs"]["ImFontAtlasCustomRect"][7]["name"] = "GlyphOffset"
defs["structs"]["ImFontAtlasCustomRect"][7]["type"] = "ImVec2"
defs["structs"]["ImFontAtlasCustomRect"][8] = {}
defs["structs"]["ImFontAtlasCustomRect"][8]["name"] = "Font"
defs["structs"]["ImFontAtlasCustomRect"][8]["type"] = "ImFont*"
defs["structs"]["ImFontConfig"] = {}
defs["structs"]["ImFontConfig"][1] = {}
defs["structs"]["ImFontConfig"][1]["name"] = "FontData"
@@ -1652,12 +1671,15 @@ defs["structs"]["ImFontConfig"][16] = {}
defs["structs"]["ImFontConfig"][16]["name"] = "RasterizerMultiply"
defs["structs"]["ImFontConfig"][16]["type"] = "float"
defs["structs"]["ImFontConfig"][17] = {}
defs["structs"]["ImFontConfig"][17]["name"] = "Name[40]"
defs["structs"]["ImFontConfig"][17]["size"] = 40
defs["structs"]["ImFontConfig"][17]["type"] = "char"
defs["structs"]["ImFontConfig"][17]["name"] = "EllipsisChar"
defs["structs"]["ImFontConfig"][17]["type"] = "ImWchar"
defs["structs"]["ImFontConfig"][18] = {}
defs["structs"]["ImFontConfig"][18]["name"] = "DstFont"
defs["structs"]["ImFontConfig"][18]["type"] = "ImFont*"
defs["structs"]["ImFontConfig"][18]["name"] = "Name[40]"
defs["structs"]["ImFontConfig"][18]["size"] = 40
defs["structs"]["ImFontConfig"][18]["type"] = "char"
defs["structs"]["ImFontConfig"][19] = {}
defs["structs"]["ImFontConfig"][19]["name"] = "DstFont"
defs["structs"]["ImFontConfig"][19]["type"] = "ImFont*"
defs["structs"]["ImFontGlyph"] = {}
defs["structs"]["ImFontGlyph"][1] = {}
defs["structs"]["ImFontGlyph"][1]["name"] = "Codepoint"
@@ -1727,7 +1749,7 @@ defs["structs"]["ImGuiIO"][10]["name"] = "MouseDragThreshold"
defs["structs"]["ImGuiIO"][10]["type"] = "float"
defs["structs"]["ImGuiIO"][11] = {}
defs["structs"]["ImGuiIO"][11]["name"] = "KeyMap[ImGuiKey_COUNT]"
defs["structs"]["ImGuiIO"][11]["size"] = 21
defs["structs"]["ImGuiIO"][11]["size"] = 22
defs["structs"]["ImGuiIO"][11]["type"] = "int"
defs["structs"]["ImGuiIO"][12] = {}
defs["structs"]["ImGuiIO"][12]["name"] = "KeyRepeatDelay"
@@ -1769,180 +1791,183 @@ defs["structs"]["ImGuiIO"][24] = {}
defs["structs"]["ImGuiIO"][24]["name"] = "ConfigWindowsMoveFromTitleBarOnly"
defs["structs"]["ImGuiIO"][24]["type"] = "bool"
defs["structs"]["ImGuiIO"][25] = {}
defs["structs"]["ImGuiIO"][25]["name"] = "BackendPlatformName"
defs["structs"]["ImGuiIO"][25]["type"] = "const char*"
defs["structs"]["ImGuiIO"][25]["name"] = "ConfigWindowsMemoryCompactTimer"
defs["structs"]["ImGuiIO"][25]["type"] = "float"
defs["structs"]["ImGuiIO"][26] = {}
defs["structs"]["ImGuiIO"][26]["name"] = "BackendRendererName"
defs["structs"]["ImGuiIO"][26]["name"] = "BackendPlatformName"
defs["structs"]["ImGuiIO"][26]["type"] = "const char*"
defs["structs"]["ImGuiIO"][27] = {}
defs["structs"]["ImGuiIO"][27]["name"] = "BackendPlatformUserData"
defs["structs"]["ImGuiIO"][27]["type"] = "void*"
defs["structs"]["ImGuiIO"][27]["name"] = "BackendRendererName"
defs["structs"]["ImGuiIO"][27]["type"] = "const char*"
defs["structs"]["ImGuiIO"][28] = {}
defs["structs"]["ImGuiIO"][28]["name"] = "BackendRendererUserData"
defs["structs"]["ImGuiIO"][28]["name"] = "BackendPlatformUserData"
defs["structs"]["ImGuiIO"][28]["type"] = "void*"
defs["structs"]["ImGuiIO"][29] = {}
defs["structs"]["ImGuiIO"][29]["name"] = "BackendLanguageUserData"
defs["structs"]["ImGuiIO"][29]["name"] = "BackendRendererUserData"
defs["structs"]["ImGuiIO"][29]["type"] = "void*"
defs["structs"]["ImGuiIO"][30] = {}
defs["structs"]["ImGuiIO"][30]["name"] = "GetClipboardTextFn"
defs["structs"]["ImGuiIO"][30]["type"] = "const char*(*)(void* user_data)"
defs["structs"]["ImGuiIO"][30]["name"] = "BackendLanguageUserData"
defs["structs"]["ImGuiIO"][30]["type"] = "void*"
defs["structs"]["ImGuiIO"][31] = {}
defs["structs"]["ImGuiIO"][31]["name"] = "SetClipboardTextFn"
defs["structs"]["ImGuiIO"][31]["type"] = "void(*)(void* user_data,const char* text)"
defs["structs"]["ImGuiIO"][31]["name"] = "GetClipboardTextFn"
defs["structs"]["ImGuiIO"][31]["type"] = "const char*(*)(void* user_data)"
defs["structs"]["ImGuiIO"][32] = {}
defs["structs"]["ImGuiIO"][32]["name"] = "ClipboardUserData"
defs["structs"]["ImGuiIO"][32]["type"] = "void*"
defs["structs"]["ImGuiIO"][32]["name"] = "SetClipboardTextFn"
defs["structs"]["ImGuiIO"][32]["type"] = "void(*)(void* user_data,const char* text)"
defs["structs"]["ImGuiIO"][33] = {}
defs["structs"]["ImGuiIO"][33]["name"] = "ImeSetInputScreenPosFn"
defs["structs"]["ImGuiIO"][33]["type"] = "void(*)(int x,int y)"
defs["structs"]["ImGuiIO"][33]["name"] = "ClipboardUserData"
defs["structs"]["ImGuiIO"][33]["type"] = "void*"
defs["structs"]["ImGuiIO"][34] = {}
defs["structs"]["ImGuiIO"][34]["name"] = "ImeWindowHandle"
defs["structs"]["ImGuiIO"][34]["type"] = "void*"
defs["structs"]["ImGuiIO"][34]["name"] = "ImeSetInputScreenPosFn"
defs["structs"]["ImGuiIO"][34]["type"] = "void(*)(int x,int y)"
defs["structs"]["ImGuiIO"][35] = {}
defs["structs"]["ImGuiIO"][35]["name"] = "RenderDrawListsFnUnused"
defs["structs"]["ImGuiIO"][35]["name"] = "ImeWindowHandle"
defs["structs"]["ImGuiIO"][35]["type"] = "void*"
defs["structs"]["ImGuiIO"][36] = {}
defs["structs"]["ImGuiIO"][36]["name"] = "MousePos"
defs["structs"]["ImGuiIO"][36]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][36]["name"] = "RenderDrawListsFnUnused"
defs["structs"]["ImGuiIO"][36]["type"] = "void*"
defs["structs"]["ImGuiIO"][37] = {}
defs["structs"]["ImGuiIO"][37]["name"] = "MouseDown[5]"
defs["structs"]["ImGuiIO"][37]["size"] = 5
defs["structs"]["ImGuiIO"][37]["type"] = "bool"
defs["structs"]["ImGuiIO"][37]["name"] = "MousePos"
defs["structs"]["ImGuiIO"][37]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][38] = {}
defs["structs"]["ImGuiIO"][38]["name"] = "MouseWheel"
defs["structs"]["ImGuiIO"][38]["type"] = "float"
defs["structs"]["ImGuiIO"][38]["name"] = "MouseDown[5]"
defs["structs"]["ImGuiIO"][38]["size"] = 5
defs["structs"]["ImGuiIO"][38]["type"] = "bool"
defs["structs"]["ImGuiIO"][39] = {}
defs["structs"]["ImGuiIO"][39]["name"] = "MouseWheelH"
defs["structs"]["ImGuiIO"][39]["name"] = "MouseWheel"
defs["structs"]["ImGuiIO"][39]["type"] = "float"
defs["structs"]["ImGuiIO"][40] = {}
defs["structs"]["ImGuiIO"][40]["name"] = "KeyCtrl"
defs["structs"]["ImGuiIO"][40]["type"] = "bool"
defs["structs"]["ImGuiIO"][40]["name"] = "MouseWheelH"
defs["structs"]["ImGuiIO"][40]["type"] = "float"
defs["structs"]["ImGuiIO"][41] = {}
defs["structs"]["ImGuiIO"][41]["name"] = "KeyShift"
defs["structs"]["ImGuiIO"][41]["name"] = "KeyCtrl"
defs["structs"]["ImGuiIO"][41]["type"] = "bool"
defs["structs"]["ImGuiIO"][42] = {}
defs["structs"]["ImGuiIO"][42]["name"] = "KeyAlt"
defs["structs"]["ImGuiIO"][42]["name"] = "KeyShift"
defs["structs"]["ImGuiIO"][42]["type"] = "bool"
defs["structs"]["ImGuiIO"][43] = {}
defs["structs"]["ImGuiIO"][43]["name"] = "KeySuper"
defs["structs"]["ImGuiIO"][43]["name"] = "KeyAlt"
defs["structs"]["ImGuiIO"][43]["type"] = "bool"
defs["structs"]["ImGuiIO"][44] = {}
defs["structs"]["ImGuiIO"][44]["name"] = "KeysDown[512]"
defs["structs"]["ImGuiIO"][44]["size"] = 512
defs["structs"]["ImGuiIO"][44]["name"] = "KeySuper"
defs["structs"]["ImGuiIO"][44]["type"] = "bool"
defs["structs"]["ImGuiIO"][45] = {}
defs["structs"]["ImGuiIO"][45]["name"] = "NavInputs[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][45]["size"] = 22
defs["structs"]["ImGuiIO"][45]["type"] = "float"
defs["structs"]["ImGuiIO"][45]["name"] = "KeysDown[512]"
defs["structs"]["ImGuiIO"][45]["size"] = 512
defs["structs"]["ImGuiIO"][45]["type"] = "bool"
defs["structs"]["ImGuiIO"][46] = {}
defs["structs"]["ImGuiIO"][46]["name"] = "WantCaptureMouse"
defs["structs"]["ImGuiIO"][46]["type"] = "bool"
defs["structs"]["ImGuiIO"][46]["name"] = "NavInputs[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][46]["size"] = 21
defs["structs"]["ImGuiIO"][46]["type"] = "float"
defs["structs"]["ImGuiIO"][47] = {}
defs["structs"]["ImGuiIO"][47]["name"] = "WantCaptureKeyboard"
defs["structs"]["ImGuiIO"][47]["name"] = "WantCaptureMouse"
defs["structs"]["ImGuiIO"][47]["type"] = "bool"
defs["structs"]["ImGuiIO"][48] = {}
defs["structs"]["ImGuiIO"][48]["name"] = "WantTextInput"
defs["structs"]["ImGuiIO"][48]["name"] = "WantCaptureKeyboard"
defs["structs"]["ImGuiIO"][48]["type"] = "bool"
defs["structs"]["ImGuiIO"][49] = {}
defs["structs"]["ImGuiIO"][49]["name"] = "WantSetMousePos"
defs["structs"]["ImGuiIO"][49]["name"] = "WantTextInput"
defs["structs"]["ImGuiIO"][49]["type"] = "bool"
defs["structs"]["ImGuiIO"][50] = {}
defs["structs"]["ImGuiIO"][50]["name"] = "WantSaveIniSettings"
defs["structs"]["ImGuiIO"][50]["name"] = "WantSetMousePos"
defs["structs"]["ImGuiIO"][50]["type"] = "bool"
defs["structs"]["ImGuiIO"][51] = {}
defs["structs"]["ImGuiIO"][51]["name"] = "NavActive"
defs["structs"]["ImGuiIO"][51]["name"] = "WantSaveIniSettings"
defs["structs"]["ImGuiIO"][51]["type"] = "bool"
defs["structs"]["ImGuiIO"][52] = {}
defs["structs"]["ImGuiIO"][52]["name"] = "NavVisible"
defs["structs"]["ImGuiIO"][52]["name"] = "NavActive"
defs["structs"]["ImGuiIO"][52]["type"] = "bool"
defs["structs"]["ImGuiIO"][53] = {}
defs["structs"]["ImGuiIO"][53]["name"] = "Framerate"
defs["structs"]["ImGuiIO"][53]["type"] = "float"
defs["structs"]["ImGuiIO"][53]["name"] = "NavVisible"
defs["structs"]["ImGuiIO"][53]["type"] = "bool"
defs["structs"]["ImGuiIO"][54] = {}
defs["structs"]["ImGuiIO"][54]["name"] = "MetricsRenderVertices"
defs["structs"]["ImGuiIO"][54]["type"] = "int"
defs["structs"]["ImGuiIO"][54]["name"] = "Framerate"
defs["structs"]["ImGuiIO"][54]["type"] = "float"
defs["structs"]["ImGuiIO"][55] = {}
defs["structs"]["ImGuiIO"][55]["name"] = "MetricsRenderIndices"
defs["structs"]["ImGuiIO"][55]["name"] = "MetricsRenderVertices"
defs["structs"]["ImGuiIO"][55]["type"] = "int"
defs["structs"]["ImGuiIO"][56] = {}
defs["structs"]["ImGuiIO"][56]["name"] = "MetricsRenderWindows"
defs["structs"]["ImGuiIO"][56]["name"] = "MetricsRenderIndices"
defs["structs"]["ImGuiIO"][56]["type"] = "int"
defs["structs"]["ImGuiIO"][57] = {}
defs["structs"]["ImGuiIO"][57]["name"] = "MetricsActiveWindows"
defs["structs"]["ImGuiIO"][57]["name"] = "MetricsRenderWindows"
defs["structs"]["ImGuiIO"][57]["type"] = "int"
defs["structs"]["ImGuiIO"][58] = {}
defs["structs"]["ImGuiIO"][58]["name"] = "MetricsActiveAllocations"
defs["structs"]["ImGuiIO"][58]["name"] = "MetricsActiveWindows"
defs["structs"]["ImGuiIO"][58]["type"] = "int"
defs["structs"]["ImGuiIO"][59] = {}
defs["structs"]["ImGuiIO"][59]["name"] = "MouseDelta"
defs["structs"]["ImGuiIO"][59]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][59]["name"] = "MetricsActiveAllocations"
defs["structs"]["ImGuiIO"][59]["type"] = "int"
defs["structs"]["ImGuiIO"][60] = {}
defs["structs"]["ImGuiIO"][60]["name"] = "MousePosPrev"
defs["structs"]["ImGuiIO"][60]["name"] = "MouseDelta"
defs["structs"]["ImGuiIO"][60]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][61] = {}
defs["structs"]["ImGuiIO"][61]["name"] = "MouseClickedPos[5]"
defs["structs"]["ImGuiIO"][61]["size"] = 5
defs["structs"]["ImGuiIO"][61]["name"] = "MousePosPrev"
defs["structs"]["ImGuiIO"][61]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][62] = {}
defs["structs"]["ImGuiIO"][62]["name"] = "MouseClickedTime[5]"
defs["structs"]["ImGuiIO"][62]["name"] = "MouseClickedPos[5]"
defs["structs"]["ImGuiIO"][62]["size"] = 5
defs["structs"]["ImGuiIO"][62]["type"] = "double"
defs["structs"]["ImGuiIO"][62]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][63] = {}
defs["structs"]["ImGuiIO"][63]["name"] = "MouseClicked[5]"
defs["structs"]["ImGuiIO"][63]["name"] = "MouseClickedTime[5]"
defs["structs"]["ImGuiIO"][63]["size"] = 5
defs["structs"]["ImGuiIO"][63]["type"] = "bool"
defs["structs"]["ImGuiIO"][63]["type"] = "double"
defs["structs"]["ImGuiIO"][64] = {}
defs["structs"]["ImGuiIO"][64]["name"] = "MouseDoubleClicked[5]"
defs["structs"]["ImGuiIO"][64]["name"] = "MouseClicked[5]"
defs["structs"]["ImGuiIO"][64]["size"] = 5
defs["structs"]["ImGuiIO"][64]["type"] = "bool"
defs["structs"]["ImGuiIO"][65] = {}
defs["structs"]["ImGuiIO"][65]["name"] = "MouseReleased[5]"
defs["structs"]["ImGuiIO"][65]["name"] = "MouseDoubleClicked[5]"
defs["structs"]["ImGuiIO"][65]["size"] = 5
defs["structs"]["ImGuiIO"][65]["type"] = "bool"
defs["structs"]["ImGuiIO"][66] = {}
defs["structs"]["ImGuiIO"][66]["name"] = "MouseDownOwned[5]"
defs["structs"]["ImGuiIO"][66]["name"] = "MouseReleased[5]"
defs["structs"]["ImGuiIO"][66]["size"] = 5
defs["structs"]["ImGuiIO"][66]["type"] = "bool"
defs["structs"]["ImGuiIO"][67] = {}
defs["structs"]["ImGuiIO"][67]["name"] = "MouseDownWasDoubleClick[5]"
defs["structs"]["ImGuiIO"][67]["name"] = "MouseDownOwned[5]"
defs["structs"]["ImGuiIO"][67]["size"] = 5
defs["structs"]["ImGuiIO"][67]["type"] = "bool"
defs["structs"]["ImGuiIO"][68] = {}
defs["structs"]["ImGuiIO"][68]["name"] = "MouseDownDuration[5]"
defs["structs"]["ImGuiIO"][68]["name"] = "MouseDownWasDoubleClick[5]"
defs["structs"]["ImGuiIO"][68]["size"] = 5
defs["structs"]["ImGuiIO"][68]["type"] = "float"
defs["structs"]["ImGuiIO"][68]["type"] = "bool"
defs["structs"]["ImGuiIO"][69] = {}
defs["structs"]["ImGuiIO"][69]["name"] = "MouseDownDurationPrev[5]"
defs["structs"]["ImGuiIO"][69]["name"] = "MouseDownDuration[5]"
defs["structs"]["ImGuiIO"][69]["size"] = 5
defs["structs"]["ImGuiIO"][69]["type"] = "float"
defs["structs"]["ImGuiIO"][70] = {}
defs["structs"]["ImGuiIO"][70]["name"] = "MouseDragMaxDistanceAbs[5]"
defs["structs"]["ImGuiIO"][70]["name"] = "MouseDownDurationPrev[5]"
defs["structs"]["ImGuiIO"][70]["size"] = 5
defs["structs"]["ImGuiIO"][70]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][70]["type"] = "float"
defs["structs"]["ImGuiIO"][71] = {}
defs["structs"]["ImGuiIO"][71]["name"] = "MouseDragMaxDistanceSqr[5]"
defs["structs"]["ImGuiIO"][71]["name"] = "MouseDragMaxDistanceAbs[5]"
defs["structs"]["ImGuiIO"][71]["size"] = 5
defs["structs"]["ImGuiIO"][71]["type"] = "float"
defs["structs"]["ImGuiIO"][71]["type"] = "ImVec2"
defs["structs"]["ImGuiIO"][72] = {}
defs["structs"]["ImGuiIO"][72]["name"] = "KeysDownDuration[512]"
defs["structs"]["ImGuiIO"][72]["size"] = 512
defs["structs"]["ImGuiIO"][72]["name"] = "MouseDragMaxDistanceSqr[5]"
defs["structs"]["ImGuiIO"][72]["size"] = 5
defs["structs"]["ImGuiIO"][72]["type"] = "float"
defs["structs"]["ImGuiIO"][73] = {}
defs["structs"]["ImGuiIO"][73]["name"] = "KeysDownDurationPrev[512]"
defs["structs"]["ImGuiIO"][73]["name"] = "KeysDownDuration[512]"
defs["structs"]["ImGuiIO"][73]["size"] = 512
defs["structs"]["ImGuiIO"][73]["type"] = "float"
defs["structs"]["ImGuiIO"][74] = {}
defs["structs"]["ImGuiIO"][74]["name"] = "NavInputsDownDuration[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][74]["size"] = 22
defs["structs"]["ImGuiIO"][74]["name"] = "KeysDownDurationPrev[512]"
defs["structs"]["ImGuiIO"][74]["size"] = 512
defs["structs"]["ImGuiIO"][74]["type"] = "float"
defs["structs"]["ImGuiIO"][75] = {}
defs["structs"]["ImGuiIO"][75]["name"] = "NavInputsDownDurationPrev[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][75]["size"] = 22
defs["structs"]["ImGuiIO"][75]["name"] = "NavInputsDownDuration[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][75]["size"] = 21
defs["structs"]["ImGuiIO"][75]["type"] = "float"
defs["structs"]["ImGuiIO"][76] = {}
defs["structs"]["ImGuiIO"][76]["name"] = "InputQueueCharacters"
defs["structs"]["ImGuiIO"][76]["template_type"] = "ImWchar"
defs["structs"]["ImGuiIO"][76]["type"] = "ImVector_ImWchar"
defs["structs"]["ImGuiIO"][76]["name"] = "NavInputsDownDurationPrev[ImGuiNavInput_COUNT]"
defs["structs"]["ImGuiIO"][76]["size"] = 21
defs["structs"]["ImGuiIO"][76]["type"] = "float"
defs["structs"]["ImGuiIO"][77] = {}
defs["structs"]["ImGuiIO"][77]["name"] = "InputQueueCharacters"
defs["structs"]["ImGuiIO"][77]["template_type"] = "ImWchar"
defs["structs"]["ImGuiIO"][77]["type"] = "ImVector_ImWchar"
defs["structs"]["ImGuiInputTextCallbackData"] = {}
defs["structs"]["ImGuiInputTextCallbackData"][1] = {}
defs["structs"]["ImGuiInputTextCallbackData"][1]["name"] = "EventFlag"
@@ -2045,8 +2070,15 @@ defs["structs"]["ImGuiSizeCallbackData"][4]["type"] = "ImVec2"
defs["structs"]["ImGuiStorage"] = {}
defs["structs"]["ImGuiStorage"][1] = {}
defs["structs"]["ImGuiStorage"][1]["name"] = "Data"
defs["structs"]["ImGuiStorage"][1]["template_type"] = "Pair"
defs["structs"]["ImGuiStorage"][1]["type"] = "ImVector_Pair"
defs["structs"]["ImGuiStorage"][1]["template_type"] = "ImGuiStoragePair"
defs["structs"]["ImGuiStorage"][1]["type"] = "ImVector_ImGuiStoragePair"
defs["structs"]["ImGuiStoragePair"] = {}
defs["structs"]["ImGuiStoragePair"][1] = {}
defs["structs"]["ImGuiStoragePair"][1]["name"] = "key"
defs["structs"]["ImGuiStoragePair"][1]["type"] = "ImGuiID"
defs["structs"]["ImGuiStoragePair"][2] = {}
defs["structs"]["ImGuiStoragePair"][2]["name"] = ""
defs["structs"]["ImGuiStoragePair"][2]["type"] = "union { int val_i; float val_f; void* val_p;}"
defs["structs"]["ImGuiStyle"] = {}
defs["structs"]["ImGuiStyle"][1] = {}
defs["structs"]["ImGuiStyle"][1]["name"] = "Alpha"
@@ -2124,33 +2156,36 @@ defs["structs"]["ImGuiStyle"][25] = {}
defs["structs"]["ImGuiStyle"][25]["name"] = "TabBorderSize"
defs["structs"]["ImGuiStyle"][25]["type"] = "float"
defs["structs"]["ImGuiStyle"][26] = {}
defs["structs"]["ImGuiStyle"][26]["name"] = "ButtonTextAlign"
defs["structs"]["ImGuiStyle"][26]["type"] = "ImVec2"
defs["structs"]["ImGuiStyle"][26]["name"] = "ColorButtonPosition"
defs["structs"]["ImGuiStyle"][26]["type"] = "ImGuiDir"
defs["structs"]["ImGuiStyle"][27] = {}
defs["structs"]["ImGuiStyle"][27]["name"] = "SelectableTextAlign"
defs["structs"]["ImGuiStyle"][27]["name"] = "ButtonTextAlign"
defs["structs"]["ImGuiStyle"][27]["type"] = "ImVec2"
defs["structs"]["ImGuiStyle"][28] = {}
defs["structs"]["ImGuiStyle"][28]["name"] = "DisplayWindowPadding"
defs["structs"]["ImGuiStyle"][28]["name"] = "SelectableTextAlign"
defs["structs"]["ImGuiStyle"][28]["type"] = "ImVec2"
defs["structs"]["ImGuiStyle"][29] = {}
defs["structs"]["ImGuiStyle"][29]["name"] = "DisplaySafeAreaPadding"
defs["structs"]["ImGuiStyle"][29]["name"] = "DisplayWindowPadding"
defs["structs"]["ImGuiStyle"][29]["type"] = "ImVec2"
defs["structs"]["ImGuiStyle"][30] = {}
defs["structs"]["ImGuiStyle"][30]["name"] = "MouseCursorScale"
defs["structs"]["ImGuiStyle"][30]["type"] = "float"
defs["structs"]["ImGuiStyle"][30]["name"] = "DisplaySafeAreaPadding"
defs["structs"]["ImGuiStyle"][30]["type"] = "ImVec2"
defs["structs"]["ImGuiStyle"][31] = {}
defs["structs"]["ImGuiStyle"][31]["name"] = "AntiAliasedLines"
defs["structs"]["ImGuiStyle"][31]["type"] = "bool"
defs["structs"]["ImGuiStyle"][31]["name"] = "MouseCursorScale"
defs["structs"]["ImGuiStyle"][31]["type"] = "float"
defs["structs"]["ImGuiStyle"][32] = {}
defs["structs"]["ImGuiStyle"][32]["name"] = "AntiAliasedFill"
defs["structs"]["ImGuiStyle"][32]["name"] = "AntiAliasedLines"
defs["structs"]["ImGuiStyle"][32]["type"] = "bool"
defs["structs"]["ImGuiStyle"][33] = {}
defs["structs"]["ImGuiStyle"][33]["name"] = "CurveTessellationTol"
defs["structs"]["ImGuiStyle"][33]["type"] = "float"
defs["structs"]["ImGuiStyle"][33]["name"] = "AntiAliasedFill"
defs["structs"]["ImGuiStyle"][33]["type"] = "bool"
defs["structs"]["ImGuiStyle"][34] = {}
defs["structs"]["ImGuiStyle"][34]["name"] = "Colors[ImGuiCol_COUNT]"
defs["structs"]["ImGuiStyle"][34]["size"] = 48
defs["structs"]["ImGuiStyle"][34]["type"] = "ImVec4"
defs["structs"]["ImGuiStyle"][34]["name"] = "CurveTessellationTol"
defs["structs"]["ImGuiStyle"][34]["type"] = "float"
defs["structs"]["ImGuiStyle"][35] = {}
defs["structs"]["ImGuiStyle"][35]["name"] = "Colors[ImGuiCol_COUNT]"
defs["structs"]["ImGuiStyle"][35]["size"] = 48
defs["structs"]["ImGuiStyle"][35]["type"] = "ImVec4"
defs["structs"]["ImGuiTextBuffer"] = {}
defs["structs"]["ImGuiTextBuffer"][1] = {}
defs["structs"]["ImGuiTextBuffer"][1]["name"] = "Buf"
@@ -2163,11 +2198,18 @@ defs["structs"]["ImGuiTextFilter"][1]["size"] = 256
defs["structs"]["ImGuiTextFilter"][1]["type"] = "char"
defs["structs"]["ImGuiTextFilter"][2] = {}
defs["structs"]["ImGuiTextFilter"][2]["name"] = "Filters"
defs["structs"]["ImGuiTextFilter"][2]["template_type"] = "TextRange"
defs["structs"]["ImGuiTextFilter"][2]["type"] = "ImVector_TextRange"
defs["structs"]["ImGuiTextFilter"][2]["template_type"] = "ImGuiTextRange"
defs["structs"]["ImGuiTextFilter"][2]["type"] = "ImVector_ImGuiTextRange"
defs["structs"]["ImGuiTextFilter"][3] = {}
defs["structs"]["ImGuiTextFilter"][3]["name"] = "CountGrep"
defs["structs"]["ImGuiTextFilter"][3]["type"] = "int"
defs["structs"]["ImGuiTextRange"] = {}
defs["structs"]["ImGuiTextRange"][1] = {}
defs["structs"]["ImGuiTextRange"][1]["name"] = "b"
defs["structs"]["ImGuiTextRange"][1]["type"] = "const char*"
defs["structs"]["ImGuiTextRange"][2] = {}
defs["structs"]["ImGuiTextRange"][2]["name"] = "e"
defs["structs"]["ImGuiTextRange"][2]["type"] = "const char*"
defs["structs"]["ImVec2"] = {}
defs["structs"]["ImVec2"][1] = {}
defs["structs"]["ImVec2"][1]["name"] = "x"
@@ -2188,19 +2230,5 @@ defs["structs"]["ImVec4"][3]["type"] = "float"
defs["structs"]["ImVec4"][4] = {}
defs["structs"]["ImVec4"][4]["name"] = "w"
defs["structs"]["ImVec4"][4]["type"] = "float"
defs["structs"]["Pair"] = {}
defs["structs"]["Pair"][1] = {}
defs["structs"]["Pair"][1]["name"] = "key"
defs["structs"]["Pair"][1]["type"] = "ImGuiID"
defs["structs"]["Pair"][2] = {}
defs["structs"]["Pair"][2]["name"] = ""
defs["structs"]["Pair"][2]["type"] = "union { int val_i; float val_f; void* val_p;}"
defs["structs"]["TextRange"] = {}
defs["structs"]["TextRange"][1] = {}
defs["structs"]["TextRange"][1]["name"] = "b"
defs["structs"]["TextRange"][1]["type"] = "const char*"
defs["structs"]["TextRange"][2] = {}
defs["structs"]["TextRange"][2]["name"] = "e"
defs["structs"]["TextRange"][2]["type"] = "const char*"
return defs

View File

@@ -1,5 +1,4 @@
{
"CustomRect": "struct CustomRect",
"ImColor": "struct ImColor",
"ImDrawCallback": "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);",
"ImDrawChannel": "struct ImDrawChannel",
@@ -14,6 +13,7 @@
"ImDrawVert": "struct ImDrawVert",
"ImFont": "struct ImFont",
"ImFontAtlas": "struct ImFontAtlas",
"ImFontAtlasCustomRect": "struct ImFontAtlasCustomRect",
"ImFontAtlasFlags": "int",
"ImFontConfig": "struct ImFontConfig",
"ImFontGlyph": "struct ImFontGlyph",
@@ -21,7 +21,6 @@
"ImGuiBackendFlags": "int",
"ImGuiCol": "int",
"ImGuiColorEditFlags": "int",
"ImGuiColumnsFlags": "int",
"ImGuiComboFlags": "int",
"ImGuiCond": "int",
"ImGuiConfigFlags": "int",
@@ -46,12 +45,14 @@
"ImGuiSizeCallback": "void(*)(ImGuiSizeCallbackData* data);",
"ImGuiSizeCallbackData": "struct ImGuiSizeCallbackData",
"ImGuiStorage": "struct ImGuiStorage",
"ImGuiStoragePair": "struct ImGuiStoragePair",
"ImGuiStyle": "struct ImGuiStyle",
"ImGuiStyleVar": "int",
"ImGuiTabBarFlags": "int",
"ImGuiTabItemFlags": "int",
"ImGuiTextBuffer": "struct ImGuiTextBuffer",
"ImGuiTextFilter": "struct ImGuiTextFilter",
"ImGuiTextRange": "struct ImGuiTextRange",
"ImGuiTreeNodeFlags": "int",
"ImGuiWindowFlags": "int",
"ImS16": "signed short",
@@ -66,8 +67,6 @@
"ImVec2": "struct ImVec2",
"ImVec4": "struct ImVec4",
"ImWchar": "unsigned short",
"Pair": "struct Pair",
"TextRange": "struct TextRange",
"const_iterator": "const value_type*",
"iterator": "value_type*",
"value_type": "T"

View File

@@ -1,5 +1,4 @@
local defs = {}
defs["CustomRect"] = "struct CustomRect"
defs["ImColor"] = "struct ImColor"
defs["ImDrawCallback"] = "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);"
defs["ImDrawChannel"] = "struct ImDrawChannel"
@@ -14,6 +13,7 @@ defs["ImDrawListSplitter"] = "struct ImDrawListSplitter"
defs["ImDrawVert"] = "struct ImDrawVert"
defs["ImFont"] = "struct ImFont"
defs["ImFontAtlas"] = "struct ImFontAtlas"
defs["ImFontAtlasCustomRect"] = "struct ImFontAtlasCustomRect"
defs["ImFontAtlasFlags"] = "int"
defs["ImFontConfig"] = "struct ImFontConfig"
defs["ImFontGlyph"] = "struct ImFontGlyph"
@@ -21,7 +21,6 @@ defs["ImFontGlyphRangesBuilder"] = "struct ImFontGlyphRangesBuilder"
defs["ImGuiBackendFlags"] = "int"
defs["ImGuiCol"] = "int"
defs["ImGuiColorEditFlags"] = "int"
defs["ImGuiColumnsFlags"] = "int"
defs["ImGuiComboFlags"] = "int"
defs["ImGuiCond"] = "int"
defs["ImGuiConfigFlags"] = "int"
@@ -46,12 +45,14 @@ defs["ImGuiSelectableFlags"] = "int"
defs["ImGuiSizeCallback"] = "void(*)(ImGuiSizeCallbackData* data);"
defs["ImGuiSizeCallbackData"] = "struct ImGuiSizeCallbackData"
defs["ImGuiStorage"] = "struct ImGuiStorage"
defs["ImGuiStoragePair"] = "struct ImGuiStoragePair"
defs["ImGuiStyle"] = "struct ImGuiStyle"
defs["ImGuiStyleVar"] = "int"
defs["ImGuiTabBarFlags"] = "int"
defs["ImGuiTabItemFlags"] = "int"
defs["ImGuiTextBuffer"] = "struct ImGuiTextBuffer"
defs["ImGuiTextFilter"] = "struct ImGuiTextFilter"
defs["ImGuiTextRange"] = "struct ImGuiTextRange"
defs["ImGuiTreeNodeFlags"] = "int"
defs["ImGuiWindowFlags"] = "int"
defs["ImS16"] = "signed short"
@@ -66,8 +67,6 @@ defs["ImU8"] = "unsigned char"
defs["ImVec2"] = "struct ImVec2"
defs["ImVec4"] = "struct ImVec4"
defs["ImWchar"] = "unsigned short"
defs["Pair"] = "struct Pair"
defs["TextRange"] = "struct TextRange"
defs["const_iterator"] = "const value_type*"
defs["iterator"] = "value_type*"
defs["value_type"] = "T"

2
imgui

Submodule imgui updated: 2da1c66d15...a8092085b1

11
test/CMakeLists.txt Normal file
View File

@@ -0,0 +1,11 @@
file(GLOB CIMGUI_TEST_SOURCES
main.c
)
add_executable(cimgui_test ${CIMGUI_TEST_SOURCES})
set_target_properties(cimgui_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set_property(TARGET cimgui_test PROPERTY C_STANDARD 99)
target_compile_definitions(cimgui_test PRIVATE CIMGUI_DEFINE_ENUMS_AND_STRUCTS=1)
target_link_libraries(cimgui_test PRIVATE cimgui)

41
test/main.c Normal file
View File

@@ -0,0 +1,41 @@
#include <stdio.h>
#include <assert.h>
#include "../cimgui.h"
int main(void)
{
assert(igDebugCheckVersionAndDataLayout(igGetVersion(), sizeof(ImGuiIO), sizeof(ImGuiStyle),
sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert),
sizeof(ImDrawIdx)));
printf("CreateContext() - v%s\n", igGetVersion());
igCreateContext(NULL);
ImGuiIO *io = igGetIO();
unsigned char *text_pixels = NULL;
int text_w, text_h;
ImFontAtlas_GetTexDataAsRGBA32(io->Fonts, &text_pixels, &text_w, &text_h, NULL);
for (int n = 0; n < 20; n++) {
printf("NewFrame() %d\n", n);
ImVec2 display_size;
display_size.x = 1920;
display_size.y = 1080;
io->DisplaySize = display_size;
io->DeltaTime = 1.0f / 60.0f;
igNewFrame();
static float f = 0.0f;
igText("Hello World!");
igSliderFloat("float", &f, 0.0f, 1.0f, "%.3f", 1.0f);
igText("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io->Framerate, io->Framerate);
igShowDemoWindow(NULL);
igRender();
}
printf("DestroyContext()\n");
igDestroyContext(NULL);
return 0;
}

View File

@@ -1,6 +0,0 @@
:: set PATH=%PATH%;C:\mingw32\bin;
set PATH=%PATH%;C:\i686-7.2.0-release-posix-dwarf-rt_v5-rev1\mingw32\bin;
::gcc -std=c99 -DCIMGUI_DEFINE_ENUMS_AND_STRUCTS cimgui.h
::gcc -DCIMGUI_DEFINE_ENUMS_AND_STRUCTS cimgui.h
gcc -std=c99 -Wall -Wpedantic -DCIMGUI_DEFINE_ENUMS_AND_STRUCTS cimguitest.c
cmd /k

View File

@@ -1,6 +0,0 @@
#include "../cimgui.h"
int main(void)
{
return 0;
}

View File

@@ -1,13 +0,0 @@
::set PATH=%PATH%;C:\luaGL;C:\mingw32\bin;
::gcc -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ../imgui/imgui.h > 11.txt
::set PATH=%PATH%;C:\luaGL;
::set PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\Hostx64\x64;
::ejecutar en cmd esto
::"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
::cl /P /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS /DIMGUI_API="" /DIMGUI_IMPL_API="" ../imgui/imgui.h
:: > clout.txt
cl /P /DCIMGUI_DEFINE_ENUMS_AND_STRUCTS cimguitest.c
cmd /k