mirror of
https://github.com/cimgui/cimgui.git
synced 2025-08-10 20:08:31 +01:00
Compare commits
69 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ce3b504e11 | ||
![]() |
4230a5566e | ||
![]() |
9ce2c32dad | ||
![]() |
3d676ffb8b | ||
![]() |
b9ebd289e0 | ||
![]() |
9da5c5fe7c | ||
![]() |
3d50615659 | ||
![]() |
938d146a41 | ||
![]() |
7225c4ae3c | ||
![]() |
feb7829edc | ||
![]() |
6eb85e7d5c | ||
![]() |
068e91970d | ||
![]() |
b5cce9f1a5 | ||
![]() |
ea5b077fbe | ||
![]() |
a44ce77641 | ||
![]() |
15e4f5015d | ||
![]() |
9b7d045962 | ||
![]() |
44b388121a | ||
![]() |
13c4f47172 | ||
![]() |
d1f60f24e1 | ||
![]() |
4c1fd9fc0a | ||
![]() |
1616776d77 | ||
![]() |
eccb961bc7 | ||
![]() |
e3d115bce2 | ||
![]() |
82b8c66f59 | ||
![]() |
08d5ad7f93 | ||
![]() |
8e625e95fd | ||
![]() |
b5d0aba261 | ||
![]() |
0b8015191d | ||
![]() |
433cccd795 | ||
![]() |
633fe954bf | ||
![]() |
a66528f9b1 | ||
![]() |
439bae8107 | ||
![]() |
261250f88f | ||
![]() |
069b850526 | ||
![]() |
9a87a0d5f6 | ||
![]() |
987cf98e9c | ||
![]() |
618ca008ea | ||
![]() |
881777a2fc | ||
![]() |
cf04541b41 | ||
![]() |
aef3787bb1 | ||
![]() |
94e632a253 | ||
![]() |
bd5a043957 | ||
![]() |
4492660bb9 | ||
![]() |
88e0bc9a9a | ||
![]() |
1afd93dd45 | ||
![]() |
dac713c763 | ||
![]() |
938f8ccf87 | ||
![]() |
e6705a8522 | ||
![]() |
fdc9511bd7 | ||
![]() |
fe4dff78bd | ||
![]() |
07ceedf37b | ||
![]() |
0be2b20a16 | ||
![]() |
b5f5a03851 | ||
![]() |
a51a8f7a86 | ||
![]() |
de25c00ddd | ||
![]() |
678887ee99 | ||
![]() |
b0cfee6183 | ||
![]() |
d0bcf4551b | ||
![]() |
49d45008e0 | ||
![]() |
ad929978e9 | ||
![]() |
b949d47c8b | ||
![]() |
d359d907af | ||
![]() |
52bbaf1117 | ||
![]() |
d5f713caa1 | ||
![]() |
afce852875 | ||
![]() |
a21aa1d613 | ||
![]() |
e938d7e0f5 | ||
![]() |
ff3bb81b34 |
2
.gitmodules
vendored
2
.gitmodules
vendored
@@ -1,4 +1,4 @@
|
||||
[submodule "imgui"]
|
||||
path = imgui
|
||||
url = https://github.com/ocornut/imgui.git
|
||||
branch = master
|
||||
branch = docking
|
||||
|
@@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.1)
|
||||
|
||||
project(cimgui)
|
||||
|
||||
set (CMAKE_CXX_STANDARD 11)
|
||||
|
||||
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_tables.cpp)
|
||||
set(TABLES_SOURCE "imgui/imgui_tables.cpp")
|
||||
else()
|
||||
|
11
README.md
11
README.md
@@ -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.85 of Dear ImGui with internal api]
|
||||
* currently this wrapper is based on version [1.89 of Dear ImGui with internal api]
|
||||
* only functions, structs and enums from imgui.h (an optionally imgui_internal.h) are wrapped.
|
||||
* if you are interested in imgui backends you should look [LuaJIT-ImGui](https://github.com/sonoro1234/LuaJIT-ImGui) project.
|
||||
* All naming is algorithmic except for those names that were coded in cimgui_overloads table (https://github.com/cimgui/cimgui/blob/master/generator/generator.lua#L60). In the official version this table is empty.
|
||||
@@ -24,10 +24,11 @@ Notes:
|
||||
* `git submodule update --init --recursive` (If already cloned)
|
||||
* compile
|
||||
* using makefile on linux/macOS/mingw (Or use CMake to generate project)
|
||||
* cmake options are IMGUI_STATIC (compiling as static library), IMGUI_FREETYPE (for using Freetype2) and FREETYPE_PATH (Freetype2 cmake install location)
|
||||
* cmake options are IMGUI_STATIC (compiling as static library), IMGUI_FREETYPE (for using Freetype2) and FREETYPE_PATH (Freetype2 cmake install location) (only if cimgui is generated with freetype option)
|
||||
* or as in https://github.com/sonoro1234/LuaJIT-ImGui/tree/master/build
|
||||
|
||||
For compiling with backends there is now an example with SDL2 and opengl3 in folder backend_test. It will generate a cimgui_sdl module and a test_sdl executable. You only need to provide SDL_PATH telling cmake where to look for SDL2 cmake installation.
|
||||
For compiling with backends there are now examples with SDL2 and opengl3/vulkan in folder backend_test.
|
||||
They'll generate a cimgui_sdl module and a test_sdl executable.
|
||||
|
||||
# using generator
|
||||
|
||||
@@ -36,8 +37,8 @@ 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 need to use also a C++ compiler for doing preprocessing: gcc (In windows MinGW-W64-builds for example), clang or cl (MSVC). (this repo was done with gcc)
|
||||
* update `imgui` folder to the version you desire.
|
||||
* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, or cl and to choose desired backends and whether imgui_internal is generated or not and Freetype2 is used or not.
|
||||
* the defaults of generator are gcc as compiler, imgui_internal included and sdl, glfw, opengl2 and opengl3 as backends.
|
||||
* edit `generator/generator.bat` on windows, or `generator/generator.sh` on linux, to choose between gcc, clang, or cl and to choose desired backends and whether imgui_internal is generated or not, Freetype2 is used or not and comments are generated or not
|
||||
* the defaults of generator are gcc as compiler, imgui_internal included and sdl, glfw, vulkan, opengl2 and opengl3 as backends.
|
||||
* edit config_generator.lua for adding includes needed by your chosen backends (vulkan needs that).
|
||||
* Run generator.bat or generator.sh with gcc, clang or cl and LuaJIT on your PATH.
|
||||
* as a result some files are generated: `cimgui.cpp`, `cimgui.h` and `cimgui_impl.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 backends info.
|
||||
|
@@ -1,10 +0,0 @@
|
||||
#include "../imgui/imgui.h"
|
||||
|
||||
#include "../imgui/backends/imgui_impl_opengl3_loader.h"
|
||||
|
||||
//making it accesible for luajit
|
||||
#ifdef _WIN32
|
||||
extern "C" __declspec( dllexport ) int Do_gl3wInit(void){ return imgl3wInit();};
|
||||
#else
|
||||
extern "C" int Do_gl3wInit(void){ return imgl3wInit();};
|
||||
#endif
|
@@ -1,8 +0,0 @@
|
||||
|
||||
|
||||
//making it accesible for main
|
||||
#ifdef _WIN32
|
||||
__declspec( dllexport ) int Do_gl3wInit(void);
|
||||
#else
|
||||
int Do_gl3wInit(void);
|
||||
#endif
|
@@ -3,30 +3,34 @@ cmake_minimum_required(VERSION 2.8)
|
||||
if(WIN32) #to mingw work as all the others
|
||||
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
||||
endif(WIN32)
|
||||
|
||||
set (CMAKE_CXX_STANDARD 11)
|
||||
|
||||
#general settings
|
||||
|
||||
|
||||
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../imgui/backends)
|
||||
set(BAKENDS_FOLDER "../imgui/backends/")
|
||||
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/backends)
|
||||
set(BAKENDS_FOLDER "../../imgui/backends/")
|
||||
else()
|
||||
set(BAKENDS_FOLDER "../imgui/examples/")
|
||||
set(BAKENDS_FOLDER "../../imgui/examples/")
|
||||
endif()
|
||||
|
||||
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../imgui/imgui_tables.cpp)
|
||||
set(TABLES_SOURCE "../imgui/imgui_tables.cpp")
|
||||
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/imgui_tables.cpp)
|
||||
set(TABLES_SOURCE "../../imgui/imgui_tables.cpp")
|
||||
else()
|
||||
set(TABLES_SOURCE "")
|
||||
endif()
|
||||
|
||||
include_directories(../imgui)
|
||||
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
|
||||
include_directories(../../)
|
||||
set(IMGUI_SOURCES
|
||||
../../cimgui.cpp
|
||||
../../imgui/imgui.cpp
|
||||
../../imgui/imgui_draw.cpp
|
||||
../../imgui/imgui_demo.cpp
|
||||
../../imgui/imgui_widgets.cpp
|
||||
${TABLES_SOURCE}
|
||||
)
|
||||
|
||||
@@ -47,14 +51,13 @@ option(IMGUI_FREETYPE "add Freetype2" OFF)
|
||||
if(IMGUI_FREETYPE)
|
||||
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
|
||||
list(APPEND IMGUI_LIBRARIES freetype)
|
||||
list(APPEND IMGUI_SOURCES ../imgui/misc/freetype/imgui_freetype.cpp)
|
||||
list(APPEND IMGUI_SOURCES ../../imgui/misc/freetype/imgui_freetype.cpp)
|
||||
add_definitions("-DCIMGUI_FREETYPE=1")
|
||||
endif(IMGUI_FREETYPE)
|
||||
|
||||
#opengl3
|
||||
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_opengl3.cpp)
|
||||
list(APPEND IMGUI_SOURCES ./cimgui_extras.cpp)
|
||||
include_directories(../imgui/examples/libs/gl3w)
|
||||
include_directories(../../imgui/examples/libs/gl3w)
|
||||
if(WIN32)
|
||||
list(APPEND IMGUI_LIBRARIES opengl32)
|
||||
else(WIN32)#Unix
|
||||
@@ -66,7 +69,13 @@ endif(WIN32)
|
||||
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_sdl.cpp)
|
||||
if(DEFINED SDL_PATH)
|
||||
message(STATUS "SDL_PATH defined as " ${SDL_PATH})
|
||||
FIND_PACKAGE(SDL2 REQUIRED PATHS ${SDL_PATH})
|
||||
FIND_PACKAGE(SDL2 PATHS ${SDL_PATH})
|
||||
else(DEFINED SDL_PATH)
|
||||
# If SDL_PATH is not set, fallback and attempt to find SDL cmake script at a default location
|
||||
find_package(SDL2)
|
||||
endif(DEFINED SDL_PATH)
|
||||
|
||||
if(SDL2_FOUND)
|
||||
get_target_property(SDL_INCLUDE SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)
|
||||
message(STATUS "sdlinclude is " ${SDL_INCLUDE})
|
||||
if ("${SDL_INCLUDE}" STREQUAL "" OR "${SDL_INCLUDE}" STREQUAL "SDL_INCLUDE-NOTFOUND") #if not found latest SDL2 cmake config use older
|
||||
@@ -80,17 +89,21 @@ if(DEFINED SDL_PATH)
|
||||
set(SDL_MAIN SDL2::SDL2main)
|
||||
message(STATUS ${SDL_MAIN} ${IMGUI_SDL_LIBRARY})
|
||||
endif()
|
||||
else(DEFINED SDL_PATH)
|
||||
message(STATUS "SDL_PATH not defined")
|
||||
set(IMGUI_SDL_LIBRARY SDL2)
|
||||
endif(DEFINED SDL_PATH)
|
||||
else(SDL2_FOUND)
|
||||
if(DEFINED SDL_PATH)
|
||||
message(FATAL_ERROR "Cannot find SDL at SDL_PATH")
|
||||
else(DEFINED SDL_PATH)
|
||||
message(FATAL_ERROR "Cannot find SDL. Maybe try specifying SDL_PATH?")
|
||||
endif(DEFINED SDL_PATH)
|
||||
endif(SDL2_FOUND)
|
||||
|
||||
add_library(cimgui_sdl SHARED ${IMGUI_SOURCES})
|
||||
target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} ${IMGUI_SDL_LIBRARY})
|
||||
|
||||
#using library
|
||||
include_directories(../generator/output/)
|
||||
include_directories(../../generator/output/)
|
||||
add_executable(test_sdl main.c)
|
||||
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_SDL)
|
||||
if (MINGW)
|
||||
target_link_options(test_sdl PRIVATE "-mconsole")
|
||||
endif()
|
@@ -1,6 +1,5 @@
|
||||
#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||
#include "cimgui.h"
|
||||
#include "cimgui_extras.h"
|
||||
#include "cimgui_impl.h"
|
||||
#include <stdio.h>
|
||||
#define SDL_MAIN_HANDLED
|
||||
@@ -66,13 +65,6 @@ int main(int argc, char* argv[])
|
||||
SDL_GLContext gl_context = SDL_GL_CreateContext(window);
|
||||
SDL_GL_SetSwapInterval(1); // enable vsync
|
||||
|
||||
// Initialize OpenGL loader for cimgui_sdl
|
||||
bool err = Do_gl3wInit() != 0;
|
||||
if (err)
|
||||
{
|
||||
SDL_Log("Failed to initialize OpenGL loader for cimgui_sdl!");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// check opengl version sdl uses
|
||||
SDL_Log("opengl version: %s", (char*)glGetString(GL_VERSION));
|
||||
@@ -122,7 +114,7 @@ int main(int argc, char* argv[])
|
||||
|
||||
// start imgui frame
|
||||
ImGui_ImplOpenGL3_NewFrame();
|
||||
ImGui_ImplSDL2_NewFrame(window);
|
||||
ImGui_ImplSDL2_NewFrame();
|
||||
igNewFrame();
|
||||
|
||||
if (showDemoWindow)
|
100
backend_test/example_sdl_vulkan/CMakeLists.txt
Normal file
100
backend_test/example_sdl_vulkan/CMakeLists.txt
Normal file
@@ -0,0 +1,100 @@
|
||||
Project(cimgui_sdl_vk)
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
if(WIN32) # to make mingw work as all the others
|
||||
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
||||
endif(WIN32)
|
||||
# general settings
|
||||
|
||||
|
||||
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/backends)
|
||||
set(BACKENDS_FOLDER "../../imgui/backends/")
|
||||
else()
|
||||
set(BACKENDS_FOLDER "../../imgui/examples/")
|
||||
endif()
|
||||
|
||||
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui/imgui_tables.cpp)
|
||||
set(TABLES_SOURCE "../../imgui/imgui_tables.cpp")
|
||||
else()
|
||||
set(TABLES_SOURCE "")
|
||||
endif()
|
||||
|
||||
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
|
||||
${TABLES_SOURCE}
|
||||
)
|
||||
|
||||
set(IMGUI_SOURCES_sdl)
|
||||
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)
|
||||
|
||||
#optional adding freetype
|
||||
option(IMGUI_FREETYPE "add Freetype2" OFF)
|
||||
|
||||
if(IMGUI_FREETYPE)
|
||||
FIND_PACKAGE(freetype REQUIRED PATHS ${FREETYPE_PATH})
|
||||
list(APPEND IMGUI_LIBRARIES freetype)
|
||||
list(APPEND IMGUI_SOURCES ../../imgui/misc/freetype/imgui_freetype.cpp)
|
||||
add_definitions("-DCIMGUI_FREETYPE=1")
|
||||
endif(IMGUI_FREETYPE)
|
||||
|
||||
# vulkan
|
||||
find_package(Vulkan REQUIRED FATAL_ERROR)
|
||||
list(APPEND IMGUI_LIBRARIES Vulkan::Vulkan)
|
||||
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_vulkan.cpp)
|
||||
|
||||
#sdl2
|
||||
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_sdl.cpp)
|
||||
if(DEFINED SDL_PATH)
|
||||
message(STATUS "SDL_PATH defined as " ${SDL_PATH})
|
||||
FIND_PACKAGE(SDL2 PATHS ${SDL_PATH})
|
||||
else(DEFINED SDL_PATH)
|
||||
# If SDL_PATH is not set, fallback and attempt to find SDL cmake script at a default location
|
||||
find_package(SDL2)
|
||||
endif(DEFINED SDL_PATH)
|
||||
|
||||
if(SDL2_FOUND)
|
||||
get_target_property(SDL_INCLUDE SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)
|
||||
message(STATUS "sdlinclude is " ${SDL_INCLUDE})
|
||||
if ("${SDL_INCLUDE}" STREQUAL "" OR "${SDL_INCLUDE}" STREQUAL "SDL_INCLUDE-NOTFOUND") #if not found latest SDL2 cmake config use older
|
||||
message(STATUS "sdlinclude2 is " ${SDL2_INCLUDE_DIRS})
|
||||
include_directories(${SDL2_INCLUDE_DIRS})
|
||||
set(IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES})
|
||||
message(STATUS IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES})
|
||||
else()#use new one SDL2 config
|
||||
include_directories(${SDL_INCLUDE})
|
||||
set(IMGUI_SDL_LIBRARY SDL2::SDL2)
|
||||
set(SDL_MAIN SDL2::SDL2main)
|
||||
message(STATUS ${SDL_MAIN} ${IMGUI_SDL_LIBRARY})
|
||||
endif()
|
||||
else(SDL2_FOUND)
|
||||
if(DEFINED SDL_PATH)
|
||||
message(FATAL_ERROR "Cannot find SDL at SDL_PATH")
|
||||
else(DEFINED SDL_PATH)
|
||||
message(FATAL_ERROR "Cannot find SDL. Maybe try specifying SDL_PATH?")
|
||||
endif(DEFINED SDL_PATH)
|
||||
endif(SDL2_FOUND)
|
||||
|
||||
add_library(cimgui_sdl SHARED ${IMGUI_SOURCES})
|
||||
target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} ${IMGUI_SDL_LIBRARY})
|
||||
|
||||
#using library
|
||||
include_directories(../../generator/output/)
|
||||
add_executable(test_sdl main.c)
|
||||
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_VULKAN -DCIMGUI_USE_SDL)
|
||||
if (MINGW)
|
||||
target_link_options(test_sdl PRIVATE "-mconsole")
|
||||
endif()
|
||||
target_link_libraries(test_sdl ${IMGUI_SDL_LIBRARY} cimgui_sdl)
|
||||
|
571
backend_test/example_sdl_vulkan/main.c
Normal file
571
backend_test/example_sdl_vulkan/main.c
Normal file
@@ -0,0 +1,571 @@
|
||||
#include <stdio.h>
|
||||
#include <assert.h>
|
||||
#define SDL_MAIN_HANDLED
|
||||
#include <SDL.h>
|
||||
#include <SDL_vulkan.h>
|
||||
#include <vulkan/vulkan.h>
|
||||
#ifdef _MSC_VER
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||
#include "cimgui.h"
|
||||
#include "cimgui_impl.h"
|
||||
|
||||
#ifdef IMGUI_HAS_IMSTR
|
||||
#define igBegin igBegin_Str
|
||||
#define igSliderFloat igSliderFloat_Str
|
||||
#define igCheckbox igCheckbox_Str
|
||||
#define igColorEdit3 igColorEdit3_Str
|
||||
#define igButton igButton_Str
|
||||
#endif
|
||||
|
||||
#define IM_UNUSED(_VAR) ((void)(_VAR))
|
||||
#define IM_ASSERT(_EXPR) assert(_EXPR)
|
||||
#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR) / sizeof(*(_ARR))))
|
||||
|
||||
static VkAllocationCallbacks* g_Allocator = NULL;
|
||||
static VkInstance g_Instance = VK_NULL_HANDLE;
|
||||
static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE;
|
||||
static VkDevice g_Device = VK_NULL_HANDLE;
|
||||
static uint32_t g_QueueFamily = (uint32_t)-1;
|
||||
static VkQueue g_Queue = VK_NULL_HANDLE;
|
||||
static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE;
|
||||
static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE;
|
||||
static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE;
|
||||
|
||||
static ImGui_ImplVulkanH_Window g_MainWindowData;
|
||||
static uint32_t g_MinImageCount = 2;
|
||||
static bool g_SwapChainRebuild = false;
|
||||
|
||||
static void check_vk_result(VkResult err)
|
||||
{
|
||||
if (err == 0)
|
||||
return;
|
||||
fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err);
|
||||
if (err < 0)
|
||||
abort();
|
||||
}
|
||||
|
||||
#ifdef IMGUI_VULKAN_DEBUG_REPORT
|
||||
static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags,
|
||||
VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location,
|
||||
int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData)
|
||||
{
|
||||
(void)flags; (void)object; (void)location; (void)messageCode;
|
||||
(void)pUserData; (void)pLayerPrefix; // Unused arguments
|
||||
fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n",
|
||||
objectType, pMessage);
|
||||
return VK_FALSE;
|
||||
}
|
||||
#endif // IMGUI_VULKAN_DEBUG_REPORT
|
||||
|
||||
static void SetupVulkan(const char** extensions, uint32_t extensions_count)
|
||||
{
|
||||
VkResult err;
|
||||
|
||||
// Create Vulkan Instance
|
||||
VkInstanceCreateInfo inst_create_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO,
|
||||
.enabledExtensionCount = extensions_count,
|
||||
.ppEnabledExtensionNames = extensions,
|
||||
};
|
||||
#ifdef IMGUI_VULKAN_DEBUG_REPORT
|
||||
// Enabling validation layers
|
||||
const char* layers[] = { "VK_LAYER_KHRONOS_validation" };
|
||||
inst_create_info.enabledLayerCount = 1;
|
||||
inst_create_info.ppEnabledLayerNames = layers;
|
||||
|
||||
// Enable debug report extension (we need additional storage, so we duplicate the user array to add our new extension to it)
|
||||
const char** extensions_ext = (const char**)malloc(
|
||||
sizeof(const char*) * (extensions_count + 1));
|
||||
memcpy(extensions_ext, extensions, extensions_count * sizeof(const char*));
|
||||
extensions_ext[extensions_count] = "VK_EXT_debug_report";
|
||||
inst_create_info.enabledExtensionCount = extensions_count + 1;
|
||||
inst_create_info.ppEnabledExtensionNames = extensions_ext;
|
||||
|
||||
// Create Vulkan Instance
|
||||
err = vkCreateInstance(&inst_create_info, g_Allocator, &g_Instance);
|
||||
check_vk_result(err);
|
||||
free(extensions_ext);
|
||||
|
||||
// Get the function pointer (required for any extensions)
|
||||
PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT =
|
||||
(PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance,
|
||||
"vkCreateDebugReportCallbackEXT");
|
||||
IM_ASSERT(vkCreateDebugReportCallbackEXT != NULL);
|
||||
|
||||
// Setup the debug report callback
|
||||
VkDebugReportCallbackCreateInfoEXT debug_report_ci = {
|
||||
.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
|
||||
.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT |
|
||||
VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT,
|
||||
.pfnCallback = debug_report,
|
||||
.pUserData = NULL,
|
||||
};
|
||||
err = vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator,
|
||||
&g_DebugReport);
|
||||
check_vk_result(err);
|
||||
#else
|
||||
// Create Vulkan Instance without any debug feature
|
||||
err = vkCreateInstance(&inst_create_info, g_Allocator, &g_Instance);
|
||||
check_vk_result(err);
|
||||
IM_UNUSED(g_DebugReport);
|
||||
#endif
|
||||
|
||||
// Select GPU
|
||||
uint32_t gpu_count;
|
||||
err = vkEnumeratePhysicalDevices(g_Instance, &gpu_count, NULL);
|
||||
check_vk_result(err);
|
||||
IM_ASSERT(gpu_count > 0);
|
||||
|
||||
VkPhysicalDevice* gpus = (VkPhysicalDevice*)malloc(sizeof(VkPhysicalDevice) * gpu_count);
|
||||
err = vkEnumeratePhysicalDevices(g_Instance, &gpu_count, gpus);
|
||||
check_vk_result(err);
|
||||
|
||||
// If a number >1 of GPUs got reported, find discrete GPU if present, or use first one available. This covers
|
||||
// most common cases (multi-gpu/integrated+dedicated graphics). Handling more complicated setups (multiple
|
||||
// dedicated GPUs) is out of scope of this sample.
|
||||
int use_gpu = 0;
|
||||
for (int i = 0; i < (int)gpu_count; i++)
|
||||
{
|
||||
VkPhysicalDeviceProperties properties;
|
||||
vkGetPhysicalDeviceProperties(gpus[i], &properties);
|
||||
if (properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)
|
||||
{
|
||||
use_gpu = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
g_PhysicalDevice = gpus[use_gpu];
|
||||
free(gpus);
|
||||
|
||||
// Select graphics queue family
|
||||
uint32_t count;
|
||||
vkGetPhysicalDeviceQueueFamilyProperties(g_PhysicalDevice, &count, NULL);
|
||||
VkQueueFamilyProperties* queues = (VkQueueFamilyProperties*)malloc(
|
||||
sizeof(VkQueueFamilyProperties) * count);
|
||||
vkGetPhysicalDeviceQueueFamilyProperties(g_PhysicalDevice, &count, queues);
|
||||
for (uint32_t i = 0; i < count; i++)
|
||||
if (queues[i].queueFlags & VK_QUEUE_GRAPHICS_BIT)
|
||||
{
|
||||
g_QueueFamily = i;
|
||||
break;
|
||||
}
|
||||
free(queues);
|
||||
IM_ASSERT(g_QueueFamily != (uint32_t)-1);
|
||||
|
||||
// Create Logical Device (with 1 queue)
|
||||
int device_extension_count = 1;
|
||||
const char* device_extensions[] = { "VK_KHR_swapchain" };
|
||||
const float queue_priority[] = { 1.0f };
|
||||
VkDeviceQueueCreateInfo queue_info[1] = {
|
||||
[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
|
||||
[0].queueFamilyIndex = g_QueueFamily,
|
||||
[0].queueCount = 1,
|
||||
[0].pQueuePriorities = queue_priority,
|
||||
};
|
||||
VkDeviceCreateInfo create_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
|
||||
.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]),
|
||||
.pQueueCreateInfos = queue_info,
|
||||
.enabledExtensionCount = device_extension_count,
|
||||
.ppEnabledExtensionNames = device_extensions,
|
||||
};
|
||||
err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device);
|
||||
check_vk_result(err);
|
||||
vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue);
|
||||
|
||||
// Create Descriptor Pool
|
||||
VkDescriptorPoolSize pool_sizes[] = {
|
||||
{ VK_DESCRIPTOR_TYPE_SAMPLER, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, 1000 },
|
||||
{ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1000 }
|
||||
};
|
||||
VkDescriptorPoolCreateInfo pool_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,
|
||||
.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
|
||||
.maxSets = 1000 * IM_ARRAYSIZE(pool_sizes),
|
||||
.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes),
|
||||
.pPoolSizes = pool_sizes,
|
||||
};
|
||||
err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool);
|
||||
check_vk_result(err);
|
||||
}
|
||||
|
||||
// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo.
|
||||
// Your real engine/app may not use them.
|
||||
static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface,
|
||||
int width, int height)
|
||||
{
|
||||
wd->Surface = surface;
|
||||
|
||||
// Check for WSI support
|
||||
VkBool32 res;
|
||||
vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res);
|
||||
if (res != VK_TRUE)
|
||||
{
|
||||
fprintf(stderr, "Error no WSI support on physical device 0\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
// Select Surface Format
|
||||
const VkFormat requestSurfaceImageFormat[] = {
|
||||
VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM,
|
||||
VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM
|
||||
};
|
||||
const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
|
||||
wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(
|
||||
g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat,
|
||||
(size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace);
|
||||
|
||||
// Select Present Mode
|
||||
#ifdef IMGUI_UNLIMITED_FRAME_RATE
|
||||
VkPresentModeKHR present_modes[] = {
|
||||
VK_PRESENT_MODE_MAILBOX_KHR,VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR
|
||||
};
|
||||
#else
|
||||
VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR };
|
||||
#endif
|
||||
wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(
|
||||
g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes));
|
||||
|
||||
// Create SwapChain, RenderPass, Framebuffer, etc.
|
||||
IM_ASSERT(g_MinImageCount >= 2);
|
||||
ImGui_ImplVulkanH_CreateOrResizeWindow(
|
||||
g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator,
|
||||
width, height, g_MinImageCount);
|
||||
}
|
||||
|
||||
static void CleanupVulkan()
|
||||
{
|
||||
vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator);
|
||||
|
||||
#ifdef IMGUI_VULKAN_DEBUG_REPORT
|
||||
// Remove the debug report callback
|
||||
PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT =
|
||||
(PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT");
|
||||
vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator);
|
||||
#endif // IMGUI_VULKAN_DEBUG_REPORT
|
||||
|
||||
vkDestroyDevice(g_Device, g_Allocator);
|
||||
vkDestroyInstance(g_Instance, g_Allocator);
|
||||
}
|
||||
|
||||
static void CleanupVulkanWindow()
|
||||
{
|
||||
ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator);
|
||||
}
|
||||
|
||||
static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
|
||||
{
|
||||
VkResult err;
|
||||
|
||||
VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
|
||||
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
||||
err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
|
||||
if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
|
||||
{
|
||||
g_SwapChainRebuild = true;
|
||||
return;
|
||||
}
|
||||
check_vk_result(err);
|
||||
|
||||
ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
|
||||
err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking
|
||||
check_vk_result(err);
|
||||
|
||||
err = vkResetFences(g_Device, 1, &fd->Fence);
|
||||
check_vk_result(err);
|
||||
|
||||
err = vkResetCommandPool(g_Device, fd->CommandPool, 0);
|
||||
check_vk_result(err);
|
||||
VkCommandBufferBeginInfo info = {
|
||||
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
||||
.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
|
||||
};
|
||||
err = vkBeginCommandBuffer(fd->CommandBuffer, &info);
|
||||
check_vk_result(err);
|
||||
VkRenderPassBeginInfo rp_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
|
||||
.renderPass = wd->RenderPass,
|
||||
.framebuffer = fd->Framebuffer,
|
||||
.renderArea.extent.width = wd->Width,
|
||||
.renderArea.extent.height = wd->Height,
|
||||
.clearValueCount = 1,
|
||||
.pClearValues = &wd->ClearValue,
|
||||
};
|
||||
vkCmdBeginRenderPass(fd->CommandBuffer, &rp_info, VK_SUBPASS_CONTENTS_INLINE);
|
||||
|
||||
// Record dear imgui primitives into command buffer
|
||||
ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer, VK_NULL_HANDLE);
|
||||
|
||||
// Submit command buffer
|
||||
vkCmdEndRenderPass(fd->CommandBuffer);
|
||||
VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
|
||||
VkSubmitInfo sub_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
|
||||
.waitSemaphoreCount = 1,
|
||||
.pWaitSemaphores = &image_acquired_semaphore,
|
||||
.pWaitDstStageMask = &wait_stage,
|
||||
.commandBufferCount = 1,
|
||||
.pCommandBuffers = &fd->CommandBuffer,
|
||||
.signalSemaphoreCount = 1,
|
||||
.pSignalSemaphores = &render_complete_semaphore,
|
||||
};
|
||||
|
||||
err = vkEndCommandBuffer(fd->CommandBuffer);
|
||||
check_vk_result(err);
|
||||
err = vkQueueSubmit(g_Queue, 1, &sub_info, fd->Fence);
|
||||
check_vk_result(err);
|
||||
}
|
||||
|
||||
static void FramePresent(ImGui_ImplVulkanH_Window* wd)
|
||||
{
|
||||
if (g_SwapChainRebuild) return;
|
||||
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
||||
VkPresentInfoKHR info = {
|
||||
.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
|
||||
.waitSemaphoreCount = 1,
|
||||
.pWaitSemaphores = &render_complete_semaphore,
|
||||
.swapchainCount = 1,
|
||||
.pSwapchains = &wd->Swapchain,
|
||||
.pImageIndices = &wd->FrameIndex,
|
||||
};
|
||||
VkResult err = vkQueuePresentKHR(g_Queue, &info);
|
||||
if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
|
||||
{
|
||||
g_SwapChainRebuild = true;
|
||||
return;
|
||||
}
|
||||
check_vk_result(err);
|
||||
wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->ImageCount; // Now we can use the next set of semaphores
|
||||
}
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
|
||||
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
|
||||
SDL_Log("failed to init: %s", SDL_GetError());
|
||||
return -1;
|
||||
}
|
||||
|
||||
/// Setup window
|
||||
SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_VULKAN |
|
||||
SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
|
||||
SDL_Window* window = SDL_CreateWindow("cImGui SDL2+Vulkan example",
|
||||
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720, window_flags);
|
||||
if (window == NULL) {
|
||||
SDL_Log("Failed to create window: %s", SDL_GetError());
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Setup Vulkan
|
||||
uint32_t extensions_count = 0;
|
||||
SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, NULL);
|
||||
const char** extensions = malloc(extensions_count * sizeof(const char*));
|
||||
SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, extensions);
|
||||
SetupVulkan(extensions, extensions_count);
|
||||
free(extensions);
|
||||
|
||||
// Create Window Surface
|
||||
VkSurfaceKHR surface;
|
||||
VkResult err;
|
||||
if (SDL_Vulkan_CreateSurface(window, g_Instance, &surface) == 0)
|
||||
{
|
||||
printf("Failed to create Vulkan surface.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Create Framebuffers
|
||||
int w, h;
|
||||
SDL_GetWindowSize(window, &w, &h);
|
||||
ImGui_ImplVulkanH_Window* wd = &g_MainWindowData;
|
||||
SetupVulkanWindow(wd, surface, w, h);
|
||||
|
||||
// setup imgui
|
||||
igCreateContext(NULL);
|
||||
|
||||
//set docking
|
||||
ImGuiIO* ioptr = igGetIO();
|
||||
ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
|
||||
//ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
|
||||
|
||||
// Setup Platform/Renderer backends
|
||||
ImGui_ImplSDL2_InitForVulkan(window);
|
||||
ImGui_ImplVulkan_InitInfo init_info = {
|
||||
.Instance = g_Instance,
|
||||
.PhysicalDevice = g_PhysicalDevice,
|
||||
.Device = g_Device,
|
||||
.QueueFamily = g_QueueFamily,
|
||||
.Queue = g_Queue,
|
||||
.PipelineCache = g_PipelineCache,
|
||||
.DescriptorPool = g_DescriptorPool,
|
||||
.Subpass = 0,
|
||||
.MinImageCount = g_MinImageCount,
|
||||
.ImageCount = wd->ImageCount,
|
||||
.MSAASamples = VK_SAMPLE_COUNT_1_BIT,
|
||||
.Allocator = g_Allocator,
|
||||
.CheckVkResultFn = check_vk_result
|
||||
};
|
||||
ImGui_ImplVulkan_Init(&init_info, wd->RenderPass);
|
||||
|
||||
igStyleColorsDark(NULL);
|
||||
|
||||
// Upload Fonts
|
||||
// Use any command queue
|
||||
VkCommandPool command_pool = wd->Frames[wd->FrameIndex].CommandPool;
|
||||
VkCommandBuffer command_buffer = wd->Frames[wd->FrameIndex].CommandBuffer;
|
||||
|
||||
err = vkResetCommandPool(g_Device, command_pool, 0);
|
||||
check_vk_result(err);
|
||||
VkCommandBufferBeginInfo begin_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
||||
.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
|
||||
};
|
||||
err = vkBeginCommandBuffer(command_buffer, &begin_info);
|
||||
check_vk_result(err);
|
||||
|
||||
ImGui_ImplVulkan_CreateFontsTexture(command_buffer);
|
||||
|
||||
VkSubmitInfo end_info = {
|
||||
.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
|
||||
.commandBufferCount = 1,
|
||||
.pCommandBuffers = &command_buffer,
|
||||
};
|
||||
err = vkEndCommandBuffer(command_buffer);
|
||||
check_vk_result(err);
|
||||
err = vkQueueSubmit(g_Queue, 1, &end_info, VK_NULL_HANDLE);
|
||||
check_vk_result(err);
|
||||
|
||||
err = vkDeviceWaitIdle(g_Device);
|
||||
check_vk_result(err);
|
||||
ImGui_ImplVulkan_DestroyFontUploadObjects();
|
||||
|
||||
bool showDemoWindow = true;
|
||||
bool showAnotherWindow = false;
|
||||
ImVec4 clearColor;
|
||||
clearColor.x = 0.45f;
|
||||
clearColor.y = 0.55f;
|
||||
clearColor.z = 0.60f;
|
||||
clearColor.w = 1.00f;
|
||||
|
||||
bool quit = false;
|
||||
while (!quit)
|
||||
{
|
||||
SDL_Event e;
|
||||
|
||||
// we need to call SDL_PollEvent to let window rendered, otherwise
|
||||
// no window will be shown
|
||||
while (SDL_PollEvent(&e) != 0)
|
||||
{
|
||||
ImGui_ImplSDL2_ProcessEvent(&e);
|
||||
if (e.type == SDL_QUIT)
|
||||
quit = true;
|
||||
if (e.type == SDL_WINDOWEVENT && e.window.event == SDL_WINDOWEVENT_CLOSE &&
|
||||
e.window.windowID == SDL_GetWindowID(window))
|
||||
quit = true;
|
||||
}
|
||||
|
||||
// Resize swap chain
|
||||
if (g_SwapChainRebuild)
|
||||
{
|
||||
int width, height;
|
||||
SDL_GetWindowSize(window, &width, &height);
|
||||
if (width > 0 && height > 0)
|
||||
{
|
||||
ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
|
||||
ImGui_ImplVulkanH_CreateOrResizeWindow(
|
||||
g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData,
|
||||
g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
|
||||
g_MainWindowData.FrameIndex = 0;
|
||||
g_SwapChainRebuild = false;
|
||||
}
|
||||
}
|
||||
|
||||
// start imgui frame
|
||||
ImGui_ImplVulkan_NewFrame();
|
||||
ImGui_ImplSDL2_NewFrame();
|
||||
igNewFrame();
|
||||
|
||||
if (showDemoWindow)
|
||||
igShowDemoWindow(&showDemoWindow);
|
||||
|
||||
// show a simple window that we created ourselves.
|
||||
{
|
||||
static float f = 0.0f;
|
||||
static int counter = 0;
|
||||
|
||||
igBegin("Hello, world!", NULL, 0);
|
||||
igText("This is some useful text");
|
||||
igCheckbox("Demo window", &showDemoWindow);
|
||||
igCheckbox("Another window", &showAnotherWindow);
|
||||
|
||||
igSliderFloat("Float", &f, 0.0f, 1.0f, "%.3f", 0);
|
||||
igColorEdit3("clear color", (float*)&clearColor, 0);
|
||||
|
||||
ImVec2 buttonSize;
|
||||
buttonSize.x = 0;
|
||||
buttonSize.y = 0;
|
||||
if (igButton("Button", buttonSize))
|
||||
counter++;
|
||||
igSameLine(0.0f, -1.0f);
|
||||
igText("counter = %d", counter);
|
||||
|
||||
igText("Application average %.3f ms/frame (%.1f FPS)",
|
||||
1000.0f / igGetIO()->Framerate, igGetIO()->Framerate);
|
||||
igEnd();
|
||||
}
|
||||
|
||||
if (showAnotherWindow)
|
||||
{
|
||||
igBegin("imgui Another Window", &showAnotherWindow, 0);
|
||||
igText("Hello from imgui");
|
||||
ImVec2 buttonSize;
|
||||
buttonSize.x = 0; buttonSize.y = 0;
|
||||
if (igButton("Close me", buttonSize))
|
||||
{
|
||||
showAnotherWindow = false;
|
||||
}
|
||||
igEnd();
|
||||
}
|
||||
|
||||
// render
|
||||
igRender();
|
||||
ImDrawData* draw_data = igGetDrawData();
|
||||
const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f);
|
||||
if (!is_minimized)
|
||||
{
|
||||
wd->ClearValue.color.float32[0] = clearColor.x * clearColor.w;
|
||||
wd->ClearValue.color.float32[1] = clearColor.y * clearColor.w;
|
||||
wd->ClearValue.color.float32[2] = clearColor.z * clearColor.w;
|
||||
wd->ClearValue.color.float32[3] = clearColor.w;
|
||||
FrameRender(wd, draw_data);
|
||||
FramePresent(wd);
|
||||
}
|
||||
}
|
||||
|
||||
// Cleanup
|
||||
err = vkDeviceWaitIdle(g_Device);
|
||||
check_vk_result(err);
|
||||
ImGui_ImplVulkan_Shutdown();
|
||||
ImGui_ImplSDL2_Shutdown();
|
||||
igDestroyContext(NULL);
|
||||
|
||||
CleanupVulkanWindow();
|
||||
CleanupVulkan();
|
||||
|
||||
SDL_DestroyWindow(window);
|
||||
SDL_Quit();
|
||||
|
||||
return 0;
|
||||
}
|
1075
cimgui.cpp
1075
cimgui.cpp
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,14 @@
|
||||
|
||||
#include "./imgui/imgui.h"
|
||||
#ifdef IMGUI_ENABLE_FREETYPE
|
||||
#ifndef CIMGUI_FREETYPE
|
||||
#error "IMGUI_FREETYPE should be defined for Freetype linking"
|
||||
#endif
|
||||
#else
|
||||
#ifdef CIMGUI_FREETYPE
|
||||
#error "IMGUI_FREETYPE should not be defined without freetype generated cimgui"
|
||||
#endif
|
||||
#endif
|
||||
#include "./imgui/imgui.h"
|
||||
#ifdef IMGUI_ENABLE_FREETYPE
|
||||
#include "./imgui/misc/freetype/imgui_freetype.h"
|
||||
#endif
|
||||
#include "./imgui/imgui_internal.h"
|
||||
|
@@ -51,12 +51,12 @@ CIMGUI_API void igLogText(CONST char *fmt, ...);
|
||||
//no appendfV
|
||||
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
|
||||
//for getting FLT_MAX in bindings
|
||||
CIMGUI_API float igGET_FLT_MAX();
|
||||
CIMGUI_API float igGET_FLT_MAX(void);
|
||||
//for getting FLT_MIN in bindings
|
||||
CIMGUI_API float igGET_FLT_MIN();
|
||||
CIMGUI_API float igGET_FLT_MIN(void);
|
||||
|
||||
|
||||
CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create();
|
||||
CIMGUI_API ImVector_ImWchar* ImVector_ImWchar_create(void);
|
||||
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);
|
||||
|
@@ -1,3 +1,3 @@
|
||||
return {
|
||||
vulkan = {[[C:\VulkanSDK\1.1.130.0\Include]]}
|
||||
}
|
||||
vulkan = {(os.getenv("VULKAN_SDK") or "vulkan_SDK_not_found").."/Include"}, --{[[C:\VulkanSDK\1.3.216.0\Include]]}
|
||||
}
|
@@ -116,7 +116,7 @@ end
|
||||
M.strsplit = strsplit
|
||||
local function split_comment(line)
|
||||
local comment = line:match("(%s*//.*)") --or ""
|
||||
line = line:gsub("%s*//.*","")
|
||||
line = line:gsub("%s*//[^\n]*","")
|
||||
line = line:gsub("%s*$","")
|
||||
return line,comment
|
||||
end
|
||||
@@ -139,6 +139,7 @@ local function clean_spaces(cad)
|
||||
cad = strip(cad)
|
||||
cad = cad:gsub("%s+"," ") --not more than one space
|
||||
cad = cad:gsub("%s*([%(%),=:%+])%s*","%1") --not spaces with ( , ) or ( = ) or ( : ) or +
|
||||
cad = cad:gsub("%s*(>>)%s*","%1")
|
||||
--name [] to name[]
|
||||
cad = cad:gsub("(%S)%s(%[)","%1%2")
|
||||
--clean %d * %d (could be done above but type*name should be treated different in other places)
|
||||
@@ -147,6 +148,22 @@ local function clean_spaces(cad)
|
||||
end
|
||||
|
||||
------------------------------------
|
||||
local function check_template(code)
|
||||
local ttype,template = code:match("([^%s,%(%)]+)%s*<(.-)>")
|
||||
local code2,te
|
||||
if template then
|
||||
te = template:gsub("%s*,%s*",",")
|
||||
te = te:gsub(",","__")
|
||||
te = te:gsub("%-","less")
|
||||
te = te:gsub("%s","_")
|
||||
te = te:gsub("%*","Ptr")
|
||||
|
||||
code2 = code:gsub("(<[%w_%*%s]+>)([^%s%*])","%1 %2")
|
||||
code2 = code2:gsub("<([^<>]-)>","_"..te)
|
||||
end
|
||||
return ttype,template,te,code2
|
||||
end
|
||||
----------------------------------------
|
||||
local function parse_enum_value(value, allenums,dontpost)
|
||||
local function clean(val)
|
||||
if type(val)=="string" then
|
||||
@@ -159,6 +176,7 @@ local function parse_enum_value(value, allenums,dontpost)
|
||||
if type(value)=="number" then
|
||||
return value
|
||||
elseif type(value)=="string" then
|
||||
--print(value)
|
||||
--numbers
|
||||
local numval = tonumber(value)
|
||||
if numval then return numval end
|
||||
@@ -170,13 +188,13 @@ local function parse_enum_value(value, allenums,dontpost)
|
||||
value = value:gsub("^(%()",""):gsub("(%))$","")
|
||||
assert(not value:match("[%(%)]"),value)
|
||||
|
||||
local several,seps = strsplit(value,"([<>&|~%+]+)")
|
||||
local several,seps = strsplit(value,"([<>&|~%+%-]+)")
|
||||
--M.prtable(value,several,seps)
|
||||
assert(#seps+1==#several)
|
||||
|
||||
local i = 1
|
||||
local ik = 1
|
||||
local sepk = {"~","<<",">>","&","^","|","+"}
|
||||
local sepk = {"~","<<",">>","&","^","|","+","-"}
|
||||
while(#seps>0) do
|
||||
local sep = sepk[ik]
|
||||
local v = seps[i]
|
||||
@@ -206,6 +224,8 @@ local function parse_enum_value(value, allenums,dontpost)
|
||||
several[i] = bit.bor(val1,val2)
|
||||
elseif v=="+" then
|
||||
several[i] = val1 + val2
|
||||
elseif v=="-" then
|
||||
several[i] = val1 - val2
|
||||
else
|
||||
error("unknown operator "..v)
|
||||
end
|
||||
@@ -223,7 +243,7 @@ local function parse_enum_value(value, allenums,dontpost)
|
||||
end
|
||||
if #seps>0 or type(several[1])~="number" and not dontpost then
|
||||
--M.prtable("enline",enline)
|
||||
print("parse_enum_value WARNING",value,several[1])
|
||||
print("parse_enum_value WARNING:",value,several[1])
|
||||
--M.prtable(several,seps)
|
||||
--M.prtable("allenums",allenums)
|
||||
end
|
||||
@@ -278,6 +298,7 @@ local function getRE()
|
||||
local res = {
|
||||
function_re = "^([^;{}]+%b()[\n%s]*;)%s*",
|
||||
function_re = "^([^;{}=]+%b()[\n%s%w]*;)", --const at the end
|
||||
function_re = "^([^;{}=]+%b()[\n%s%w%(%)_]*;)", --attribute(deprecated)
|
||||
struct_re = "^([^;{}]-struct[^;{}]-%b{}[%s%w_%(%)]*;)",
|
||||
enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)",
|
||||
union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)",
|
||||
@@ -291,7 +312,8 @@ local function getRE()
|
||||
--vardef_re = "^\n*([^;{}%(%)]+;)",
|
||||
--change for things as
|
||||
--[[ImU8 Used4kPagesMap[((sizeof(ImWchar16) == 2 ? 0xFFFF : 0x10FFFF)+1)/4096/8];]]
|
||||
vardef_re = "^\n*([^;{}]+;)",
|
||||
--vardef_re = "^\n*([^;{}]+;)",
|
||||
vardef_re = "^\n*([^;]+;)",
|
||||
functionD_re = "^([^;{}]-%b()[\n%s%w]*%b{}%s-;*)",
|
||||
--functionD_re = "^([^;{}]-%b()[^{}%(%)]*%b{})",
|
||||
functype_re = "^%s*[%w%s%*]+%(%*[%w_]+%)%([^%(%)]*%)%s*;",
|
||||
@@ -324,7 +346,9 @@ local function parseItems(txt,linenumdict, itparent, dumpit)
|
||||
local re = res[re_name]
|
||||
local i,e = txt:find(re,ini)
|
||||
if i then
|
||||
|
||||
item = txt:sub(i,e)
|
||||
--print("re_name",re_name,item)
|
||||
------------------
|
||||
--[[
|
||||
--if re~=functionD_re then --skip defined functions
|
||||
@@ -376,13 +400,19 @@ local function parseItems(txt,linenumdict, itparent, dumpit)
|
||||
loca = table.remove(loca,1)
|
||||
end
|
||||
if not loca then
|
||||
print(string.format("%q , %q ",itemold,itemfirstline),#itemfirstline)
|
||||
for k,v in pairs(linenumdict) do
|
||||
if k:match(itemfirstline) then
|
||||
print(string.format("%q",k),#k)
|
||||
end
|
||||
print("not loca",string.format("%q , %q ",itemold,itemfirstline),#itemfirstline)
|
||||
-- for k,v in pairs(linenumdict) do
|
||||
-- if k:match(itemfirstline) then
|
||||
-- print(string.format("%q",k),#k)
|
||||
-- end
|
||||
-- end
|
||||
--error"no entry in linenumdict"
|
||||
--take locat from parent
|
||||
if itparent.locat then
|
||||
loca = itparent.locat
|
||||
else
|
||||
error"no entry in linenumdict"
|
||||
end
|
||||
error"no entry in linenumdict"
|
||||
end
|
||||
else
|
||||
error"no linenumdict"
|
||||
@@ -540,7 +570,77 @@ local function clean_names_from_signature(self,signat)
|
||||
result = result:sub(1,-2) .. ")"
|
||||
return result
|
||||
end
|
||||
local function clean_functypedef(line)
|
||||
local first, args = line:match("(typedef .-%(%*[_%w]+%))%s*(%b())")
|
||||
|
||||
if not args then
|
||||
print"not getting args in"
|
||||
print(line)
|
||||
print(first,"args",args)
|
||||
error"clean_functypedef not getting args"
|
||||
end
|
||||
|
||||
local argsp = args:sub(2,-2)..","
|
||||
local argsTa = {}
|
||||
for tynam in argsp:gmatch("([^,]+),") do
|
||||
if tynam:match("%)") and not tynam:match("%b()") then
|
||||
--patenthesis not closed are merged in previous (happens in some defaults)
|
||||
argsTa[#argsTa] = argsTa[#argsTa]..","..tynam
|
||||
while argsTa[#argsTa]:match("%)") and not argsTa[#argsTa]:match("%b()") do
|
||||
argsTa[#argsTa-1] = argsTa[#argsTa-1] .. "," .. argsTa[#argsTa]
|
||||
argsTa[#argsTa] = nil
|
||||
end
|
||||
else
|
||||
argsTa[#argsTa+1] = tynam
|
||||
end
|
||||
end
|
||||
|
||||
local result = "\n"..first.."("
|
||||
for i,ar in ipairs(argsTa) do
|
||||
if ar:match("&") then
|
||||
if ar:match("const") then
|
||||
argsTa[i] = ar:gsub("&","")
|
||||
else
|
||||
argsTa[i] = ar:gsub("&","*")
|
||||
end
|
||||
end
|
||||
result = result..argsTa[i]..(i==#argsTa and ");" or ",")
|
||||
end
|
||||
--M.prtable(argsTa)
|
||||
--print(result)
|
||||
return result
|
||||
end
|
||||
|
||||
local function CleanImU32(def)
|
||||
local function deleteOuterPars(def)
|
||||
local w = def:match("^%b()$")
|
||||
if w then
|
||||
w = w:gsub("^%((.+)%)$","%1")
|
||||
return w
|
||||
else
|
||||
return def
|
||||
end
|
||||
end
|
||||
def = def:gsub("%(ImU32%)","")
|
||||
--quitar () de numeros
|
||||
def = def:gsub("%((%d+)%)","%1")
|
||||
def = deleteOuterPars(def)
|
||||
local bb=strsplit(def,"|")
|
||||
for i=1,#bb do
|
||||
local val = deleteOuterPars(bb[i])
|
||||
if val:match"<<" then
|
||||
local v1,v2 = val:match("(%d+)%s*<<%s*(%d+)")
|
||||
val = v1*2^v2
|
||||
bb[i] = val
|
||||
end
|
||||
assert(type(bb[i])=="number",bb[i])
|
||||
end
|
||||
local res = 0
|
||||
for i=1,#bb do res = res + bb[i] end
|
||||
return res
|
||||
end
|
||||
local function parseFunction(self,stname,itt,namespace,locat)
|
||||
|
||||
local lineorig,comment = split_comment(itt.item)
|
||||
line = clean_spaces(lineorig)
|
||||
--move *
|
||||
@@ -563,6 +663,8 @@ local function parseFunction(self,stname,itt,namespace,locat)
|
||||
line = line:gsub("inline","")
|
||||
line = line:gsub("mutable","")
|
||||
line = line:gsub("explicit","")
|
||||
line = line:gsub("constexpr","")
|
||||
line = clean_spaces(line)
|
||||
--skip operator
|
||||
if line:match("operator") then return end
|
||||
--skip template
|
||||
@@ -601,33 +703,30 @@ local function parseFunction(self,stname,itt,namespace,locat)
|
||||
--- templates in args
|
||||
for i,ar in ipairs(argsTa) do
|
||||
--TODO several diferent templates
|
||||
local ttype,template = ar:match("([^%s,%(%)]+)%s*<(.-)>")
|
||||
local ttype,template,te,code2 = check_template(ar) --ar:match("([^%s,%(%)]+)%s*<(.-)>")
|
||||
|
||||
local te=""
|
||||
if template then
|
||||
if self.typenames[stname] ~= template then --rule out template typename
|
||||
te = template:gsub("%s","_")
|
||||
te = te:gsub("%*","Ptr")
|
||||
|
||||
self.templates[ttype] = self.templates[ttype] or {}
|
||||
self.templates[ttype][template] = te
|
||||
te = "_"..te
|
||||
self.templates[ttype] = self.templates[ttype] or {}
|
||||
self.templates[ttype][template] = te
|
||||
end
|
||||
end
|
||||
argsTa[i] = ar:gsub("<([%w_%*%s]+)>",te) --ImVector
|
||||
argsTa[i] = te and code2 or ar --ar:gsub("<([%w_%*%s]+)>",te) --ImVector
|
||||
end
|
||||
|
||||
--get typ, name and defaults
|
||||
local functype_re = "^%s*[%w%s%*]+%(%*[%w_]+%)%([^%(%)]*%)"
|
||||
local functype_reex = "^(%s*[%w%s%*]+)%(%*([%w_]+)%)(%([^%(%)]*%))"
|
||||
local functype_arg_rest = "^(%s*[%w%s%*]+%(%*[%w_]+%)%([^%(%)]*%)),*(.*)"
|
||||
local functype_re = "^%s*[%w%s%*]+%(%*%s*[%w_]+%)%([^%(%)]*%)"
|
||||
local functype_reex = "^(%s*[%w%s%*]+)%(%*%s*([%w_]+)%)(%([^%(%)]*%))"
|
||||
local argsTa2 = {}
|
||||
local noname_counter = 0
|
||||
for i,ar in ipairs(argsTa) do
|
||||
local typ,name,retf,sigf,reftoptr,defa,ar1
|
||||
local has_cdecl = ar:match"__cdecl"
|
||||
if has_cdecl then ar = ar:gsub("__cdecl","") end
|
||||
if ar:match(functype_re) then
|
||||
local t1,namef,t2 = ar:match(functype_reex)
|
||||
typ, name = t1.."(*)"..t2, namef
|
||||
local f_ = has_cdecl and "(__cdecl*)" or "(*)"
|
||||
typ, name = t1..f_..t2, namef
|
||||
retf = t1
|
||||
sigf = t2
|
||||
else
|
||||
@@ -662,7 +761,7 @@ local function parseFunction(self,stname,itt,namespace,locat)
|
||||
name = name:gsub("(%[%d*%])","")
|
||||
end
|
||||
end
|
||||
argsTa2[i] = {type=typ,name=name,default=defa,reftoptr=reftoptr,ret=retf,signature=sigf}
|
||||
argsTa2[i] = {type=typ,name=name,default=defa,reftoptr=reftoptr,ret=retf,signature=sigf,has_cdecl=has_cdecl}
|
||||
if ar:match("&") and not ar:match("const") then
|
||||
--only post error if not manual
|
||||
local cname = self.getCname(stname,funcname, namespace) --cimguiname
|
||||
@@ -682,9 +781,10 @@ local function parseFunction(self,stname,itt,namespace,locat)
|
||||
signat = "("
|
||||
for i,v in ipairs(argsArr) do
|
||||
if v.ret then --function pointer
|
||||
asp = asp .. v.ret .. "(*" .. v.name .. ")" .. v.signature .. ","
|
||||
local f_ = v.has_cdecl and "(__cdecl*" or "(*"
|
||||
asp = asp .. v.ret .. f_ .. v.name .. ")" .. v.signature .. ","
|
||||
caar = caar .. v.name .. ","
|
||||
signat = signat .. v.ret .. "(*)" .. clean_names_from_signature(self,v.signature) .. ","
|
||||
signat = signat .. v.ret .. f_..")" .. clean_names_from_signature(self,v.signature) .. ","
|
||||
else
|
||||
local siz = v.type:match("(%[%d*%])") or ""
|
||||
local typ = v.type:gsub("(%[%d*%])","")
|
||||
@@ -722,6 +822,15 @@ local function parseFunction(self,stname,itt,namespace,locat)
|
||||
defT.defaults = {}
|
||||
for i,ar in ipairs(argsArr) do
|
||||
if ar.default then
|
||||
--clean defaults
|
||||
--do only if not a c string
|
||||
local is_cstring = ar.default:sub(1,1)=='"' and ar.default:sub(-1,-1) =='"'
|
||||
if not is_cstring then
|
||||
ar.default = ar.default:gsub("%(%(void%s*%*%)0%)","NULL")
|
||||
if ar.default:match"%(ImU32%)" and not ar.default:match"sizeof" then
|
||||
ar.default = tostring(CleanImU32(ar.default))
|
||||
end
|
||||
end
|
||||
defT.defaults[ar.name] = ar.default
|
||||
ar.default = nil
|
||||
end
|
||||
@@ -1060,14 +1169,20 @@ function M.Parser()
|
||||
return par.skipped[def.ov_cimguiname] or par.skipped[def.cimguiname]
|
||||
end
|
||||
function par:take_lines(cmd_line,names,compiler)
|
||||
if self.COMMENTS_GENERATION then
|
||||
cmd_line = cmd_line .. (compiler=="cl" and " /C " or " -C ")
|
||||
end
|
||||
local pipe,err = io.popen(cmd_line,"r")
|
||||
if not pipe then
|
||||
error("could not execute COMPILER "..err)
|
||||
end
|
||||
local defines = {}
|
||||
local preprocessed = {}--
|
||||
for line,loca,loca2 in M.location(pipe,names,defines,compiler) do
|
||||
self:insert(line, tostring(loca)..":"..tostring(loca2))
|
||||
table.insert(preprocessed,line)--
|
||||
end
|
||||
save_data("preprocesed.h",table.concat(preprocessed,"\n"))
|
||||
pipe:close()
|
||||
return defines
|
||||
end
|
||||
@@ -1137,7 +1252,8 @@ function M.Parser()
|
||||
local stname = it.item:match("struct%s+(%S+)")
|
||||
it.name = stname
|
||||
|
||||
local templa1,templa2 = it.item:match("^%s*template%s*<%s*(%S+)%s*(%S+)%s*>")
|
||||
--local templa1,templa2 = it.item:match("^%s*template%s*<%s*(%S+)%s*(%S+)%s*>")
|
||||
local templa2 = it.item:match("^%s*template%s*<%s*([^<>]+)%s*>")
|
||||
if templa1 or templa2 then print("template found",stname,templa1,templa2,"typename",typename) end
|
||||
|
||||
if typename or templa2 then -- it is a struct template
|
||||
@@ -1157,20 +1273,49 @@ function M.Parser()
|
||||
self.linenumdict = {}
|
||||
local cdefs2 = {}
|
||||
for i,cdef in ipairs(cdefs) do
|
||||
if self.linenumdict[cdef[1]] then
|
||||
--print("linenumdict alredy defined for", cdef[1],type(self.linenumdict[cdef[1]]))
|
||||
if type(self.linenumdict[cdef[1]])=="string" then
|
||||
self.linenumdict[cdef[1]] = {self.linenumdict[cdef[1]], cdef[2]}
|
||||
local cdef1 = clean_comments(cdef[1])
|
||||
if self.linenumdict[cdef1] then
|
||||
--print("linenumdict already defined for", cdef[1],type(self.linenumdict[cdef[1]]))
|
||||
if type(self.linenumdict[cdef1])=="string" then
|
||||
self.linenumdict[cdef1] = {self.linenumdict[cdef1], cdef[2]}
|
||||
else -- must be table already
|
||||
table.insert(self.linenumdict[cdef[1]],cdef[2])
|
||||
table.insert(self.linenumdict[cdef1],cdef[2])
|
||||
end
|
||||
else
|
||||
self.linenumdict[cdef[1]]=cdef[2]
|
||||
--print("nuevo linenumdict es",cdef[1],cdef[2])
|
||||
self.linenumdict[cdef1]=cdef[2]
|
||||
end
|
||||
table.insert(cdefs2,cdef[1])
|
||||
end
|
||||
local txt = table.concat(cdefs2,"\n")
|
||||
|
||||
--clean bad positioned comments inside functionD_re
|
||||
if self.COMMENTS_GENERATION then
|
||||
print"cleaning comments inside functionD_re--------------"
|
||||
---[[
|
||||
local nn = 0
|
||||
local txtclean = {}
|
||||
local reg = "(\n[%w%s]-[%w]+%s*%b())(%s*//[^\n]*)([\n%s%w]*%b{}%s-;*)"
|
||||
--reg = "^([^;{}]-%b()[\n%s%w]*%b{}%s-;*)"
|
||||
local ini = 1
|
||||
local i,e,a,b,c = txt:find(reg,ini)
|
||||
while i do
|
||||
print(i,e,#txt)
|
||||
table.insert(txtclean,txt:sub(ini,i-1))
|
||||
table.insert(txtclean,a)
|
||||
print("a:",a)
|
||||
print("b:",b)
|
||||
print("c:",c)
|
||||
c = c:gsub("(%s*//[^\n]*)","")
|
||||
table.insert(txtclean,c)
|
||||
nn = nn + 1
|
||||
ini = e + 1
|
||||
i,e,a,b,c = txt:find(reg,ini)
|
||||
end
|
||||
table.insert(txtclean,txt:sub(ini))
|
||||
print("end cleaning ------------------------------",nn)
|
||||
txt = table.concat(txtclean)
|
||||
end
|
||||
--]]
|
||||
self.itemsarr = par:parseItemsR2(txt)
|
||||
itemsarr = self.itemsarr
|
||||
end
|
||||
@@ -1179,8 +1324,25 @@ function M.Parser()
|
||||
printItems(items)
|
||||
end
|
||||
par.parseFunction = parseFunction
|
||||
|
||||
function par:clean_structR1(itst)
|
||||
local uniques = {}
|
||||
local function check_unique_typedefs(l,uniques)
|
||||
if not uniques[l] then
|
||||
uniques[l] = true
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
function par:generate_templates()
|
||||
local ttd = {}
|
||||
M.table_do_sorted(self.templates , function (ttype, v)
|
||||
--print("generate_templates",ttype,v)
|
||||
M.table_do_sorted(v, function(te,newte)
|
||||
table.insert(ttd,self:gentemplatetypedef(ttype,te,newte))
|
||||
end)
|
||||
end)
|
||||
return table.concat(ttd,"")
|
||||
end
|
||||
function par:clean_structR1(itst,doheader)
|
||||
local stru = itst.item
|
||||
local outtab = {}
|
||||
local commtab = {}
|
||||
@@ -1211,11 +1373,11 @@ function M.Parser()
|
||||
--table.insert(outtab,stru:match("(.-)%b{}"))
|
||||
table.insert(outtab,"\nstruct "..stname.."\n")
|
||||
table.insert(outtab,"{")
|
||||
table.insert(commtab,nil)--"")
|
||||
table.insert(commtab,nil)--"")
|
||||
table.insert(commtab,"")
|
||||
table.insert(commtab,"")
|
||||
if derived then
|
||||
table.insert(outtab,"\n "..derived.." _"..derived..";")
|
||||
table.insert(commtab,nil)--"")
|
||||
table.insert(commtab,"")
|
||||
end
|
||||
--local itlist,itemsin = parseItems(iner, false,locat)
|
||||
local itlist = itst.childs
|
||||
@@ -1230,15 +1392,16 @@ function M.Parser()
|
||||
if not (it.re_name == "vardef_re" and it.item:match"static") then --skip static variables
|
||||
local it2 = it.item --:gsub("<([%w_]+)>","_%1") --templates
|
||||
--local ttype,template = it.item:match("([^%s,%(%)]+)%s*<(.+)>")
|
||||
local ttype,template = it.item:match"([^%s,%(%)]+)%s*<(.+)>"
|
||||
local ttype,template,te,code2 = check_template(it2) --it.item:match"([^%s,%(%)]+)%s*<(.+)>"
|
||||
if template then
|
||||
if self.typenames[ttype] ~= template then --rule out T (template typename)
|
||||
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)
|
||||
self.templates[ttype] = self.templates[ttype] or {}
|
||||
self.templates[ttype][template] = te
|
||||
it2=code2
|
||||
end
|
||||
if doheader then
|
||||
local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template])
|
||||
predeclare = predeclare .. templatetypedef
|
||||
end
|
||||
end
|
||||
--clean mutable
|
||||
@@ -1250,16 +1413,24 @@ function M.Parser()
|
||||
it2 = it2:gsub("%s*=.+;",";")
|
||||
end
|
||||
table.insert(outtab,it2)
|
||||
table.insert(commtab,it.comments )--or "")
|
||||
table.insert(commtab,it.comments or "")
|
||||
end
|
||||
elseif it.re_name == "struct_re" then
|
||||
--check if has declaration
|
||||
local decl = it.item:match"%b{}%s*([^%s}{]+)%s*;"
|
||||
if decl then
|
||||
table.insert(outtab,"\n "..it.name.." "..decl..";")
|
||||
table.insert(commtab,it.comments )--or "")
|
||||
table.insert(commtab,it.comments or "")
|
||||
end
|
||||
local cleanst,structname,strtab,comstab,predec = self:clean_structR1(it,doheader)
|
||||
if doheader then
|
||||
local tst = "\ntypedef struct "..structname.." "..structname..";\n"
|
||||
if check_unique_typedefs(tst,uniques) then
|
||||
--table.insert(outtab,tst)
|
||||
--print("xxxxxxxxxxxxxxxinsert typedef",structname)
|
||||
cleanst = cleanst .. tst
|
||||
end
|
||||
end
|
||||
local cleanst,structname,strtab,comstab,predec = self:clean_structR1(it)
|
||||
predeclare = predeclare .. predec .. cleanst
|
||||
elseif it.re_name == "enum_re" then
|
||||
--nop
|
||||
@@ -1289,20 +1460,55 @@ function M.Parser()
|
||||
if parnam~="" then parnam = parnam:sub(1,-3) end
|
||||
return parnam
|
||||
end
|
||||
|
||||
|
||||
function par:gen_structs_and_enums()
|
||||
print"--------------gen_structs_and_enums"
|
||||
--M.prtable(self.typenames)
|
||||
local outtab = {}
|
||||
local outtabpre = {}
|
||||
local typedefs_table = {}
|
||||
self.embeded_enums = {}
|
||||
--local uniques = {}
|
||||
|
||||
local processer = function(it)
|
||||
if it.re_name == "typedef_re" or it.re_name == "functypedef_re" or it.re_name == "vardef_re" then
|
||||
if not it.parent or it.parent.re_name=="namespace_re" then
|
||||
table.insert(outtabpre,it.item)
|
||||
local it2 = it.item
|
||||
if it.re_name == "typedef_re" then
|
||||
--check if it is templated
|
||||
local ttype,template,te,code2 = check_template(it2) --it.item:match"([^%s,%(%)]+)%s*<(.+)>"
|
||||
if template then
|
||||
--if self.typenames[ttype] ~= template then --rule out T (template typename)
|
||||
--self.templates[ttype] = self.templates[ttype] or {}
|
||||
--self.templates[ttype][template] = te
|
||||
--end
|
||||
|
||||
--local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template])
|
||||
--predeclare = predeclare .. templatetypedef
|
||||
|
||||
local tdt = self:gentemplatetypedef(ttype,template,te)
|
||||
it2 = tdt..code2
|
||||
end
|
||||
elseif it.re_name == "functypedef_re" then
|
||||
it2 = clean_functypedef(it2)
|
||||
else
|
||||
assert(it.re_name == "vardef_re")
|
||||
if it2:match"enum" then
|
||||
print("--skip enum forward declaration:",it2)
|
||||
it2 = ""
|
||||
end
|
||||
end
|
||||
--table.insert(outtabpre,it2)
|
||||
table.insert(outtab,it2)
|
||||
-- add typedef after struct name
|
||||
if it.re_name == "vardef_re" and it.item:match"^%s*struct" then
|
||||
local stname = it.item:match("struct%s*(%S+)%s*;")
|
||||
table.insert(typedefs_table,"typedef struct "..stname.." "..stname..";\n")
|
||||
--table.insert(typedefs_table,"typedef struct "..stname.." "..stname..";\n")
|
||||
local tst = "\ntypedef struct "..stname.." "..stname..";"
|
||||
if check_unique_typedefs(tst,uniques) then
|
||||
table.insert(outtabpre,tst)
|
||||
end
|
||||
self.typedefs_dict[stname]="struct "..stname
|
||||
if it.parent then --must be struct name; inside namespace
|
||||
local parname = get_parents_name(it)
|
||||
@@ -1345,16 +1551,21 @@ function M.Parser()
|
||||
print("unnamed enum",cl_item)
|
||||
end
|
||||
elseif it.re_name == "struct_re" or it.re_name == "typedef_st_re" then
|
||||
local cleanst,structname,strtab,comstab,predec = self:clean_structR1(it)
|
||||
local cleanst,structname,strtab,comstab,predec = self:clean_structR1(it,true)
|
||||
if not structname then print("NO NAME",cleanst,it.item) end
|
||||
--if not void stname or templated
|
||||
if structname and not self.typenames[structname] then
|
||||
|
||||
--table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n")
|
||||
local tst = "\ntypedef struct "..structname.." "..structname..";"
|
||||
if check_unique_typedefs(tst,uniques) then
|
||||
table.insert(outtab,tst)
|
||||
end
|
||||
self.typedefs_dict[structname]="struct "..structname
|
||||
--dont insert child structs as they are inserted before parent struct
|
||||
if not (it.parent and it.parent.re_name == "struct_re") then
|
||||
table.insert(outtab,predec .. cleanst)
|
||||
end
|
||||
table.insert(typedefs_table,"typedef struct "..structname.." "..structname..";\n")
|
||||
self.typedefs_dict[structname]="struct "..structname
|
||||
end
|
||||
if it.parent then --and (it.parent.re_name == "struct_re" or it.parent.re_name == "typedef_st_re" then
|
||||
local embededst = (it.re_name == "struct_re" and it.item:match("struct%s+(%S+)"))
|
||||
@@ -1398,13 +1609,13 @@ function M.Parser()
|
||||
|
||||
self:Listing(itemsarr,processer)
|
||||
|
||||
local uniques = {}
|
||||
for i,l in ipairs(typedefs_table) do
|
||||
if not uniques[l] then
|
||||
uniques[l] = true
|
||||
table.insert(outtabpre,1,l)
|
||||
end
|
||||
end
|
||||
-- local uniques = {}
|
||||
-- for i,l in ipairs(typedefs_table) do
|
||||
-- if not uniques[l] then
|
||||
-- uniques[l] = true
|
||||
-- table.insert(outtabpre,1,l)
|
||||
-- end
|
||||
-- end
|
||||
--check arg detection failure if no name in function declaration
|
||||
check_arg_detection(self.defsT,self.typedefs_dict)
|
||||
local outtabprest, outtabst = table.concat(outtabpre,""),table.concat(outtab,"")
|
||||
@@ -1413,6 +1624,7 @@ function M.Parser()
|
||||
end
|
||||
-----------
|
||||
function par:parse_struct_line(line,outtab,comment)
|
||||
comment = comment ~= "" and comment or nil
|
||||
local functype_re = "^%s*[%w%s%*]+%(%*[%w_]+%)%([^%(%)]*%)"
|
||||
local functype_reex = "^(%s*[%w%s%*]+%(%*)([%w_]+)(%)%([^%(%)]*%))"
|
||||
line = clean_spaces(line)
|
||||
@@ -1422,6 +1634,7 @@ function M.Parser()
|
||||
else
|
||||
--split type name1,name2; in several lines
|
||||
local typen,rest = line:match("%s*([^,]+)%s(%S+[,;])")
|
||||
--print(typen,"rest:",rest)
|
||||
if not typen then -- Lets try Type*name
|
||||
typen,rest = line:match("([^,]+%*)(%S+[,;])")
|
||||
end
|
||||
@@ -1511,10 +1724,25 @@ function M.Parser()
|
||||
end
|
||||
par.enums_for_table = enums_for_table
|
||||
function par:gen_structs_and_enums_table()
|
||||
print"--------------gen_structs_and_enums_table"
|
||||
local outtab = {enums={},structs={},locations={},enumtypes={}}
|
||||
self.typedefs_table = {}
|
||||
local enumsordered = {}
|
||||
unnamed_enum_counter = 0
|
||||
self.templated_structs = {}
|
||||
--take cimgui templated_structs if given
|
||||
if self.cimgui_inherited then
|
||||
self.templated_structs = self.cimgui_inherited.templated_structs
|
||||
self.templates_done = self.cimgui_inherited.templates_done
|
||||
--M.prtable(self.typenames)
|
||||
for k,v in pairs(self.cimgui_inherited.typenames) do
|
||||
assert(not self.typenames[k])
|
||||
if self.typenames[k] then
|
||||
print("typenames repeated",k,self.typenames[k],v)
|
||||
end
|
||||
self.typenames[k] = v
|
||||
end
|
||||
end
|
||||
|
||||
local processer = function(it)
|
||||
if it.re_name == "typedef_re" or it.re_name == "functypedef_re" or it.re_name == "vardef_re" then
|
||||
@@ -1536,7 +1764,17 @@ function M.Parser()
|
||||
self:parse_struct_line(strtab[j],outtab.structs[structname],comstab[j])
|
||||
end
|
||||
else
|
||||
print("skipped unnamed or templated struct",structname)
|
||||
--templated struct
|
||||
if structname then
|
||||
print("saving templated struct",structname)
|
||||
self.templated_structs[structname] = {}
|
||||
for j=3,#strtab-1 do
|
||||
self:parse_struct_line(strtab[j],self.templated_structs[structname],comstab[j])
|
||||
end
|
||||
--M.prtable(self.templated_structs[structname])
|
||||
else
|
||||
print("skipped unnamed struct",structname)
|
||||
end
|
||||
end
|
||||
elseif it.re_name == "namespace_re" or it.re_name == "union_re" or it.re_name == "functype_re" then
|
||||
--nop
|
||||
@@ -1548,7 +1786,16 @@ function M.Parser()
|
||||
self:Listing(itemsarr,processer)
|
||||
|
||||
--calcule size of name[16+1] [xxx_COUNT]
|
||||
local allenums = {}
|
||||
local allenums = {}
|
||||
--take cimgui struct_and_enums if given
|
||||
if self.cimgui_inherited then
|
||||
for k,v in pairs(self.cimgui_inherited.enums) do
|
||||
for j,v2 in ipairs(v) do
|
||||
allenums[v2.name] = v2.calc_value
|
||||
--print(k,v.calc_value)
|
||||
end
|
||||
end
|
||||
end
|
||||
--first calc_value in enums
|
||||
for i,enumname in ipairs(enumsordered) do
|
||||
--for enumname,enum in pairs(outtab.enums) do
|
||||
@@ -1612,6 +1859,7 @@ function M.Parser()
|
||||
--print(k,#v)
|
||||
table.insert(strt,string.format("%s\t%d",k,#v))
|
||||
local typesc,post = name_overloadsAlgo(v)
|
||||
--M.prtable(v)
|
||||
for i,t in ipairs(v) do
|
||||
--take overloaded name from manual table or algorythm
|
||||
t.ov_cimguiname = self.getCname_overload(t.stname,t.funcname,t.signature,t.namespace) or k..typetoStr(post[i])
|
||||
@@ -1752,6 +2000,58 @@ function M.Parser()
|
||||
table.insert(self.funcdefs,v)
|
||||
end
|
||||
end
|
||||
function par:gentemplatetypedef(ttype,te,newte)
|
||||
--print("gentemplatetypedef",ttype,te,newte)
|
||||
if not newte then return "" end
|
||||
self.templates_done = self.templates_done or {}
|
||||
self.templates_done[ttype] = self.templates_done[ttype] or {}
|
||||
if self.templates_done[ttype][te] then return "" end
|
||||
self.templates_done[ttype][te] = true
|
||||
--return self:gen_template_typedef(ttype,te,newte) --given by user
|
||||
return self:gen_template_typedef_auto(ttype,te,newte)
|
||||
end
|
||||
function par:gen_template_typedef_auto(ttype,te,newte)
|
||||
assert(self.templated_structs[ttype],ttype)
|
||||
local defi = self.templated_structs[ttype]
|
||||
local Targ = strsplit(self.typenames[ttype],",")
|
||||
local defa = {}
|
||||
local tes = strsplit(te,",")
|
||||
--get the only name of template arg
|
||||
for i,arg in ipairs(Targ) do
|
||||
Targ[i] = strip(arg)
|
||||
defa[i] = Targ[i]:match"=(.+)" --get default
|
||||
if defa[i] then defa[i] = strip(defa[i]) end
|
||||
Targ[i] = Targ[i]:gsub("%s*=.+","")
|
||||
Targ[i] = Targ[i]:match"%S+$"
|
||||
end
|
||||
|
||||
--assert(not Targ:match",") --still not several
|
||||
local code = {}
|
||||
local precode = {}
|
||||
for i,v in ipairs(defi) do
|
||||
local typ = v.type --:gsub(Targ,te)
|
||||
local nam = v.name --:gsub(Targ,te)
|
||||
for j,w in ipairs(Targ) do
|
||||
local subs = tes[j] or defa[j]
|
||||
typ = typ:gsub(w,subs)
|
||||
nam = nam:gsub(w,subs)
|
||||
end
|
||||
--if typ still has template
|
||||
local ttypet,templatet,tet,code2t = check_template(typ)
|
||||
if templatet then
|
||||
typ = code2t
|
||||
table.insert(precode, self:gentemplatetypedef(ttypet,templatet,tet))
|
||||
end
|
||||
--if name still has template
|
||||
local ttypet,templatet,tet,code2t = check_template(nam)
|
||||
if templatet then
|
||||
nam = code2t
|
||||
table.insert(precode, self:gentemplatetypedef(ttypet,templatet,tet))
|
||||
end
|
||||
table.insert(code, typ.." "..nam..";")
|
||||
end
|
||||
return table.concat(precode).."\ntypedef struct "..ttype.."_"..newte.." {"..table.concat(code).."} "..ttype.."_"..newte..";\n"
|
||||
end
|
||||
return par
|
||||
end
|
||||
|
||||
@@ -1973,8 +2273,12 @@ local function func_implementation(FP)
|
||||
local cimf = FP.defsT[t.cimguiname]
|
||||
local def = cimf[t.signature]
|
||||
assert(def)
|
||||
local custom
|
||||
if FP.custom_implementation then
|
||||
custom = FP.custom_implementation(outtab, def)
|
||||
end
|
||||
local manual = FP.get_manuals(def)
|
||||
if not manual and not def.templated and not FP.get_skipped(def) then
|
||||
if not custom and not manual and not def.templated and not FP.get_skipped(def) then
|
||||
if def.constructor then
|
||||
assert(def.stname ~= "","constructor without struct")
|
||||
local empty = def.args:match("^%(%)") --no args
|
||||
@@ -2040,8 +2344,12 @@ local function func_header_generate_funcs(FP)
|
||||
local cimf = FP.defsT[t.cimguiname]
|
||||
local def = cimf[t.signature]
|
||||
assert(def,t.signature..t.cimguiname)
|
||||
local custom
|
||||
if FP.custom_header then
|
||||
custom = FP.custom_header(outtab, def)
|
||||
end
|
||||
local manual = FP.get_manuals(def)
|
||||
if not manual and not def.templated and not FP.get_skipped(def) then
|
||||
if not custom and not manual and not def.templated and not FP.get_skipped(def) then
|
||||
|
||||
local addcoment = "" --def.comment or ""
|
||||
local empty = def.args:match("^%(%)") --no args
|
||||
@@ -2084,26 +2392,35 @@ end
|
||||
M.func_header_generate = func_header_generate
|
||||
--[=[
|
||||
-- tests
|
||||
local line = [[struct ImDrawListSharedData
|
||||
{
|
||||
ImVec2 TexUvWhitePixel;
|
||||
ImFont* Font;
|
||||
float FontSize;
|
||||
float CurveTessellationTol;
|
||||
float CircleSegmentMaxError;
|
||||
ImVec4 ClipRectFullscreen;
|
||||
ImDrawListFlags InitialFlags;
|
||||
ImVec2 ArcFastVtx[12 * 1];
|
||||
ImU8 CircleSegmentCounts[64];
|
||||
ImDrawListSharedData();
|
||||
void SetCircleSegmentMaxError(float max_error);
|
||||
};]]
|
||||
|
||||
local code = [[
|
||||
|
||||
enum pedro : int ;
|
||||
|
||||
]]
|
||||
local parser = M.Parser()
|
||||
parser:insert(line)
|
||||
for line in code:gmatch("[^\n]+") do
|
||||
--print("inserting",line)
|
||||
parser:insert(line,"11")
|
||||
end
|
||||
parser:do_parse()
|
||||
--M.prtable(parser)
|
||||
M.prtable(parser)
|
||||
M.prtable(parser:gen_structs_and_enums_table())
|
||||
--]=]
|
||||
--print(clean_spaces[[ImVec2 ArcFastVtx[12 * 1];]])
|
||||
--[=[
|
||||
local code = [[ImU32 Storage[(BITCOUNT + 31) >> 5];]]
|
||||
--local code = [[ImU32 Storage[37 + 2];]]
|
||||
local parser = M.Parser()
|
||||
parser:insert(code,"11")
|
||||
--parser:do_parse()
|
||||
--M.prtable(parser)
|
||||
local tab={}
|
||||
print(type(code),code)
|
||||
print(clean_spaces(code))
|
||||
parser:parse_struct_line(code,tab)
|
||||
M.prtable(tab)
|
||||
--]=]
|
||||
|
||||
|
||||
return M
|
||||
|
@@ -15,8 +15,8 @@ set PATH=%PATH%;C:\anima;C:\mingws\i686-7.2.0-release-posix-dwarf-rt_v5-rev1\min
|
||||
:: set PATH=%PATH%;C:\luaGL\sources\luajit-master\luajit-master\bin\mingw32;C:\mingw32\bin;
|
||||
::process files
|
||||
:: arg[1] compiler name gcc, clang or cl
|
||||
:: arg[2] options as words in one string: internal for imgui_internal generation, freetype for freetype generation
|
||||
:: examples: "" "internal" "internal freetype"
|
||||
:: arg[2] options as words in one string: internal for imgui_internal generation, freetype for freetype generation, comments for comments generation
|
||||
:: examples: "" "internal" "internal freetype comments"
|
||||
:: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32)
|
||||
luajit ./generator.lua gcc "internal" glfw opengl3 opengl2 sdl
|
||||
|
||||
|
@@ -8,6 +8,7 @@ local script_args = {...}
|
||||
local COMPILER = script_args[1]
|
||||
local INTERNAL_GENERATION = script_args[2]:match("internal") and true or false
|
||||
local FREETYPE_GENERATION = script_args[2]:match("freetype") and true or false
|
||||
local COMMENTS_GENERATION = script_args[2]:match("comments") and true or false
|
||||
local IMGUI_PATH = os.getenv"IMGUI_PATH" or "../imgui"
|
||||
local CFLAGS = ""
|
||||
local CPRE,CTEST
|
||||
@@ -26,6 +27,10 @@ for i=3,#script_args do
|
||||
end
|
||||
end
|
||||
|
||||
if FREETYPE_GENERATION then
|
||||
CFLAGS = CFLAGS .. " -DIMGUI_ENABLE_FREETYPE "
|
||||
end
|
||||
|
||||
if COMPILER == "gcc" or COMPILER == "clang" then
|
||||
CPRE = COMPILER..[[ -E -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]] .. CFLAGS
|
||||
CTEST = COMPILER.." --version"
|
||||
@@ -59,6 +64,8 @@ assert(HAVE_COMPILER,"gcc, clang or cl needed to run script")
|
||||
print("HAVE_COMPILER",HAVE_COMPILER)
|
||||
print("INTERNAL_GENERATION",INTERNAL_GENERATION)
|
||||
print("FREETYPE_GENERATION",FREETYPE_GENERATION)
|
||||
print("COMMENTS_GENERATION",COMMENTS_GENERATION)
|
||||
print("CPRE",CPRE)
|
||||
--------------------------------------------------------------------------
|
||||
--this table has the functions to be skipped in generation
|
||||
--------------------------------------------------------------------------
|
||||
@@ -116,7 +123,8 @@ local function func_header_impl_generate(FP)
|
||||
else
|
||||
|
||||
if def.stname == "" then --ImGui namespace or top level
|
||||
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
|
||||
local empty = def.args:match("^%(%)") --no args
|
||||
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..(empty and "(void)" or def.args)..";"..addcoment.."\n")
|
||||
else
|
||||
cpp2ffi.prtable(def)
|
||||
error("class function in implementations")
|
||||
@@ -137,16 +145,18 @@ local func_implementation = cpp2ffi.func_implementation
|
||||
-------------------functions for getting and setting defines
|
||||
local function get_defines(t)
|
||||
local compiler_cmd = COMPILER == "cl"
|
||||
and COMPILER..[[ /TP /nologo /c /Fo"NUL" /I "]]..IMGUI_PATH..[[" print_defines.cpp]]..CFLAGS
|
||||
and COMPILER..[[ /TP /nologo /c /Fo"NUL" /DIMGUI_DISABLE_OBSOLETE_FUNCTIONS ]]..CFLAGS..[[ /I"]]..IMGUI_PATH..[[" print_defines.cpp]]
|
||||
or COMPILER..[[ -E -dM -DIMGUI_DISABLE_OBSOLETE_FUNCTIONS -DIMGUI_API="" -DIMGUI_IMPL_API="" ]]..IMGUI_PATH..[[/imgui.h]]..CFLAGS
|
||||
print(compiler_cmd)
|
||||
local pipe,err = io.popen(compiler_cmd,"r")
|
||||
local defines = {}
|
||||
local compiler_output = {"There were fails in compilation."}
|
||||
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 then --or not value then
|
||||
table.insert(compiler_output, line)
|
||||
--print(line)
|
||||
else
|
||||
defines[key]=value or ""
|
||||
@@ -155,7 +165,7 @@ local function get_defines(t)
|
||||
pipe:close()
|
||||
--require"anima.utils"
|
||||
--prtable(defines)
|
||||
--FLT_MAX
|
||||
assert(next(defines), table.concat(compiler_output, "\n"))
|
||||
local ret = {}
|
||||
for i,v in ipairs(t) do
|
||||
local aa = defines[v]
|
||||
@@ -197,82 +207,7 @@ local function DefsByStruct(FP)
|
||||
FP.defsBystruct = structs
|
||||
end
|
||||
|
||||
-- function for repairing funcdefs default values
|
||||
local function repair_defaults(defsT,str_and_enu)
|
||||
local function deleteOuterPars(def)
|
||||
local w = def:match("^%b()$")
|
||||
if w then
|
||||
w = w:gsub("^%((.+)%)$","%1")
|
||||
return w
|
||||
else
|
||||
return def
|
||||
end
|
||||
end
|
||||
local function CleanImU32(def)
|
||||
def = def:gsub("%(ImU32%)","")
|
||||
--quitar () de numeros
|
||||
def = def:gsub("%((%d+)%)","%1")
|
||||
def = deleteOuterPars(def)
|
||||
local bb=cpp2ffi.strsplit(def,"|")
|
||||
for i=1,#bb do
|
||||
local val = deleteOuterPars(bb[i])
|
||||
if val:match"<<" then
|
||||
local v1,v2 = val:match("(%d+)%s*<<%s*(%d+)")
|
||||
val = v1*2^v2
|
||||
bb[i] = val
|
||||
end
|
||||
assert(type(bb[i])=="number")
|
||||
end
|
||||
local res = 0
|
||||
for i=1,#bb do res = res + bb[i] end
|
||||
return res
|
||||
end
|
||||
for k,defT in pairs(defsT) do
|
||||
for i,def in ipairs(defT) do
|
||||
for k,v in pairs(def.defaults) do
|
||||
--do only if not a c string
|
||||
local is_cstring = v:sub(1,1)=='"' and v:sub(-1,-1) =='"'
|
||||
if not is_cstring then
|
||||
def.defaults[k] = def.defaults[k]:gsub("%(%(void%s*%*%)0%)","NULL")
|
||||
if def.defaults[k]:match"%(ImU32%)" then
|
||||
def.defaults[k] = tostring(CleanImU32(def.defaults[k]))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
----------custom ImVector templates
|
||||
local table_do_sorted = cpp2ffi.table_do_sorted
|
||||
local function generate_templates(code,codeimpool,templates)
|
||||
table.insert(code,"\n"..[[typedef struct ImVector{int Size;int Capacity;void* Data;} ImVector;]].."\n")
|
||||
table_do_sorted(templates , function (ttype, v)
|
||||
if ttype == "ImVector" then
|
||||
table_do_sorted(v, function(te,newte)
|
||||
table.insert(code,"typedef struct ImVector_"..newte.." {int Size;int Capacity;"..te.."* Data;} ImVector_"..newte..";\n")
|
||||
end)
|
||||
elseif ttype == "ImPool" then
|
||||
--declare ImGuiStorage
|
||||
table_do_sorted(v, function(te, newte)
|
||||
table.insert(codeimpool,"typedef struct ImVector_"..newte.." {int Size;int Capacity;"..te.."* Data;} ImVector_"..newte..";\n")
|
||||
table.insert(codeimpool,"typedef struct ImPool_"..newte.." {ImVector_"..te.." Buf;ImGuiStorage Map;ImPoolIdx FreeIdx;} ImPool_"..newte..";\n")
|
||||
end)
|
||||
elseif ttype == "ImChunkStream" then
|
||||
table_do_sorted(v, function(te,newte)
|
||||
table.insert(code,"typedef struct ImVector_"..newte.." {int Size;int Capacity;"..te.."* Data;} ImVector_"..newte..";\n")
|
||||
table.insert(code,"typedef struct ImChunkStream_"..newte.." {ImVector_"..te.." Buf;} ImChunkStream_"..newte..";\n")
|
||||
end)
|
||||
elseif ttype == "ImSpan" then
|
||||
table_do_sorted(v, function(te,newte)
|
||||
table.insert(code,"typedef struct ImSpan_"..newte.." {"..te.."* Data;" ..te.."* DataEnd;} ImSpan_"..newte..";\n")
|
||||
end)
|
||||
else
|
||||
print("generate_templates ttype not done",ttype)
|
||||
error"generate templates"
|
||||
end
|
||||
end)
|
||||
end
|
||||
--generate cimgui.cpp cimgui.h
|
||||
local function cimgui_generation(parser)
|
||||
|
||||
@@ -303,15 +238,9 @@ local function cimgui_generation(parser)
|
||||
cpp2ffi.prtable(parser.templates)
|
||||
cpp2ffi.prtable(parser.typenames)
|
||||
|
||||
local outtab = {}
|
||||
local outtabpool = {}
|
||||
generate_templates(outtab, outtabpool, parser.templates)
|
||||
|
||||
--move outtabpool after ImGuiStorage definition
|
||||
local outpost1, outpost2 = outpost:match("^(.+struct ImGuiStorage%s*\n%b{};\n)(.+)$")
|
||||
outpost = outpost1..table.concat(outtabpool)..outpost2
|
||||
|
||||
local cstructsstr = outpre..table.concat(outtab,"")..outpost --..(extra or "")
|
||||
local tdt = parser:generate_templates()
|
||||
local cstructsstr = outpre..tdt..outpost
|
||||
|
||||
if gdefines.IMGUI_HAS_DOCK then
|
||||
cstructsstr = cstructsstr.."\n#define IMGUI_HAS_DOCK 1\n"
|
||||
@@ -331,7 +260,8 @@ local function cimgui_generation(parser)
|
||||
local hstrfile = read_data"./cimgui_template.cpp"
|
||||
|
||||
hstrfile = hstrfile:gsub([[#include "auto_funcs%.cpp"]],cimplem)
|
||||
save_data("./output/cimgui.cpp",cimgui_header,hstrfile)
|
||||
local ftdef = FREETYPE_GENERATION and "#define IMGUI_ENABLE_FREETYPE\n" or ""
|
||||
save_data("./output/cimgui.cpp",cimgui_header, ftdef, hstrfile)
|
||||
|
||||
end
|
||||
--------------------------------------------------------
|
||||
@@ -375,7 +305,8 @@ local function parseImGuiHeader(header,names)
|
||||
parser.cname_overloads = cimgui_overloads
|
||||
parser.manuals = cimgui_manuals
|
||||
parser.UDTs = {"ImVec2","ImVec4","ImColor","ImRect"}
|
||||
|
||||
--parser.gen_template_typedef = gen_template_typedef --use auto
|
||||
parser.COMMENTS_GENERATION = COMMENTS_GENERATION
|
||||
local defines = parser:take_lines(CPRE..header,names,COMPILER)
|
||||
|
||||
return parser
|
||||
@@ -411,13 +342,16 @@ cimgui_generation(parser1)
|
||||
----------save struct and enums lua table in structs_and_enums.lua for using in bindings
|
||||
|
||||
local structs_and_enums_table = parser1.structs_and_enums_table
|
||||
structs_and_enums_table.templated_structs = parser1.templated_structs
|
||||
structs_and_enums_table.typenames = parser1.typenames
|
||||
structs_and_enums_table.templates_done = parser1.templates_done
|
||||
|
||||
save_data("./output/structs_and_enums.lua",serializeTableF(structs_and_enums_table))
|
||||
save_data("./output/typedefs_dict.lua",serializeTableF(parser1.typedefs_dict))
|
||||
|
||||
----------save fundefs in definitions.lua for using in bindings
|
||||
--DefsByStruct(pFP)
|
||||
set_defines(parser1.defsT)
|
||||
repair_defaults(parser1.defsT, structs_and_enums_table)
|
||||
save_data("./output/definitions.lua",serializeTableF(parser1.defsT))
|
||||
|
||||
--check every function has ov_cimguiname
|
||||
@@ -444,7 +378,7 @@ if #implementations > 0 then
|
||||
parser2 = cpp2ffi.Parser()
|
||||
|
||||
local config = require"config_generator"
|
||||
|
||||
local impl_str = ""
|
||||
for i,impl in ipairs(implementations) do
|
||||
local source = backends_folder .. [[imgui_impl_]].. impl .. ".h "
|
||||
local locati = [[imgui_impl_]].. impl
|
||||
@@ -461,15 +395,22 @@ if #implementations > 0 then
|
||||
end
|
||||
|
||||
local defines = parser2:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
|
||||
|
||||
|
||||
local parser3 = cpp2ffi.Parser()
|
||||
parser3:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
|
||||
parser3:do_parse()
|
||||
local cfuncsstr = func_header_impl_generate(parser3)
|
||||
local cstructstr1,cstructstr2 = parser3.structs_and_enums[1], parser3.structs_and_enums[2]
|
||||
impl_str = impl_str .. "#ifdef CIMGUI_USE_".. string.upper(impl).."\n" .. cstructstr1 .. cstructstr2 .. cfuncsstr .. "\n#endif\n"
|
||||
end
|
||||
|
||||
parser2:do_parse()
|
||||
|
||||
-- save ./cimgui_impl.h
|
||||
local cfuncsstr = func_header_impl_generate(parser2)
|
||||
local cstructstr1,cstructstr2 = parser2.structs_and_enums[1], parser2.structs_and_enums[2]
|
||||
save_data("./output/cimgui_impl.h",cstructstr1,cstructstr2,cfuncsstr)
|
||||
--local cfuncsstr = func_header_impl_generate(parser2)
|
||||
--local cstructstr1,cstructstr2 = parser2.structs_and_enums[1], parser2.structs_and_enums[2]
|
||||
--save_data("./output/cimgui_impl.h",cstructstr1,cstructstr2,cfuncsstr)
|
||||
save_data("./output/cimgui_impl.h",impl_str)
|
||||
|
||||
----------save fundefs in impl_definitions.lua for using in bindings
|
||||
save_data("./output/impl_definitions.lua",serializeTableF(parser2.defsT))
|
||||
@@ -492,6 +433,10 @@ end
|
||||
---[[
|
||||
local json = require"json"
|
||||
save_data("./output/definitions.json",json.encode(json_prepare(parser1.defsT),{dict_on_empty={defaults=true}}))
|
||||
--delete extra info for json
|
||||
structs_and_enums_table.templated_structs = nil
|
||||
structs_and_enums_table.typenames = nil
|
||||
structs_and_enums_table.templates_done = nil
|
||||
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
|
||||
|
@@ -13,7 +13,7 @@
|
||||
|
||||
#process files
|
||||
# arg[1] compiler name gcc, clang, or cl
|
||||
# arg[2] options as words in one string: internal for imgui_internal generation, freetype for freetype generation
|
||||
# examples: "" "internal" "internal freetype"
|
||||
# arg[2] options as words in one string: internal for imgui_internal generation, freetype for freetype generation, comments for comments generation
|
||||
# examples: "" "internal" "internal freetype" "comments internal"
|
||||
# arg[3..n] name of implementations to generate and/or CLFLAGS (e.g. -DIMGUI_USER_CONFIG or -DIMGUI_USE_WCHAR32)
|
||||
luajit ./generator.lua gcc "internal" glfw opengl3 opengl2 sdl
|
||||
|
@@ -1,44 +1,60 @@
|
||||
typedef struct SDL_Window SDL_Window;
|
||||
typedef struct GLFWmonitor GLFWmonitor;
|
||||
#ifdef CIMGUI_USE_GLFW
|
||||
|
||||
typedef struct GLFWwindow GLFWwindow;
|
||||
|
||||
typedef struct GLFWmonitor GLFWmonitor;
|
||||
struct GLFWwindow;
|
||||
struct GLFWmonitor;
|
||||
|
||||
struct SDL_Window;
|
||||
typedef union SDL_Event SDL_Event;CIMGUI_API bool ImGui_ImplGlfw_InitForOpenGL(GLFWwindow* window,bool install_callbacks);
|
||||
struct GLFWmonitor;CIMGUI_API bool ImGui_ImplGlfw_InitForOpenGL(GLFWwindow* window,bool install_callbacks);
|
||||
CIMGUI_API bool ImGui_ImplGlfw_InitForVulkan(GLFWwindow* window,bool install_callbacks);
|
||||
CIMGUI_API bool ImGui_ImplGlfw_InitForOther(GLFWwindow* window,bool install_callbacks);
|
||||
CIMGUI_API void ImGui_ImplGlfw_Shutdown();
|
||||
CIMGUI_API void ImGui_ImplGlfw_NewFrame();
|
||||
CIMGUI_API void ImGui_ImplGlfw_Shutdown(void);
|
||||
CIMGUI_API void ImGui_ImplGlfw_NewFrame(void);
|
||||
CIMGUI_API void ImGui_ImplGlfw_InstallCallbacks(GLFWwindow* window);
|
||||
CIMGUI_API void ImGui_ImplGlfw_RestoreCallbacks(GLFWwindow* window);
|
||||
CIMGUI_API void ImGui_ImplGlfw_WindowFocusCallback(GLFWwindow* window,int focused);
|
||||
CIMGUI_API void ImGui_ImplGlfw_CursorEnterCallback(GLFWwindow* window,int entered);
|
||||
CIMGUI_API void ImGui_ImplGlfw_CursorPosCallback(GLFWwindow* window,double x,double y);
|
||||
CIMGUI_API void ImGui_ImplGlfw_MouseButtonCallback(GLFWwindow* window,int button,int action,int mods);
|
||||
CIMGUI_API void ImGui_ImplGlfw_ScrollCallback(GLFWwindow* window,double xoffset,double yoffset);
|
||||
CIMGUI_API void ImGui_ImplGlfw_KeyCallback(GLFWwindow* window,int key,int scancode,int action,int mods);
|
||||
CIMGUI_API void ImGui_ImplGlfw_CharCallback(GLFWwindow* window,unsigned int c);
|
||||
CIMGUI_API void ImGui_ImplGlfw_MonitorCallback(GLFWmonitor* monitor,int event);
|
||||
|
||||
#endif
|
||||
#ifdef CIMGUI_USE_OPENGL3
|
||||
CIMGUI_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version);
|
||||
CIMGUI_API void ImGui_ImplOpenGL3_Shutdown();
|
||||
CIMGUI_API void ImGui_ImplOpenGL3_NewFrame();
|
||||
CIMGUI_API void ImGui_ImplOpenGL3_Shutdown(void);
|
||||
CIMGUI_API void ImGui_ImplOpenGL3_NewFrame(void);
|
||||
CIMGUI_API void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data);
|
||||
CIMGUI_API bool ImGui_ImplOpenGL3_CreateFontsTexture();
|
||||
CIMGUI_API void ImGui_ImplOpenGL3_DestroyFontsTexture();
|
||||
CIMGUI_API bool ImGui_ImplOpenGL3_CreateDeviceObjects();
|
||||
CIMGUI_API void ImGui_ImplOpenGL3_DestroyDeviceObjects();
|
||||
CIMGUI_API bool ImGui_ImplOpenGL2_Init();
|
||||
CIMGUI_API void ImGui_ImplOpenGL2_Shutdown();
|
||||
CIMGUI_API void ImGui_ImplOpenGL2_NewFrame();
|
||||
CIMGUI_API bool ImGui_ImplOpenGL3_CreateFontsTexture(void);
|
||||
CIMGUI_API void ImGui_ImplOpenGL3_DestroyFontsTexture(void);
|
||||
CIMGUI_API bool ImGui_ImplOpenGL3_CreateDeviceObjects(void);
|
||||
CIMGUI_API void ImGui_ImplOpenGL3_DestroyDeviceObjects(void);
|
||||
|
||||
#endif
|
||||
#ifdef CIMGUI_USE_OPENGL2
|
||||
CIMGUI_API bool ImGui_ImplOpenGL2_Init(void);
|
||||
CIMGUI_API void ImGui_ImplOpenGL2_Shutdown(void);
|
||||
CIMGUI_API void ImGui_ImplOpenGL2_NewFrame(void);
|
||||
CIMGUI_API void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data);
|
||||
CIMGUI_API bool ImGui_ImplOpenGL2_CreateFontsTexture();
|
||||
CIMGUI_API void ImGui_ImplOpenGL2_DestroyFontsTexture();
|
||||
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_ImplOpenGL2_CreateFontsTexture(void);
|
||||
CIMGUI_API void ImGui_ImplOpenGL2_DestroyFontsTexture(void);
|
||||
CIMGUI_API bool ImGui_ImplOpenGL2_CreateDeviceObjects(void);
|
||||
CIMGUI_API void ImGui_ImplOpenGL2_DestroyDeviceObjects(void);
|
||||
|
||||
#endif
|
||||
#ifdef CIMGUI_USE_SDL
|
||||
|
||||
typedef struct SDL_Window SDL_Window;
|
||||
typedef struct SDL_Renderer SDL_Renderer;
|
||||
struct SDL_Window;
|
||||
struct SDL_Renderer;
|
||||
typedef union SDL_Event SDL_Event;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 bool ImGui_ImplSDL2_InitForMetal(SDL_Window* window);
|
||||
CIMGUI_API bool ImGui_ImplSDL2_InitForSDLRenderer(SDL_Window* window);
|
||||
CIMGUI_API void ImGui_ImplSDL2_Shutdown();
|
||||
CIMGUI_API void ImGui_ImplSDL2_NewFrame();
|
||||
CIMGUI_API bool ImGui_ImplSDL2_InitForSDLRenderer(SDL_Window* window,SDL_Renderer* renderer);
|
||||
CIMGUI_API void ImGui_ImplSDL2_Shutdown(void);
|
||||
CIMGUI_API void ImGui_ImplSDL2_NewFrame(void);
|
||||
CIMGUI_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);
|
||||
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -17,7 +17,7 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_CharCallback",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_CharCallback",
|
||||
"location": "imgui_impl_glfw:40",
|
||||
"location": "imgui_impl_glfw:46",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_CharCallback",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWwindow*,unsigned int)",
|
||||
@@ -42,13 +42,42 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_CursorEnterCallback",
|
||||
"location": "imgui_impl_glfw:36",
|
||||
"location": "imgui_impl_glfw:41",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWwindow*,int)",
|
||||
"stname": ""
|
||||
}
|
||||
],
|
||||
"ImGui_ImplGlfw_CursorPosCallback": [
|
||||
{
|
||||
"args": "(GLFWwindow* window,double x,double y)",
|
||||
"argsT": [
|
||||
{
|
||||
"name": "window",
|
||||
"type": "GLFWwindow*"
|
||||
},
|
||||
{
|
||||
"name": "x",
|
||||
"type": "double"
|
||||
},
|
||||
{
|
||||
"name": "y",
|
||||
"type": "double"
|
||||
}
|
||||
],
|
||||
"argsoriginal": "(GLFWwindow* window,double x,double y)",
|
||||
"call_args": "(window,x,y)",
|
||||
"cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_CursorPosCallback",
|
||||
"location": "imgui_impl_glfw:42",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWwindow*,double,double)",
|
||||
"stname": ""
|
||||
}
|
||||
],
|
||||
"ImGui_ImplGlfw_InitForOpenGL": [
|
||||
{
|
||||
"args": "(GLFWwindow* window,bool install_callbacks)",
|
||||
@@ -67,7 +96,7 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_InitForOpenGL",
|
||||
"location": "imgui_impl_glfw:26",
|
||||
"location": "imgui_impl_glfw:27",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
|
||||
"ret": "bool",
|
||||
"signature": "(GLFWwindow*,bool)",
|
||||
@@ -92,7 +121,7 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_InitForOther",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_InitForOther",
|
||||
"location": "imgui_impl_glfw:28",
|
||||
"location": "imgui_impl_glfw:29",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_InitForOther",
|
||||
"ret": "bool",
|
||||
"signature": "(GLFWwindow*,bool)",
|
||||
@@ -117,13 +146,34 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_InitForVulkan",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_InitForVulkan",
|
||||
"location": "imgui_impl_glfw:27",
|
||||
"location": "imgui_impl_glfw:28",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_InitForVulkan",
|
||||
"ret": "bool",
|
||||
"signature": "(GLFWwindow*,bool)",
|
||||
"stname": ""
|
||||
}
|
||||
],
|
||||
"ImGui_ImplGlfw_InstallCallbacks": [
|
||||
{
|
||||
"args": "(GLFWwindow* window)",
|
||||
"argsT": [
|
||||
{
|
||||
"name": "window",
|
||||
"type": "GLFWwindow*"
|
||||
}
|
||||
],
|
||||
"argsoriginal": "(GLFWwindow* window)",
|
||||
"call_args": "(window)",
|
||||
"cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_InstallCallbacks",
|
||||
"location": "imgui_impl_glfw:36",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWwindow*)",
|
||||
"stname": ""
|
||||
}
|
||||
],
|
||||
"ImGui_ImplGlfw_KeyCallback": [
|
||||
{
|
||||
"args": "(GLFWwindow* window,int key,int scancode,int action,int mods)",
|
||||
@@ -154,7 +204,7 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_KeyCallback",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_KeyCallback",
|
||||
"location": "imgui_impl_glfw:39",
|
||||
"location": "imgui_impl_glfw:45",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_KeyCallback",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWwindow*,int,int,int,int)",
|
||||
@@ -179,7 +229,7 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_MonitorCallback",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_MonitorCallback",
|
||||
"location": "imgui_impl_glfw:41",
|
||||
"location": "imgui_impl_glfw:47",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_MonitorCallback",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWmonitor*,int)",
|
||||
@@ -212,7 +262,7 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_MouseButtonCallback",
|
||||
"location": "imgui_impl_glfw:37",
|
||||
"location": "imgui_impl_glfw:43",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWwindow*,int,int,int)",
|
||||
@@ -228,13 +278,34 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_NewFrame",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_NewFrame",
|
||||
"location": "imgui_impl_glfw:30",
|
||||
"location": "imgui_impl_glfw:31",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_NewFrame",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
"stname": ""
|
||||
}
|
||||
],
|
||||
"ImGui_ImplGlfw_RestoreCallbacks": [
|
||||
{
|
||||
"args": "(GLFWwindow* window)",
|
||||
"argsT": [
|
||||
{
|
||||
"name": "window",
|
||||
"type": "GLFWwindow*"
|
||||
}
|
||||
],
|
||||
"argsoriginal": "(GLFWwindow* window)",
|
||||
"call_args": "(window)",
|
||||
"cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_RestoreCallbacks",
|
||||
"location": "imgui_impl_glfw:37",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWwindow*)",
|
||||
"stname": ""
|
||||
}
|
||||
],
|
||||
"ImGui_ImplGlfw_ScrollCallback": [
|
||||
{
|
||||
"args": "(GLFWwindow* window,double xoffset,double yoffset)",
|
||||
@@ -257,7 +328,7 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_ScrollCallback",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_ScrollCallback",
|
||||
"location": "imgui_impl_glfw:38",
|
||||
"location": "imgui_impl_glfw:44",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_ScrollCallback",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWwindow*,double,double)",
|
||||
@@ -273,7 +344,7 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_Shutdown",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_Shutdown",
|
||||
"location": "imgui_impl_glfw:29",
|
||||
"location": "imgui_impl_glfw:30",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_Shutdown",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -298,7 +369,7 @@
|
||||
"cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplGlfw_WindowFocusCallback",
|
||||
"location": "imgui_impl_glfw:35",
|
||||
"location": "imgui_impl_glfw:40",
|
||||
"ov_cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
|
||||
"ret": "void",
|
||||
"signature": "(GLFWwindow*,int)",
|
||||
@@ -314,7 +385,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
|
||||
"location": "imgui_impl_opengl2:31",
|
||||
"location": "imgui_impl_opengl2:32",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateDeviceObjects",
|
||||
"ret": "bool",
|
||||
"signature": "()",
|
||||
@@ -330,7 +401,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL2_CreateFontsTexture",
|
||||
"location": "imgui_impl_opengl2:29",
|
||||
"location": "imgui_impl_opengl2:30",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL2_CreateFontsTexture",
|
||||
"ret": "bool",
|
||||
"signature": "()",
|
||||
@@ -346,7 +417,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
|
||||
"location": "imgui_impl_opengl2:32",
|
||||
"location": "imgui_impl_opengl2:33",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -362,7 +433,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
|
||||
"location": "imgui_impl_opengl2:30",
|
||||
"location": "imgui_impl_opengl2:31",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL2_DestroyFontsTexture",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -378,7 +449,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL2_Init",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL2_Init",
|
||||
"location": "imgui_impl_opengl2:23",
|
||||
"location": "imgui_impl_opengl2:24",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL2_Init",
|
||||
"ret": "bool",
|
||||
"signature": "()",
|
||||
@@ -394,7 +465,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL2_NewFrame",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL2_NewFrame",
|
||||
"location": "imgui_impl_opengl2:25",
|
||||
"location": "imgui_impl_opengl2:26",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL2_NewFrame",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -415,7 +486,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL2_RenderDrawData",
|
||||
"location": "imgui_impl_opengl2:26",
|
||||
"location": "imgui_impl_opengl2:27",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL2_RenderDrawData",
|
||||
"ret": "void",
|
||||
"signature": "(ImDrawData*)",
|
||||
@@ -431,7 +502,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL2_Shutdown",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL2_Shutdown",
|
||||
"location": "imgui_impl_opengl2:24",
|
||||
"location": "imgui_impl_opengl2:25",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL2_Shutdown",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -447,7 +518,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
|
||||
"location": "imgui_impl_opengl3:32",
|
||||
"location": "imgui_impl_opengl3:33",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL3_CreateDeviceObjects",
|
||||
"ret": "bool",
|
||||
"signature": "()",
|
||||
@@ -463,7 +534,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL3_CreateFontsTexture",
|
||||
"location": "imgui_impl_opengl3:30",
|
||||
"location": "imgui_impl_opengl3:31",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL3_CreateFontsTexture",
|
||||
"ret": "bool",
|
||||
"signature": "()",
|
||||
@@ -479,7 +550,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
|
||||
"location": "imgui_impl_opengl3:33",
|
||||
"location": "imgui_impl_opengl3:34",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -495,7 +566,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
|
||||
"location": "imgui_impl_opengl3:31",
|
||||
"location": "imgui_impl_opengl3:32",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL3_DestroyFontsTexture",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -511,14 +582,14 @@
|
||||
"type": "const char*"
|
||||
}
|
||||
],
|
||||
"argsoriginal": "(const char* glsl_version=((void*)0))",
|
||||
"argsoriginal": "(const char* glsl_version=nullptr)",
|
||||
"call_args": "(glsl_version)",
|
||||
"cimguiname": "ImGui_ImplOpenGL3_Init",
|
||||
"defaults": {
|
||||
"glsl_version": "((void*)0)"
|
||||
"glsl_version": "nullptr"
|
||||
},
|
||||
"funcname": "ImGui_ImplOpenGL3_Init",
|
||||
"location": "imgui_impl_opengl3:24",
|
||||
"location": "imgui_impl_opengl3:25",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL3_Init",
|
||||
"ret": "bool",
|
||||
"signature": "(const char*)",
|
||||
@@ -534,7 +605,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL3_NewFrame",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL3_NewFrame",
|
||||
"location": "imgui_impl_opengl3:26",
|
||||
"location": "imgui_impl_opengl3:27",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL3_NewFrame",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -555,7 +626,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL3_RenderDrawData",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL3_RenderDrawData",
|
||||
"location": "imgui_impl_opengl3:27",
|
||||
"location": "imgui_impl_opengl3:28",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL3_RenderDrawData",
|
||||
"ret": "void",
|
||||
"signature": "(ImDrawData*)",
|
||||
@@ -571,7 +642,7 @@
|
||||
"cimguiname": "ImGui_ImplOpenGL3_Shutdown",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplOpenGL3_Shutdown",
|
||||
"location": "imgui_impl_opengl3:25",
|
||||
"location": "imgui_impl_opengl3:26",
|
||||
"ov_cimguiname": "ImGui_ImplOpenGL3_Shutdown",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -592,7 +663,7 @@
|
||||
"cimguiname": "ImGui_ImplSDL2_InitForD3D",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplSDL2_InitForD3D",
|
||||
"location": "imgui_impl_sdl:26",
|
||||
"location": "imgui_impl_sdl:29",
|
||||
"ov_cimguiname": "ImGui_ImplSDL2_InitForD3D",
|
||||
"ret": "bool",
|
||||
"signature": "(SDL_Window*)",
|
||||
@@ -613,7 +684,7 @@
|
||||
"cimguiname": "ImGui_ImplSDL2_InitForMetal",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplSDL2_InitForMetal",
|
||||
"location": "imgui_impl_sdl:27",
|
||||
"location": "imgui_impl_sdl:30",
|
||||
"ov_cimguiname": "ImGui_ImplSDL2_InitForMetal",
|
||||
"ret": "bool",
|
||||
"signature": "(SDL_Window*)",
|
||||
@@ -638,7 +709,7 @@
|
||||
"cimguiname": "ImGui_ImplSDL2_InitForOpenGL",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplSDL2_InitForOpenGL",
|
||||
"location": "imgui_impl_sdl:24",
|
||||
"location": "imgui_impl_sdl:27",
|
||||
"ov_cimguiname": "ImGui_ImplSDL2_InitForOpenGL",
|
||||
"ret": "bool",
|
||||
"signature": "(SDL_Window*,void*)",
|
||||
@@ -647,22 +718,26 @@
|
||||
],
|
||||
"ImGui_ImplSDL2_InitForSDLRenderer": [
|
||||
{
|
||||
"args": "(SDL_Window* window)",
|
||||
"args": "(SDL_Window* window,SDL_Renderer* renderer)",
|
||||
"argsT": [
|
||||
{
|
||||
"name": "window",
|
||||
"type": "SDL_Window*"
|
||||
},
|
||||
{
|
||||
"name": "renderer",
|
||||
"type": "SDL_Renderer*"
|
||||
}
|
||||
],
|
||||
"argsoriginal": "(SDL_Window* window)",
|
||||
"call_args": "(window)",
|
||||
"argsoriginal": "(SDL_Window* window,SDL_Renderer* renderer)",
|
||||
"call_args": "(window,renderer)",
|
||||
"cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplSDL2_InitForSDLRenderer",
|
||||
"location": "imgui_impl_sdl:28",
|
||||
"location": "imgui_impl_sdl:31",
|
||||
"ov_cimguiname": "ImGui_ImplSDL2_InitForSDLRenderer",
|
||||
"ret": "bool",
|
||||
"signature": "(SDL_Window*)",
|
||||
"signature": "(SDL_Window*,SDL_Renderer*)",
|
||||
"stname": ""
|
||||
}
|
||||
],
|
||||
@@ -680,7 +755,7 @@
|
||||
"cimguiname": "ImGui_ImplSDL2_InitForVulkan",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplSDL2_InitForVulkan",
|
||||
"location": "imgui_impl_sdl:25",
|
||||
"location": "imgui_impl_sdl:28",
|
||||
"ov_cimguiname": "ImGui_ImplSDL2_InitForVulkan",
|
||||
"ret": "bool",
|
||||
"signature": "(SDL_Window*)",
|
||||
@@ -696,7 +771,7 @@
|
||||
"cimguiname": "ImGui_ImplSDL2_NewFrame",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplSDL2_NewFrame",
|
||||
"location": "imgui_impl_sdl:30",
|
||||
"location": "imgui_impl_sdl:33",
|
||||
"ov_cimguiname": "ImGui_ImplSDL2_NewFrame",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
@@ -717,7 +792,7 @@
|
||||
"cimguiname": "ImGui_ImplSDL2_ProcessEvent",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplSDL2_ProcessEvent",
|
||||
"location": "imgui_impl_sdl:31",
|
||||
"location": "imgui_impl_sdl:34",
|
||||
"ov_cimguiname": "ImGui_ImplSDL2_ProcessEvent",
|
||||
"ret": "bool",
|
||||
"signature": "(const SDL_Event*)",
|
||||
@@ -733,7 +808,7 @@
|
||||
"cimguiname": "ImGui_ImplSDL2_Shutdown",
|
||||
"defaults": {},
|
||||
"funcname": "ImGui_ImplSDL2_Shutdown",
|
||||
"location": "imgui_impl_sdl:29",
|
||||
"location": "imgui_impl_sdl:32",
|
||||
"ov_cimguiname": "ImGui_ImplSDL2_Shutdown",
|
||||
"ret": "void",
|
||||
"signature": "()",
|
||||
|
@@ -14,7 +14,7 @@ defs["ImGui_ImplGlfw_CharCallback"][1]["call_args"] = "(window,c)"
|
||||
defs["ImGui_ImplGlfw_CharCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_CharCallback"
|
||||
defs["ImGui_ImplGlfw_CharCallback"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_CharCallback"][1]["funcname"] = "ImGui_ImplGlfw_CharCallback"
|
||||
defs["ImGui_ImplGlfw_CharCallback"][1]["location"] = "imgui_impl_glfw:40"
|
||||
defs["ImGui_ImplGlfw_CharCallback"][1]["location"] = "imgui_impl_glfw:46"
|
||||
defs["ImGui_ImplGlfw_CharCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_CharCallback"
|
||||
defs["ImGui_ImplGlfw_CharCallback"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_CharCallback"][1]["signature"] = "(GLFWwindow*,unsigned int)"
|
||||
@@ -35,12 +35,36 @@ defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["call_args"] = "(window,entered)"
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_CursorEnterCallback"
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["funcname"] = "ImGui_ImplGlfw_CursorEnterCallback"
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["location"] = "imgui_impl_glfw:36"
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["location"] = "imgui_impl_glfw:41"
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_CursorEnterCallback"
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["signature"] = "(GLFWwindow*,int)"
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"][1]["stname"] = ""
|
||||
defs["ImGui_ImplGlfw_CursorEnterCallback"]["(GLFWwindow*,int)"] = defs["ImGui_ImplGlfw_CursorEnterCallback"][1]
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"] = {}
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1] = {}
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["args"] = "(GLFWwindow* window,double x,double y)"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"] = {}
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"][1] = {}
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"][1]["name"] = "window"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"][1]["type"] = "GLFWwindow*"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"][2] = {}
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"][2]["name"] = "x"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"][2]["type"] = "double"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"][3] = {}
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"][3]["name"] = "y"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsT"][3]["type"] = "double"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["argsoriginal"] = "(GLFWwindow* window,double x,double y)"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["call_args"] = "(window,x,y)"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_CursorPosCallback"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["funcname"] = "ImGui_ImplGlfw_CursorPosCallback"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["location"] = "imgui_impl_glfw:42"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_CursorPosCallback"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["signature"] = "(GLFWwindow*,double,double)"
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"][1]["stname"] = ""
|
||||
defs["ImGui_ImplGlfw_CursorPosCallback"]["(GLFWwindow*,double,double)"] = defs["ImGui_ImplGlfw_CursorPosCallback"][1]
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"] = {}
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1] = {}
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["args"] = "(GLFWwindow* window,bool install_callbacks)"
|
||||
@@ -56,7 +80,7 @@ defs["ImGui_ImplGlfw_InitForOpenGL"][1]["call_args"] = "(window,install_callback
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["cimguiname"] = "ImGui_ImplGlfw_InitForOpenGL"
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["funcname"] = "ImGui_ImplGlfw_InitForOpenGL"
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["location"] = "imgui_impl_glfw:26"
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["location"] = "imgui_impl_glfw:27"
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_InitForOpenGL"
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplGlfw_InitForOpenGL"][1]["signature"] = "(GLFWwindow*,bool)"
|
||||
@@ -77,7 +101,7 @@ defs["ImGui_ImplGlfw_InitForOther"][1]["call_args"] = "(window,install_callbacks
|
||||
defs["ImGui_ImplGlfw_InitForOther"][1]["cimguiname"] = "ImGui_ImplGlfw_InitForOther"
|
||||
defs["ImGui_ImplGlfw_InitForOther"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_InitForOther"][1]["funcname"] = "ImGui_ImplGlfw_InitForOther"
|
||||
defs["ImGui_ImplGlfw_InitForOther"][1]["location"] = "imgui_impl_glfw:28"
|
||||
defs["ImGui_ImplGlfw_InitForOther"][1]["location"] = "imgui_impl_glfw:29"
|
||||
defs["ImGui_ImplGlfw_InitForOther"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_InitForOther"
|
||||
defs["ImGui_ImplGlfw_InitForOther"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplGlfw_InitForOther"][1]["signature"] = "(GLFWwindow*,bool)"
|
||||
@@ -98,12 +122,30 @@ defs["ImGui_ImplGlfw_InitForVulkan"][1]["call_args"] = "(window,install_callback
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"][1]["cimguiname"] = "ImGui_ImplGlfw_InitForVulkan"
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"][1]["funcname"] = "ImGui_ImplGlfw_InitForVulkan"
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"][1]["location"] = "imgui_impl_glfw:27"
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"][1]["location"] = "imgui_impl_glfw:28"
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_InitForVulkan"
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"][1]["signature"] = "(GLFWwindow*,bool)"
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"][1]["stname"] = ""
|
||||
defs["ImGui_ImplGlfw_InitForVulkan"]["(GLFWwindow*,bool)"] = defs["ImGui_ImplGlfw_InitForVulkan"][1]
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"] = {}
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1] = {}
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["args"] = "(GLFWwindow* window)"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["argsT"] = {}
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["argsT"][1] = {}
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["argsT"][1]["name"] = "window"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["argsT"][1]["type"] = "GLFWwindow*"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["argsoriginal"] = "(GLFWwindow* window)"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["call_args"] = "(window)"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["cimguiname"] = "ImGui_ImplGlfw_InstallCallbacks"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["funcname"] = "ImGui_ImplGlfw_InstallCallbacks"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["location"] = "imgui_impl_glfw:36"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_InstallCallbacks"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["signature"] = "(GLFWwindow*)"
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"][1]["stname"] = ""
|
||||
defs["ImGui_ImplGlfw_InstallCallbacks"]["(GLFWwindow*)"] = defs["ImGui_ImplGlfw_InstallCallbacks"][1]
|
||||
defs["ImGui_ImplGlfw_KeyCallback"] = {}
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1] = {}
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1]["args"] = "(GLFWwindow* window,int key,int scancode,int action,int mods)"
|
||||
@@ -128,7 +170,7 @@ defs["ImGui_ImplGlfw_KeyCallback"][1]["call_args"] = "(window,key,scancode,actio
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_KeyCallback"
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1]["funcname"] = "ImGui_ImplGlfw_KeyCallback"
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1]["location"] = "imgui_impl_glfw:39"
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1]["location"] = "imgui_impl_glfw:45"
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_KeyCallback"
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_KeyCallback"][1]["signature"] = "(GLFWwindow*,int,int,int,int)"
|
||||
@@ -149,7 +191,7 @@ defs["ImGui_ImplGlfw_MonitorCallback"][1]["call_args"] = "(monitor,event)"
|
||||
defs["ImGui_ImplGlfw_MonitorCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_MonitorCallback"
|
||||
defs["ImGui_ImplGlfw_MonitorCallback"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_MonitorCallback"][1]["funcname"] = "ImGui_ImplGlfw_MonitorCallback"
|
||||
defs["ImGui_ImplGlfw_MonitorCallback"][1]["location"] = "imgui_impl_glfw:41"
|
||||
defs["ImGui_ImplGlfw_MonitorCallback"][1]["location"] = "imgui_impl_glfw:47"
|
||||
defs["ImGui_ImplGlfw_MonitorCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_MonitorCallback"
|
||||
defs["ImGui_ImplGlfw_MonitorCallback"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_MonitorCallback"][1]["signature"] = "(GLFWmonitor*,int)"
|
||||
@@ -176,7 +218,7 @@ defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["call_args"] = "(window,button,act
|
||||
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_MouseButtonCallback"
|
||||
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["funcname"] = "ImGui_ImplGlfw_MouseButtonCallback"
|
||||
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["location"] = "imgui_impl_glfw:37"
|
||||
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["location"] = "imgui_impl_glfw:43"
|
||||
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_MouseButtonCallback"
|
||||
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_MouseButtonCallback"][1]["signature"] = "(GLFWwindow*,int,int,int)"
|
||||
@@ -191,12 +233,30 @@ defs["ImGui_ImplGlfw_NewFrame"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplGlfw_NewFrame"][1]["cimguiname"] = "ImGui_ImplGlfw_NewFrame"
|
||||
defs["ImGui_ImplGlfw_NewFrame"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_NewFrame"][1]["funcname"] = "ImGui_ImplGlfw_NewFrame"
|
||||
defs["ImGui_ImplGlfw_NewFrame"][1]["location"] = "imgui_impl_glfw:30"
|
||||
defs["ImGui_ImplGlfw_NewFrame"][1]["location"] = "imgui_impl_glfw:31"
|
||||
defs["ImGui_ImplGlfw_NewFrame"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_NewFrame"
|
||||
defs["ImGui_ImplGlfw_NewFrame"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_NewFrame"][1]["signature"] = "()"
|
||||
defs["ImGui_ImplGlfw_NewFrame"][1]["stname"] = ""
|
||||
defs["ImGui_ImplGlfw_NewFrame"]["()"] = defs["ImGui_ImplGlfw_NewFrame"][1]
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"] = {}
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1] = {}
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["args"] = "(GLFWwindow* window)"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["argsT"] = {}
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["argsT"][1] = {}
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["argsT"][1]["name"] = "window"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["argsT"][1]["type"] = "GLFWwindow*"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["argsoriginal"] = "(GLFWwindow* window)"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["call_args"] = "(window)"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["cimguiname"] = "ImGui_ImplGlfw_RestoreCallbacks"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["funcname"] = "ImGui_ImplGlfw_RestoreCallbacks"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["location"] = "imgui_impl_glfw:37"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_RestoreCallbacks"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["signature"] = "(GLFWwindow*)"
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"][1]["stname"] = ""
|
||||
defs["ImGui_ImplGlfw_RestoreCallbacks"]["(GLFWwindow*)"] = defs["ImGui_ImplGlfw_RestoreCallbacks"][1]
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"] = {}
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1] = {}
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1]["args"] = "(GLFWwindow* window,double xoffset,double yoffset)"
|
||||
@@ -215,7 +275,7 @@ defs["ImGui_ImplGlfw_ScrollCallback"][1]["call_args"] = "(window,xoffset,yoffset
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_ScrollCallback"
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1]["funcname"] = "ImGui_ImplGlfw_ScrollCallback"
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1]["location"] = "imgui_impl_glfw:38"
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1]["location"] = "imgui_impl_glfw:44"
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_ScrollCallback"
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_ScrollCallback"][1]["signature"] = "(GLFWwindow*,double,double)"
|
||||
@@ -230,7 +290,7 @@ defs["ImGui_ImplGlfw_Shutdown"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplGlfw_Shutdown"][1]["cimguiname"] = "ImGui_ImplGlfw_Shutdown"
|
||||
defs["ImGui_ImplGlfw_Shutdown"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_Shutdown"][1]["funcname"] = "ImGui_ImplGlfw_Shutdown"
|
||||
defs["ImGui_ImplGlfw_Shutdown"][1]["location"] = "imgui_impl_glfw:29"
|
||||
defs["ImGui_ImplGlfw_Shutdown"][1]["location"] = "imgui_impl_glfw:30"
|
||||
defs["ImGui_ImplGlfw_Shutdown"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_Shutdown"
|
||||
defs["ImGui_ImplGlfw_Shutdown"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_Shutdown"][1]["signature"] = "()"
|
||||
@@ -251,7 +311,7 @@ defs["ImGui_ImplGlfw_WindowFocusCallback"][1]["call_args"] = "(window,focused)"
|
||||
defs["ImGui_ImplGlfw_WindowFocusCallback"][1]["cimguiname"] = "ImGui_ImplGlfw_WindowFocusCallback"
|
||||
defs["ImGui_ImplGlfw_WindowFocusCallback"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplGlfw_WindowFocusCallback"][1]["funcname"] = "ImGui_ImplGlfw_WindowFocusCallback"
|
||||
defs["ImGui_ImplGlfw_WindowFocusCallback"][1]["location"] = "imgui_impl_glfw:35"
|
||||
defs["ImGui_ImplGlfw_WindowFocusCallback"][1]["location"] = "imgui_impl_glfw:40"
|
||||
defs["ImGui_ImplGlfw_WindowFocusCallback"][1]["ov_cimguiname"] = "ImGui_ImplGlfw_WindowFocusCallback"
|
||||
defs["ImGui_ImplGlfw_WindowFocusCallback"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplGlfw_WindowFocusCallback"][1]["signature"] = "(GLFWwindow*,int)"
|
||||
@@ -266,7 +326,7 @@ defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["cimguiname"] = "ImGui_ImplOpenGL2_CreateDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL2_CreateDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["location"] = "imgui_impl_opengl2:31"
|
||||
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["location"] = "imgui_impl_opengl2:32"
|
||||
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_CreateDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplOpenGL2_CreateDeviceObjects"][1]["signature"] = "()"
|
||||
@@ -281,7 +341,7 @@ defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["cimguiname"] = "ImGui_ImplOpenGL2_CreateFontsTexture"
|
||||
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL2_CreateFontsTexture"
|
||||
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["location"] = "imgui_impl_opengl2:29"
|
||||
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["location"] = "imgui_impl_opengl2:30"
|
||||
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_CreateFontsTexture"
|
||||
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplOpenGL2_CreateFontsTexture"][1]["signature"] = "()"
|
||||
@@ -296,7 +356,7 @@ defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["cimguiname"] = "ImGui_ImplOpenGL2_DestroyDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL2_DestroyDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["location"] = "imgui_impl_opengl2:32"
|
||||
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["location"] = "imgui_impl_opengl2:33"
|
||||
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_DestroyDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL2_DestroyDeviceObjects"][1]["signature"] = "()"
|
||||
@@ -311,7 +371,7 @@ defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["cimguiname"] = "ImGui_ImplOpenGL2_DestroyFontsTexture"
|
||||
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL2_DestroyFontsTexture"
|
||||
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["location"] = "imgui_impl_opengl2:30"
|
||||
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["location"] = "imgui_impl_opengl2:31"
|
||||
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_DestroyFontsTexture"
|
||||
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL2_DestroyFontsTexture"][1]["signature"] = "()"
|
||||
@@ -326,7 +386,7 @@ defs["ImGui_ImplOpenGL2_Init"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL2_Init"][1]["cimguiname"] = "ImGui_ImplOpenGL2_Init"
|
||||
defs["ImGui_ImplOpenGL2_Init"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL2_Init"][1]["funcname"] = "ImGui_ImplOpenGL2_Init"
|
||||
defs["ImGui_ImplOpenGL2_Init"][1]["location"] = "imgui_impl_opengl2:23"
|
||||
defs["ImGui_ImplOpenGL2_Init"][1]["location"] = "imgui_impl_opengl2:24"
|
||||
defs["ImGui_ImplOpenGL2_Init"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_Init"
|
||||
defs["ImGui_ImplOpenGL2_Init"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplOpenGL2_Init"][1]["signature"] = "()"
|
||||
@@ -341,7 +401,7 @@ defs["ImGui_ImplOpenGL2_NewFrame"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL2_NewFrame"][1]["cimguiname"] = "ImGui_ImplOpenGL2_NewFrame"
|
||||
defs["ImGui_ImplOpenGL2_NewFrame"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL2_NewFrame"][1]["funcname"] = "ImGui_ImplOpenGL2_NewFrame"
|
||||
defs["ImGui_ImplOpenGL2_NewFrame"][1]["location"] = "imgui_impl_opengl2:25"
|
||||
defs["ImGui_ImplOpenGL2_NewFrame"][1]["location"] = "imgui_impl_opengl2:26"
|
||||
defs["ImGui_ImplOpenGL2_NewFrame"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_NewFrame"
|
||||
defs["ImGui_ImplOpenGL2_NewFrame"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL2_NewFrame"][1]["signature"] = "()"
|
||||
@@ -359,7 +419,7 @@ defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["call_args"] = "(draw_data)"
|
||||
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["cimguiname"] = "ImGui_ImplOpenGL2_RenderDrawData"
|
||||
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["funcname"] = "ImGui_ImplOpenGL2_RenderDrawData"
|
||||
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["location"] = "imgui_impl_opengl2:26"
|
||||
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["location"] = "imgui_impl_opengl2:27"
|
||||
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_RenderDrawData"
|
||||
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL2_RenderDrawData"][1]["signature"] = "(ImDrawData*)"
|
||||
@@ -374,7 +434,7 @@ defs["ImGui_ImplOpenGL2_Shutdown"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL2_Shutdown"][1]["cimguiname"] = "ImGui_ImplOpenGL2_Shutdown"
|
||||
defs["ImGui_ImplOpenGL2_Shutdown"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL2_Shutdown"][1]["funcname"] = "ImGui_ImplOpenGL2_Shutdown"
|
||||
defs["ImGui_ImplOpenGL2_Shutdown"][1]["location"] = "imgui_impl_opengl2:24"
|
||||
defs["ImGui_ImplOpenGL2_Shutdown"][1]["location"] = "imgui_impl_opengl2:25"
|
||||
defs["ImGui_ImplOpenGL2_Shutdown"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL2_Shutdown"
|
||||
defs["ImGui_ImplOpenGL2_Shutdown"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL2_Shutdown"][1]["signature"] = "()"
|
||||
@@ -389,7 +449,7 @@ defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["cimguiname"] = "ImGui_ImplOpenGL3_CreateDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL3_CreateDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["location"] = "imgui_impl_opengl3:32"
|
||||
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["location"] = "imgui_impl_opengl3:33"
|
||||
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_CreateDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplOpenGL3_CreateDeviceObjects"][1]["signature"] = "()"
|
||||
@@ -404,7 +464,7 @@ defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["cimguiname"] = "ImGui_ImplOpenGL3_CreateFontsTexture"
|
||||
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL3_CreateFontsTexture"
|
||||
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["location"] = "imgui_impl_opengl3:30"
|
||||
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["location"] = "imgui_impl_opengl3:31"
|
||||
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_CreateFontsTexture"
|
||||
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplOpenGL3_CreateFontsTexture"][1]["signature"] = "()"
|
||||
@@ -419,7 +479,7 @@ defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["cimguiname"] = "ImGui_ImplOpenGL3_DestroyDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["funcname"] = "ImGui_ImplOpenGL3_DestroyDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["location"] = "imgui_impl_opengl3:33"
|
||||
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["location"] = "imgui_impl_opengl3:34"
|
||||
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_DestroyDeviceObjects"
|
||||
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL3_DestroyDeviceObjects"][1]["signature"] = "()"
|
||||
@@ -434,7 +494,7 @@ defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["cimguiname"] = "ImGui_ImplOpenGL3_DestroyFontsTexture"
|
||||
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["funcname"] = "ImGui_ImplOpenGL3_DestroyFontsTexture"
|
||||
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["location"] = "imgui_impl_opengl3:31"
|
||||
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["location"] = "imgui_impl_opengl3:32"
|
||||
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_DestroyFontsTexture"
|
||||
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL3_DestroyFontsTexture"][1]["signature"] = "()"
|
||||
@@ -447,13 +507,13 @@ defs["ImGui_ImplOpenGL3_Init"][1]["argsT"] = {}
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"][1] = {}
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"][1]["name"] = "glsl_version"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["argsT"][1]["type"] = "const char*"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["argsoriginal"] = "(const char* glsl_version=((void*)0))"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["argsoriginal"] = "(const char* glsl_version=nullptr)"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["call_args"] = "(glsl_version)"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["cimguiname"] = "ImGui_ImplOpenGL3_Init"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["defaults"]["glsl_version"] = "((void*)0)"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["defaults"]["glsl_version"] = "nullptr"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["funcname"] = "ImGui_ImplOpenGL3_Init"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["location"] = "imgui_impl_opengl3:24"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["location"] = "imgui_impl_opengl3:25"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_Init"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplOpenGL3_Init"][1]["signature"] = "(const char*)"
|
||||
@@ -468,7 +528,7 @@ defs["ImGui_ImplOpenGL3_NewFrame"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL3_NewFrame"][1]["cimguiname"] = "ImGui_ImplOpenGL3_NewFrame"
|
||||
defs["ImGui_ImplOpenGL3_NewFrame"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL3_NewFrame"][1]["funcname"] = "ImGui_ImplOpenGL3_NewFrame"
|
||||
defs["ImGui_ImplOpenGL3_NewFrame"][1]["location"] = "imgui_impl_opengl3:26"
|
||||
defs["ImGui_ImplOpenGL3_NewFrame"][1]["location"] = "imgui_impl_opengl3:27"
|
||||
defs["ImGui_ImplOpenGL3_NewFrame"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_NewFrame"
|
||||
defs["ImGui_ImplOpenGL3_NewFrame"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL3_NewFrame"][1]["signature"] = "()"
|
||||
@@ -486,7 +546,7 @@ defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["call_args"] = "(draw_data)"
|
||||
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["cimguiname"] = "ImGui_ImplOpenGL3_RenderDrawData"
|
||||
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["funcname"] = "ImGui_ImplOpenGL3_RenderDrawData"
|
||||
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["location"] = "imgui_impl_opengl3:27"
|
||||
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["location"] = "imgui_impl_opengl3:28"
|
||||
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_RenderDrawData"
|
||||
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL3_RenderDrawData"][1]["signature"] = "(ImDrawData*)"
|
||||
@@ -501,7 +561,7 @@ defs["ImGui_ImplOpenGL3_Shutdown"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplOpenGL3_Shutdown"][1]["cimguiname"] = "ImGui_ImplOpenGL3_Shutdown"
|
||||
defs["ImGui_ImplOpenGL3_Shutdown"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplOpenGL3_Shutdown"][1]["funcname"] = "ImGui_ImplOpenGL3_Shutdown"
|
||||
defs["ImGui_ImplOpenGL3_Shutdown"][1]["location"] = "imgui_impl_opengl3:25"
|
||||
defs["ImGui_ImplOpenGL3_Shutdown"][1]["location"] = "imgui_impl_opengl3:26"
|
||||
defs["ImGui_ImplOpenGL3_Shutdown"][1]["ov_cimguiname"] = "ImGui_ImplOpenGL3_Shutdown"
|
||||
defs["ImGui_ImplOpenGL3_Shutdown"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplOpenGL3_Shutdown"][1]["signature"] = "()"
|
||||
@@ -519,7 +579,7 @@ 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]["location"] = "imgui_impl_sdl:26"
|
||||
defs["ImGui_ImplSDL2_InitForD3D"][1]["location"] = "imgui_impl_sdl:29"
|
||||
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*)"
|
||||
@@ -537,7 +597,7 @@ defs["ImGui_ImplSDL2_InitForMetal"][1]["call_args"] = "(window)"
|
||||
defs["ImGui_ImplSDL2_InitForMetal"][1]["cimguiname"] = "ImGui_ImplSDL2_InitForMetal"
|
||||
defs["ImGui_ImplSDL2_InitForMetal"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplSDL2_InitForMetal"][1]["funcname"] = "ImGui_ImplSDL2_InitForMetal"
|
||||
defs["ImGui_ImplSDL2_InitForMetal"][1]["location"] = "imgui_impl_sdl:27"
|
||||
defs["ImGui_ImplSDL2_InitForMetal"][1]["location"] = "imgui_impl_sdl:30"
|
||||
defs["ImGui_ImplSDL2_InitForMetal"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_InitForMetal"
|
||||
defs["ImGui_ImplSDL2_InitForMetal"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplSDL2_InitForMetal"][1]["signature"] = "(SDL_Window*)"
|
||||
@@ -558,7 +618,7 @@ defs["ImGui_ImplSDL2_InitForOpenGL"][1]["call_args"] = "(window,sdl_gl_context)"
|
||||
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["cimguiname"] = "ImGui_ImplSDL2_InitForOpenGL"
|
||||
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["funcname"] = "ImGui_ImplSDL2_InitForOpenGL"
|
||||
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["location"] = "imgui_impl_sdl:24"
|
||||
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["location"] = "imgui_impl_sdl:27"
|
||||
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_InitForOpenGL"
|
||||
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplSDL2_InitForOpenGL"][1]["signature"] = "(SDL_Window*,void*)"
|
||||
@@ -566,22 +626,25 @@ defs["ImGui_ImplSDL2_InitForOpenGL"][1]["stname"] = ""
|
||||
defs["ImGui_ImplSDL2_InitForOpenGL"]["(SDL_Window*,void*)"] = defs["ImGui_ImplSDL2_InitForOpenGL"][1]
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"] = {}
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1] = {}
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["args"] = "(SDL_Window* window)"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["args"] = "(SDL_Window* window,SDL_Renderer* renderer)"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["argsT"] = {}
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["argsT"][1] = {}
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["argsT"][1]["name"] = "window"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["argsT"][1]["type"] = "SDL_Window*"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["argsoriginal"] = "(SDL_Window* window)"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["call_args"] = "(window)"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["argsT"][2] = {}
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["argsT"][2]["name"] = "renderer"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["argsT"][2]["type"] = "SDL_Renderer*"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["argsoriginal"] = "(SDL_Window* window,SDL_Renderer* renderer)"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["call_args"] = "(window,renderer)"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["cimguiname"] = "ImGui_ImplSDL2_InitForSDLRenderer"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["funcname"] = "ImGui_ImplSDL2_InitForSDLRenderer"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["location"] = "imgui_impl_sdl:28"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["location"] = "imgui_impl_sdl:31"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_InitForSDLRenderer"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["signature"] = "(SDL_Window*)"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["signature"] = "(SDL_Window*,SDL_Renderer*)"
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]["stname"] = ""
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"]["(SDL_Window*)"] = defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]
|
||||
defs["ImGui_ImplSDL2_InitForSDLRenderer"]["(SDL_Window*,SDL_Renderer*)"] = defs["ImGui_ImplSDL2_InitForSDLRenderer"][1]
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"] = {}
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1] = {}
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1]["args"] = "(SDL_Window* window)"
|
||||
@@ -594,7 +657,7 @@ defs["ImGui_ImplSDL2_InitForVulkan"][1]["call_args"] = "(window)"
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1]["cimguiname"] = "ImGui_ImplSDL2_InitForVulkan"
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1]["funcname"] = "ImGui_ImplSDL2_InitForVulkan"
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1]["location"] = "imgui_impl_sdl:25"
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1]["location"] = "imgui_impl_sdl:28"
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_InitForVulkan"
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplSDL2_InitForVulkan"][1]["signature"] = "(SDL_Window*)"
|
||||
@@ -609,7 +672,7 @@ defs["ImGui_ImplSDL2_NewFrame"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplSDL2_NewFrame"][1]["cimguiname"] = "ImGui_ImplSDL2_NewFrame"
|
||||
defs["ImGui_ImplSDL2_NewFrame"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplSDL2_NewFrame"][1]["funcname"] = "ImGui_ImplSDL2_NewFrame"
|
||||
defs["ImGui_ImplSDL2_NewFrame"][1]["location"] = "imgui_impl_sdl:30"
|
||||
defs["ImGui_ImplSDL2_NewFrame"][1]["location"] = "imgui_impl_sdl:33"
|
||||
defs["ImGui_ImplSDL2_NewFrame"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_NewFrame"
|
||||
defs["ImGui_ImplSDL2_NewFrame"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplSDL2_NewFrame"][1]["signature"] = "()"
|
||||
@@ -627,7 +690,7 @@ defs["ImGui_ImplSDL2_ProcessEvent"][1]["call_args"] = "(event)"
|
||||
defs["ImGui_ImplSDL2_ProcessEvent"][1]["cimguiname"] = "ImGui_ImplSDL2_ProcessEvent"
|
||||
defs["ImGui_ImplSDL2_ProcessEvent"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplSDL2_ProcessEvent"][1]["funcname"] = "ImGui_ImplSDL2_ProcessEvent"
|
||||
defs["ImGui_ImplSDL2_ProcessEvent"][1]["location"] = "imgui_impl_sdl:31"
|
||||
defs["ImGui_ImplSDL2_ProcessEvent"][1]["location"] = "imgui_impl_sdl:34"
|
||||
defs["ImGui_ImplSDL2_ProcessEvent"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_ProcessEvent"
|
||||
defs["ImGui_ImplSDL2_ProcessEvent"][1]["ret"] = "bool"
|
||||
defs["ImGui_ImplSDL2_ProcessEvent"][1]["signature"] = "(const SDL_Event*)"
|
||||
@@ -642,7 +705,7 @@ defs["ImGui_ImplSDL2_Shutdown"][1]["call_args"] = "()"
|
||||
defs["ImGui_ImplSDL2_Shutdown"][1]["cimguiname"] = "ImGui_ImplSDL2_Shutdown"
|
||||
defs["ImGui_ImplSDL2_Shutdown"][1]["defaults"] = {}
|
||||
defs["ImGui_ImplSDL2_Shutdown"][1]["funcname"] = "ImGui_ImplSDL2_Shutdown"
|
||||
defs["ImGui_ImplSDL2_Shutdown"][1]["location"] = "imgui_impl_sdl:29"
|
||||
defs["ImGui_ImplSDL2_Shutdown"][1]["location"] = "imgui_impl_sdl:32"
|
||||
defs["ImGui_ImplSDL2_Shutdown"][1]["ov_cimguiname"] = "ImGui_ImplSDL2_Shutdown"
|
||||
defs["ImGui_ImplSDL2_Shutdown"][1]["ret"] = "void"
|
||||
defs["ImGui_ImplSDL2_Shutdown"][1]["signature"] = "()"
|
||||
|
@@ -1,10 +1,10 @@
|
||||
----------------overloadings---------------------------
|
||||
ImColor_ImColor 5
|
||||
1 nil ImColor_ImColor_Nil ()
|
||||
2 nil ImColor_ImColor_Int (int,int,int,int)
|
||||
3 nil ImColor_ImColor_U32 (ImU32)
|
||||
4 nil ImColor_ImColor_Float (float,float,float,float)
|
||||
5 nil ImColor_ImColor_Vec4 (const ImVec4)
|
||||
2 nil ImColor_ImColor_Float (float,float,float,float)
|
||||
3 nil ImColor_ImColor_Vec4 (const ImVec4)
|
||||
4 nil ImColor_ImColor_Int (int,int,int,int)
|
||||
5 nil ImColor_ImColor_U32 (ImU32)
|
||||
ImDrawList_AddText 2
|
||||
1 void ImDrawList_AddText_Vec2 (const ImVec2,ImU32,const char*,const char*)
|
||||
2 void ImDrawList_AddText_FontPtr (const ImFont*,float,const ImVec2,ImU32,const char*,const char*,float,const ImVec4*)
|
||||
@@ -26,10 +26,6 @@ ImGuiWindow_GetID 3
|
||||
1 ImGuiID ImGuiWindow_GetID_Str (const char*,const char*)
|
||||
2 ImGuiID ImGuiWindow_GetID_Ptr (const void*)
|
||||
3 ImGuiID ImGuiWindow_GetID_Int (int)
|
||||
ImGuiWindow_GetIDNoKeepAlive 3
|
||||
1 ImGuiID ImGuiWindow_GetIDNoKeepAlive_Str (const char*,const char*)
|
||||
2 ImGuiID ImGuiWindow_GetIDNoKeepAlive_Ptr (const void*)
|
||||
3 ImGuiID ImGuiWindow_GetIDNoKeepAlive_Int (int)
|
||||
ImPool_Remove 2
|
||||
1 void ImPool_Remove_TPtr (ImGuiID,const T*)
|
||||
2 void ImPool_Remove_PoolIdx (ImGuiID,ImPoolIdx)
|
||||
@@ -75,7 +71,7 @@ ImVec4_ImVec4 2
|
||||
2 nil ImVec4_ImVec4_Float (float,float,float,float)
|
||||
ImVector_ImVector 2
|
||||
1 nil ImVector_ImVector_Nil ()
|
||||
2 nil ImVector_ImVector_Vector (const ImVector)
|
||||
2 nil ImVector_ImVector_Vector_T_ (const ImVector_T )
|
||||
ImVector_back 2
|
||||
1 T* ImVector_back_Nil ()
|
||||
2 const T* ImVector_back__const ()const
|
||||
@@ -121,8 +117,8 @@ igGetColorU32 3
|
||||
3 ImU32 igGetColorU32_U32 (ImU32)
|
||||
igGetForegroundDrawList 3
|
||||
1 ImDrawList* igGetForegroundDrawList_Nil ()
|
||||
2 ImDrawList* igGetForegroundDrawList_WindowPtr (ImGuiWindow*)
|
||||
3 ImDrawList* igGetForegroundDrawList_ViewportPtr (ImGuiViewport*)
|
||||
2 ImDrawList* igGetForegroundDrawList_ViewportPtr (ImGuiViewport*)
|
||||
3 ImDrawList* igGetForegroundDrawList_WindowPtr (ImGuiWindow*)
|
||||
igGetID 3
|
||||
1 ImGuiID igGetID_Str (const char*)
|
||||
2 ImGuiID igGetID_StrStr (const char*,const char*)
|
||||
@@ -134,6 +130,9 @@ igImAbs 3
|
||||
igImFloor 2
|
||||
1 float igImFloor_Float (float)
|
||||
2 ImVec2 igImFloor_Vec2 (const ImVec2)
|
||||
igImFloorSigned 2
|
||||
1 float igImFloorSigned_Float (float)
|
||||
2 ImVec2 igImFloorSigned_Vec2 (const ImVec2)
|
||||
igImIsPowerOfTwo 2
|
||||
1 bool igImIsPowerOfTwo_Int (int)
|
||||
2 bool igImIsPowerOfTwo_U64 (ImU64)
|
||||
@@ -156,6 +155,24 @@ igImRsqrt 2
|
||||
igImSign 2
|
||||
1 float igImSign_Float (float)
|
||||
2 double igImSign_double (double)
|
||||
igIsKeyDown 2
|
||||
1 bool igIsKeyDown_Nil (ImGuiKey)
|
||||
2 bool igIsKeyDown_ID (ImGuiKey,ImGuiID)
|
||||
igIsKeyPressed 2
|
||||
1 bool igIsKeyPressed_Bool (ImGuiKey,bool)
|
||||
2 bool igIsKeyPressed_ID (ImGuiKey,ImGuiID,ImGuiInputFlags)
|
||||
igIsKeyReleased 2
|
||||
1 bool igIsKeyReleased_Nil (ImGuiKey)
|
||||
2 bool igIsKeyReleased_ID (ImGuiKey,ImGuiID)
|
||||
igIsMouseClicked 2
|
||||
1 bool igIsMouseClicked_Bool (ImGuiMouseButton,bool)
|
||||
2 bool igIsMouseClicked_ID (ImGuiMouseButton,ImGuiID,ImGuiInputFlags)
|
||||
igIsMouseDown 2
|
||||
1 bool igIsMouseDown_Nil (ImGuiMouseButton)
|
||||
2 bool igIsMouseDown_ID (ImGuiMouseButton,ImGuiID)
|
||||
igIsMouseReleased 2
|
||||
1 bool igIsMouseReleased_Nil (ImGuiMouseButton)
|
||||
2 bool igIsMouseReleased_ID (ImGuiMouseButton,ImGuiID)
|
||||
igIsPopupOpen 2
|
||||
1 bool igIsPopupOpen_Str (const char*,ImGuiPopupFlags)
|
||||
2 bool igIsPopupOpen_ID (ImGuiID,ImGuiPopupFlags)
|
||||
@@ -227,6 +244,9 @@ igSetWindowSize 3
|
||||
1 void igSetWindowSize_Vec2 (const ImVec2,ImGuiCond)
|
||||
2 void igSetWindowSize_Str (const char*,const ImVec2,ImGuiCond)
|
||||
3 void igSetWindowSize_WindowPtr (ImGuiWindow*,const ImVec2,ImGuiCond)
|
||||
igTabItemCalcSize 2
|
||||
1 ImVec2 igTabItemCalcSize_Str (const char*,bool)
|
||||
2 ImVec2 igTabItemCalcSize_WindowPtr (ImGuiWindow*)
|
||||
igTableGcCompactTransientBuffers 2
|
||||
1 void igTableGcCompactTransientBuffers_TablePtr (ImGuiTable*)
|
||||
2 void igTableGcCompactTransientBuffers_TableTempDataPtr (ImGuiTableTempData*)
|
||||
@@ -255,4 +275,4 @@ igValue 4
|
||||
2 void igValue_Int (const char*,int)
|
||||
3 void igValue_Uint (const char*,unsigned int)
|
||||
4 void igValue_Float (const char*,float,const char*)
|
||||
180 overloaded
|
||||
193 overloaded
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"ImBitArrayForNamedKeys": "ImBitArray<ImGuiKey_NamedKey_COUNT,-ImGuiKey_NamedKey_BEGIN>",
|
||||
"ImBitVector": "struct ImBitVector",
|
||||
"ImColor": "struct ImColor",
|
||||
"ImDrawCallback": "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);",
|
||||
@@ -36,10 +37,17 @@
|
||||
"ImGuiContext": "struct ImGuiContext",
|
||||
"ImGuiContextHook": "struct ImGuiContextHook",
|
||||
"ImGuiContextHookCallback": "void(*)(ImGuiContext* ctx,ImGuiContextHook* hook);",
|
||||
"ImGuiDataAuthority": "int",
|
||||
"ImGuiDataType": "int",
|
||||
"ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo",
|
||||
"ImGuiDataTypeTempStorage": "struct ImGuiDataTypeTempStorage",
|
||||
"ImGuiDebugLogFlags": "int",
|
||||
"ImGuiDir": "int",
|
||||
"ImGuiDockContext": "struct ImGuiDockContext",
|
||||
"ImGuiDockNode": "struct ImGuiDockNode",
|
||||
"ImGuiDockNodeFlags": "int",
|
||||
"ImGuiDockNodeSettings": "struct ImGuiDockNodeSettings",
|
||||
"ImGuiDockRequest": "struct ImGuiDockRequest",
|
||||
"ImGuiDragDropFlags": "int",
|
||||
"ImGuiErrorLogCallback": "void(*)(void* user_data,const char* fmt,...);",
|
||||
"ImGuiFocusedFlags": "int",
|
||||
@@ -47,26 +55,39 @@
|
||||
"ImGuiHoveredFlags": "int",
|
||||
"ImGuiID": "unsigned int",
|
||||
"ImGuiIO": "struct ImGuiIO",
|
||||
"ImGuiInputEvent": "struct ImGuiInputEvent",
|
||||
"ImGuiInputEventAppFocused": "struct ImGuiInputEventAppFocused",
|
||||
"ImGuiInputEventKey": "struct ImGuiInputEventKey",
|
||||
"ImGuiInputEventMouseButton": "struct ImGuiInputEventMouseButton",
|
||||
"ImGuiInputEventMousePos": "struct ImGuiInputEventMousePos",
|
||||
"ImGuiInputEventMouseViewport": "struct ImGuiInputEventMouseViewport",
|
||||
"ImGuiInputEventMouseWheel": "struct ImGuiInputEventMouseWheel",
|
||||
"ImGuiInputEventText": "struct ImGuiInputEventText",
|
||||
"ImGuiInputFlags": "int",
|
||||
"ImGuiInputTextCallback": "int(*)(ImGuiInputTextCallbackData* data);",
|
||||
"ImGuiInputTextCallbackData": "struct ImGuiInputTextCallbackData",
|
||||
"ImGuiInputTextFlags": "int",
|
||||
"ImGuiInputTextState": "struct ImGuiInputTextState",
|
||||
"ImGuiItemFlags": "int",
|
||||
"ImGuiItemStatusFlags": "int",
|
||||
"ImGuiKey": "int",
|
||||
"ImGuiKeyModFlags": "int",
|
||||
"ImGuiKeyChord": "int",
|
||||
"ImGuiKeyData": "struct ImGuiKeyData",
|
||||
"ImGuiKeyOwnerData": "struct ImGuiKeyOwnerData",
|
||||
"ImGuiKeyRoutingData": "struct ImGuiKeyRoutingData",
|
||||
"ImGuiKeyRoutingIndex": "ImS16",
|
||||
"ImGuiKeyRoutingTable": "struct ImGuiKeyRoutingTable",
|
||||
"ImGuiLastItemData": "struct ImGuiLastItemData",
|
||||
"ImGuiLayoutType": "int",
|
||||
"ImGuiListClipper": "struct ImGuiListClipper",
|
||||
"ImGuiListClipperData": "struct ImGuiListClipperData",
|
||||
"ImGuiListClipperRange": "struct ImGuiListClipperRange",
|
||||
"ImGuiMemAllocFunc": "void*(*)(size_t sz,void* user_data);",
|
||||
"ImGuiMemFreeFunc": "void(*)(void* ptr,void* user_data);",
|
||||
"ImGuiMenuColumns": "struct ImGuiMenuColumns",
|
||||
"ImGuiMetricsConfig": "struct ImGuiMetricsConfig",
|
||||
"ImGuiMouseButton": "int",
|
||||
"ImGuiMouseCursor": "int",
|
||||
"ImGuiNavDirSourceFlags": "int",
|
||||
"ImGuiNavHighlightFlags": "int",
|
||||
"ImGuiNavInput": "int",
|
||||
"ImGuiNavItemData": "struct ImGuiNavItemData",
|
||||
"ImGuiNavMoveFlags": "int",
|
||||
"ImGuiNextItemData": "struct ImGuiNextItemData",
|
||||
@@ -78,6 +99,9 @@
|
||||
"ImGuiOldColumns": "struct ImGuiOldColumns",
|
||||
"ImGuiOnceUponAFrame": "struct ImGuiOnceUponAFrame",
|
||||
"ImGuiPayload": "struct ImGuiPayload",
|
||||
"ImGuiPlatformIO": "struct ImGuiPlatformIO",
|
||||
"ImGuiPlatformImeData": "struct ImGuiPlatformImeData",
|
||||
"ImGuiPlatformMonitor": "struct ImGuiPlatformMonitor",
|
||||
"ImGuiPopupData": "struct ImGuiPopupData",
|
||||
"ImGuiPopupFlags": "int",
|
||||
"ImGuiPtrOrIndex": "struct ImGuiPtrOrIndex",
|
||||
@@ -113,6 +137,7 @@
|
||||
"ImGuiTableColumnsSettings": "struct ImGuiTableColumnsSettings",
|
||||
"ImGuiTableDrawChannelIdx": "ImU8",
|
||||
"ImGuiTableFlags": "int",
|
||||
"ImGuiTableInstanceData": "struct ImGuiTableInstanceData",
|
||||
"ImGuiTableRowFlags": "int",
|
||||
"ImGuiTableSettings": "struct ImGuiTableSettings",
|
||||
"ImGuiTableSortSpecs": "struct ImGuiTableSortSpecs",
|
||||
@@ -120,6 +145,7 @@
|
||||
"ImGuiTextBuffer": "struct ImGuiTextBuffer",
|
||||
"ImGuiTextFilter": "struct ImGuiTextFilter",
|
||||
"ImGuiTextFlags": "int",
|
||||
"ImGuiTextIndex": "struct ImGuiTextIndex",
|
||||
"ImGuiTextRange": "struct ImGuiTextRange",
|
||||
"ImGuiTooltipFlags": "int",
|
||||
"ImGuiTreeNodeFlags": "int",
|
||||
@@ -127,6 +153,8 @@
|
||||
"ImGuiViewportFlags": "int",
|
||||
"ImGuiViewportP": "struct ImGuiViewportP",
|
||||
"ImGuiWindow": "struct ImGuiWindow",
|
||||
"ImGuiWindowClass": "struct ImGuiWindowClass",
|
||||
"ImGuiWindowDockStyle": "struct ImGuiWindowDockStyle",
|
||||
"ImGuiWindowFlags": "int",
|
||||
"ImGuiWindowSettings": "struct ImGuiWindowSettings",
|
||||
"ImGuiWindowStackData": "struct ImGuiWindowStackData",
|
||||
@@ -135,12 +163,12 @@
|
||||
"ImRect": "struct ImRect",
|
||||
"ImS16": "signed short",
|
||||
"ImS32": "signed int",
|
||||
"ImS64": "int64_t",
|
||||
"ImS64": "signed long long",
|
||||
"ImS8": "signed char",
|
||||
"ImTextureID": "void*",
|
||||
"ImU16": "unsigned short",
|
||||
"ImU32": "unsigned int",
|
||||
"ImU64": "uint64_t",
|
||||
"ImU64": "unsigned long long",
|
||||
"ImU8": "unsigned char",
|
||||
"ImVec1": "struct ImVec1",
|
||||
"ImVec2": "struct ImVec2",
|
||||
|
@@ -1,4 +1,5 @@
|
||||
local defs = {}
|
||||
defs["ImBitArrayForNamedKeys"] = "ImBitArray<ImGuiKey_NamedKey_COUNT,-ImGuiKey_NamedKey_BEGIN>"
|
||||
defs["ImBitVector"] = "struct ImBitVector"
|
||||
defs["ImColor"] = "struct ImColor"
|
||||
defs["ImDrawCallback"] = "void(*)(const ImDrawList* parent_list,const ImDrawCmd* cmd);"
|
||||
@@ -36,10 +37,17 @@ defs["ImGuiConfigFlags"] = "int"
|
||||
defs["ImGuiContext"] = "struct ImGuiContext"
|
||||
defs["ImGuiContextHook"] = "struct ImGuiContextHook"
|
||||
defs["ImGuiContextHookCallback"] = "void(*)(ImGuiContext* ctx,ImGuiContextHook* hook);"
|
||||
defs["ImGuiDataAuthority"] = "int"
|
||||
defs["ImGuiDataType"] = "int"
|
||||
defs["ImGuiDataTypeInfo"] = "struct ImGuiDataTypeInfo"
|
||||
defs["ImGuiDataTypeTempStorage"] = "struct ImGuiDataTypeTempStorage"
|
||||
defs["ImGuiDebugLogFlags"] = "int"
|
||||
defs["ImGuiDir"] = "int"
|
||||
defs["ImGuiDockContext"] = "struct ImGuiDockContext"
|
||||
defs["ImGuiDockNode"] = "struct ImGuiDockNode"
|
||||
defs["ImGuiDockNodeFlags"] = "int"
|
||||
defs["ImGuiDockNodeSettings"] = "struct ImGuiDockNodeSettings"
|
||||
defs["ImGuiDockRequest"] = "struct ImGuiDockRequest"
|
||||
defs["ImGuiDragDropFlags"] = "int"
|
||||
defs["ImGuiErrorLogCallback"] = "void(*)(void* user_data,const char* fmt,...);"
|
||||
defs["ImGuiFocusedFlags"] = "int"
|
||||
@@ -47,26 +55,39 @@ defs["ImGuiGroupData"] = "struct ImGuiGroupData"
|
||||
defs["ImGuiHoveredFlags"] = "int"
|
||||
defs["ImGuiID"] = "unsigned int"
|
||||
defs["ImGuiIO"] = "struct ImGuiIO"
|
||||
defs["ImGuiInputEvent"] = "struct ImGuiInputEvent"
|
||||
defs["ImGuiInputEventAppFocused"] = "struct ImGuiInputEventAppFocused"
|
||||
defs["ImGuiInputEventKey"] = "struct ImGuiInputEventKey"
|
||||
defs["ImGuiInputEventMouseButton"] = "struct ImGuiInputEventMouseButton"
|
||||
defs["ImGuiInputEventMousePos"] = "struct ImGuiInputEventMousePos"
|
||||
defs["ImGuiInputEventMouseViewport"] = "struct ImGuiInputEventMouseViewport"
|
||||
defs["ImGuiInputEventMouseWheel"] = "struct ImGuiInputEventMouseWheel"
|
||||
defs["ImGuiInputEventText"] = "struct ImGuiInputEventText"
|
||||
defs["ImGuiInputFlags"] = "int"
|
||||
defs["ImGuiInputTextCallback"] = "int(*)(ImGuiInputTextCallbackData* data);"
|
||||
defs["ImGuiInputTextCallbackData"] = "struct ImGuiInputTextCallbackData"
|
||||
defs["ImGuiInputTextFlags"] = "int"
|
||||
defs["ImGuiInputTextState"] = "struct ImGuiInputTextState"
|
||||
defs["ImGuiItemFlags"] = "int"
|
||||
defs["ImGuiItemStatusFlags"] = "int"
|
||||
defs["ImGuiKey"] = "int"
|
||||
defs["ImGuiKeyModFlags"] = "int"
|
||||
defs["ImGuiKeyChord"] = "int"
|
||||
defs["ImGuiKeyData"] = "struct ImGuiKeyData"
|
||||
defs["ImGuiKeyOwnerData"] = "struct ImGuiKeyOwnerData"
|
||||
defs["ImGuiKeyRoutingData"] = "struct ImGuiKeyRoutingData"
|
||||
defs["ImGuiKeyRoutingIndex"] = "ImS16"
|
||||
defs["ImGuiKeyRoutingTable"] = "struct ImGuiKeyRoutingTable"
|
||||
defs["ImGuiLastItemData"] = "struct ImGuiLastItemData"
|
||||
defs["ImGuiLayoutType"] = "int"
|
||||
defs["ImGuiListClipper"] = "struct ImGuiListClipper"
|
||||
defs["ImGuiListClipperData"] = "struct ImGuiListClipperData"
|
||||
defs["ImGuiListClipperRange"] = "struct ImGuiListClipperRange"
|
||||
defs["ImGuiMemAllocFunc"] = "void*(*)(size_t sz,void* user_data);"
|
||||
defs["ImGuiMemFreeFunc"] = "void(*)(void* ptr,void* user_data);"
|
||||
defs["ImGuiMenuColumns"] = "struct ImGuiMenuColumns"
|
||||
defs["ImGuiMetricsConfig"] = "struct ImGuiMetricsConfig"
|
||||
defs["ImGuiMouseButton"] = "int"
|
||||
defs["ImGuiMouseCursor"] = "int"
|
||||
defs["ImGuiNavDirSourceFlags"] = "int"
|
||||
defs["ImGuiNavHighlightFlags"] = "int"
|
||||
defs["ImGuiNavInput"] = "int"
|
||||
defs["ImGuiNavItemData"] = "struct ImGuiNavItemData"
|
||||
defs["ImGuiNavMoveFlags"] = "int"
|
||||
defs["ImGuiNextItemData"] = "struct ImGuiNextItemData"
|
||||
@@ -78,6 +99,9 @@ defs["ImGuiOldColumnFlags"] = "int"
|
||||
defs["ImGuiOldColumns"] = "struct ImGuiOldColumns"
|
||||
defs["ImGuiOnceUponAFrame"] = "struct ImGuiOnceUponAFrame"
|
||||
defs["ImGuiPayload"] = "struct ImGuiPayload"
|
||||
defs["ImGuiPlatformIO"] = "struct ImGuiPlatformIO"
|
||||
defs["ImGuiPlatformImeData"] = "struct ImGuiPlatformImeData"
|
||||
defs["ImGuiPlatformMonitor"] = "struct ImGuiPlatformMonitor"
|
||||
defs["ImGuiPopupData"] = "struct ImGuiPopupData"
|
||||
defs["ImGuiPopupFlags"] = "int"
|
||||
defs["ImGuiPtrOrIndex"] = "struct ImGuiPtrOrIndex"
|
||||
@@ -113,6 +137,7 @@ defs["ImGuiTableColumnSortSpecs"] = "struct ImGuiTableColumnSortSpecs"
|
||||
defs["ImGuiTableColumnsSettings"] = "struct ImGuiTableColumnsSettings"
|
||||
defs["ImGuiTableDrawChannelIdx"] = "ImU8"
|
||||
defs["ImGuiTableFlags"] = "int"
|
||||
defs["ImGuiTableInstanceData"] = "struct ImGuiTableInstanceData"
|
||||
defs["ImGuiTableRowFlags"] = "int"
|
||||
defs["ImGuiTableSettings"] = "struct ImGuiTableSettings"
|
||||
defs["ImGuiTableSortSpecs"] = "struct ImGuiTableSortSpecs"
|
||||
@@ -120,6 +145,7 @@ defs["ImGuiTableTempData"] = "struct ImGuiTableTempData"
|
||||
defs["ImGuiTextBuffer"] = "struct ImGuiTextBuffer"
|
||||
defs["ImGuiTextFilter"] = "struct ImGuiTextFilter"
|
||||
defs["ImGuiTextFlags"] = "int"
|
||||
defs["ImGuiTextIndex"] = "struct ImGuiTextIndex"
|
||||
defs["ImGuiTextRange"] = "struct ImGuiTextRange"
|
||||
defs["ImGuiTooltipFlags"] = "int"
|
||||
defs["ImGuiTreeNodeFlags"] = "int"
|
||||
@@ -127,6 +153,8 @@ defs["ImGuiViewport"] = "struct ImGuiViewport"
|
||||
defs["ImGuiViewportFlags"] = "int"
|
||||
defs["ImGuiViewportP"] = "struct ImGuiViewportP"
|
||||
defs["ImGuiWindow"] = "struct ImGuiWindow"
|
||||
defs["ImGuiWindowClass"] = "struct ImGuiWindowClass"
|
||||
defs["ImGuiWindowDockStyle"] = "struct ImGuiWindowDockStyle"
|
||||
defs["ImGuiWindowFlags"] = "int"
|
||||
defs["ImGuiWindowSettings"] = "struct ImGuiWindowSettings"
|
||||
defs["ImGuiWindowStackData"] = "struct ImGuiWindowStackData"
|
||||
@@ -135,12 +163,12 @@ defs["ImPoolIdx"] = "int"
|
||||
defs["ImRect"] = "struct ImRect"
|
||||
defs["ImS16"] = "signed short"
|
||||
defs["ImS32"] = "signed int"
|
||||
defs["ImS64"] = "int64_t"
|
||||
defs["ImS64"] = "signed long long"
|
||||
defs["ImS8"] = "signed char"
|
||||
defs["ImTextureID"] = "void*"
|
||||
defs["ImU16"] = "unsigned short"
|
||||
defs["ImU32"] = "unsigned int"
|
||||
defs["ImU64"] = "uint64_t"
|
||||
defs["ImU64"] = "unsigned long long"
|
||||
defs["ImU8"] = "unsigned char"
|
||||
defs["ImVec1"] = "struct ImVec1"
|
||||
defs["ImVec2"] = "struct ImVec2"
|
||||
|
2
imgui
2
imgui
Submodule imgui updated: 13cdf2ff0e...94e850fd6f
Reference in New Issue
Block a user