mirror of
https://github.com/cimgui/cimgui.git
synced 2025-08-15 05:58:30 +01:00
Compare commits
32 Commits
1.91.6dock
...
1.91.9bdoc
Author | SHA1 | Date | |
---|---|---|---|
![]() |
03e6c8d1f2 | ||
![]() |
50c60f3da6 | ||
![]() |
140d107be5 | ||
![]() |
c32d1c0c9b | ||
![]() |
3530b937f1 | ||
![]() |
bb6f212993 | ||
![]() |
e3af31fb9c | ||
![]() |
de213c9105 | ||
![]() |
4bd8b6dbbd | ||
![]() |
a1dbf23597 | ||
![]() |
f2e203b05a | ||
![]() |
429ffc930d | ||
![]() |
95dec01325 | ||
![]() |
79504e6f7c | ||
![]() |
4edec25945 | ||
![]() |
daac7262b3 | ||
![]() |
2e5db87e99 | ||
![]() |
387e5e0d8b | ||
![]() |
10a7a9f3f3 | ||
![]() |
9bc279c4d8 | ||
![]() |
46c47d5703 | ||
![]() |
e5facd9083 | ||
![]() |
7d50243c50 | ||
![]() |
7715efaa41 | ||
![]() |
9cc8f27f61 | ||
![]() |
df65595422 | ||
![]() |
2a0af76f16 | ||
![]() |
1053d1584f | ||
![]() |
d83e8c5892 | ||
![]() |
98b667f601 | ||
![]() |
d9982af929 | ||
![]() |
58763282f8 |
@@ -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)
|
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:
|
Notes:
|
||||||
* currently this wrapper is based on version [1.91.6 of Dear ImGui with internal api]
|
* currently this wrapper is based on version [1.91.9 of Dear ImGui with internal api]
|
||||||
* only functions, structs and enums from imgui.h (an optionally imgui_internal.h) are wrapped.
|
* 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.
|
* 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.
|
* 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.
|
||||||
@@ -92,10 +92,10 @@ Notes:
|
|||||||
* methods have the same parameter list and return values (where possible)
|
* methods have the same parameter list and return values (where possible)
|
||||||
* functions that belong to a struct have an extra first argument with a pointer to the struct.
|
* functions that belong to a struct have an extra first argument with a pointer to the struct.
|
||||||
* where a function returns UDT (user defined type) by value some compilers complain so the function is generated accepting a pointer to the UDT type as the first argument (or second if belongs to a struct).
|
* where a function returns UDT (user defined type) by value some compilers complain so the function is generated accepting a pointer to the UDT type as the first argument (or second if belongs to a struct).
|
||||||
|
* constructors return pointer to struct and has been named Struct_name_Struct_name
|
||||||
# usage with backends
|
# usage with backends
|
||||||
|
|
||||||
* look at backend_test folder for a cmake module building with SDL and opengl3, glfw and opengl3, SDL and Vulkan
|
* look at backend_test folder for a cmake module building with SDL and opengl3, glfw and opengl3, SDL and Vulkan, glfw and dx11
|
||||||
* read [How can cimgui backends be used](https://github.com/cimgui/cimgui/issues/157)
|
* read [How can cimgui backends be used](https://github.com/cimgui/cimgui/issues/157)
|
||||||
|
|
||||||
# example bindings based on cimgui
|
# example bindings based on cimgui
|
||||||
|
@@ -102,7 +102,6 @@ target_link_libraries(cimgui ${IMGUI_LIBRARIES} glfw)
|
|||||||
|
|
||||||
|
|
||||||
# using library
|
# using library
|
||||||
include_directories(../../generator/output/)
|
|
||||||
add_executable(${PROJECT_NAME} main.c)
|
add_executable(${PROJECT_NAME} main.c)
|
||||||
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_DX11 -DCIMGUI_USE_GLFW)
|
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_DX11 -DCIMGUI_USE_GLFW)
|
||||||
target_link_libraries(${PROJECT_NAME} d3d11 d3dcompiler.lib cimgui)
|
target_link_libraries(${PROJECT_NAME} d3d11 d3dcompiler.lib cimgui)
|
||||||
|
@@ -24,6 +24,8 @@
|
|||||||
#define igButton igButton_Str
|
#define igButton igButton_Str
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define igGetIO igGetIO_Nil
|
||||||
|
|
||||||
GLFWwindow *window;
|
GLFWwindow *window;
|
||||||
|
|
||||||
// Data
|
// Data
|
||||||
|
@@ -106,7 +106,6 @@ target_link_libraries(cimgui ${IMGUI_LIBRARIES} glfw)
|
|||||||
|
|
||||||
|
|
||||||
# using library
|
# using library
|
||||||
include_directories(../../generator/output/)
|
|
||||||
add_executable(${PROJECT_NAME} main.c)
|
add_executable(${PROJECT_NAME} main.c)
|
||||||
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_GLFW)
|
target_compile_definitions(${PROJECT_NAME} PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_GLFW)
|
||||||
target_link_libraries(${PROJECT_NAME} cimgui)
|
target_link_libraries(${PROJECT_NAME} cimgui)
|
||||||
|
@@ -17,6 +17,8 @@
|
|||||||
#define igButton igButton_Str
|
#define igButton igButton_Str
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define igGetIO igGetIO_Nil
|
||||||
|
|
||||||
GLFWwindow *window;
|
GLFWwindow *window;
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
|
@@ -22,8 +22,6 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(../../imgui)
|
include_directories(../../imgui)
|
||||||
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
|
|
||||||
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
|
|
||||||
|
|
||||||
include_directories(../../)
|
include_directories(../../)
|
||||||
set(IMGUI_SOURCES
|
set(IMGUI_SOURCES
|
||||||
@@ -38,11 +36,7 @@ ${TABLES_SOURCE}
|
|||||||
set(IMGUI_SOURCES_sdl)
|
set(IMGUI_SOURCES_sdl)
|
||||||
set(IMGUI_LIBRARIES )
|
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)
|
|
||||||
|
|
||||||
add_compile_definitions("IMGUI_IMPL_OPENGL_LOADER_GL3W")
|
add_compile_definitions("IMGUI_IMPL_OPENGL_LOADER_GL3W")
|
||||||
|
|
||||||
@@ -66,47 +60,46 @@ else(WIN32)#Unix
|
|||||||
endif(WIN32)
|
endif(WIN32)
|
||||||
|
|
||||||
|
|
||||||
#sdl2
|
|
||||||
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_sdl2.cpp)
|
list(APPEND IMGUI_SOURCES ${BAKENDS_FOLDER}imgui_impl_sdl2.cpp)
|
||||||
if(DEFINED SDL_PATH)
|
include(FetchContent)
|
||||||
message(STATUS "SDL_PATH defined as " ${SDL_PATH})
|
Set(FETCHCONTENT_QUIET FALSE)
|
||||||
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)
|
FetchContent_Declare(
|
||||||
get_target_property(SDL_INCLUDE SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)
|
SDL2
|
||||||
message(STATUS "sdlinclude is " ${SDL_INCLUDE})
|
GIT_REPOSITORY https://github.com/libsdl-org/SDL.git
|
||||||
if ("${SDL_INCLUDE}" STREQUAL "" OR "${SDL_INCLUDE}" STREQUAL "SDL_INCLUDE-NOTFOUND") #if not found latest SDL2 cmake config use older
|
GIT_TAG release-2.30.12
|
||||||
message(STATUS "sdlinclude2 is " ${SDL2_INCLUDE_DIRS})
|
#GIT_SHALLOW TRUE
|
||||||
include_directories(${SDL2_INCLUDE_DIRS})
|
GIT_PROGRESS TRUE
|
||||||
set(IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES})
|
)
|
||||||
message(STATUS IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES})
|
#FetchContent_MakeAvailable(SDL2)
|
||||||
else()#use new one SDL2 config
|
FetchContent_GetProperties(SDL2)
|
||||||
include_directories(${SDL_INCLUDE})
|
if (NOT sdl2_POPULATED)
|
||||||
set(IMGUI_SDL_LIBRARY SDL2::SDL2)
|
set(FETCHCONTENT_QUIET NO)
|
||||||
set(SDL_MAIN SDL2::SDL2main)
|
FetchContent_Populate(SDL2)
|
||||||
message(STATUS ${SDL_MAIN} ${IMGUI_SDL_LIBRARY})
|
set(SDL_TEST OFF CACHE BOOL "" FORCE)
|
||||||
|
set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE)
|
||||||
|
add_subdirectory(${sdl2_SOURCE_DIR} ${sdl2_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
else(SDL2_FOUND)
|
include_directories(${SDL2_SOURCE_DIR}/include})
|
||||||
if(DEFINED SDL_PATH)
|
|
||||||
message(FATAL_ERROR "Cannot find SDL at SDL_PATH")
|
#if dynamic SDL2 then install
|
||||||
else(DEFINED SDL_PATH)
|
install(TARGETS SDL2 RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
message(FATAL_ERROR "Cannot find SDL. Maybe try specifying SDL_PATH?")
|
LIBRARY DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
endif(DEFINED SDL_PATH)
|
)
|
||||||
endif(SDL2_FOUND)
|
|
||||||
|
|
||||||
add_library(cimgui_sdl SHARED ${IMGUI_SOURCES})
|
add_library(cimgui_sdl SHARED ${IMGUI_SOURCES})
|
||||||
target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} ${IMGUI_SDL_LIBRARY})
|
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
|
||||||
|
if (WIN32)
|
||||||
|
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_IMPL_API=extern \"C\" __declspec\(dllexport\)")
|
||||||
|
else(WIN32)
|
||||||
|
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_IMPL_API=extern \"C\" ")
|
||||||
|
endif(WIN32)
|
||||||
|
target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} SDL2)
|
||||||
|
|
||||||
#using library
|
#using library
|
||||||
include_directories(../../generator/output/)
|
|
||||||
add_executable(test_sdl main.c)
|
add_executable(test_sdl main.c)
|
||||||
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_SDL2)
|
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_OPENGL3 -DCIMGUI_USE_SDL2)
|
||||||
if (MINGW)
|
if (MINGW)
|
||||||
target_link_options(test_sdl PRIVATE "-mconsole")
|
target_link_options(test_sdl PRIVATE "-mconsole")
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(test_sdl ${IMGUI_SDL_LIBRARY} cimgui_sdl)
|
target_link_libraries(test_sdl SDL2 cimgui_sdl)
|
||||||
|
|
||||||
|
2
backend_test/example_sdl_opengl3/README.md
Normal file
2
backend_test/example_sdl_opengl3/README.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
To build use `cmake path_to_example_sdl_opengl3` and then `make install`
|
@@ -18,6 +18,8 @@
|
|||||||
#define igButton igButton_Str
|
#define igButton igButton_Str
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define igGetIO igGetIO_Nil
|
||||||
|
|
||||||
SDL_Window *window = NULL;
|
SDL_Window *window = NULL;
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
|
@@ -18,12 +18,12 @@ else()
|
|||||||
set(TABLES_SOURCE "")
|
set(TABLES_SOURCE "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(../../imgui)
|
include_directories(../../imgui ../../imgui/backends)
|
||||||
add_definitions("-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
|
|
||||||
add_definitions("-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
|
|
||||||
|
|
||||||
include_directories(../../)
|
include_directories(../../)
|
||||||
set(IMGUI_SOURCES ../../cimgui.cpp
|
set(IMGUI_SOURCES ../../cimgui.cpp
|
||||||
|
../../cimgui_impl.cpp
|
||||||
../../imgui/imgui.cpp
|
../../imgui/imgui.cpp
|
||||||
../../imgui/imgui_draw.cpp
|
../../imgui/imgui_draw.cpp
|
||||||
../../imgui/imgui_demo.cpp
|
../../imgui/imgui_demo.cpp
|
||||||
@@ -34,11 +34,6 @@ ${TABLES_SOURCE}
|
|||||||
set(IMGUI_SOURCES_sdl)
|
set(IMGUI_SOURCES_sdl)
|
||||||
set(IMGUI_LIBRARIES )
|
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
|
#optional adding freetype
|
||||||
option(IMGUI_FREETYPE "add Freetype2" OFF)
|
option(IMGUI_FREETYPE "add Freetype2" OFF)
|
||||||
@@ -54,48 +49,52 @@ endif(IMGUI_FREETYPE)
|
|||||||
find_package(Vulkan REQUIRED FATAL_ERROR)
|
find_package(Vulkan REQUIRED FATAL_ERROR)
|
||||||
list(APPEND IMGUI_LIBRARIES Vulkan::Vulkan)
|
list(APPEND IMGUI_LIBRARIES Vulkan::Vulkan)
|
||||||
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_vulkan.cpp)
|
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_vulkan.cpp)
|
||||||
|
include_directories(${Vulkan_INCLUDE_DIRS})
|
||||||
|
|
||||||
#sdl2
|
#sdl2
|
||||||
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_sdl2.cpp)
|
list(APPEND IMGUI_SOURCES ${BACKENDS_FOLDER}imgui_impl_sdl2.cpp)
|
||||||
if(DEFINED SDL_PATH)
|
include(FetchContent)
|
||||||
message(STATUS "SDL_PATH defined as " ${SDL_PATH})
|
Set(FETCHCONTENT_QUIET FALSE)
|
||||||
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)
|
FetchContent_Declare(
|
||||||
get_target_property(SDL_INCLUDE SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)
|
SDL2
|
||||||
message(STATUS "sdlinclude is " ${SDL_INCLUDE})
|
GIT_REPOSITORY https://github.com/libsdl-org/SDL.git
|
||||||
if ("${SDL_INCLUDE}" STREQUAL "" OR "${SDL_INCLUDE}" STREQUAL "SDL_INCLUDE-NOTFOUND") #if not found latest SDL2 cmake config use older
|
GIT_TAG release-2.30.12
|
||||||
message(STATUS "sdlinclude2 is " ${SDL2_INCLUDE_DIRS})
|
#GIT_SHALLOW TRUE
|
||||||
include_directories(${SDL2_INCLUDE_DIRS})
|
GIT_PROGRESS TRUE
|
||||||
set(IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES})
|
)
|
||||||
message(STATUS IMGUI_SDL_LIBRARY ${SDL2_LIBRARIES})
|
FetchContent_GetProperties(SDL2)
|
||||||
else()#use new one SDL2 config
|
if (NOT sdl2_POPULATED)
|
||||||
include_directories(${SDL_INCLUDE})
|
set(FETCHCONTENT_QUIET NO)
|
||||||
set(IMGUI_SDL_LIBRARY SDL2::SDL2)
|
FetchContent_Populate(SDL2)
|
||||||
set(SDL_MAIN SDL2::SDL2main)
|
set(SDL_TEST OFF CACHE BOOL "" FORCE)
|
||||||
message(STATUS ${SDL_MAIN} ${IMGUI_SDL_LIBRARY})
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
||||||
|
add_subdirectory(${sdl2_SOURCE_DIR} ${sdl2_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
else(SDL2_FOUND)
|
include_directories(${SDL2_SOURCE_DIR}/include)
|
||||||
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})
|
#if dynamic SDL2 then install
|
||||||
|
# install(TARGETS SDL2 RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
# LIBRARY DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
# )
|
||||||
|
|
||||||
|
add_library(cimgui_sdl STATIC ${IMGUI_SOURCES})
|
||||||
|
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_USER_CONFIG=\"../cimconfig.h\"")
|
||||||
|
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_DISABLE_OBSOLETE_FUNCTIONS=1")
|
||||||
|
target_compile_definitions(cimgui_sdl PUBLIC -DCIMGUI_USE_VULKAN -DCIMGUI_USE_SDL2)
|
||||||
|
if (WIN32)
|
||||||
|
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_IMPL_API=extern \"C\" __declspec\(dllexport\)")
|
||||||
|
else(WIN32)
|
||||||
|
target_compile_definitions(cimgui_sdl PUBLIC "-DIMGUI_IMPL_API=extern \"C\" ")
|
||||||
|
endif(WIN32)
|
||||||
|
#target_link_libraries(cimgui_sdl ${IMGUI_LIBRARIES} SDL2-static)
|
||||||
|
|
||||||
#using library
|
#using library
|
||||||
include_directories(../../generator/output/)
|
|
||||||
add_executable(test_sdl main.c)
|
add_executable(test_sdl main.c)
|
||||||
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_VULKAN -DCIMGUI_USE_SDL2)
|
target_compile_definitions(test_sdl PUBLIC -DCIMGUI_USE_VULKAN -DCIMGUI_USE_SDL2)
|
||||||
if (MINGW)
|
if (MINGW)
|
||||||
target_link_options(test_sdl PRIVATE "-mconsole")
|
target_link_options(test_sdl PRIVATE "-mconsole")
|
||||||
endif()
|
endif()
|
||||||
target_link_libraries(test_sdl ${IMGUI_SDL_LIBRARY} cimgui_sdl)
|
target_link_libraries(test_sdl SDL2-static cimgui_sdl ${IMGUI_LIBRARIES})
|
||||||
|
|
||||||
|
3
backend_test/example_sdl_vulkan/README.md
Normal file
3
backend_test/example_sdl_vulkan/README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
This example needs vulkan generation before compilation: Vulkan SDK should be installed and then add "vulkan" to generator.bat and generate.
|
||||||
|
|
||||||
|
To build use `cmake path_to_example_sdl_vulkan` and then `make install`
|
@@ -1,13 +1,19 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h> // printf, fprintf
|
||||||
|
#include <stdlib.h> // abort
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#define SDL_MAIN_HANDLED
|
#define SDL_MAIN_HANDLED
|
||||||
#include <SDL.h>
|
#include <SDL.h>
|
||||||
#include <SDL_vulkan.h>
|
#include <SDL_vulkan.h>
|
||||||
#include <vulkan/vulkan.h>
|
#include <vulkan/vulkan.h>
|
||||||
#ifdef _MSC_VER
|
// Volk headers
|
||||||
#include <windows.h>
|
#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
|
||||||
|
#define VOLK_IMPLEMENTATION
|
||||||
|
#include <volk.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//this must be equal to that in imgui_impl_vulkan.h
|
||||||
|
#define IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE (1) // Minimum per atlas
|
||||||
|
|
||||||
#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
#include "cimgui.h"
|
#include "cimgui.h"
|
||||||
#include "cimgui_impl.h"
|
#include "cimgui_impl.h"
|
||||||
@@ -20,10 +26,18 @@
|
|||||||
#define igButton igButton_Str
|
#define igButton igButton_Str
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define igGetIO igGetIO_Nil
|
||||||
|
|
||||||
#define IM_UNUSED(_VAR) ((void)(_VAR))
|
#define IM_UNUSED(_VAR) ((void)(_VAR))
|
||||||
#define IM_ASSERT(_EXPR) assert(_EXPR)
|
#define IM_ASSERT(_EXPR) assert(_EXPR)
|
||||||
#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR) / sizeof(*(_ARR))))
|
#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR) / sizeof(*(_ARR))))
|
||||||
|
|
||||||
|
//#define APP_USE_UNLIMITED_FRAME_RATE
|
||||||
|
#ifdef _DEBUG
|
||||||
|
#define APP_USE_VULKAN_DEBUG_REPORT
|
||||||
|
#endif
|
||||||
|
#define APP_USE_VULKAN_DEBUG_REPORT
|
||||||
|
// Data
|
||||||
static VkAllocationCallbacks* g_Allocator = NULL;
|
static VkAllocationCallbacks* g_Allocator = NULL;
|
||||||
static VkInstance g_Instance = VK_NULL_HANDLE;
|
static VkInstance g_Instance = VK_NULL_HANDLE;
|
||||||
static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE;
|
static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE;
|
||||||
@@ -40,172 +54,188 @@ static bool g_SwapChainRebuild = false;
|
|||||||
|
|
||||||
static void check_vk_result(VkResult err)
|
static void check_vk_result(VkResult err)
|
||||||
{
|
{
|
||||||
if (err == 0)
|
if (err == VK_SUCCESS)
|
||||||
return;
|
return;
|
||||||
fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err);
|
fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
abort();
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef IMGUI_VULKAN_DEBUG_REPORT
|
static void check_vk_result_line(VkResult err,int line)
|
||||||
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;
|
if (err == VK_SUCCESS)
|
||||||
(void)pUserData; (void)pLayerPrefix; // Unused arguments
|
return;
|
||||||
fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n",
|
fprintf(stderr, "[vulkan] Error: VkResult = %d in line: (%d)\n", err, line);
|
||||||
objectType, pMessage);
|
if (err < 0)
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef APP_USE_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;
|
return VK_FALSE;
|
||||||
}
|
}
|
||||||
#endif // IMGUI_VULKAN_DEBUG_REPORT
|
#endif // APP_USE_VULKAN_DEBUG_REPORT
|
||||||
|
//*
|
||||||
|
static bool IsExtensionAvailable(VkExtensionProperties* properties, uint32_t properties_count, const char* extension)
|
||||||
|
{
|
||||||
|
for(uint32_t i = 0 ; i < properties_count; i++){
|
||||||
|
if (strcmp(properties[i].extensionName, extension) == 0)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
static void SetupVulkan(const char** extensions, uint32_t extensions_count)
|
static void SetupVulkan(const char** extensions, uint32_t extensions_count)
|
||||||
{
|
{
|
||||||
VkResult err;
|
VkResult err;
|
||||||
|
#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
|
||||||
// Create Vulkan Instance
|
volkInitialize();
|
||||||
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
|
#endif
|
||||||
|
|
||||||
// Select GPU
|
// Create Vulkan Instance
|
||||||
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;
|
VkInstanceCreateInfo create_info = {};
|
||||||
vkGetPhysicalDeviceProperties(gpus[i], &properties);
|
create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
||||||
if (properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU)
|
|
||||||
|
// Enumerate available extensions
|
||||||
|
uint32_t properties_count;
|
||||||
|
vkEnumerateInstanceExtensionProperties(NULL, &properties_count, NULL);
|
||||||
|
VkExtensionProperties* properties = (VkExtensionProperties*)malloc(properties_count * sizeof(VkExtensionProperties));
|
||||||
|
err = vkEnumerateInstanceExtensionProperties(NULL, &properties_count, properties);
|
||||||
|
check_vk_result_line(err, __LINE__);
|
||||||
|
|
||||||
|
// Enable required extensions
|
||||||
|
if (IsExtensionAvailable(properties, properties_count, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)){
|
||||||
|
//instance_extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
|
||||||
|
extensions_count++;
|
||||||
|
extensions = realloc(extensions, extensions_count * sizeof(char*));
|
||||||
|
assert(extensions);
|
||||||
|
extensions[extensions_count-1] = VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME;
|
||||||
|
}
|
||||||
|
#ifdef VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME
|
||||||
|
if (IsExtensionAvailable(properties, properties_count, VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME))
|
||||||
{
|
{
|
||||||
use_gpu = i;
|
//instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
|
||||||
break;
|
extensions_count++;
|
||||||
|
extensions = realloc(extensions, extensions_count * sizeof(char*));
|
||||||
|
assert(extensions);
|
||||||
|
extensions[extensions_count-1] = VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME;
|
||||||
|
create_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
free(properties);
|
||||||
|
// Enabling validation layers
|
||||||
|
#ifdef APP_USE_VULKAN_DEBUG_REPORT
|
||||||
|
const char* layers[] = { "VK_LAYER_KHRONOS_validation" };
|
||||||
|
create_info.enabledLayerCount = 1;
|
||||||
|
create_info.ppEnabledLayerNames = layers;
|
||||||
|
//instance_extensions.push_back("VK_EXT_debug_report");
|
||||||
|
extensions_count++;
|
||||||
|
extensions = realloc(extensions, extensions_count * sizeof(char*));
|
||||||
|
assert(extensions);
|
||||||
|
extensions[extensions_count-1] = "VK_EXT_debug_report";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Create Vulkan Instance
|
||||||
|
create_info.enabledExtensionCount = extensions_count;//(uint32_t)instance_extensions.Size;
|
||||||
|
create_info.ppEnabledExtensionNames = extensions;//instance_extensions.Data;
|
||||||
|
err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
|
||||||
|
check_vk_result_line(err, __LINE__);
|
||||||
|
#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
|
||||||
|
volkLoadInstance(g_Instance);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Setup the debug report callback
|
||||||
|
#ifdef APP_USE_VULKAN_DEBUG_REPORT
|
||||||
|
PFN_vkCreateDebugReportCallbackEXT f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT");
|
||||||
|
IM_ASSERT(f_vkCreateDebugReportCallbackEXT != NULL);
|
||||||
|
VkDebugReportCallbackCreateInfoEXT debug_report_ci = {};
|
||||||
|
debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
|
||||||
|
debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT;
|
||||||
|
debug_report_ci.pfnCallback = debug_report;
|
||||||
|
debug_report_ci.pUserData = NULL;
|
||||||
|
err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport);
|
||||||
|
check_vk_result_line(err, __LINE__);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
// Select Physical Device (GPU)
|
||||||
g_PhysicalDevice = gpus[use_gpu];
|
g_PhysicalDevice = ImGui_ImplVulkanH_SelectPhysicalDevice(g_Instance);
|
||||||
free(gpus);
|
IM_ASSERT(g_PhysicalDevice != VK_NULL_HANDLE);
|
||||||
|
|
||||||
// Select graphics queue family
|
// Select graphics queue family
|
||||||
uint32_t count;
|
g_QueueFamily = ImGui_ImplVulkanH_SelectQueueFamilyIndex(g_PhysicalDevice);
|
||||||
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);
|
IM_ASSERT(g_QueueFamily != (uint32_t)-1);
|
||||||
|
|
||||||
// Create Logical Device (with 1 queue)
|
// Create Logical Device (with 1 queue)
|
||||||
int device_extension_count = 1;
|
{
|
||||||
const char* device_extensions[] = { "VK_KHR_swapchain" };
|
//ImVector<const char*> device_extensions;
|
||||||
const float queue_priority[] = { 1.0f };
|
//device_extensions.push_back("VK_KHR_swapchain");
|
||||||
VkDeviceQueueCreateInfo queue_info[1] = {
|
uint32_t device_extensions_count = 1;
|
||||||
[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,
|
const char** device_extensions = (const char**)malloc(device_extensions_count * sizeof(char*));
|
||||||
[0].queueFamilyIndex = g_QueueFamily,
|
device_extensions[0] = "VK_KHR_swapchain";
|
||||||
[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
|
// Enumerate physical device extension
|
||||||
VkDescriptorPoolSize pool_sizes[] = {
|
uint32_t properties_count;
|
||||||
{ VK_DESCRIPTOR_TYPE_SAMPLER, 1000 },
|
//ImVector<VkExtensionProperties> properties;
|
||||||
{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1000 },
|
vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, NULL, &properties_count, NULL);
|
||||||
{ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 1000 },
|
//properties.resize(properties_count);
|
||||||
{ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1000 },
|
VkExtensionProperties* properties = (VkExtensionProperties*)malloc(properties_count * sizeof(VkExtensionProperties));
|
||||||
{ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, 1000 },
|
vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, NULL, &properties_count, properties);
|
||||||
{ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, 1000 },
|
#ifdef VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME
|
||||||
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1000 },
|
if (IsExtensionAvailable(properties, properties_count, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME)){
|
||||||
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1000 },
|
//device_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME);
|
||||||
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1000 },
|
device_extensions_count++;
|
||||||
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, 1000 },
|
device_extensions = realloc(device_extensions, device_extensions_count * sizeof(const char*));
|
||||||
{ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1000 }
|
assert(device_extensions);
|
||||||
};
|
device_extensions[device_extensions_count-1] = VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const float queue_priority[] = { 1.0f };
|
||||||
|
VkDeviceQueueCreateInfo queue_info[1] = {};
|
||||||
|
queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
|
||||||
|
queue_info[0].queueFamilyIndex = g_QueueFamily;
|
||||||
|
queue_info[0].queueCount = 1;
|
||||||
|
queue_info[0].pQueuePriorities = queue_priority;
|
||||||
|
VkDeviceCreateInfo create_info = {};
|
||||||
|
create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
|
||||||
|
create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]);
|
||||||
|
create_info.pQueueCreateInfos = queue_info;
|
||||||
|
create_info.enabledExtensionCount = device_extensions_count; //(uint32_t)device_extensions.Size;
|
||||||
|
create_info.ppEnabledExtensionNames = device_extensions;//device_extensions.Data;
|
||||||
|
err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device);
|
||||||
|
check_vk_result_line(err, __LINE__);
|
||||||
|
vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue);
|
||||||
|
}
|
||||||
|
// Create Descriptor Pool
|
||||||
|
// If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets.
|
||||||
|
{
|
||||||
|
VkDescriptorPoolSize pool_sizes[] =
|
||||||
|
{
|
||||||
|
{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE },
|
||||||
|
};
|
||||||
|
VkDescriptorPoolCreateInfo pool_info = {};
|
||||||
|
pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
|
||||||
|
pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
|
||||||
|
pool_info.maxSets = 0;
|
||||||
|
//for (VkDescriptorPoolSize& pool_size : pool_sizes)
|
||||||
|
// pool_info.maxSets += pool_size.descriptorCount;
|
||||||
|
for(int i = 0; i < IM_ARRAYSIZE(pool_sizes); i++){
|
||||||
|
VkDescriptorPoolSize pool_size = pool_sizes[i];
|
||||||
|
pool_info.maxSets += pool_size.descriptorCount;
|
||||||
|
}
|
||||||
|
pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes);
|
||||||
|
pool_info.pPoolSizes = pool_sizes;
|
||||||
|
err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool);
|
||||||
|
check_vk_result_line(err, __LINE__);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//*/
|
||||||
// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo.
|
// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo.
|
||||||
// Your real engine/app may not use them.
|
// Your real engine/app may not use them.
|
||||||
static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface,
|
static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface, int width, int height)
|
||||||
int width, int height)
|
|
||||||
{
|
{
|
||||||
wd->Surface = surface;
|
wd->Surface = surface;
|
||||||
|
|
||||||
@@ -219,43 +249,33 @@ static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Select Surface Format
|
// Select Surface Format
|
||||||
const VkFormat requestSurfaceImageFormat[] = {
|
const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM };
|
||||||
VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM,
|
|
||||||
VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM
|
|
||||||
};
|
|
||||||
const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
|
const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
|
||||||
wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(
|
wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace);
|
||||||
g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat,
|
|
||||||
(size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace);
|
|
||||||
|
|
||||||
// Select Present Mode
|
// Select Present Mode
|
||||||
#ifdef IMGUI_UNLIMITED_FRAME_RATE
|
#ifdef APP_USE_UNLIMITED_FRAME_RATE
|
||||||
VkPresentModeKHR present_modes[] = {
|
VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR };
|
||||||
VK_PRESENT_MODE_MAILBOX_KHR,VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR
|
|
||||||
};
|
|
||||||
#else
|
#else
|
||||||
VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR };
|
VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR };
|
||||||
#endif
|
#endif
|
||||||
wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(
|
wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes));
|
||||||
g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes));
|
//printf("[vulkan] Selected PresentMode = %d\n", wd->PresentMode);
|
||||||
|
|
||||||
// Create SwapChain, RenderPass, Framebuffer, etc.
|
// Create SwapChain, RenderPass, Framebuffer, etc.
|
||||||
IM_ASSERT(g_MinImageCount >= 2);
|
IM_ASSERT(g_MinImageCount >= 2);
|
||||||
ImGui_ImplVulkanH_CreateOrResizeWindow(
|
ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
|
||||||
g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator,
|
|
||||||
width, height, g_MinImageCount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CleanupVulkan()
|
static void CleanupVulkan()
|
||||||
{
|
{
|
||||||
vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator);
|
vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator);
|
||||||
|
|
||||||
#ifdef IMGUI_VULKAN_DEBUG_REPORT
|
#ifdef APP_USE_VULKAN_DEBUG_REPORT
|
||||||
// Remove the debug report callback
|
// Remove the debug report callback
|
||||||
PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT =
|
PFN_vkDestroyDebugReportCallbackEXT f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT");
|
||||||
(PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT");
|
f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator);
|
||||||
vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator);
|
#endif // APP_USE_VULKAN_DEBUG_REPORT
|
||||||
#endif // IMGUI_VULKAN_DEBUG_REPORT
|
|
||||||
|
|
||||||
vkDestroyDevice(g_Device, g_Allocator);
|
vkDestroyDevice(g_Device, g_Allocator);
|
||||||
vkDestroyInstance(g_Instance, g_Allocator);
|
vkDestroyInstance(g_Instance, g_Allocator);
|
||||||
@@ -268,115 +288,125 @@ static void CleanupVulkanWindow()
|
|||||||
|
|
||||||
static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
|
static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
|
||||||
{
|
{
|
||||||
VkResult err;
|
VkSemaphore image_acquired_semaphore = wd->FrameSemaphores.Data[wd->SemaphoreIndex].ImageAcquiredSemaphore;
|
||||||
|
VkSemaphore render_complete_semaphore = wd->FrameSemaphores.Data[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
||||||
VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
|
VkResult err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
|
||||||
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)
|
if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
|
||||||
{
|
|
||||||
g_SwapChainRebuild = true;
|
g_SwapChainRebuild = true;
|
||||||
|
if (err == VK_ERROR_OUT_OF_DATE_KHR)
|
||||||
return;
|
return;
|
||||||
}
|
if (err != VK_SUBOPTIMAL_KHR)
|
||||||
check_vk_result(err);
|
check_vk_result_line(err, __LINE__);
|
||||||
|
|
||||||
ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
|
ImGui_ImplVulkanH_Frame* fd = &wd->Frames.Data[wd->FrameIndex];
|
||||||
|
{
|
||||||
err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking
|
err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking
|
||||||
check_vk_result(err);
|
check_vk_result_line(err, __LINE__);
|
||||||
|
|
||||||
err = vkResetFences(g_Device, 1, &fd->Fence);
|
err = vkResetFences(g_Device, 1, &fd->Fence);
|
||||||
check_vk_result(err);
|
check_vk_result_line(err, __LINE__);
|
||||||
|
}
|
||||||
|
{
|
||||||
err = vkResetCommandPool(g_Device, fd->CommandPool, 0);
|
err = vkResetCommandPool(g_Device, fd->CommandPool, 0);
|
||||||
check_vk_result(err);
|
check_vk_result_line(err, __LINE__);
|
||||||
VkCommandBufferBeginInfo info = {
|
VkCommandBufferBeginInfo info = {};
|
||||||
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
|
||||||
.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
|
info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
|
||||||
};
|
|
||||||
err = vkBeginCommandBuffer(fd->CommandBuffer, &info);
|
err = vkBeginCommandBuffer(fd->CommandBuffer, &info);
|
||||||
check_vk_result(err);
|
check_vk_result_line(err, __LINE__);
|
||||||
VkRenderPassBeginInfo rp_info = {
|
}
|
||||||
.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,
|
{
|
||||||
.renderPass = wd->RenderPass,
|
VkRenderPassBeginInfo info = {};
|
||||||
.framebuffer = fd->Framebuffer,
|
info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
|
||||||
.renderArea.extent.width = wd->Width,
|
info.renderPass = wd->RenderPass;
|
||||||
.renderArea.extent.height = wd->Height,
|
info.framebuffer = fd->Framebuffer;
|
||||||
.clearValueCount = 1,
|
info.renderArea.extent.width = wd->Width;
|
||||||
.pClearValues = &wd->ClearValue,
|
info.renderArea.extent.height = wd->Height;
|
||||||
};
|
info.clearValueCount = 1;
|
||||||
vkCmdBeginRenderPass(fd->CommandBuffer, &rp_info, VK_SUBPASS_CONTENTS_INLINE);
|
info.pClearValues = &wd->ClearValue;
|
||||||
|
vkCmdBeginRenderPass(fd->CommandBuffer, &info, VK_SUBPASS_CONTENTS_INLINE);
|
||||||
|
}
|
||||||
|
|
||||||
// Record dear imgui primitives into command buffer
|
// Record dear imgui primitives into command buffer
|
||||||
ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer, VK_NULL_HANDLE);
|
ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer, VK_NULL_HANDLE);
|
||||||
|
|
||||||
// Submit command buffer
|
// Submit command buffer
|
||||||
vkCmdEndRenderPass(fd->CommandBuffer);
|
vkCmdEndRenderPass(fd->CommandBuffer);
|
||||||
|
{
|
||||||
VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
|
VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
|
||||||
VkSubmitInfo sub_info = {
|
VkSubmitInfo info = {};
|
||||||
.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
|
info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
|
||||||
.waitSemaphoreCount = 1,
|
info.waitSemaphoreCount = 1;
|
||||||
.pWaitSemaphores = &image_acquired_semaphore,
|
info.pWaitSemaphores = &image_acquired_semaphore;
|
||||||
.pWaitDstStageMask = &wait_stage,
|
info.pWaitDstStageMask = &wait_stage;
|
||||||
.commandBufferCount = 1,
|
info.commandBufferCount = 1;
|
||||||
.pCommandBuffers = &fd->CommandBuffer,
|
info.pCommandBuffers = &fd->CommandBuffer;
|
||||||
.signalSemaphoreCount = 1,
|
info.signalSemaphoreCount = 1;
|
||||||
.pSignalSemaphores = &render_complete_semaphore,
|
info.pSignalSemaphores = &render_complete_semaphore;
|
||||||
};
|
|
||||||
|
|
||||||
err = vkEndCommandBuffer(fd->CommandBuffer);
|
err = vkEndCommandBuffer(fd->CommandBuffer);
|
||||||
check_vk_result(err);
|
check_vk_result_line(err, __LINE__);
|
||||||
err = vkQueueSubmit(g_Queue, 1, &sub_info, fd->Fence);
|
err = vkQueueSubmit(g_Queue, 1, &info, fd->Fence);
|
||||||
check_vk_result(err);
|
check_vk_result_line(err, __LINE__);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FramePresent(ImGui_ImplVulkanH_Window* wd)
|
static void FramePresent(ImGui_ImplVulkanH_Window* wd)
|
||||||
{
|
{
|
||||||
if (g_SwapChainRebuild) return;
|
if (g_SwapChainRebuild)
|
||||||
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
return;
|
||||||
VkPresentInfoKHR info = {
|
VkSemaphore render_complete_semaphore = wd->FrameSemaphores.Data[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
||||||
.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR,
|
VkPresentInfoKHR info = {};
|
||||||
.waitSemaphoreCount = 1,
|
info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
|
||||||
.pWaitSemaphores = &render_complete_semaphore,
|
info.waitSemaphoreCount = 1;
|
||||||
.swapchainCount = 1,
|
info.pWaitSemaphores = &render_complete_semaphore;
|
||||||
.pSwapchains = &wd->Swapchain,
|
info.swapchainCount = 1;
|
||||||
.pImageIndices = &wd->FrameIndex,
|
info.pSwapchains = &wd->Swapchain;
|
||||||
};
|
info.pImageIndices = &wd->FrameIndex;
|
||||||
VkResult err = vkQueuePresentKHR(g_Queue, &info);
|
VkResult err = vkQueuePresentKHR(g_Queue, &info);
|
||||||
if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
|
if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
|
||||||
{
|
|
||||||
g_SwapChainRebuild = true;
|
g_SwapChainRebuild = true;
|
||||||
|
if (err == VK_ERROR_OUT_OF_DATE_KHR)
|
||||||
return;
|
return;
|
||||||
}
|
if (err != VK_SUBOPTIMAL_KHR)
|
||||||
check_vk_result(err);
|
check_vk_result_line(err, __LINE__);
|
||||||
wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->ImageCount; // Now we can use the next set of semaphores
|
wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Main code
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
|
//g_MainWindowData.ClearEnable = true;
|
||||||
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
|
//ImGui_ImplVulkanH_Window_Construct(&g_MainWindowData);
|
||||||
SDL_Log("failed to init: %s", SDL_GetError());
|
g_MainWindowData = *ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window();
|
||||||
|
// Setup SDL
|
||||||
|
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0)
|
||||||
|
{
|
||||||
|
printf("Error: %s\n", SDL_GetError());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Setup window
|
// From 2.0.18: Enable native IME.
|
||||||
SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_VULKAN |
|
#ifdef SDL_HINT_IME_SHOW_UI
|
||||||
SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
|
SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");
|
||||||
SDL_Window* window = SDL_CreateWindow("cImGui SDL2+Vulkan example",
|
#endif
|
||||||
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720, window_flags);
|
|
||||||
if (window == NULL) {
|
// Create window with Vulkan graphics context
|
||||||
SDL_Log("Failed to create window: %s", SDL_GetError());
|
SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
|
||||||
|
SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+Vulkan example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720, window_flags);
|
||||||
|
if (window == NULL)
|
||||||
|
{
|
||||||
|
printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup Vulkan
|
// Setup Vulkan
|
||||||
uint32_t extensions_count = 0;
|
uint32_t extensions_count = 0;
|
||||||
SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, NULL);
|
SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, NULL);
|
||||||
const char** extensions = malloc(extensions_count * sizeof(const char*));
|
const char** extensions = (const char**)malloc(extensions_count * sizeof(const char*));
|
||||||
SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, extensions);
|
SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, extensions);
|
||||||
SetupVulkan(extensions, extensions_count);
|
SetupVulkan(extensions, extensions_count);
|
||||||
free(extensions);
|
//leak?? but free crashes
|
||||||
|
// free(extensions);
|
||||||
// Create Window Surface
|
// Create Window Surface
|
||||||
VkSurfaceKHR surface;
|
VkSurfaceKHR surface;
|
||||||
VkResult err;
|
VkResult err;
|
||||||
@@ -392,126 +422,129 @@ int main(int argc, char* argv[])
|
|||||||
ImGui_ImplVulkanH_Window* wd = &g_MainWindowData;
|
ImGui_ImplVulkanH_Window* wd = &g_MainWindowData;
|
||||||
SetupVulkanWindow(wd, surface, w, h);
|
SetupVulkanWindow(wd, surface, w, h);
|
||||||
|
|
||||||
// setup imgui
|
// Setup Dear ImGui context
|
||||||
|
//IMGUI_CHECKVERSION();
|
||||||
igCreateContext(NULL);
|
igCreateContext(NULL);
|
||||||
|
ImGuiIO* io = igGetIO(); (void)io;
|
||||||
|
io->ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
|
||||||
|
io->ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
|
||||||
|
io->ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking
|
||||||
|
io->ConfigFlags |= ImGuiConfigFlags_ViewportsEnable; // Enable Multi-Viewport / Platform Windows
|
||||||
|
//io.ConfigFlags |= ImGuiConfigFlags_ViewportsNoTaskBarIcons;
|
||||||
|
//io.ConfigFlags |= ImGuiConfigFlags_ViewportsNoMerge;
|
||||||
|
|
||||||
//set docking
|
// Setup Dear ImGui style
|
||||||
ImGuiIO* ioptr = igGetIO();
|
igStyleColorsDark(NULL);
|
||||||
ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
|
//ImGui::StyleColorsLight();
|
||||||
//ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
|
|
||||||
|
// When viewports are enabled we tweak WindowRounding/WindowBg so platform windows can look identical to regular ones.
|
||||||
|
ImGuiStyle* style = igGetStyle();
|
||||||
|
if (io->ConfigFlags & ImGuiConfigFlags_ViewportsEnable)
|
||||||
|
{
|
||||||
|
style->WindowRounding = 0.0f;
|
||||||
|
style->Colors[ImGuiCol_WindowBg].w = 1.0f;
|
||||||
|
}
|
||||||
|
|
||||||
// Setup Platform/Renderer backends
|
// Setup Platform/Renderer backends
|
||||||
ImGui_ImplSDL2_InitForVulkan(window);
|
ImGui_ImplSDL2_InitForVulkan(window);
|
||||||
ImGui_ImplVulkan_InitInfo init_info = {
|
ImGui_ImplVulkan_InitInfo init_info = {};
|
||||||
.Instance = g_Instance,
|
init_info.Instance = g_Instance;
|
||||||
.PhysicalDevice = g_PhysicalDevice,
|
init_info.PhysicalDevice = g_PhysicalDevice;
|
||||||
.Device = g_Device,
|
init_info.Device = g_Device;
|
||||||
.QueueFamily = g_QueueFamily,
|
init_info.QueueFamily = g_QueueFamily;
|
||||||
.Queue = g_Queue,
|
init_info.Queue = g_Queue;
|
||||||
.PipelineCache = g_PipelineCache,
|
init_info.PipelineCache = g_PipelineCache;
|
||||||
.DescriptorPool = g_DescriptorPool,
|
init_info.DescriptorPool = g_DescriptorPool;
|
||||||
.Subpass = 0,
|
init_info.RenderPass = wd->RenderPass;
|
||||||
.MinImageCount = g_MinImageCount,
|
init_info.Subpass = 0;
|
||||||
.ImageCount = wd->ImageCount,
|
init_info.MinImageCount = g_MinImageCount;
|
||||||
.MSAASamples = VK_SAMPLE_COUNT_1_BIT,
|
init_info.ImageCount = wd->ImageCount;
|
||||||
.Allocator = g_Allocator,
|
init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
|
||||||
.CheckVkResultFn = check_vk_result
|
init_info.Allocator = g_Allocator;
|
||||||
};
|
init_info.CheckVkResultFn = check_vk_result;
|
||||||
ImGui_ImplVulkan_Init(&init_info, wd->RenderPass);
|
ImGui_ImplVulkan_Init(&init_info);
|
||||||
|
|
||||||
igStyleColorsDark(NULL);
|
// Load Fonts
|
||||||
|
// - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
|
||||||
|
// - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
|
||||||
|
// - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
|
||||||
|
// - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
|
||||||
|
// - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
|
||||||
|
// - Read 'docs/FONTS.md' for more instructions and details.
|
||||||
|
// - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
|
||||||
|
//io.Fonts->AddFontDefault();
|
||||||
|
//io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf", 18.0f);
|
||||||
|
//io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
|
||||||
|
//io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
|
||||||
|
//io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
|
||||||
|
//ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, nullptr, io.Fonts->GetGlyphRangesJapanese());
|
||||||
|
//IM_ASSERT(font != nullptr);
|
||||||
|
|
||||||
// Upload Fonts
|
// Our state
|
||||||
// Use any command queue
|
bool show_demo_window = true;
|
||||||
VkCommandPool command_pool = wd->Frames[wd->FrameIndex].CommandPool;
|
bool show_another_window = false;
|
||||||
VkCommandBuffer command_buffer = wd->Frames[wd->FrameIndex].CommandBuffer;
|
ImVec4 clear_color;
|
||||||
|
clear_color.x = 0.45f;
|
||||||
|
clear_color.y = 0.55f;
|
||||||
|
clear_color.z = 0.60f;
|
||||||
|
clear_color.w = 1.00f;
|
||||||
|
|
||||||
err = vkResetCommandPool(g_Device, command_pool, 0);
|
// Main loop
|
||||||
check_vk_result(err);
|
bool done = false;
|
||||||
VkCommandBufferBeginInfo begin_info = {
|
while (!done)
|
||||||
.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;
|
// Poll and handle events (inputs, window resize, etc.)
|
||||||
|
// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
|
||||||
// we need to call SDL_PollEvent to let window rendered, otherwise
|
// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
|
||||||
// no window will be shown
|
// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
|
||||||
while (SDL_PollEvent(&e) != 0)
|
// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
|
||||||
|
SDL_Event event;
|
||||||
|
while (SDL_PollEvent(&event))
|
||||||
{
|
{
|
||||||
ImGui_ImplSDL2_ProcessEvent(&e);
|
ImGui_ImplSDL2_ProcessEvent(&event);
|
||||||
if (e.type == SDL_QUIT)
|
if (event.type == SDL_QUIT)
|
||||||
quit = true;
|
done = true;
|
||||||
if (e.type == SDL_WINDOWEVENT && e.window.event == SDL_WINDOWEVENT_CLOSE &&
|
if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window))
|
||||||
e.window.windowID == SDL_GetWindowID(window))
|
done = true;
|
||||||
quit = true;
|
}
|
||||||
|
if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
|
||||||
|
{
|
||||||
|
SDL_Delay(10);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resize swap chain
|
// Resize swap chain?
|
||||||
if (g_SwapChainRebuild)
|
int fb_width, fb_height;
|
||||||
{
|
SDL_GetWindowSize(window, &fb_width, &fb_height);
|
||||||
int width, height;
|
if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height))
|
||||||
SDL_GetWindowSize(window, &width, &height);
|
|
||||||
if (width > 0 && height > 0)
|
|
||||||
{
|
{
|
||||||
ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
|
ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
|
||||||
ImGui_ImplVulkanH_CreateOrResizeWindow(
|
ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount);
|
||||||
g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData,
|
|
||||||
g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
|
|
||||||
g_MainWindowData.FrameIndex = 0;
|
g_MainWindowData.FrameIndex = 0;
|
||||||
g_SwapChainRebuild = false;
|
g_SwapChainRebuild = false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// start imgui frame
|
// Start the Dear ImGui frame
|
||||||
ImGui_ImplVulkan_NewFrame();
|
ImGui_ImplVulkan_NewFrame();
|
||||||
ImGui_ImplSDL2_NewFrame();
|
ImGui_ImplSDL2_NewFrame();
|
||||||
igNewFrame();
|
igNewFrame();
|
||||||
|
|
||||||
if (showDemoWindow)
|
// 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
|
||||||
igShowDemoWindow(&showDemoWindow);
|
if (show_demo_window)
|
||||||
|
igShowDemoWindow(&show_demo_window);
|
||||||
|
|
||||||
// show a simple window that we created ourselves.
|
// 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
|
||||||
{
|
{
|
||||||
static float f = 0.0f;
|
static float f = 0.0f;
|
||||||
static int counter = 0;
|
static int counter = 0;
|
||||||
|
|
||||||
igBegin("Hello, world!", NULL, 0);
|
igBegin("Hello, world!", NULL, 0);
|
||||||
igText("This is some useful text");
|
igText("This is some useful text");
|
||||||
igCheckbox("Demo window", &showDemoWindow);
|
igCheckbox("Demo window", &show_demo_window);
|
||||||
igCheckbox("Another window", &showAnotherWindow);
|
igCheckbox("Another window", &show_another_window);
|
||||||
|
|
||||||
igSliderFloat("Float", &f, 0.0f, 1.0f, "%.3f", 0);
|
igSliderFloat("Float", &f, 0.0f, 1.0f, "%.3f", 0);
|
||||||
igColorEdit3("clear color", (float*)&clearColor, 0);
|
igColorEdit3("clear color", (float*)&clear_color, 0);
|
||||||
|
|
||||||
ImVec2 buttonSize;
|
ImVec2 buttonSize;
|
||||||
buttonSize.x = 0;
|
buttonSize.x = 0;
|
||||||
@@ -526,37 +559,46 @@ int main(int argc, char* argv[])
|
|||||||
igEnd();
|
igEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (showAnotherWindow)
|
// 3. Show another simple window.
|
||||||
|
if (show_another_window)
|
||||||
{
|
{
|
||||||
igBegin("imgui Another Window", &showAnotherWindow, 0);
|
igBegin("imgui Another Window", &show_another_window, 0);
|
||||||
igText("Hello from imgui");
|
igText("Hello from imgui");
|
||||||
ImVec2 buttonSize;
|
ImVec2 buttonSize;
|
||||||
buttonSize.x = 0; buttonSize.y = 0;
|
buttonSize.x = 0; buttonSize.y = 0;
|
||||||
if (igButton("Close me", buttonSize))
|
if (igButton("Close me", buttonSize))
|
||||||
{
|
{
|
||||||
showAnotherWindow = false;
|
show_another_window = false;
|
||||||
}
|
}
|
||||||
igEnd();
|
igEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
// render
|
// Rendering
|
||||||
igRender();
|
igRender();
|
||||||
ImDrawData* draw_data = igGetDrawData();
|
ImDrawData* main_draw_data = igGetDrawData();
|
||||||
const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f);
|
const bool main_is_minimized = (main_draw_data->DisplaySize.x <= 0.0f || main_draw_data->DisplaySize.y <= 0.0f);
|
||||||
if (!is_minimized)
|
wd->ClearValue.color.float32[0] = clear_color.x * clear_color.w;
|
||||||
|
wd->ClearValue.color.float32[1] = clear_color.y * clear_color.w;
|
||||||
|
wd->ClearValue.color.float32[2] = clear_color.z * clear_color.w;
|
||||||
|
wd->ClearValue.color.float32[3] = clear_color.w;
|
||||||
|
if (!main_is_minimized)
|
||||||
|
FrameRender(wd, main_draw_data);
|
||||||
|
|
||||||
|
// Update and Render additional Platform Windows
|
||||||
|
if (io->ConfigFlags & ImGuiConfigFlags_ViewportsEnable)
|
||||||
{
|
{
|
||||||
wd->ClearValue.color.float32[0] = clearColor.x * clearColor.w;
|
igUpdatePlatformWindows();
|
||||||
wd->ClearValue.color.float32[1] = clearColor.y * clearColor.w;
|
igRenderPlatformWindowsDefault(NULL, NULL);
|
||||||
wd->ClearValue.color.float32[2] = clearColor.z * clearColor.w;
|
|
||||||
wd->ClearValue.color.float32[3] = clearColor.w;
|
|
||||||
FrameRender(wd, draw_data);
|
|
||||||
FramePresent(wd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Present Main Platform Window
|
||||||
|
if (!main_is_minimized)
|
||||||
|
FramePresent(wd);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cleanup
|
// Cleanup
|
||||||
err = vkDeviceWaitIdle(g_Device);
|
err = vkDeviceWaitIdle(g_Device);
|
||||||
check_vk_result(err);
|
check_vk_result_line(err, __LINE__);
|
||||||
ImGui_ImplVulkan_Shutdown();
|
ImGui_ImplVulkan_Shutdown();
|
||||||
ImGui_ImplSDL2_Shutdown();
|
ImGui_ImplSDL2_Shutdown();
|
||||||
igDestroyContext(NULL);
|
igDestroyContext(NULL);
|
||||||
|
100
cimgui.cpp
100
cimgui.cpp
@@ -1,5 +1,5 @@
|
|||||||
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
|
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
|
||||||
//based on imgui.h file version "1.91.6" 19160 from Dear ImGui https://github.com/ocornut/imgui
|
//based on imgui.h file version "1.91.9b" 19191 from Dear ImGui https://github.com/ocornut/imgui
|
||||||
//with imgui_internal.h api
|
//with imgui_internal.h api
|
||||||
//with imgui_freetype.h api
|
//with imgui_freetype.h api
|
||||||
//docking branch
|
//docking branch
|
||||||
@@ -53,11 +53,11 @@ CIMGUI_API void igSetCurrentContext(ImGuiContext* ctx)
|
|||||||
{
|
{
|
||||||
return ImGui::SetCurrentContext(ctx);
|
return ImGui::SetCurrentContext(ctx);
|
||||||
}
|
}
|
||||||
CIMGUI_API ImGuiIO* igGetIO()
|
CIMGUI_API ImGuiIO* igGetIO_Nil()
|
||||||
{
|
{
|
||||||
return &ImGui::GetIO();
|
return &ImGui::GetIO();
|
||||||
}
|
}
|
||||||
CIMGUI_API ImGuiPlatformIO* igGetPlatformIO()
|
CIMGUI_API ImGuiPlatformIO* igGetPlatformIO_Nil()
|
||||||
{
|
{
|
||||||
return &ImGui::GetPlatformIO();
|
return &ImGui::GetPlatformIO();
|
||||||
}
|
}
|
||||||
@@ -667,9 +667,13 @@ CIMGUI_API void igTextLinkOpenURL(const char* label,const char* url)
|
|||||||
{
|
{
|
||||||
return ImGui::TextLinkOpenURL(label,url);
|
return ImGui::TextLinkOpenURL(label,url);
|
||||||
}
|
}
|
||||||
CIMGUI_API void igImage(ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 tint_col,const ImVec4 border_col)
|
CIMGUI_API void igImage(ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1)
|
||||||
{
|
{
|
||||||
return ImGui::Image(user_texture_id,image_size,uv0,uv1,tint_col,border_col);
|
return ImGui::Image(user_texture_id,image_size,uv0,uv1);
|
||||||
|
}
|
||||||
|
CIMGUI_API void igImageWithBg(ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col)
|
||||||
|
{
|
||||||
|
return ImGui::ImageWithBg(user_texture_id,image_size,uv0,uv1,bg_col,tint_col);
|
||||||
}
|
}
|
||||||
CIMGUI_API bool igImageButton(const char* str_id,ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col)
|
CIMGUI_API bool igImageButton(const char* str_id,ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col)
|
||||||
{
|
{
|
||||||
@@ -1577,6 +1581,10 @@ CIMGUI_API bool igIsMouseDoubleClicked_Nil(ImGuiMouseButton button)
|
|||||||
{
|
{
|
||||||
return ImGui::IsMouseDoubleClicked(button);
|
return ImGui::IsMouseDoubleClicked(button);
|
||||||
}
|
}
|
||||||
|
CIMGUI_API bool igIsMouseReleasedWithDelay(ImGuiMouseButton button,float delay)
|
||||||
|
{
|
||||||
|
return ImGui::IsMouseReleasedWithDelay(button,delay);
|
||||||
|
}
|
||||||
CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button)
|
CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button)
|
||||||
{
|
{
|
||||||
return ImGui::GetMouseClickedCount(button);
|
return ImGui::GetMouseClickedCount(button);
|
||||||
@@ -1956,6 +1964,10 @@ CIMGUI_API void ImGuiTextBuffer_clear(ImGuiTextBuffer* self)
|
|||||||
{
|
{
|
||||||
return self->clear();
|
return self->clear();
|
||||||
}
|
}
|
||||||
|
CIMGUI_API void ImGuiTextBuffer_resize(ImGuiTextBuffer* self,int size)
|
||||||
|
{
|
||||||
|
return self->resize(size);
|
||||||
|
}
|
||||||
CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity)
|
CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity)
|
||||||
{
|
{
|
||||||
return self->reserve(capacity);
|
return self->reserve(capacity);
|
||||||
@@ -2596,14 +2608,14 @@ CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self)
|
|||||||
{
|
{
|
||||||
return self->ClearInputData();
|
return self->ClearInputData();
|
||||||
}
|
}
|
||||||
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self)
|
|
||||||
{
|
|
||||||
return self->ClearTexData();
|
|
||||||
}
|
|
||||||
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self)
|
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self)
|
||||||
{
|
{
|
||||||
return self->ClearFonts();
|
return self->ClearFonts();
|
||||||
}
|
}
|
||||||
|
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self)
|
||||||
|
{
|
||||||
|
return self->ClearTexData();
|
||||||
|
}
|
||||||
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self)
|
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self)
|
||||||
{
|
{
|
||||||
return self->Clear();
|
return self->Clear();
|
||||||
@@ -2680,10 +2692,6 @@ CIMGUI_API void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self,const ImFontAtlas
|
|||||||
{
|
{
|
||||||
return self->CalcCustomRectUV(rect,out_uv_min,out_uv_max);
|
return self->CalcCustomRectUV(rect,out_uv_min,out_uv_max);
|
||||||
}
|
}
|
||||||
CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCursor cursor,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2])
|
|
||||||
{
|
|
||||||
return self->GetMouseCursorTexData(cursor,out_offset,out_size,out_uv_border,out_uv_fill);
|
|
||||||
}
|
|
||||||
CIMGUI_API ImFont* ImFont_ImFont(void)
|
CIMGUI_API ImFont* ImFont_ImFont(void)
|
||||||
{
|
{
|
||||||
return IM_NEW(ImFont)();
|
return IM_NEW(ImFont)();
|
||||||
@@ -2692,11 +2700,11 @@ CIMGUI_API void ImFont_destroy(ImFont* self)
|
|||||||
{
|
{
|
||||||
IM_DELETE(self);
|
IM_DELETE(self);
|
||||||
}
|
}
|
||||||
CIMGUI_API const ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c)
|
CIMGUI_API ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c)
|
||||||
{
|
{
|
||||||
return self->FindGlyph(c);
|
return self->FindGlyph(c);
|
||||||
}
|
}
|
||||||
CIMGUI_API const ImFontGlyph* ImFont_FindGlyphNoFallback(ImFont* self,ImWchar c)
|
CIMGUI_API ImFontGlyph* ImFont_FindGlyphNoFallback(ImFont* self,ImWchar c)
|
||||||
{
|
{
|
||||||
return self->FindGlyphNoFallback(c);
|
return self->FindGlyphNoFallback(c);
|
||||||
}
|
}
|
||||||
@@ -2748,10 +2756,6 @@ CIMGUI_API void ImFont_AddRemapChar(ImFont* self,ImWchar dst,ImWchar src,bool ov
|
|||||||
{
|
{
|
||||||
return self->AddRemapChar(dst,src,overwrite_dst);
|
return self->AddRemapChar(dst,src,overwrite_dst);
|
||||||
}
|
}
|
||||||
CIMGUI_API void ImFont_SetGlyphVisible(ImFont* self,ImWchar c,bool visible)
|
|
||||||
{
|
|
||||||
return self->SetGlyphVisible(c,visible);
|
|
||||||
}
|
|
||||||
CIMGUI_API bool ImFont_IsGlyphRangeUnused(ImFont* self,unsigned int c_begin,unsigned int c_last)
|
CIMGUI_API bool ImFont_IsGlyphRangeUnused(ImFont* self,unsigned int c_begin,unsigned int c_last)
|
||||||
{
|
{
|
||||||
return self->IsGlyphRangeUnused(c_begin,c_last);
|
return self->IsGlyphRangeUnused(c_begin,c_last);
|
||||||
@@ -2824,6 +2828,10 @@ CIMGUI_API int igImUpperPowerOfTwo(int v)
|
|||||||
{
|
{
|
||||||
return ImUpperPowerOfTwo(v);
|
return ImUpperPowerOfTwo(v);
|
||||||
}
|
}
|
||||||
|
CIMGUI_API unsigned int igImCountSetBits(unsigned int v)
|
||||||
|
{
|
||||||
|
return ImCountSetBits(v);
|
||||||
|
}
|
||||||
CIMGUI_API int igImStricmp(const char* str1,const char* str2)
|
CIMGUI_API int igImStricmp(const char* str1,const char* str2)
|
||||||
{
|
{
|
||||||
return ImStricmp(str1,str2);
|
return ImStricmp(str1,str2);
|
||||||
@@ -3403,7 +3411,7 @@ CIMGUI_API void ImDrawDataBuilder_destroy(ImDrawDataBuilder* self)
|
|||||||
{
|
{
|
||||||
IM_DELETE(self);
|
IM_DELETE(self);
|
||||||
}
|
}
|
||||||
CIMGUI_API void* ImGuiDataVarInfo_GetVarPtr(ImGuiDataVarInfo* self,void* parent)
|
CIMGUI_API void* ImGuiStyleVarInfo_GetVarPtr(ImGuiStyleVarInfo* self,void* parent)
|
||||||
{
|
{
|
||||||
return self->GetVarPtr(parent);
|
return self->GetVarPtr(parent);
|
||||||
}
|
}
|
||||||
@@ -3991,13 +3999,13 @@ CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiT
|
|||||||
{
|
{
|
||||||
return self->GetColumnSettings();
|
return self->GetColumnSettings();
|
||||||
}
|
}
|
||||||
CIMGUI_API ImGuiIO* igGetIOEx(ImGuiContext* ctx)
|
CIMGUI_API ImGuiIO* igGetIO_ContextPtr(ImGuiContext* ctx)
|
||||||
{
|
{
|
||||||
return &ImGui::GetIOEx(ctx);
|
return &ImGui::GetIO(ctx);
|
||||||
}
|
}
|
||||||
CIMGUI_API ImGuiPlatformIO* igGetPlatformIOEx(ImGuiContext* ctx)
|
CIMGUI_API ImGuiPlatformIO* igGetPlatformIO_ContextPtr(ImGuiContext* ctx)
|
||||||
{
|
{
|
||||||
return &ImGui::GetPlatformIOEx(ctx);
|
return &ImGui::GetPlatformIO(ctx);
|
||||||
}
|
}
|
||||||
CIMGUI_API ImGuiWindow* igGetCurrentWindowRead()
|
CIMGUI_API ImGuiWindow* igGetCurrentWindowRead()
|
||||||
{
|
{
|
||||||
@@ -4127,6 +4135,10 @@ CIMGUI_API ImFont* igGetDefaultFont()
|
|||||||
{
|
{
|
||||||
return ImGui::GetDefaultFont();
|
return ImGui::GetDefaultFont();
|
||||||
}
|
}
|
||||||
|
CIMGUI_API void igPushPasswordFont()
|
||||||
|
{
|
||||||
|
return ImGui::PushPasswordFont();
|
||||||
|
}
|
||||||
CIMGUI_API ImDrawList* igGetForegroundDrawList_WindowPtr(ImGuiWindow* window)
|
CIMGUI_API ImDrawList* igGetForegroundDrawList_WindowPtr(ImGuiWindow* window)
|
||||||
{
|
{
|
||||||
return ImGui::GetForegroundDrawList(window);
|
return ImGui::GetForegroundDrawList(window);
|
||||||
@@ -4371,9 +4383,9 @@ CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id)
|
|||||||
{
|
{
|
||||||
return ImGui::IsClippedEx(bb,id);
|
return ImGui::IsClippedEx(bb,id);
|
||||||
}
|
}
|
||||||
CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags in_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect)
|
CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags item_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect)
|
||||||
{
|
{
|
||||||
return ImGui::SetLastItemData(item_id,in_flags,status_flags,item_rect);
|
return ImGui::SetLastItemData(item_id,item_flags,status_flags,item_rect);
|
||||||
}
|
}
|
||||||
CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h)
|
CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h)
|
||||||
{
|
{
|
||||||
@@ -4391,7 +4403,7 @@ CIMGUI_API void igShrinkWidths(ImGuiShrinkWidthItem* items,int count,float width
|
|||||||
{
|
{
|
||||||
return ImGui::ShrinkWidths(items,count,width_excess);
|
return ImGui::ShrinkWidths(items,count,width_excess);
|
||||||
}
|
}
|
||||||
CIMGUI_API const ImGuiDataVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx)
|
CIMGUI_API const ImGuiStyleVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx)
|
||||||
{
|
{
|
||||||
return ImGui::GetStyleVarInfo(idx);
|
return ImGui::GetStyleVarInfo(idx);
|
||||||
}
|
}
|
||||||
@@ -4427,6 +4439,10 @@ CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_window_flags)
|
|||||||
{
|
{
|
||||||
return ImGui::BeginPopupEx(id,extra_window_flags);
|
return ImGui::BeginPopupEx(id,extra_window_flags);
|
||||||
}
|
}
|
||||||
|
CIMGUI_API bool igBeginPopupMenuEx(ImGuiID id,const char* label,ImGuiWindowFlags extra_window_flags)
|
||||||
|
{
|
||||||
|
return ImGui::BeginPopupMenuEx(id,label,extra_window_flags);
|
||||||
|
}
|
||||||
CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags)
|
CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags)
|
||||||
{
|
{
|
||||||
return ImGui::OpenPopupEx(id,popup_flags);
|
return ImGui::OpenPopupEx(id,popup_flags);
|
||||||
@@ -5295,6 +5311,10 @@ CIMGUI_API bool igTabItemEx(ImGuiTabBar* tab_bar,const char* label,bool* p_open,
|
|||||||
{
|
{
|
||||||
return ImGui::TabItemEx(tab_bar,label,p_open,flags,docked_window);
|
return ImGui::TabItemEx(tab_bar,label,p_open,flags,docked_window);
|
||||||
}
|
}
|
||||||
|
CIMGUI_API void igTabItemSpacing(const char* str_id,ImGuiTabItemFlags flags,float width)
|
||||||
|
{
|
||||||
|
return ImGui::TabItemSpacing(str_id,flags,width);
|
||||||
|
}
|
||||||
CIMGUI_API void igTabItemCalcSize_Str(ImVec2 *pOut,const char* label,bool has_close_button_or_unsaved_marker)
|
CIMGUI_API void igTabItemCalcSize_Str(ImVec2 *pOut,const char* label,bool has_close_button_or_unsaved_marker)
|
||||||
{
|
{
|
||||||
*pOut = ImGui::TabItemCalcSize(label,has_close_button_or_unsaved_marker);
|
*pOut = ImGui::TabItemCalcSize(label,has_close_button_or_unsaved_marker);
|
||||||
@@ -5543,6 +5563,10 @@ CIMGUI_API void igSetNextItemRefVal(ImGuiDataType data_type,void* p_data)
|
|||||||
{
|
{
|
||||||
return ImGui::SetNextItemRefVal(data_type,p_data);
|
return ImGui::SetNextItemRefVal(data_type,p_data);
|
||||||
}
|
}
|
||||||
|
CIMGUI_API bool igIsItemActiveAsInputText()
|
||||||
|
{
|
||||||
|
return ImGui::IsItemActiveAsInputText();
|
||||||
|
}
|
||||||
CIMGUI_API void igColorTooltip(const char* text,const float* col,ImGuiColorEditFlags flags)
|
CIMGUI_API void igColorTooltip(const char* text,const float* col,ImGuiColorEditFlags flags)
|
||||||
{
|
{
|
||||||
return ImGui::ColorTooltip(text,col,flags);
|
return ImGui::ColorTooltip(text,col,flags);
|
||||||
@@ -5755,17 +5779,17 @@ CIMGUI_API const ImFontBuilderIO* igImFontAtlasGetBuilderForStbTruetype()
|
|||||||
{
|
{
|
||||||
return ImFontAtlasGetBuilderForStbTruetype();
|
return ImFontAtlasGetBuilderForStbTruetype();
|
||||||
}
|
}
|
||||||
CIMGUI_API void igImFontAtlasUpdateConfigDataPointers(ImFontAtlas* atlas)
|
CIMGUI_API void igImFontAtlasUpdateSourcesPointers(ImFontAtlas* atlas)
|
||||||
{
|
{
|
||||||
return ImFontAtlasUpdateConfigDataPointers(atlas);
|
return ImFontAtlasUpdateSourcesPointers(atlas);
|
||||||
}
|
}
|
||||||
CIMGUI_API void igImFontAtlasBuildInit(ImFontAtlas* atlas)
|
CIMGUI_API void igImFontAtlasBuildInit(ImFontAtlas* atlas)
|
||||||
{
|
{
|
||||||
return ImFontAtlasBuildInit(atlas);
|
return ImFontAtlasBuildInit(atlas);
|
||||||
}
|
}
|
||||||
CIMGUI_API void igImFontAtlasBuildSetupFont(ImFontAtlas* atlas,ImFont* font,ImFontConfig* font_config,float ascent,float descent)
|
CIMGUI_API void igImFontAtlasBuildSetupFont(ImFontAtlas* atlas,ImFont* font,ImFontConfig* src,float ascent,float descent)
|
||||||
{
|
{
|
||||||
return ImFontAtlasBuildSetupFont(atlas,font,font_config,ascent,descent);
|
return ImFontAtlasBuildSetupFont(atlas,font,src,ascent,descent);
|
||||||
}
|
}
|
||||||
CIMGUI_API void igImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas,void* stbrp_context_opaque)
|
CIMGUI_API void igImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas,void* stbrp_context_opaque)
|
||||||
{
|
{
|
||||||
@@ -5791,6 +5815,14 @@ CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[2
|
|||||||
{
|
{
|
||||||
return ImFontAtlasBuildMultiplyRectAlpha8(table,pixels,x,y,w,h,stride);
|
return ImFontAtlasBuildMultiplyRectAlpha8(table,pixels,x,y,w,h,stride);
|
||||||
}
|
}
|
||||||
|
CIMGUI_API void igImFontAtlasBuildGetOversampleFactors(const ImFontConfig* src,int* out_oversample_h,int* out_oversample_v)
|
||||||
|
{
|
||||||
|
return ImFontAtlasBuildGetOversampleFactors(src,out_oversample_h,out_oversample_v);
|
||||||
|
}
|
||||||
|
CIMGUI_API bool igImFontAtlasGetMouseCursorTexData(ImFontAtlas* atlas,ImGuiMouseCursor cursor_type,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2])
|
||||||
|
{
|
||||||
|
return ImFontAtlasGetMouseCursorTexData(atlas,cursor_type,out_offset,out_size,out_uv_border,out_uv_fill);
|
||||||
|
}
|
||||||
#ifdef IMGUI_ENABLE_FREETYPE
|
#ifdef IMGUI_ENABLE_FREETYPE
|
||||||
CIMGUI_API const ImFontBuilderIO* ImGuiFreeType_GetBuilderForFreeType()
|
CIMGUI_API const ImFontBuilderIO* ImGuiFreeType_GetBuilderForFreeType()
|
||||||
{
|
{
|
||||||
@@ -5807,7 +5839,7 @@ CIMGUI_API void ImGuiFreeType_SetAllocatorFunctions(void*(*alloc_func)(size_t sz
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////manual written functions
|
/////////////////////////////manual written functions
|
||||||
CIMGUI_API void igLogText(CONST char *fmt, ...)
|
CIMGUI_API void igLogText(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
char buffer[256];
|
char buffer[256];
|
||||||
va_list args;
|
va_list args;
|
||||||
@@ -5817,11 +5849,11 @@ CIMGUI_API void igLogText(CONST char *fmt, ...)
|
|||||||
|
|
||||||
ImGui::LogText("%s", buffer);
|
ImGui::LogText("%s", buffer);
|
||||||
}
|
}
|
||||||
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...)
|
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
buffer->appendfv(fmt, args);
|
self->appendfv(fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
272
cimgui.h
272
cimgui.h
@@ -1,5 +1,5 @@
|
|||||||
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
|
//This file is automatically generated by generator.lua from https://github.com/cimgui/cimgui
|
||||||
//based on imgui.h file version "1.91.6" 19160 from Dear ImGui https://github.com/ocornut/imgui
|
//based on imgui.h file version "1.91.9b" 19191 from Dear ImGui https://github.com/ocornut/imgui
|
||||||
//with imgui_internal.h api
|
//with imgui_internal.h api
|
||||||
//with imgui_freetype.h api
|
//with imgui_freetype.h api
|
||||||
//docking branch
|
//docking branch
|
||||||
@@ -82,12 +82,13 @@ typedef struct ImGuiViewport ImGuiViewport;
|
|||||||
typedef struct ImGuiWindowClass ImGuiWindowClass;
|
typedef struct ImGuiWindowClass ImGuiWindowClass;
|
||||||
typedef struct ImBitVector ImBitVector;
|
typedef struct ImBitVector ImBitVector;
|
||||||
typedef struct ImRect ImRect;
|
typedef struct ImRect ImRect;
|
||||||
|
typedef struct ImGuiTextIndex ImGuiTextIndex;
|
||||||
typedef struct ImDrawDataBuilder ImDrawDataBuilder;
|
typedef struct ImDrawDataBuilder ImDrawDataBuilder;
|
||||||
typedef struct ImGuiBoxSelectState ImGuiBoxSelectState;
|
typedef struct ImGuiBoxSelectState ImGuiBoxSelectState;
|
||||||
typedef struct ImGuiColorMod ImGuiColorMod;
|
typedef struct ImGuiColorMod ImGuiColorMod;
|
||||||
typedef struct ImGuiContextHook ImGuiContextHook;
|
typedef struct ImGuiContextHook ImGuiContextHook;
|
||||||
typedef struct ImGuiDataVarInfo ImGuiDataVarInfo;
|
|
||||||
typedef struct ImGuiDataTypeInfo ImGuiDataTypeInfo;
|
typedef struct ImGuiDataTypeInfo ImGuiDataTypeInfo;
|
||||||
|
typedef struct ImGuiDeactivatedItemData ImGuiDeactivatedItemData;
|
||||||
typedef struct ImGuiDockContext ImGuiDockContext;
|
typedef struct ImGuiDockContext ImGuiDockContext;
|
||||||
typedef struct ImGuiDockRequest ImGuiDockRequest;
|
typedef struct ImGuiDockRequest ImGuiDockRequest;
|
||||||
typedef struct ImGuiDockNode ImGuiDockNode;
|
typedef struct ImGuiDockNode ImGuiDockNode;
|
||||||
@@ -110,6 +111,7 @@ typedef struct ImGuiOldColumns ImGuiOldColumns;
|
|||||||
typedef struct ImGuiPopupData ImGuiPopupData;
|
typedef struct ImGuiPopupData ImGuiPopupData;
|
||||||
typedef struct ImGuiSettingsHandler ImGuiSettingsHandler;
|
typedef struct ImGuiSettingsHandler ImGuiSettingsHandler;
|
||||||
typedef struct ImGuiStyleMod ImGuiStyleMod;
|
typedef struct ImGuiStyleMod ImGuiStyleMod;
|
||||||
|
typedef struct ImGuiStyleVarInfo ImGuiStyleVarInfo;
|
||||||
typedef struct ImGuiTabBar ImGuiTabBar;
|
typedef struct ImGuiTabBar ImGuiTabBar;
|
||||||
typedef struct ImGuiTabItem ImGuiTabItem;
|
typedef struct ImGuiTabItem ImGuiTabItem;
|
||||||
typedef struct ImGuiTable ImGuiTable;
|
typedef struct ImGuiTable ImGuiTable;
|
||||||
@@ -212,8 +214,6 @@ typedef int ImGuiTableRowFlags;
|
|||||||
typedef int ImGuiTreeNodeFlags;
|
typedef int ImGuiTreeNodeFlags;
|
||||||
typedef int ImGuiViewportFlags;
|
typedef int ImGuiViewportFlags;
|
||||||
typedef int ImGuiWindowFlags;
|
typedef int ImGuiWindowFlags;
|
||||||
typedef ImU64 ImTextureID;
|
|
||||||
typedef unsigned short ImDrawIdx;
|
|
||||||
typedef unsigned int ImWchar32;
|
typedef unsigned int ImWchar32;
|
||||||
typedef unsigned short ImWchar16;
|
typedef unsigned short ImWchar16;
|
||||||
|
|
||||||
@@ -243,6 +243,7 @@ struct ImVec4
|
|||||||
{
|
{
|
||||||
float x, y, z, w;
|
float x, y, z, w;
|
||||||
};
|
};
|
||||||
|
typedef ImU64 ImTextureID;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ImGuiWindowFlags_None = 0,
|
ImGuiWindowFlags_None = 0,
|
||||||
ImGuiWindowFlags_NoTitleBar = 1 << 0,
|
ImGuiWindowFlags_NoTitleBar = 1 << 0,
|
||||||
@@ -268,12 +269,12 @@ typedef enum {
|
|||||||
ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
|
ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
|
||||||
ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse,
|
ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse,
|
||||||
ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
|
ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus,
|
||||||
|
ImGuiWindowFlags_DockNodeHost = 1 << 23,
|
||||||
ImGuiWindowFlags_ChildWindow = 1 << 24,
|
ImGuiWindowFlags_ChildWindow = 1 << 24,
|
||||||
ImGuiWindowFlags_Tooltip = 1 << 25,
|
ImGuiWindowFlags_Tooltip = 1 << 25,
|
||||||
ImGuiWindowFlags_Popup = 1 << 26,
|
ImGuiWindowFlags_Popup = 1 << 26,
|
||||||
ImGuiWindowFlags_Modal = 1 << 27,
|
ImGuiWindowFlags_Modal = 1 << 27,
|
||||||
ImGuiWindowFlags_ChildMenu = 1 << 28,
|
ImGuiWindowFlags_ChildMenu = 1 << 28,
|
||||||
ImGuiWindowFlags_DockNodeHost = 1 << 29,
|
|
||||||
}ImGuiWindowFlags_;
|
}ImGuiWindowFlags_;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ImGuiChildFlags_None = 0,
|
ImGuiChildFlags_None = 0,
|
||||||
@@ -338,9 +339,10 @@ typedef enum {
|
|||||||
ImGuiTreeNodeFlags_FramePadding = 1 << 10,
|
ImGuiTreeNodeFlags_FramePadding = 1 << 10,
|
||||||
ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11,
|
ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11,
|
||||||
ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12,
|
ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12,
|
||||||
ImGuiTreeNodeFlags_SpanTextWidth = 1 << 13,
|
ImGuiTreeNodeFlags_SpanLabelWidth = 1 << 13,
|
||||||
ImGuiTreeNodeFlags_SpanAllColumns = 1 << 14,
|
ImGuiTreeNodeFlags_SpanAllColumns = 1 << 14,
|
||||||
ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 15,
|
ImGuiTreeNodeFlags_LabelSpanAllColumns = 1 << 15,
|
||||||
|
ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 17,
|
||||||
ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog,
|
ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog,
|
||||||
}ImGuiTreeNodeFlags_;
|
}ImGuiTreeNodeFlags_;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -473,6 +475,7 @@ typedef enum {
|
|||||||
ImGuiDataType_Float,
|
ImGuiDataType_Float,
|
||||||
ImGuiDataType_Double,
|
ImGuiDataType_Double,
|
||||||
ImGuiDataType_Bool,
|
ImGuiDataType_Bool,
|
||||||
|
ImGuiDataType_String,
|
||||||
ImGuiDataType_COUNT
|
ImGuiDataType_COUNT
|
||||||
}ImGuiDataType_;
|
}ImGuiDataType_;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -610,42 +613,43 @@ ImGuiKey_KeypadEnter=627,
|
|||||||
ImGuiKey_KeypadEqual=628,
|
ImGuiKey_KeypadEqual=628,
|
||||||
ImGuiKey_AppBack=629,
|
ImGuiKey_AppBack=629,
|
||||||
ImGuiKey_AppForward=630,
|
ImGuiKey_AppForward=630,
|
||||||
ImGuiKey_GamepadStart=631,
|
ImGuiKey_Oem102=631,
|
||||||
ImGuiKey_GamepadBack=632,
|
ImGuiKey_GamepadStart=632,
|
||||||
ImGuiKey_GamepadFaceLeft=633,
|
ImGuiKey_GamepadBack=633,
|
||||||
ImGuiKey_GamepadFaceRight=634,
|
ImGuiKey_GamepadFaceLeft=634,
|
||||||
ImGuiKey_GamepadFaceUp=635,
|
ImGuiKey_GamepadFaceRight=635,
|
||||||
ImGuiKey_GamepadFaceDown=636,
|
ImGuiKey_GamepadFaceUp=636,
|
||||||
ImGuiKey_GamepadDpadLeft=637,
|
ImGuiKey_GamepadFaceDown=637,
|
||||||
ImGuiKey_GamepadDpadRight=638,
|
ImGuiKey_GamepadDpadLeft=638,
|
||||||
ImGuiKey_GamepadDpadUp=639,
|
ImGuiKey_GamepadDpadRight=639,
|
||||||
ImGuiKey_GamepadDpadDown=640,
|
ImGuiKey_GamepadDpadUp=640,
|
||||||
ImGuiKey_GamepadL1=641,
|
ImGuiKey_GamepadDpadDown=641,
|
||||||
ImGuiKey_GamepadR1=642,
|
ImGuiKey_GamepadL1=642,
|
||||||
ImGuiKey_GamepadL2=643,
|
ImGuiKey_GamepadR1=643,
|
||||||
ImGuiKey_GamepadR2=644,
|
ImGuiKey_GamepadL2=644,
|
||||||
ImGuiKey_GamepadL3=645,
|
ImGuiKey_GamepadR2=645,
|
||||||
ImGuiKey_GamepadR3=646,
|
ImGuiKey_GamepadL3=646,
|
||||||
ImGuiKey_GamepadLStickLeft=647,
|
ImGuiKey_GamepadR3=647,
|
||||||
ImGuiKey_GamepadLStickRight=648,
|
ImGuiKey_GamepadLStickLeft=648,
|
||||||
ImGuiKey_GamepadLStickUp=649,
|
ImGuiKey_GamepadLStickRight=649,
|
||||||
ImGuiKey_GamepadLStickDown=650,
|
ImGuiKey_GamepadLStickUp=650,
|
||||||
ImGuiKey_GamepadRStickLeft=651,
|
ImGuiKey_GamepadLStickDown=651,
|
||||||
ImGuiKey_GamepadRStickRight=652,
|
ImGuiKey_GamepadRStickLeft=652,
|
||||||
ImGuiKey_GamepadRStickUp=653,
|
ImGuiKey_GamepadRStickRight=653,
|
||||||
ImGuiKey_GamepadRStickDown=654,
|
ImGuiKey_GamepadRStickUp=654,
|
||||||
ImGuiKey_MouseLeft=655,
|
ImGuiKey_GamepadRStickDown=655,
|
||||||
ImGuiKey_MouseRight=656,
|
ImGuiKey_MouseLeft=656,
|
||||||
ImGuiKey_MouseMiddle=657,
|
ImGuiKey_MouseRight=657,
|
||||||
ImGuiKey_MouseX1=658,
|
ImGuiKey_MouseMiddle=658,
|
||||||
ImGuiKey_MouseX2=659,
|
ImGuiKey_MouseX1=659,
|
||||||
ImGuiKey_MouseWheelX=660,
|
ImGuiKey_MouseX2=660,
|
||||||
ImGuiKey_MouseWheelY=661,
|
ImGuiKey_MouseWheelX=661,
|
||||||
ImGuiKey_ReservedForModCtrl=662,
|
ImGuiKey_MouseWheelY=662,
|
||||||
ImGuiKey_ReservedForModShift=663,
|
ImGuiKey_ReservedForModCtrl=663,
|
||||||
ImGuiKey_ReservedForModAlt=664,
|
ImGuiKey_ReservedForModShift=664,
|
||||||
ImGuiKey_ReservedForModSuper=665,
|
ImGuiKey_ReservedForModAlt=665,
|
||||||
ImGuiKey_NamedKey_END=666,
|
ImGuiKey_ReservedForModSuper=666,
|
||||||
|
ImGuiKey_NamedKey_END=667,
|
||||||
ImGuiMod_None=0,
|
ImGuiMod_None=0,
|
||||||
ImGuiMod_Ctrl=1 << 12,
|
ImGuiMod_Ctrl=1 << 12,
|
||||||
ImGuiMod_Shift=1 << 13,
|
ImGuiMod_Shift=1 << 13,
|
||||||
@@ -775,6 +779,7 @@ typedef enum {
|
|||||||
ImGuiStyleVar_ScrollbarRounding,
|
ImGuiStyleVar_ScrollbarRounding,
|
||||||
ImGuiStyleVar_GrabMinSize,
|
ImGuiStyleVar_GrabMinSize,
|
||||||
ImGuiStyleVar_GrabRounding,
|
ImGuiStyleVar_GrabRounding,
|
||||||
|
ImGuiStyleVar_ImageBorderSize,
|
||||||
ImGuiStyleVar_TabRounding,
|
ImGuiStyleVar_TabRounding,
|
||||||
ImGuiStyleVar_TabBorderSize,
|
ImGuiStyleVar_TabBorderSize,
|
||||||
ImGuiStyleVar_TabBarBorderSize,
|
ImGuiStyleVar_TabBarBorderSize,
|
||||||
@@ -809,9 +814,10 @@ typedef enum {
|
|||||||
ImGuiColorEditFlags_NoSidePreview = 1 << 8,
|
ImGuiColorEditFlags_NoSidePreview = 1 << 8,
|
||||||
ImGuiColorEditFlags_NoDragDrop = 1 << 9,
|
ImGuiColorEditFlags_NoDragDrop = 1 << 9,
|
||||||
ImGuiColorEditFlags_NoBorder = 1 << 10,
|
ImGuiColorEditFlags_NoBorder = 1 << 10,
|
||||||
|
ImGuiColorEditFlags_AlphaOpaque = 1 << 11,
|
||||||
|
ImGuiColorEditFlags_AlphaNoBg = 1 << 12,
|
||||||
|
ImGuiColorEditFlags_AlphaPreviewHalf= 1 << 13,
|
||||||
ImGuiColorEditFlags_AlphaBar = 1 << 16,
|
ImGuiColorEditFlags_AlphaBar = 1 << 16,
|
||||||
ImGuiColorEditFlags_AlphaPreview = 1 << 17,
|
|
||||||
ImGuiColorEditFlags_AlphaPreviewHalf= 1 << 18,
|
|
||||||
ImGuiColorEditFlags_HDR = 1 << 19,
|
ImGuiColorEditFlags_HDR = 1 << 19,
|
||||||
ImGuiColorEditFlags_DisplayRGB = 1 << 20,
|
ImGuiColorEditFlags_DisplayRGB = 1 << 20,
|
||||||
ImGuiColorEditFlags_DisplayHSV = 1 << 21,
|
ImGuiColorEditFlags_DisplayHSV = 1 << 21,
|
||||||
@@ -823,6 +829,7 @@ typedef enum {
|
|||||||
ImGuiColorEditFlags_InputRGB = 1 << 27,
|
ImGuiColorEditFlags_InputRGB = 1 << 27,
|
||||||
ImGuiColorEditFlags_InputHSV = 1 << 28,
|
ImGuiColorEditFlags_InputHSV = 1 << 28,
|
||||||
ImGuiColorEditFlags_DefaultOptions_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar,
|
ImGuiColorEditFlags_DefaultOptions_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar,
|
||||||
|
ImGuiColorEditFlags_AlphaMask_ = ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaOpaque | ImGuiColorEditFlags_AlphaNoBg | ImGuiColorEditFlags_AlphaPreviewHalf,
|
||||||
ImGuiColorEditFlags_DisplayMask_ = ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex,
|
ImGuiColorEditFlags_DisplayMask_ = ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex,
|
||||||
ImGuiColorEditFlags_DataTypeMask_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float,
|
ImGuiColorEditFlags_DataTypeMask_ = ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float,
|
||||||
ImGuiColorEditFlags_PickerMask_ = ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar,
|
ImGuiColorEditFlags_PickerMask_ = ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar,
|
||||||
@@ -836,6 +843,7 @@ typedef enum {
|
|||||||
ImGuiSliderFlags_WrapAround = 1 << 8,
|
ImGuiSliderFlags_WrapAround = 1 << 8,
|
||||||
ImGuiSliderFlags_ClampOnInput = 1 << 9,
|
ImGuiSliderFlags_ClampOnInput = 1 << 9,
|
||||||
ImGuiSliderFlags_ClampZeroRange = 1 << 10,
|
ImGuiSliderFlags_ClampZeroRange = 1 << 10,
|
||||||
|
ImGuiSliderFlags_NoSpeedTweaks = 1 << 11,
|
||||||
ImGuiSliderFlags_AlwaysClamp = ImGuiSliderFlags_ClampOnInput | ImGuiSliderFlags_ClampZeroRange,
|
ImGuiSliderFlags_AlwaysClamp = ImGuiSliderFlags_ClampOnInput | ImGuiSliderFlags_ClampZeroRange,
|
||||||
ImGuiSliderFlags_InvalidMask_ = 0x7000000F,
|
ImGuiSliderFlags_InvalidMask_ = 0x7000000F,
|
||||||
}ImGuiSliderFlags_;
|
}ImGuiSliderFlags_;
|
||||||
@@ -855,6 +863,8 @@ typedef enum {
|
|||||||
ImGuiMouseCursor_ResizeNESW,
|
ImGuiMouseCursor_ResizeNESW,
|
||||||
ImGuiMouseCursor_ResizeNWSE,
|
ImGuiMouseCursor_ResizeNWSE,
|
||||||
ImGuiMouseCursor_Hand,
|
ImGuiMouseCursor_Hand,
|
||||||
|
ImGuiMouseCursor_Wait,
|
||||||
|
ImGuiMouseCursor_Progress,
|
||||||
ImGuiMouseCursor_NotAllowed,
|
ImGuiMouseCursor_NotAllowed,
|
||||||
ImGuiMouseCursor_COUNT
|
ImGuiMouseCursor_COUNT
|
||||||
}ImGuiMouseCursor_;
|
}ImGuiMouseCursor_;
|
||||||
@@ -970,6 +980,7 @@ struct ImGuiStyle
|
|||||||
ImVec2 WindowPadding;
|
ImVec2 WindowPadding;
|
||||||
float WindowRounding;
|
float WindowRounding;
|
||||||
float WindowBorderSize;
|
float WindowBorderSize;
|
||||||
|
float WindowBorderHoverPadding;
|
||||||
ImVec2 WindowMinSize;
|
ImVec2 WindowMinSize;
|
||||||
ImVec2 WindowTitleAlign;
|
ImVec2 WindowTitleAlign;
|
||||||
ImGuiDir WindowMenuButtonPosition;
|
ImGuiDir WindowMenuButtonPosition;
|
||||||
@@ -991,9 +1002,11 @@ struct ImGuiStyle
|
|||||||
float GrabMinSize;
|
float GrabMinSize;
|
||||||
float GrabRounding;
|
float GrabRounding;
|
||||||
float LogSliderDeadzone;
|
float LogSliderDeadzone;
|
||||||
|
float ImageBorderSize;
|
||||||
float TabRounding;
|
float TabRounding;
|
||||||
float TabBorderSize;
|
float TabBorderSize;
|
||||||
float TabMinWidthForCloseButton;
|
float TabCloseButtonMinWidthSelected;
|
||||||
|
float TabCloseButtonMinWidthUnselected;
|
||||||
float TabBarBorderSize;
|
float TabBarBorderSize;
|
||||||
float TabBarOverlineSize;
|
float TabBarOverlineSize;
|
||||||
float TableAngledHeadersAngle;
|
float TableAngledHeadersAngle;
|
||||||
@@ -1081,6 +1094,7 @@ struct ImGuiIO
|
|||||||
bool ConfigErrorRecoveryEnableTooltip;
|
bool ConfigErrorRecoveryEnableTooltip;
|
||||||
bool ConfigDebugIsDebuggerPresent;
|
bool ConfigDebugIsDebuggerPresent;
|
||||||
bool ConfigDebugHighlightIdConflicts;
|
bool ConfigDebugHighlightIdConflicts;
|
||||||
|
bool ConfigDebugHighlightIdConflictsShowItemPicker;
|
||||||
bool ConfigDebugBeginReturnValueOnce;
|
bool ConfigDebugBeginReturnValueOnce;
|
||||||
bool ConfigDebugBeginReturnValueLoop;
|
bool ConfigDebugBeginReturnValueLoop;
|
||||||
bool ConfigDebugIgnoreFocusLoss;
|
bool ConfigDebugIgnoreFocusLoss;
|
||||||
@@ -1125,6 +1139,7 @@ struct ImGuiIO
|
|||||||
ImU16 MouseClickedCount[5];
|
ImU16 MouseClickedCount[5];
|
||||||
ImU16 MouseClickedLastCount[5];
|
ImU16 MouseClickedLastCount[5];
|
||||||
bool MouseReleased[5];
|
bool MouseReleased[5];
|
||||||
|
double MouseReleasedTime[5];
|
||||||
bool MouseDownOwned[5];
|
bool MouseDownOwned[5];
|
||||||
bool MouseDownOwnedUnlessPopupClose[5];
|
bool MouseDownOwnedUnlessPopupClose[5];
|
||||||
bool MouseWheelRequestAxisSwap;
|
bool MouseWheelRequestAxisSwap;
|
||||||
@@ -1294,6 +1309,7 @@ struct ImGuiSelectionExternalStorage
|
|||||||
void* UserData;
|
void* UserData;
|
||||||
void (*AdapterSetItemSelected)(ImGuiSelectionExternalStorage* self, int idx, bool selected);
|
void (*AdapterSetItemSelected)(ImGuiSelectionExternalStorage* self, int idx, bool selected);
|
||||||
};
|
};
|
||||||
|
typedef unsigned short ImDrawIdx;
|
||||||
typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd);
|
typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd);
|
||||||
struct ImDrawCmd
|
struct ImDrawCmd
|
||||||
{
|
{
|
||||||
@@ -1408,17 +1424,17 @@ struct ImFontConfig
|
|||||||
void* FontData;
|
void* FontData;
|
||||||
int FontDataSize;
|
int FontDataSize;
|
||||||
bool FontDataOwnedByAtlas;
|
bool FontDataOwnedByAtlas;
|
||||||
|
bool MergeMode;
|
||||||
|
bool PixelSnapH;
|
||||||
int FontNo;
|
int FontNo;
|
||||||
float SizePixels;
|
|
||||||
int OversampleH;
|
int OversampleH;
|
||||||
int OversampleV;
|
int OversampleV;
|
||||||
bool PixelSnapH;
|
float SizePixels;
|
||||||
ImVec2 GlyphExtraSpacing;
|
|
||||||
ImVec2 GlyphOffset;
|
ImVec2 GlyphOffset;
|
||||||
const ImWchar* GlyphRanges;
|
const ImWchar* GlyphRanges;
|
||||||
float GlyphMinAdvanceX;
|
float GlyphMinAdvanceX;
|
||||||
float GlyphMaxAdvanceX;
|
float GlyphMaxAdvanceX;
|
||||||
bool MergeMode;
|
float GlyphExtraAdvanceX;
|
||||||
unsigned int FontBuilderFlags;
|
unsigned int FontBuilderFlags;
|
||||||
float RasterizerMultiply;
|
float RasterizerMultiply;
|
||||||
float RasterizerDensity;
|
float RasterizerDensity;
|
||||||
@@ -1470,8 +1486,8 @@ struct ImFontAtlas
|
|||||||
ImTextureID TexID;
|
ImTextureID TexID;
|
||||||
int TexDesiredWidth;
|
int TexDesiredWidth;
|
||||||
int TexGlyphPadding;
|
int TexGlyphPadding;
|
||||||
bool Locked;
|
|
||||||
void* UserData;
|
void* UserData;
|
||||||
|
bool Locked;
|
||||||
bool TexReady;
|
bool TexReady;
|
||||||
bool TexPixelsUseColors;
|
bool TexPixelsUseColors;
|
||||||
unsigned char* TexPixelsAlpha8;
|
unsigned char* TexPixelsAlpha8;
|
||||||
@@ -1482,8 +1498,8 @@ struct ImFontAtlas
|
|||||||
ImVec2 TexUvWhitePixel;
|
ImVec2 TexUvWhitePixel;
|
||||||
ImVector_ImFontPtr Fonts;
|
ImVector_ImFontPtr Fonts;
|
||||||
ImVector_ImFontAtlasCustomRect CustomRects;
|
ImVector_ImFontAtlasCustomRect CustomRects;
|
||||||
ImVector_ImFontConfig ConfigData;
|
ImVector_ImFontConfig Sources;
|
||||||
ImVec4 TexUvLines[(63) + 1];
|
ImVec4 TexUvLines[(32) + 1];
|
||||||
const ImFontBuilderIO* FontBuilderIO;
|
const ImFontBuilderIO* FontBuilderIO;
|
||||||
unsigned int FontBuilderFlags;
|
unsigned int FontBuilderFlags;
|
||||||
int PackIdMouseCursors;
|
int PackIdMouseCursors;
|
||||||
@@ -1491,6 +1507,8 @@ struct ImFontAtlas
|
|||||||
};
|
};
|
||||||
typedef struct ImVector_float {int Size;int Capacity;float* Data;} ImVector_float;
|
typedef struct ImVector_float {int Size;int Capacity;float* Data;} ImVector_float;
|
||||||
|
|
||||||
|
typedef struct ImVector_ImU16 {int Size;int Capacity;ImU16* Data;} ImVector_ImU16;
|
||||||
|
|
||||||
typedef struct ImVector_ImFontGlyph {int Size;int Capacity;ImFontGlyph* Data;} ImVector_ImFontGlyph;
|
typedef struct ImVector_ImFontGlyph {int Size;int Capacity;ImFontGlyph* Data;} ImVector_ImFontGlyph;
|
||||||
|
|
||||||
struct ImFont
|
struct ImFont
|
||||||
@@ -1498,22 +1516,22 @@ struct ImFont
|
|||||||
ImVector_float IndexAdvanceX;
|
ImVector_float IndexAdvanceX;
|
||||||
float FallbackAdvanceX;
|
float FallbackAdvanceX;
|
||||||
float FontSize;
|
float FontSize;
|
||||||
ImVector_ImWchar IndexLookup;
|
ImVector_ImU16 IndexLookup;
|
||||||
ImVector_ImFontGlyph Glyphs;
|
ImVector_ImFontGlyph Glyphs;
|
||||||
const ImFontGlyph* FallbackGlyph;
|
ImFontGlyph* FallbackGlyph;
|
||||||
ImFontAtlas* ContainerAtlas;
|
ImFontAtlas* ContainerAtlas;
|
||||||
const ImFontConfig* ConfigData;
|
ImFontConfig* Sources;
|
||||||
short ConfigDataCount;
|
short SourcesCount;
|
||||||
short EllipsisCharCount;
|
short EllipsisCharCount;
|
||||||
ImWchar EllipsisChar;
|
ImWchar EllipsisChar;
|
||||||
ImWchar FallbackChar;
|
ImWchar FallbackChar;
|
||||||
float EllipsisWidth;
|
float EllipsisWidth;
|
||||||
float EllipsisCharStep;
|
float EllipsisCharStep;
|
||||||
bool DirtyLookupTables;
|
|
||||||
float Scale;
|
float Scale;
|
||||||
float Ascent, Descent;
|
float Ascent, Descent;
|
||||||
int MetricsTotalSurface;
|
int MetricsTotalSurface;
|
||||||
ImU8 Used4kPagesMap[(IM_UNICODE_CODEPOINT_MAX +1)/4096/8];
|
bool DirtyLookupTables;
|
||||||
|
ImU8 Used8kPagesMap[(IM_UNICODE_CODEPOINT_MAX +1)/8192/8];
|
||||||
};
|
};
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ImGuiViewportFlags_None = 0,
|
ImGuiViewportFlags_None = 0,
|
||||||
@@ -1609,14 +1627,15 @@ struct ImGuiPlatformImeData
|
|||||||
};
|
};
|
||||||
struct ImBitVector;
|
struct ImBitVector;
|
||||||
struct ImRect;
|
struct ImRect;
|
||||||
|
struct ImGuiTextIndex;
|
||||||
struct ImDrawDataBuilder;
|
struct ImDrawDataBuilder;
|
||||||
struct ImDrawListSharedData;
|
struct ImDrawListSharedData;
|
||||||
struct ImGuiBoxSelectState;
|
struct ImGuiBoxSelectState;
|
||||||
struct ImGuiColorMod;
|
struct ImGuiColorMod;
|
||||||
struct ImGuiContext;
|
struct ImGuiContext;
|
||||||
struct ImGuiContextHook;
|
struct ImGuiContextHook;
|
||||||
struct ImGuiDataVarInfo;
|
|
||||||
struct ImGuiDataTypeInfo;
|
struct ImGuiDataTypeInfo;
|
||||||
|
struct ImGuiDeactivatedItemData;
|
||||||
struct ImGuiDockContext;
|
struct ImGuiDockContext;
|
||||||
struct ImGuiDockRequest;
|
struct ImGuiDockRequest;
|
||||||
struct ImGuiDockNode;
|
struct ImGuiDockNode;
|
||||||
@@ -1639,6 +1658,7 @@ struct ImGuiOldColumns;
|
|||||||
struct ImGuiPopupData;
|
struct ImGuiPopupData;
|
||||||
struct ImGuiSettingsHandler;
|
struct ImGuiSettingsHandler;
|
||||||
struct ImGuiStyleMod;
|
struct ImGuiStyleMod;
|
||||||
|
struct ImGuiStyleVarInfo;
|
||||||
struct ImGuiTabBar;
|
struct ImGuiTabBar;
|
||||||
struct ImGuiTabItem;
|
struct ImGuiTabItem;
|
||||||
struct ImGuiTable;
|
struct ImGuiTable;
|
||||||
@@ -1696,7 +1716,6 @@ struct ImBitVector
|
|||||||
ImVector_ImU32 Storage;
|
ImVector_ImU32 Storage;
|
||||||
};
|
};
|
||||||
typedef int ImPoolIdx;
|
typedef int ImPoolIdx;
|
||||||
typedef struct ImGuiTextIndex ImGuiTextIndex;
|
|
||||||
typedef struct ImVector_int {int Size;int Capacity;int* Data;} ImVector_int;
|
typedef struct ImVector_int {int Size;int Capacity;int* Data;} ImVector_int;
|
||||||
|
|
||||||
struct ImGuiTextIndex
|
struct ImGuiTextIndex
|
||||||
@@ -1713,8 +1732,9 @@ struct ImDrawListSharedData
|
|||||||
float FontScale;
|
float FontScale;
|
||||||
float CurveTessellationTol;
|
float CurveTessellationTol;
|
||||||
float CircleSegmentMaxError;
|
float CircleSegmentMaxError;
|
||||||
ImVec4 ClipRectFullscreen;
|
float InitialFringeScale;
|
||||||
ImDrawListFlags InitialFlags;
|
ImDrawListFlags InitialFlags;
|
||||||
|
ImVec4 ClipRectFullscreen;
|
||||||
ImVector_ImVec2 TempBuffer;
|
ImVector_ImVec2 TempBuffer;
|
||||||
ImVec2 ArcFastVtx[48];
|
ImVec2 ArcFastVtx[48];
|
||||||
float ArcFastRadiusCutoff;
|
float ArcFastRadiusCutoff;
|
||||||
@@ -1725,11 +1745,21 @@ struct ImDrawDataBuilder
|
|||||||
ImVector_ImDrawListPtr* Layers[2];
|
ImVector_ImDrawListPtr* Layers[2];
|
||||||
ImVector_ImDrawListPtr LayerData1;
|
ImVector_ImDrawListPtr LayerData1;
|
||||||
};
|
};
|
||||||
struct ImGuiDataVarInfo
|
struct ImGuiStyleVarInfo
|
||||||
{
|
{
|
||||||
ImGuiDataType Type;
|
ImU32 Count : 8;
|
||||||
ImU32 Count;
|
ImGuiDataType DataType : 8;
|
||||||
ImU32 Offset;
|
ImU32 Offset : 16;
|
||||||
|
};
|
||||||
|
struct ImGuiColorMod
|
||||||
|
{
|
||||||
|
ImGuiCol Col;
|
||||||
|
ImVec4 BackupValue;
|
||||||
|
};
|
||||||
|
struct ImGuiStyleMod
|
||||||
|
{
|
||||||
|
ImGuiStyleVar VarIdx;
|
||||||
|
union { int BackupInt[2]; float BackupFloat[2]; };
|
||||||
};
|
};
|
||||||
typedef struct ImGuiDataTypeStorage ImGuiDataTypeStorage;
|
typedef struct ImGuiDataTypeStorage ImGuiDataTypeStorage;
|
||||||
struct ImGuiDataTypeStorage
|
struct ImGuiDataTypeStorage
|
||||||
@@ -1744,8 +1774,7 @@ struct ImGuiDataTypeInfo
|
|||||||
const char* ScanFmt;
|
const char* ScanFmt;
|
||||||
};
|
};
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ImGuiDataType_String = ImGuiDataType_COUNT + 1,
|
ImGuiDataType_Pointer = ImGuiDataType_COUNT,
|
||||||
ImGuiDataType_Pointer,
|
|
||||||
ImGuiDataType_ID,
|
ImGuiDataType_ID,
|
||||||
}ImGuiDataTypePrivate_;
|
}ImGuiDataTypePrivate_;
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -1866,16 +1895,6 @@ typedef enum {
|
|||||||
ImGuiPlotType_Lines,
|
ImGuiPlotType_Lines,
|
||||||
ImGuiPlotType_Histogram,
|
ImGuiPlotType_Histogram,
|
||||||
}ImGuiPlotType;
|
}ImGuiPlotType;
|
||||||
struct ImGuiColorMod
|
|
||||||
{
|
|
||||||
ImGuiCol Col;
|
|
||||||
ImVec4 BackupValue;
|
|
||||||
};
|
|
||||||
struct ImGuiStyleMod
|
|
||||||
{
|
|
||||||
ImGuiStyleVar VarIdx;
|
|
||||||
union { int BackupInt[2]; float BackupFloat[2]; };
|
|
||||||
};
|
|
||||||
typedef struct ImGuiComboPreviewData ImGuiComboPreviewData;
|
typedef struct ImGuiComboPreviewData ImGuiComboPreviewData;
|
||||||
struct ImGuiComboPreviewData
|
struct ImGuiComboPreviewData
|
||||||
{
|
{
|
||||||
@@ -1897,7 +1916,7 @@ struct ImGuiGroupData
|
|||||||
ImVec2 BackupCurrLineSize;
|
ImVec2 BackupCurrLineSize;
|
||||||
float BackupCurrLineTextBaseOffset;
|
float BackupCurrLineTextBaseOffset;
|
||||||
ImGuiID BackupActiveIdIsAlive;
|
ImGuiID BackupActiveIdIsAlive;
|
||||||
bool BackupActiveIdPreviousFrameIsAlive;
|
bool BackupDeactivatedIdIsAlive;
|
||||||
bool BackupHoveredIdIsAlive;
|
bool BackupHoveredIdIsAlive;
|
||||||
bool BackupIsSameLine;
|
bool BackupIsSameLine;
|
||||||
bool EmitItem;
|
bool EmitItem;
|
||||||
@@ -1924,8 +1943,10 @@ struct ImGuiInputTextState
|
|||||||
{
|
{
|
||||||
ImGuiContext* Ctx;
|
ImGuiContext* Ctx;
|
||||||
ImStbTexteditState* Stb;
|
ImStbTexteditState* Stb;
|
||||||
|
ImGuiInputTextFlags Flags;
|
||||||
ImGuiID ID;
|
ImGuiID ID;
|
||||||
int TextLen;
|
int TextLen;
|
||||||
|
const char* TextSrc;
|
||||||
ImVector_char TextA;
|
ImVector_char TextA;
|
||||||
ImVector_char TextToRevertTo;
|
ImVector_char TextToRevertTo;
|
||||||
ImVector_char CallbackTextBackup;
|
ImVector_char CallbackTextBackup;
|
||||||
@@ -1935,8 +1956,7 @@ struct ImGuiInputTextState
|
|||||||
bool CursorFollow;
|
bool CursorFollow;
|
||||||
bool SelectedAllMouseLock;
|
bool SelectedAllMouseLock;
|
||||||
bool Edited;
|
bool Edited;
|
||||||
ImGuiInputTextFlags Flags;
|
bool WantReloadUserBuf;
|
||||||
bool ReloadUserBuf;
|
|
||||||
int ReloadSelectionStart;
|
int ReloadSelectionStart;
|
||||||
int ReloadSelectionEnd;
|
int ReloadSelectionEnd;
|
||||||
};
|
};
|
||||||
@@ -1956,15 +1976,16 @@ typedef enum {
|
|||||||
ImGuiNextWindowDataFlags_HasFocus = 1 << 5,
|
ImGuiNextWindowDataFlags_HasFocus = 1 << 5,
|
||||||
ImGuiNextWindowDataFlags_HasBgAlpha = 1 << 6,
|
ImGuiNextWindowDataFlags_HasBgAlpha = 1 << 6,
|
||||||
ImGuiNextWindowDataFlags_HasScroll = 1 << 7,
|
ImGuiNextWindowDataFlags_HasScroll = 1 << 7,
|
||||||
ImGuiNextWindowDataFlags_HasChildFlags = 1 << 8,
|
ImGuiNextWindowDataFlags_HasWindowFlags = 1 << 8,
|
||||||
ImGuiNextWindowDataFlags_HasRefreshPolicy = 1 << 9,
|
ImGuiNextWindowDataFlags_HasChildFlags = 1 << 9,
|
||||||
ImGuiNextWindowDataFlags_HasViewport = 1 << 10,
|
ImGuiNextWindowDataFlags_HasRefreshPolicy = 1 << 10,
|
||||||
ImGuiNextWindowDataFlags_HasDock = 1 << 11,
|
ImGuiNextWindowDataFlags_HasViewport = 1 << 11,
|
||||||
ImGuiNextWindowDataFlags_HasWindowClass = 1 << 12,
|
ImGuiNextWindowDataFlags_HasDock = 1 << 12,
|
||||||
|
ImGuiNextWindowDataFlags_HasWindowClass = 1 << 13,
|
||||||
}ImGuiNextWindowDataFlags_;
|
}ImGuiNextWindowDataFlags_;
|
||||||
struct ImGuiNextWindowData
|
struct ImGuiNextWindowData
|
||||||
{
|
{
|
||||||
ImGuiNextWindowDataFlags Flags;
|
ImGuiNextWindowDataFlags HasFlags;
|
||||||
ImGuiCond PosCond;
|
ImGuiCond PosCond;
|
||||||
ImGuiCond SizeCond;
|
ImGuiCond SizeCond;
|
||||||
ImGuiCond CollapsedCond;
|
ImGuiCond CollapsedCond;
|
||||||
@@ -1974,6 +1995,7 @@ struct ImGuiNextWindowData
|
|||||||
ImVec2 SizeVal;
|
ImVec2 SizeVal;
|
||||||
ImVec2 ContentSizeVal;
|
ImVec2 ContentSizeVal;
|
||||||
ImVec2 ScrollVal;
|
ImVec2 ScrollVal;
|
||||||
|
ImGuiWindowFlags WindowFlags;
|
||||||
ImGuiChildFlags ChildFlags;
|
ImGuiChildFlags ChildFlags;
|
||||||
bool PosUndock;
|
bool PosUndock;
|
||||||
bool CollapsedVal;
|
bool CollapsedVal;
|
||||||
@@ -2048,6 +2070,7 @@ struct ImGuiWindowStackData
|
|||||||
ImGuiLastItemData ParentLastItemDataBackup;
|
ImGuiLastItemData ParentLastItemDataBackup;
|
||||||
ImGuiErrorRecoveryState StackSizesInBegin;
|
ImGuiErrorRecoveryState StackSizesInBegin;
|
||||||
bool DisabledOverrideReenable;
|
bool DisabledOverrideReenable;
|
||||||
|
float DisabledOverrideReenableAlphaBackup;
|
||||||
};
|
};
|
||||||
typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem;
|
typedef struct ImGuiShrinkWidthItem ImGuiShrinkWidthItem;
|
||||||
struct ImGuiShrinkWidthItem
|
struct ImGuiShrinkWidthItem
|
||||||
@@ -2062,6 +2085,13 @@ struct ImGuiPtrOrIndex
|
|||||||
void* Ptr;
|
void* Ptr;
|
||||||
int Index;
|
int Index;
|
||||||
};
|
};
|
||||||
|
struct ImGuiDeactivatedItemData
|
||||||
|
{
|
||||||
|
ImGuiID ID;
|
||||||
|
int ElapseFrame;
|
||||||
|
bool HasBeenEditedBefore;
|
||||||
|
bool IsAlive;
|
||||||
|
};
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ImGuiPopupPositionPolicy_Default,
|
ImGuiPopupPositionPolicy_Default,
|
||||||
ImGuiPopupPositionPolicy_ComboBox,
|
ImGuiPopupPositionPolicy_ComboBox,
|
||||||
@@ -2617,7 +2647,6 @@ struct ImGuiMetricsConfig
|
|||||||
bool ShowDrawCmdMesh;
|
bool ShowDrawCmdMesh;
|
||||||
bool ShowDrawCmdBoundingBoxes;
|
bool ShowDrawCmdBoundingBoxes;
|
||||||
bool ShowTextEncodingViewer;
|
bool ShowTextEncodingViewer;
|
||||||
bool ShowAtlasTintedWithTextColor;
|
|
||||||
bool ShowDockingNodes;
|
bool ShowDockingNodes;
|
||||||
int ShowWindowsRectsType;
|
int ShowWindowsRectsType;
|
||||||
int ShowTablesRectsType;
|
int ShowTablesRectsType;
|
||||||
@@ -2644,6 +2673,7 @@ struct ImGuiIDStackTool
|
|||||||
ImVector_ImGuiStackLevelInfo Results;
|
ImVector_ImGuiStackLevelInfo Results;
|
||||||
bool CopyToClipboardOnCtrlC;
|
bool CopyToClipboardOnCtrlC;
|
||||||
float CopyToClipboardLastTime;
|
float CopyToClipboardLastTime;
|
||||||
|
ImGuiTextBuffer ResultPathBuf;
|
||||||
};
|
};
|
||||||
typedef void (*ImGuiContextHookCallback)(ImGuiContext* ctx, ImGuiContextHook* hook);
|
typedef void (*ImGuiContextHookCallback)(ImGuiContext* ctx, ImGuiContextHook* hook);
|
||||||
typedef enum { ImGuiContextHookType_NewFramePre, ImGuiContextHookType_NewFramePost, ImGuiContextHookType_EndFramePre, ImGuiContextHookType_EndFramePost, ImGuiContextHookType_RenderPre, ImGuiContextHookType_RenderPost, ImGuiContextHookType_Shutdown, ImGuiContextHookType_PendingRemoval_ }ImGuiContextHookType;
|
typedef enum { ImGuiContextHookType_NewFramePre, ImGuiContextHookType_NewFramePost, ImGuiContextHookType_EndFramePre, ImGuiContextHookType_EndFramePost, ImGuiContextHookType_RenderPre, ImGuiContextHookType_RenderPost, ImGuiContextHookType_Shutdown, ImGuiContextHookType_PendingRemoval_ }ImGuiContextHookType;
|
||||||
@@ -2729,9 +2759,9 @@ struct ImGuiContext
|
|||||||
int FrameCountEnded;
|
int FrameCountEnded;
|
||||||
int FrameCountPlatformEnded;
|
int FrameCountPlatformEnded;
|
||||||
int FrameCountRendered;
|
int FrameCountRendered;
|
||||||
|
ImGuiID WithinEndChildID;
|
||||||
bool WithinFrameScope;
|
bool WithinFrameScope;
|
||||||
bool WithinFrameScopeWithImplicitWindow;
|
bool WithinFrameScopeWithImplicitWindow;
|
||||||
bool WithinEndChild;
|
|
||||||
bool GcCompactAll;
|
bool GcCompactAll;
|
||||||
bool TestEngineHookItems;
|
bool TestEngineHookItems;
|
||||||
void* TestEngine;
|
void* TestEngine;
|
||||||
@@ -2746,7 +2776,7 @@ struct ImGuiContext
|
|||||||
ImVector_ImGuiWindowStackData CurrentWindowStack;
|
ImVector_ImGuiWindowStackData CurrentWindowStack;
|
||||||
ImGuiStorage WindowsById;
|
ImGuiStorage WindowsById;
|
||||||
int WindowsActiveCount;
|
int WindowsActiveCount;
|
||||||
ImVec2 WindowsHoverPadding;
|
float WindowsBorderHoverPadding;
|
||||||
ImGuiID DebugBreakInWindow;
|
ImGuiID DebugBreakInWindow;
|
||||||
ImGuiWindow* CurrentWindow;
|
ImGuiWindow* CurrentWindow;
|
||||||
ImGuiWindow* HoveredWindow;
|
ImGuiWindow* HoveredWindow;
|
||||||
@@ -2785,9 +2815,8 @@ struct ImGuiContext
|
|||||||
ImGuiWindow* ActiveIdWindow;
|
ImGuiWindow* ActiveIdWindow;
|
||||||
ImGuiInputSource ActiveIdSource;
|
ImGuiInputSource ActiveIdSource;
|
||||||
ImGuiID ActiveIdPreviousFrame;
|
ImGuiID ActiveIdPreviousFrame;
|
||||||
bool ActiveIdPreviousFrameIsAlive;
|
ImGuiDeactivatedItemData DeactivatedItemData;
|
||||||
bool ActiveIdPreviousFrameHasBeenEditedBefore;
|
ImGuiDataTypeStorage ActiveIdValueOnActivation;
|
||||||
ImGuiWindow* ActiveIdPreviousFrameWindow;
|
|
||||||
ImGuiID LastActiveId;
|
ImGuiID LastActiveId;
|
||||||
float LastActiveIdTimer;
|
float LastActiveIdTimer;
|
||||||
double LastKeyModsChangeTime;
|
double LastKeyModsChangeTime;
|
||||||
@@ -3061,6 +3090,10 @@ struct ImGuiWindowTempData
|
|||||||
ImGuiLayoutType LayoutType;
|
ImGuiLayoutType LayoutType;
|
||||||
ImGuiLayoutType ParentLayoutType;
|
ImGuiLayoutType ParentLayoutType;
|
||||||
ImU32 ModalDimBgColor;
|
ImU32 ModalDimBgColor;
|
||||||
|
ImGuiItemStatusFlags WindowItemStatusFlags;
|
||||||
|
ImGuiItemStatusFlags ChildItemStatusFlags;
|
||||||
|
ImGuiItemStatusFlags DockTabItemStatusFlags;
|
||||||
|
ImRect DockTabItemRect;
|
||||||
float ItemWidth;
|
float ItemWidth;
|
||||||
float TextWrapPos;
|
float TextWrapPos;
|
||||||
ImVector_float ItemWidthStack;
|
ImVector_float ItemWidthStack;
|
||||||
@@ -3105,6 +3138,8 @@ struct ImGuiWindow
|
|||||||
ImVec2 ScrollTargetEdgeSnapDist;
|
ImVec2 ScrollTargetEdgeSnapDist;
|
||||||
ImVec2 ScrollbarSizes;
|
ImVec2 ScrollbarSizes;
|
||||||
bool ScrollbarX, ScrollbarY;
|
bool ScrollbarX, ScrollbarY;
|
||||||
|
bool ScrollbarXStabilizeEnabled;
|
||||||
|
ImU8 ScrollbarXStabilizeToggledHistory;
|
||||||
bool ViewportOwned;
|
bool ViewportOwned;
|
||||||
bool Active;
|
bool Active;
|
||||||
bool WasActive;
|
bool WasActive;
|
||||||
@@ -3156,7 +3191,9 @@ struct ImGuiWindow
|
|||||||
ImGuiStorage StateStorage;
|
ImGuiStorage StateStorage;
|
||||||
ImVector_ImGuiOldColumns ColumnsStorage;
|
ImVector_ImGuiOldColumns ColumnsStorage;
|
||||||
float FontWindowScale;
|
float FontWindowScale;
|
||||||
|
float FontWindowScaleParents;
|
||||||
float FontDpiScale;
|
float FontDpiScale;
|
||||||
|
float FontRefSize;
|
||||||
int SettingsOffset;
|
int SettingsOffset;
|
||||||
ImDrawList* DrawList;
|
ImDrawList* DrawList;
|
||||||
ImDrawList DrawListInst;
|
ImDrawList DrawListInst;
|
||||||
@@ -3185,8 +3222,6 @@ struct ImGuiWindow
|
|||||||
ImGuiDockNode* DockNode;
|
ImGuiDockNode* DockNode;
|
||||||
ImGuiDockNode* DockNodeAsHost;
|
ImGuiDockNode* DockNodeAsHost;
|
||||||
ImGuiID DockId;
|
ImGuiID DockId;
|
||||||
ImGuiItemStatusFlags DockTabItemStatusFlags;
|
|
||||||
ImRect DockTabItemRect;
|
|
||||||
};
|
};
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ImGuiTabBarFlags_DockNode = 1 << 20,
|
ImGuiTabBarFlags_DockNode = 1 << 20,
|
||||||
@@ -3197,7 +3232,8 @@ typedef enum {
|
|||||||
ImGuiTabItemFlags_SectionMask_ = ImGuiTabItemFlags_Leading | ImGuiTabItemFlags_Trailing,
|
ImGuiTabItemFlags_SectionMask_ = ImGuiTabItemFlags_Leading | ImGuiTabItemFlags_Trailing,
|
||||||
ImGuiTabItemFlags_NoCloseButton = 1 << 20,
|
ImGuiTabItemFlags_NoCloseButton = 1 << 20,
|
||||||
ImGuiTabItemFlags_Button = 1 << 21,
|
ImGuiTabItemFlags_Button = 1 << 21,
|
||||||
ImGuiTabItemFlags_Unsorted = 1 << 22,
|
ImGuiTabItemFlags_Invisible = 1 << 22,
|
||||||
|
ImGuiTabItemFlags_Unsorted = 1 << 23,
|
||||||
}ImGuiTabItemFlagsPrivate_;
|
}ImGuiTabItemFlagsPrivate_;
|
||||||
struct ImGuiTabItem
|
struct ImGuiTabItem
|
||||||
{
|
{
|
||||||
@@ -3427,6 +3463,7 @@ struct ImGuiTable
|
|||||||
ImGuiTableDrawChannelIdx DummyDrawChannel;
|
ImGuiTableDrawChannelIdx DummyDrawChannel;
|
||||||
ImGuiTableDrawChannelIdx Bg2DrawChannelCurrent;
|
ImGuiTableDrawChannelIdx Bg2DrawChannelCurrent;
|
||||||
ImGuiTableDrawChannelIdx Bg2DrawChannelUnfrozen;
|
ImGuiTableDrawChannelIdx Bg2DrawChannelUnfrozen;
|
||||||
|
ImS8 NavLayer;
|
||||||
bool IsLayoutLocked;
|
bool IsLayoutLocked;
|
||||||
bool IsInsideRow;
|
bool IsInsideRow;
|
||||||
bool IsInitializing;
|
bool IsInitializing;
|
||||||
@@ -3476,7 +3513,7 @@ struct ImGuiTableColumnSettings
|
|||||||
ImGuiTableColumnIdx DisplayOrder;
|
ImGuiTableColumnIdx DisplayOrder;
|
||||||
ImGuiTableColumnIdx SortOrder;
|
ImGuiTableColumnIdx SortOrder;
|
||||||
ImU8 SortDirection : 2;
|
ImU8 SortDirection : 2;
|
||||||
ImU8 IsEnabled : 1;
|
ImS8 IsEnabled : 2;
|
||||||
ImU8 IsStretch : 1;
|
ImU8 IsStretch : 1;
|
||||||
};
|
};
|
||||||
struct ImGuiTableSettings
|
struct ImGuiTableSettings
|
||||||
@@ -3574,6 +3611,7 @@ typedef ImVector<ImGuiViewportP*> ImVector_ImGuiViewportPPtr;
|
|||||||
typedef ImVector<ImGuiWindow*> ImVector_ImGuiWindowPtr;
|
typedef ImVector<ImGuiWindow*> ImVector_ImGuiWindowPtr;
|
||||||
typedef ImVector<ImGuiWindowStackData> ImVector_ImGuiWindowStackData;
|
typedef ImVector<ImGuiWindowStackData> ImVector_ImGuiWindowStackData;
|
||||||
typedef ImVector<ImTextureID> ImVector_ImTextureID;
|
typedef ImVector<ImTextureID> ImVector_ImTextureID;
|
||||||
|
typedef ImVector<ImU16> ImVector_ImU16;
|
||||||
typedef ImVector<ImU32> ImVector_ImU32;
|
typedef ImVector<ImU32> ImVector_ImU32;
|
||||||
typedef ImVector<ImU8> ImVector_ImU8;
|
typedef ImVector<ImU8> ImVector_ImU8;
|
||||||
typedef ImVector<ImVec2> ImVector_ImVec2;
|
typedef ImVector<ImVec2> ImVector_ImVec2;
|
||||||
@@ -3595,8 +3633,8 @@ CIMGUI_API ImGuiContext* igCreateContext(ImFontAtlas* shared_font_atlas);
|
|||||||
CIMGUI_API void igDestroyContext(ImGuiContext* ctx);
|
CIMGUI_API void igDestroyContext(ImGuiContext* ctx);
|
||||||
CIMGUI_API ImGuiContext* igGetCurrentContext(void);
|
CIMGUI_API ImGuiContext* igGetCurrentContext(void);
|
||||||
CIMGUI_API void igSetCurrentContext(ImGuiContext* ctx);
|
CIMGUI_API void igSetCurrentContext(ImGuiContext* ctx);
|
||||||
CIMGUI_API ImGuiIO* igGetIO(void);
|
CIMGUI_API ImGuiIO* igGetIO_Nil(void);
|
||||||
CIMGUI_API ImGuiPlatformIO* igGetPlatformIO(void);
|
CIMGUI_API ImGuiPlatformIO* igGetPlatformIO_Nil(void);
|
||||||
CIMGUI_API ImGuiStyle* igGetStyle(void);
|
CIMGUI_API ImGuiStyle* igGetStyle(void);
|
||||||
CIMGUI_API void igNewFrame(void);
|
CIMGUI_API void igNewFrame(void);
|
||||||
CIMGUI_API void igEndFrame(void);
|
CIMGUI_API void igEndFrame(void);
|
||||||
@@ -3744,7 +3782,8 @@ CIMGUI_API void igProgressBar(float fraction,const ImVec2 size_arg,const char* o
|
|||||||
CIMGUI_API void igBullet(void);
|
CIMGUI_API void igBullet(void);
|
||||||
CIMGUI_API bool igTextLink(const char* label);
|
CIMGUI_API bool igTextLink(const char* label);
|
||||||
CIMGUI_API void igTextLinkOpenURL(const char* label,const char* url);
|
CIMGUI_API void igTextLinkOpenURL(const char* label,const char* url);
|
||||||
CIMGUI_API void igImage(ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 tint_col,const ImVec4 border_col);
|
CIMGUI_API void igImage(ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1);
|
||||||
|
CIMGUI_API void igImageWithBg(ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col);
|
||||||
CIMGUI_API bool igImageButton(const char* str_id,ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col);
|
CIMGUI_API bool igImageButton(const char* str_id,ImTextureID user_texture_id,const ImVec2 image_size,const ImVec2 uv0,const ImVec2 uv1,const ImVec4 bg_col,const ImVec4 tint_col);
|
||||||
CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags);
|
CIMGUI_API bool igBeginCombo(const char* label,const char* preview_value,ImGuiComboFlags flags);
|
||||||
CIMGUI_API void igEndCombo(void);
|
CIMGUI_API void igEndCombo(void);
|
||||||
@@ -3966,6 +4005,7 @@ CIMGUI_API bool igIsMouseDown_Nil(ImGuiMouseButton button);
|
|||||||
CIMGUI_API bool igIsMouseClicked_Bool(ImGuiMouseButton button,bool repeat);
|
CIMGUI_API bool igIsMouseClicked_Bool(ImGuiMouseButton button,bool repeat);
|
||||||
CIMGUI_API bool igIsMouseReleased_Nil(ImGuiMouseButton button);
|
CIMGUI_API bool igIsMouseReleased_Nil(ImGuiMouseButton button);
|
||||||
CIMGUI_API bool igIsMouseDoubleClicked_Nil(ImGuiMouseButton button);
|
CIMGUI_API bool igIsMouseDoubleClicked_Nil(ImGuiMouseButton button);
|
||||||
|
CIMGUI_API bool igIsMouseReleasedWithDelay(ImGuiMouseButton button,float delay);
|
||||||
CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button);
|
CIMGUI_API int igGetMouseClickedCount(ImGuiMouseButton button);
|
||||||
CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip);
|
CIMGUI_API bool igIsMouseHoveringRect(const ImVec2 r_min,const ImVec2 r_max,bool clip);
|
||||||
CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos);
|
CIMGUI_API bool igIsMousePosValid(const ImVec2* mouse_pos);
|
||||||
@@ -4060,6 +4100,7 @@ CIMGUI_API const char* ImGuiTextBuffer_end(ImGuiTextBuffer* self);
|
|||||||
CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self);
|
CIMGUI_API int ImGuiTextBuffer_size(ImGuiTextBuffer* self);
|
||||||
CIMGUI_API bool ImGuiTextBuffer_empty(ImGuiTextBuffer* self);
|
CIMGUI_API bool ImGuiTextBuffer_empty(ImGuiTextBuffer* self);
|
||||||
CIMGUI_API void ImGuiTextBuffer_clear(ImGuiTextBuffer* self);
|
CIMGUI_API void ImGuiTextBuffer_clear(ImGuiTextBuffer* self);
|
||||||
|
CIMGUI_API void ImGuiTextBuffer_resize(ImGuiTextBuffer* self,int size);
|
||||||
CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity);
|
CIMGUI_API void ImGuiTextBuffer_reserve(ImGuiTextBuffer* self,int capacity);
|
||||||
CIMGUI_API const char* ImGuiTextBuffer_c_str(ImGuiTextBuffer* self);
|
CIMGUI_API const char* ImGuiTextBuffer_c_str(ImGuiTextBuffer* self);
|
||||||
CIMGUI_API void ImGuiTextBuffer_append(ImGuiTextBuffer* self,const char* str,const char* str_end);
|
CIMGUI_API void ImGuiTextBuffer_append(ImGuiTextBuffer* self,const char* str,const char* str_end);
|
||||||
@@ -4220,8 +4261,8 @@ CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryTTF(ImFontAtlas* self,void* font
|
|||||||
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* self,const void* compressed_font_data,int compressed_font_data_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
|
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedTTF(ImFontAtlas* self,const void* compressed_font_data,int compressed_font_data_size,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
|
||||||
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self,const char* compressed_font_data_base85,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
|
CIMGUI_API ImFont* ImFontAtlas_AddFontFromMemoryCompressedBase85TTF(ImFontAtlas* self,const char* compressed_font_data_base85,float size_pixels,const ImFontConfig* font_cfg,const ImWchar* glyph_ranges);
|
||||||
CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self);
|
CIMGUI_API void ImFontAtlas_ClearInputData(ImFontAtlas* self);
|
||||||
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self);
|
|
||||||
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self);
|
CIMGUI_API void ImFontAtlas_ClearFonts(ImFontAtlas* self);
|
||||||
|
CIMGUI_API void ImFontAtlas_ClearTexData(ImFontAtlas* self);
|
||||||
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self);
|
CIMGUI_API void ImFontAtlas_Clear(ImFontAtlas* self);
|
||||||
CIMGUI_API bool ImFontAtlas_Build(ImFontAtlas* self);
|
CIMGUI_API bool ImFontAtlas_Build(ImFontAtlas* self);
|
||||||
CIMGUI_API void ImFontAtlas_GetTexDataAsAlpha8(ImFontAtlas* self,unsigned char** out_pixels,int* out_width,int* out_height,int* out_bytes_per_pixel);
|
CIMGUI_API void ImFontAtlas_GetTexDataAsAlpha8(ImFontAtlas* self,unsigned char** out_pixels,int* out_width,int* out_height,int* out_bytes_per_pixel);
|
||||||
@@ -4241,11 +4282,10 @@ CIMGUI_API int ImFontAtlas_AddCustomRectRegular(ImFontAtlas* self,int width,int
|
|||||||
CIMGUI_API int ImFontAtlas_AddCustomRectFontGlyph(ImFontAtlas* self,ImFont* font,ImWchar id,int width,int height,float advance_x,const ImVec2 offset);
|
CIMGUI_API int ImFontAtlas_AddCustomRectFontGlyph(ImFontAtlas* self,ImFont* font,ImWchar id,int width,int height,float advance_x,const ImVec2 offset);
|
||||||
CIMGUI_API ImFontAtlasCustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self,int index);
|
CIMGUI_API ImFontAtlasCustomRect* ImFontAtlas_GetCustomRectByIndex(ImFontAtlas* self,int index);
|
||||||
CIMGUI_API void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self,const ImFontAtlasCustomRect* rect,ImVec2* out_uv_min,ImVec2* out_uv_max);
|
CIMGUI_API void ImFontAtlas_CalcCustomRectUV(ImFontAtlas* self,const ImFontAtlasCustomRect* rect,ImVec2* out_uv_min,ImVec2* out_uv_max);
|
||||||
CIMGUI_API bool ImFontAtlas_GetMouseCursorTexData(ImFontAtlas* self,ImGuiMouseCursor cursor,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2]);
|
|
||||||
CIMGUI_API ImFont* ImFont_ImFont(void);
|
CIMGUI_API ImFont* ImFont_ImFont(void);
|
||||||
CIMGUI_API void ImFont_destroy(ImFont* self);
|
CIMGUI_API void ImFont_destroy(ImFont* self);
|
||||||
CIMGUI_API const ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c);
|
CIMGUI_API ImFontGlyph* ImFont_FindGlyph(ImFont* self,ImWchar c);
|
||||||
CIMGUI_API const ImFontGlyph* ImFont_FindGlyphNoFallback(ImFont* self,ImWchar c);
|
CIMGUI_API ImFontGlyph* ImFont_FindGlyphNoFallback(ImFont* self,ImWchar c);
|
||||||
CIMGUI_API float ImFont_GetCharAdvance(ImFont* self,ImWchar c);
|
CIMGUI_API float ImFont_GetCharAdvance(ImFont* self,ImWchar c);
|
||||||
CIMGUI_API bool ImFont_IsLoaded(ImFont* self);
|
CIMGUI_API bool ImFont_IsLoaded(ImFont* self);
|
||||||
CIMGUI_API const char* ImFont_GetDebugName(ImFont* self);
|
CIMGUI_API const char* ImFont_GetDebugName(ImFont* self);
|
||||||
@@ -4258,7 +4298,6 @@ CIMGUI_API void ImFont_ClearOutputData(ImFont* self);
|
|||||||
CIMGUI_API void ImFont_GrowIndex(ImFont* self,int new_size);
|
CIMGUI_API void ImFont_GrowIndex(ImFont* self,int new_size);
|
||||||
CIMGUI_API void ImFont_AddGlyph(ImFont* self,const ImFontConfig* src_cfg,ImWchar c,float x0,float y0,float x1,float y1,float u0,float v0,float u1,float v1,float advance_x);
|
CIMGUI_API void ImFont_AddGlyph(ImFont* self,const ImFontConfig* src_cfg,ImWchar c,float x0,float y0,float x1,float y1,float u0,float v0,float u1,float v1,float advance_x);
|
||||||
CIMGUI_API void ImFont_AddRemapChar(ImFont* self,ImWchar dst,ImWchar src,bool overwrite_dst);
|
CIMGUI_API void ImFont_AddRemapChar(ImFont* self,ImWchar dst,ImWchar src,bool overwrite_dst);
|
||||||
CIMGUI_API void ImFont_SetGlyphVisible(ImFont* self,ImWchar c,bool visible);
|
|
||||||
CIMGUI_API bool ImFont_IsGlyphRangeUnused(ImFont* self,unsigned int c_begin,unsigned int c_last);
|
CIMGUI_API bool ImFont_IsGlyphRangeUnused(ImFont* self,unsigned int c_begin,unsigned int c_last);
|
||||||
CIMGUI_API ImGuiViewport* ImGuiViewport_ImGuiViewport(void);
|
CIMGUI_API ImGuiViewport* ImGuiViewport_ImGuiViewport(void);
|
||||||
CIMGUI_API void ImGuiViewport_destroy(ImGuiViewport* self);
|
CIMGUI_API void ImGuiViewport_destroy(ImGuiViewport* self);
|
||||||
@@ -4277,6 +4316,7 @@ CIMGUI_API ImU32 igImAlphaBlendColors(ImU32 col_a,ImU32 col_b);
|
|||||||
CIMGUI_API bool igImIsPowerOfTwo_Int(int v);
|
CIMGUI_API bool igImIsPowerOfTwo_Int(int v);
|
||||||
CIMGUI_API bool igImIsPowerOfTwo_U64(ImU64 v);
|
CIMGUI_API bool igImIsPowerOfTwo_U64(ImU64 v);
|
||||||
CIMGUI_API int igImUpperPowerOfTwo(int v);
|
CIMGUI_API int igImUpperPowerOfTwo(int v);
|
||||||
|
CIMGUI_API unsigned int igImCountSetBits(unsigned int v);
|
||||||
CIMGUI_API int igImStricmp(const char* str1,const char* str2);
|
CIMGUI_API int igImStricmp(const char* str1,const char* str2);
|
||||||
CIMGUI_API int igImStrnicmp(const char* str1,const char* str2,size_t count);
|
CIMGUI_API int igImStrnicmp(const char* str1,const char* str2,size_t count);
|
||||||
CIMGUI_API void igImStrncpy(char* dst,const char* src,size_t count);
|
CIMGUI_API void igImStrncpy(char* dst,const char* src,size_t count);
|
||||||
@@ -4420,7 +4460,7 @@ CIMGUI_API void ImDrawListSharedData_destroy(ImDrawListSharedData* self);
|
|||||||
CIMGUI_API void ImDrawListSharedData_SetCircleTessellationMaxError(ImDrawListSharedData* self,float max_error);
|
CIMGUI_API void ImDrawListSharedData_SetCircleTessellationMaxError(ImDrawListSharedData* self,float max_error);
|
||||||
CIMGUI_API ImDrawDataBuilder* ImDrawDataBuilder_ImDrawDataBuilder(void);
|
CIMGUI_API ImDrawDataBuilder* ImDrawDataBuilder_ImDrawDataBuilder(void);
|
||||||
CIMGUI_API void ImDrawDataBuilder_destroy(ImDrawDataBuilder* self);
|
CIMGUI_API void ImDrawDataBuilder_destroy(ImDrawDataBuilder* self);
|
||||||
CIMGUI_API void* ImGuiDataVarInfo_GetVarPtr(ImGuiDataVarInfo* self,void* parent);
|
CIMGUI_API void* ImGuiStyleVarInfo_GetVarPtr(ImGuiStyleVarInfo* self,void* parent);
|
||||||
CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleMod_Int(ImGuiStyleVar idx,int v);
|
CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleMod_Int(ImGuiStyleVar idx,int v);
|
||||||
CIMGUI_API void ImGuiStyleMod_destroy(ImGuiStyleMod* self);
|
CIMGUI_API void ImGuiStyleMod_destroy(ImGuiStyleMod* self);
|
||||||
CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleMod_Float(ImGuiStyleVar idx,float v);
|
CIMGUI_API ImGuiStyleMod* ImGuiStyleMod_ImGuiStyleMod_Float(ImGuiStyleVar idx,float v);
|
||||||
@@ -4567,8 +4607,8 @@ CIMGUI_API void ImGuiTableColumnSettings_destroy(ImGuiTableColumnSettings* self)
|
|||||||
CIMGUI_API ImGuiTableSettings* ImGuiTableSettings_ImGuiTableSettings(void);
|
CIMGUI_API ImGuiTableSettings* ImGuiTableSettings_ImGuiTableSettings(void);
|
||||||
CIMGUI_API void ImGuiTableSettings_destroy(ImGuiTableSettings* self);
|
CIMGUI_API void ImGuiTableSettings_destroy(ImGuiTableSettings* self);
|
||||||
CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiTableSettings* self);
|
CIMGUI_API ImGuiTableColumnSettings* ImGuiTableSettings_GetColumnSettings(ImGuiTableSettings* self);
|
||||||
CIMGUI_API ImGuiIO* igGetIOEx(ImGuiContext* ctx);
|
CIMGUI_API ImGuiIO* igGetIO_ContextPtr(ImGuiContext* ctx);
|
||||||
CIMGUI_API ImGuiPlatformIO* igGetPlatformIOEx(ImGuiContext* ctx);
|
CIMGUI_API ImGuiPlatformIO* igGetPlatformIO_ContextPtr(ImGuiContext* ctx);
|
||||||
CIMGUI_API ImGuiWindow* igGetCurrentWindowRead(void);
|
CIMGUI_API ImGuiWindow* igGetCurrentWindowRead(void);
|
||||||
CIMGUI_API ImGuiWindow* igGetCurrentWindow(void);
|
CIMGUI_API ImGuiWindow* igGetCurrentWindow(void);
|
||||||
CIMGUI_API ImGuiWindow* igFindWindowByID(ImGuiID id);
|
CIMGUI_API ImGuiWindow* igFindWindowByID(ImGuiID id);
|
||||||
@@ -4601,6 +4641,7 @@ CIMGUI_API ImGuiWindow* igFindBottomMostVisibleWindowWithinBeginStack(ImGuiWindo
|
|||||||
CIMGUI_API void igSetNextWindowRefreshPolicy(ImGuiWindowRefreshFlags flags);
|
CIMGUI_API void igSetNextWindowRefreshPolicy(ImGuiWindowRefreshFlags flags);
|
||||||
CIMGUI_API void igSetCurrentFont(ImFont* font);
|
CIMGUI_API void igSetCurrentFont(ImFont* font);
|
||||||
CIMGUI_API ImFont* igGetDefaultFont(void);
|
CIMGUI_API ImFont* igGetDefaultFont(void);
|
||||||
|
CIMGUI_API void igPushPasswordFont(void);
|
||||||
CIMGUI_API ImDrawList* igGetForegroundDrawList_WindowPtr(ImGuiWindow* window);
|
CIMGUI_API ImDrawList* igGetForegroundDrawList_WindowPtr(ImGuiWindow* window);
|
||||||
CIMGUI_API void igAddDrawListToDrawDataEx(ImDrawData* draw_data,ImVector_ImDrawListPtr* out_list,ImDrawList* draw_list);
|
CIMGUI_API void igAddDrawListToDrawDataEx(ImDrawData* draw_data,ImVector_ImDrawListPtr* out_list,ImDrawList* draw_list);
|
||||||
CIMGUI_API void igInitialize(void);
|
CIMGUI_API void igInitialize(void);
|
||||||
@@ -4662,12 +4703,12 @@ CIMGUI_API bool igItemAdd(const ImRect bb,ImGuiID id,const ImRect* nav_bb,ImGuiI
|
|||||||
CIMGUI_API bool igItemHoverable(const ImRect bb,ImGuiID id,ImGuiItemFlags item_flags);
|
CIMGUI_API bool igItemHoverable(const ImRect bb,ImGuiID id,ImGuiItemFlags item_flags);
|
||||||
CIMGUI_API bool igIsWindowContentHoverable(ImGuiWindow* window,ImGuiHoveredFlags flags);
|
CIMGUI_API bool igIsWindowContentHoverable(ImGuiWindow* window,ImGuiHoveredFlags flags);
|
||||||
CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id);
|
CIMGUI_API bool igIsClippedEx(const ImRect bb,ImGuiID id);
|
||||||
CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags in_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect);
|
CIMGUI_API void igSetLastItemData(ImGuiID item_id,ImGuiItemFlags item_flags,ImGuiItemStatusFlags status_flags,const ImRect item_rect);
|
||||||
CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h);
|
CIMGUI_API void igCalcItemSize(ImVec2 *pOut,ImVec2 size,float default_w,float default_h);
|
||||||
CIMGUI_API float igCalcWrapWidthForPos(const ImVec2 pos,float wrap_pos_x);
|
CIMGUI_API float igCalcWrapWidthForPos(const ImVec2 pos,float wrap_pos_x);
|
||||||
CIMGUI_API void igPushMultiItemsWidths(int components,float width_full);
|
CIMGUI_API void igPushMultiItemsWidths(int components,float width_full);
|
||||||
CIMGUI_API void igShrinkWidths(ImGuiShrinkWidthItem* items,int count,float width_excess);
|
CIMGUI_API void igShrinkWidths(ImGuiShrinkWidthItem* items,int count,float width_excess);
|
||||||
CIMGUI_API const ImGuiDataVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx);
|
CIMGUI_API const ImGuiStyleVarInfo* igGetStyleVarInfo(ImGuiStyleVar idx);
|
||||||
CIMGUI_API void igBeginDisabledOverrideReenable(void);
|
CIMGUI_API void igBeginDisabledOverrideReenable(void);
|
||||||
CIMGUI_API void igEndDisabledOverrideReenable(void);
|
CIMGUI_API void igEndDisabledOverrideReenable(void);
|
||||||
CIMGUI_API void igLogBegin(ImGuiLogFlags flags,int auto_open_depth);
|
CIMGUI_API void igLogBegin(ImGuiLogFlags flags,int auto_open_depth);
|
||||||
@@ -4676,6 +4717,7 @@ CIMGUI_API void igLogRenderedText(const ImVec2* ref_pos,const char* text,const c
|
|||||||
CIMGUI_API void igLogSetNextTextDecoration(const char* prefix,const char* suffix);
|
CIMGUI_API void igLogSetNextTextDecoration(const char* prefix,const char* suffix);
|
||||||
CIMGUI_API bool igBeginChildEx(const char* name,ImGuiID id,const ImVec2 size_arg,ImGuiChildFlags child_flags,ImGuiWindowFlags window_flags);
|
CIMGUI_API bool igBeginChildEx(const char* name,ImGuiID id,const ImVec2 size_arg,ImGuiChildFlags child_flags,ImGuiWindowFlags window_flags);
|
||||||
CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_window_flags);
|
CIMGUI_API bool igBeginPopupEx(ImGuiID id,ImGuiWindowFlags extra_window_flags);
|
||||||
|
CIMGUI_API bool igBeginPopupMenuEx(ImGuiID id,const char* label,ImGuiWindowFlags extra_window_flags);
|
||||||
CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags);
|
CIMGUI_API void igOpenPopupEx(ImGuiID id,ImGuiPopupFlags popup_flags);
|
||||||
CIMGUI_API void igClosePopupToLevel(int remaining,bool restore_focus_to_window_under_popup);
|
CIMGUI_API void igClosePopupToLevel(int remaining,bool restore_focus_to_window_under_popup);
|
||||||
CIMGUI_API void igClosePopupsOverWindow(ImGuiWindow* ref_window,bool restore_focus_to_window_under_popup);
|
CIMGUI_API void igClosePopupsOverWindow(ImGuiWindow* ref_window,bool restore_focus_to_window_under_popup);
|
||||||
@@ -4893,6 +4935,7 @@ CIMGUI_API void igTabBarQueueReorder(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,int
|
|||||||
CIMGUI_API void igTabBarQueueReorderFromMousePos(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,ImVec2 mouse_pos);
|
CIMGUI_API void igTabBarQueueReorderFromMousePos(ImGuiTabBar* tab_bar,ImGuiTabItem* tab,ImVec2 mouse_pos);
|
||||||
CIMGUI_API bool igTabBarProcessReorder(ImGuiTabBar* tab_bar);
|
CIMGUI_API bool igTabBarProcessReorder(ImGuiTabBar* tab_bar);
|
||||||
CIMGUI_API bool igTabItemEx(ImGuiTabBar* tab_bar,const char* label,bool* p_open,ImGuiTabItemFlags flags,ImGuiWindow* docked_window);
|
CIMGUI_API bool igTabItemEx(ImGuiTabBar* tab_bar,const char* label,bool* p_open,ImGuiTabItemFlags flags,ImGuiWindow* docked_window);
|
||||||
|
CIMGUI_API void igTabItemSpacing(const char* str_id,ImGuiTabItemFlags flags,float width);
|
||||||
CIMGUI_API void igTabItemCalcSize_Str(ImVec2 *pOut,const char* label,bool has_close_button_or_unsaved_marker);
|
CIMGUI_API void igTabItemCalcSize_Str(ImVec2 *pOut,const char* label,bool has_close_button_or_unsaved_marker);
|
||||||
CIMGUI_API void igTabItemCalcSize_WindowPtr(ImVec2 *pOut,ImGuiWindow* window);
|
CIMGUI_API void igTabItemCalcSize_WindowPtr(ImVec2 *pOut,ImGuiWindow* window);
|
||||||
CIMGUI_API void igTabItemBackground(ImDrawList* draw_list,const ImRect bb,ImGuiTabItemFlags flags,ImU32 col);
|
CIMGUI_API void igTabItemBackground(ImDrawList* draw_list,const ImRect bb,ImGuiTabItemFlags flags,ImU32 col);
|
||||||
@@ -4955,6 +4998,7 @@ CIMGUI_API bool igTempInputScalar(const ImRect bb,ImGuiID id,const char* label,I
|
|||||||
CIMGUI_API bool igTempInputIsActive(ImGuiID id);
|
CIMGUI_API bool igTempInputIsActive(ImGuiID id);
|
||||||
CIMGUI_API ImGuiInputTextState* igGetInputTextState(ImGuiID id);
|
CIMGUI_API ImGuiInputTextState* igGetInputTextState(ImGuiID id);
|
||||||
CIMGUI_API void igSetNextItemRefVal(ImGuiDataType data_type,void* p_data);
|
CIMGUI_API void igSetNextItemRefVal(ImGuiDataType data_type,void* p_data);
|
||||||
|
CIMGUI_API bool igIsItemActiveAsInputText(void);
|
||||||
CIMGUI_API void igColorTooltip(const char* text,const float* col,ImGuiColorEditFlags flags);
|
CIMGUI_API void igColorTooltip(const char* text,const float* col,ImGuiColorEditFlags flags);
|
||||||
CIMGUI_API void igColorEditOptionsPopup(const float* col,ImGuiColorEditFlags flags);
|
CIMGUI_API void igColorEditOptionsPopup(const float* col,ImGuiColorEditFlags flags);
|
||||||
CIMGUI_API void igColorPickerOptionsPopup(const float* ref_col,ImGuiColorEditFlags flags);
|
CIMGUI_API void igColorPickerOptionsPopup(const float* ref_col,ImGuiColorEditFlags flags);
|
||||||
@@ -5008,15 +5052,17 @@ CIMGUI_API void igDebugNodePlatformMonitor(ImGuiPlatformMonitor* monitor,const c
|
|||||||
CIMGUI_API void igDebugRenderKeyboardPreview(ImDrawList* draw_list);
|
CIMGUI_API void igDebugRenderKeyboardPreview(ImDrawList* draw_list);
|
||||||
CIMGUI_API void igDebugRenderViewportThumbnail(ImDrawList* draw_list,ImGuiViewportP* viewport,const ImRect bb);
|
CIMGUI_API void igDebugRenderViewportThumbnail(ImDrawList* draw_list,ImGuiViewportP* viewport,const ImRect bb);
|
||||||
CIMGUI_API const ImFontBuilderIO* igImFontAtlasGetBuilderForStbTruetype(void);
|
CIMGUI_API const ImFontBuilderIO* igImFontAtlasGetBuilderForStbTruetype(void);
|
||||||
CIMGUI_API void igImFontAtlasUpdateConfigDataPointers(ImFontAtlas* atlas);
|
CIMGUI_API void igImFontAtlasUpdateSourcesPointers(ImFontAtlas* atlas);
|
||||||
CIMGUI_API void igImFontAtlasBuildInit(ImFontAtlas* atlas);
|
CIMGUI_API void igImFontAtlasBuildInit(ImFontAtlas* atlas);
|
||||||
CIMGUI_API void igImFontAtlasBuildSetupFont(ImFontAtlas* atlas,ImFont* font,ImFontConfig* font_config,float ascent,float descent);
|
CIMGUI_API void igImFontAtlasBuildSetupFont(ImFontAtlas* atlas,ImFont* font,ImFontConfig* src,float ascent,float descent);
|
||||||
CIMGUI_API void igImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas,void* stbrp_context_opaque);
|
CIMGUI_API void igImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas,void* stbrp_context_opaque);
|
||||||
CIMGUI_API void igImFontAtlasBuildFinish(ImFontAtlas* atlas);
|
CIMGUI_API void igImFontAtlasBuildFinish(ImFontAtlas* atlas);
|
||||||
CIMGUI_API void igImFontAtlasBuildRender8bppRectFromString(ImFontAtlas* atlas,int x,int y,int w,int h,const char* in_str,char in_marker_char,unsigned char in_marker_pixel_value);
|
CIMGUI_API void igImFontAtlasBuildRender8bppRectFromString(ImFontAtlas* atlas,int x,int y,int w,int h,const char* in_str,char in_marker_char,unsigned char in_marker_pixel_value);
|
||||||
CIMGUI_API void igImFontAtlasBuildRender32bppRectFromString(ImFontAtlas* atlas,int x,int y,int w,int h,const char* in_str,char in_marker_char,unsigned int in_marker_pixel_value);
|
CIMGUI_API void igImFontAtlasBuildRender32bppRectFromString(ImFontAtlas* atlas,int x,int y,int w,int h,const char* in_str,char in_marker_char,unsigned int in_marker_pixel_value);
|
||||||
CIMGUI_API void igImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256],float in_multiply_factor);
|
CIMGUI_API void igImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256],float in_multiply_factor);
|
||||||
CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256],unsigned char* pixels,int x,int y,int w,int h,int stride);
|
CIMGUI_API void igImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256],unsigned char* pixels,int x,int y,int w,int h,int stride);
|
||||||
|
CIMGUI_API void igImFontAtlasBuildGetOversampleFactors(const ImFontConfig* src,int* out_oversample_h,int* out_oversample_v);
|
||||||
|
CIMGUI_API bool igImFontAtlasGetMouseCursorTexData(ImFontAtlas* atlas,ImGuiMouseCursor cursor_type,ImVec2* out_offset,ImVec2* out_size,ImVec2 out_uv_border[2],ImVec2 out_uv_fill[2]);
|
||||||
#ifdef IMGUI_ENABLE_FREETYPE
|
#ifdef IMGUI_ENABLE_FREETYPE
|
||||||
CIMGUI_API const ImFontBuilderIO* ImGuiFreeType_GetBuilderForFreeType(void);
|
CIMGUI_API const ImFontBuilderIO* ImGuiFreeType_GetBuilderForFreeType(void);
|
||||||
CIMGUI_API void ImGuiFreeType_SetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data);
|
CIMGUI_API void ImGuiFreeType_SetAllocatorFunctions(void*(*alloc_func)(size_t sz,void* user_data),void(*free_func)(void* ptr,void* user_data),void* user_data);
|
||||||
@@ -5027,7 +5073,7 @@ CIMGUI_API void ImGuiFreeType_SetAllocatorFunctions(void*(*alloc_func)(size_t sz
|
|||||||
//no LogTextV
|
//no LogTextV
|
||||||
CIMGUI_API void igLogText(const char *fmt, ...);
|
CIMGUI_API void igLogText(const char *fmt, ...);
|
||||||
//no appendfV
|
//no appendfV
|
||||||
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
|
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
|
||||||
//for getting FLT_MAX in bindings
|
//for getting FLT_MAX in bindings
|
||||||
CIMGUI_API float igGET_FLT_MAX(void);
|
CIMGUI_API float igGET_FLT_MAX(void);
|
||||||
//for getting FLT_MIN in bindings
|
//for getting FLT_MIN in bindings
|
||||||
|
46
cimgui_impl.cpp
Normal file
46
cimgui_impl.cpp
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#include "./imgui/imgui.h"
|
||||||
|
#ifdef IMGUI_ENABLE_FREETYPE
|
||||||
|
#include "./imgui/misc/freetype/imgui_freetype.h"
|
||||||
|
#endif
|
||||||
|
#include "./imgui/imgui_internal.h"
|
||||||
|
#include "cimgui.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef CIMGUI_USE_GLFW
|
||||||
|
#include "imgui_impl_glfw.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CIMGUI_USE_OPENGL3
|
||||||
|
#include "imgui_impl_opengl3.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CIMGUI_USE_OPENGL2
|
||||||
|
#include "imgui_impl_opengl2.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CIMGUI_USE_SDL2
|
||||||
|
#include "imgui_impl_sdl2.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CIMGUI_USE_SDL3
|
||||||
|
#include "imgui_impl_sdl3.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef CIMGUI_USE_VULKAN
|
||||||
|
#include "imgui_impl_vulkan.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "cimgui_impl.h"
|
||||||
|
|
||||||
|
#ifdef CIMGUI_USE_VULKAN
|
||||||
|
|
||||||
|
CIMGUI_API ImGui_ImplVulkanH_Window* ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window()
|
||||||
|
{
|
||||||
|
return IM_NEW(ImGui_ImplVulkanH_Window)();
|
||||||
|
}
|
||||||
|
CIMGUI_API void ImGui_ImplVulkanH_Window_Construct(ImGui_ImplVulkanH_Window* self)
|
||||||
|
{
|
||||||
|
IM_PLACEMENT_NEW(self) ImGui_ImplVulkanH_Window();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
198
cimgui_impl.h
Normal file
198
cimgui_impl.h
Normal file
@@ -0,0 +1,198 @@
|
|||||||
|
#ifdef CIMGUI_USE_GLFW
|
||||||
|
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
|
||||||
|
typedef struct GLFWwindow GLFWwindow;
|
||||||
|
typedef struct GLFWmonitor GLFWmonitor;
|
||||||
|
struct GLFWwindow;
|
||||||
|
struct GLFWmonitor;
|
||||||
|
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
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(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_SetCallbacksChainForAllWindows(bool chain_for_all_windows);
|
||||||
|
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);
|
||||||
|
CIMGUI_API void ImGui_ImplGlfw_Sleep(int milliseconds);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#ifdef CIMGUI_USE_OPENGL3
|
||||||
|
CIMGUI_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version);
|
||||||
|
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(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(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_SDL2
|
||||||
|
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
|
||||||
|
typedef struct SDL_Window SDL_Window;
|
||||||
|
typedef struct SDL_Renderer SDL_Renderer;
|
||||||
|
typedef struct _SDL_GameController _SDL_GameController;
|
||||||
|
struct SDL_Window;
|
||||||
|
struct SDL_Renderer;
|
||||||
|
struct _SDL_GameController;
|
||||||
|
typedef union SDL_Event SDL_Event;
|
||||||
|
typedef enum { ImGui_ImplSDL2_GamepadMode_AutoFirst, ImGui_ImplSDL2_GamepadMode_AutoAll, ImGui_ImplSDL2_GamepadMode_Manual }ImGui_ImplSDL2_GamepadMode;
|
||||||
|
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
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,SDL_Renderer* renderer);
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL2_InitForOther(SDL_Window* window);
|
||||||
|
CIMGUI_API void ImGui_ImplSDL2_Shutdown(void);
|
||||||
|
CIMGUI_API void ImGui_ImplSDL2_NewFrame(void);
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);
|
||||||
|
CIMGUI_API void ImGui_ImplSDL2_SetGamepadMode(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array,int manual_gamepads_count);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#ifdef CIMGUI_USE_SDL3
|
||||||
|
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
|
||||||
|
typedef struct SDL_Window SDL_Window;
|
||||||
|
typedef struct SDL_Renderer SDL_Renderer;
|
||||||
|
typedef struct SDL_Gamepad SDL_Gamepad;
|
||||||
|
struct SDL_Window;
|
||||||
|
struct SDL_Renderer;
|
||||||
|
struct SDL_Gamepad;
|
||||||
|
typedef union SDL_Event SDL_Event;
|
||||||
|
typedef enum { ImGui_ImplSDL3_GamepadMode_AutoFirst, ImGui_ImplSDL3_GamepadMode_AutoAll, ImGui_ImplSDL3_GamepadMode_Manual }ImGui_ImplSDL3_GamepadMode;
|
||||||
|
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL3_InitForOpenGL(SDL_Window* window,void* sdl_gl_context);
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL3_InitForVulkan(SDL_Window* window);
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL3_InitForD3D(SDL_Window* window);
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL3_InitForMetal(SDL_Window* window);
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL3_InitForSDLRenderer(SDL_Window* window,SDL_Renderer* renderer);
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL3_InitForSDLGPU(SDL_Window* window);
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL3_InitForOther(SDL_Window* window);
|
||||||
|
CIMGUI_API void ImGui_ImplSDL3_Shutdown(void);
|
||||||
|
CIMGUI_API void ImGui_ImplSDL3_NewFrame(void);
|
||||||
|
CIMGUI_API bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event);
|
||||||
|
CIMGUI_API void ImGui_ImplSDL3_SetGamepadMode(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array,int manual_gamepads_count);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#ifdef CIMGUI_USE_VULKAN
|
||||||
|
#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
|
||||||
|
typedef struct ImGui_ImplVulkanH_Frame ImGui_ImplVulkanH_Frame;
|
||||||
|
typedef struct ImGui_ImplVulkanH_Window ImGui_ImplVulkanH_Window;
|
||||||
|
typedef struct ImGui_ImplVulkan_InitInfo ImGui_ImplVulkan_InitInfo;
|
||||||
|
struct ImGui_ImplVulkan_InitInfo
|
||||||
|
{
|
||||||
|
uint32_t ApiVersion;
|
||||||
|
VkInstance Instance;
|
||||||
|
VkPhysicalDevice PhysicalDevice;
|
||||||
|
VkDevice Device;
|
||||||
|
uint32_t QueueFamily;
|
||||||
|
VkQueue Queue;
|
||||||
|
VkDescriptorPool DescriptorPool;
|
||||||
|
VkRenderPass RenderPass;
|
||||||
|
uint32_t MinImageCount;
|
||||||
|
uint32_t ImageCount;
|
||||||
|
VkSampleCountFlagBits MSAASamples;
|
||||||
|
VkPipelineCache PipelineCache;
|
||||||
|
uint32_t Subpass;
|
||||||
|
uint32_t DescriptorPoolSize;
|
||||||
|
bool UseDynamicRendering;
|
||||||
|
VkPipelineRenderingCreateInfoKHR PipelineRenderingCreateInfo;
|
||||||
|
const VkAllocationCallbacks* Allocator;
|
||||||
|
void (*CheckVkResultFn)(VkResult err);
|
||||||
|
VkDeviceSize MinAllocationSize;
|
||||||
|
};
|
||||||
|
typedef struct ImGui_ImplVulkan_RenderState ImGui_ImplVulkan_RenderState;
|
||||||
|
struct ImGui_ImplVulkan_RenderState
|
||||||
|
{
|
||||||
|
VkCommandBuffer CommandBuffer;
|
||||||
|
VkPipeline Pipeline;
|
||||||
|
VkPipelineLayout PipelineLayout;
|
||||||
|
};
|
||||||
|
struct ImGui_ImplVulkanH_Frame;
|
||||||
|
struct ImGui_ImplVulkanH_Window;
|
||||||
|
struct ImGui_ImplVulkanH_Frame
|
||||||
|
{
|
||||||
|
VkCommandPool CommandPool;
|
||||||
|
VkCommandBuffer CommandBuffer;
|
||||||
|
VkFence Fence;
|
||||||
|
VkImage Backbuffer;
|
||||||
|
VkImageView BackbufferView;
|
||||||
|
VkFramebuffer Framebuffer;
|
||||||
|
};
|
||||||
|
typedef struct ImGui_ImplVulkanH_FrameSemaphores ImGui_ImplVulkanH_FrameSemaphores;
|
||||||
|
struct ImGui_ImplVulkanH_FrameSemaphores
|
||||||
|
{
|
||||||
|
VkSemaphore ImageAcquiredSemaphore;
|
||||||
|
VkSemaphore RenderCompleteSemaphore;
|
||||||
|
};
|
||||||
|
typedef struct ImVector_ImGui_ImplVulkanH_Frame {int Size;int Capacity;ImGui_ImplVulkanH_Frame* Data;} ImVector_ImGui_ImplVulkanH_Frame;
|
||||||
|
|
||||||
|
typedef struct ImVector_ImGui_ImplVulkanH_FrameSemaphores {int Size;int Capacity;ImGui_ImplVulkanH_FrameSemaphores* Data;} ImVector_ImGui_ImplVulkanH_FrameSemaphores;
|
||||||
|
|
||||||
|
struct ImGui_ImplVulkanH_Window
|
||||||
|
{
|
||||||
|
int Width;
|
||||||
|
int Height;
|
||||||
|
VkSwapchainKHR Swapchain;
|
||||||
|
VkSurfaceKHR Surface;
|
||||||
|
VkSurfaceFormatKHR SurfaceFormat;
|
||||||
|
VkPresentModeKHR PresentMode;
|
||||||
|
VkRenderPass RenderPass;
|
||||||
|
bool UseDynamicRendering;
|
||||||
|
bool ClearEnable;
|
||||||
|
VkClearValue ClearValue;
|
||||||
|
uint32_t FrameIndex;
|
||||||
|
uint32_t ImageCount;
|
||||||
|
uint32_t SemaphoreCount;
|
||||||
|
uint32_t SemaphoreIndex;
|
||||||
|
ImVector_ImGui_ImplVulkanH_Frame Frames;
|
||||||
|
ImVector_ImGui_ImplVulkanH_FrameSemaphores FrameSemaphores;
|
||||||
|
};
|
||||||
|
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
typedef ImVector<ImGui_ImplVulkanH_Frame> ImVector_ImGui_ImplVulkanH_Frame;
|
||||||
|
typedef ImVector<ImGui_ImplVulkanH_FrameSemaphores> ImVector_ImGui_ImplVulkanH_FrameSemaphores;
|
||||||
|
#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS
|
||||||
|
CIMGUI_API bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info);
|
||||||
|
CIMGUI_API void ImGui_ImplVulkan_Shutdown(void);
|
||||||
|
CIMGUI_API void ImGui_ImplVulkan_NewFrame(void);
|
||||||
|
CIMGUI_API void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data,VkCommandBuffer command_buffer,VkPipeline pipeline);
|
||||||
|
CIMGUI_API bool ImGui_ImplVulkan_CreateFontsTexture(void);
|
||||||
|
CIMGUI_API void ImGui_ImplVulkan_DestroyFontsTexture(void);
|
||||||
|
CIMGUI_API void ImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count);
|
||||||
|
CIMGUI_API VkDescriptorSet ImGui_ImplVulkan_AddTexture(VkSampler sampler,VkImageView image_view,VkImageLayout image_layout);
|
||||||
|
CIMGUI_API void ImGui_ImplVulkan_RemoveTexture(VkDescriptorSet descriptor_set);
|
||||||
|
CIMGUI_API bool ImGui_ImplVulkan_LoadFunctions(uint32_t api_version,PFN_vkVoidFunction(*loader_func)(const char* function_name,void* user_data),void* user_data);
|
||||||
|
CIMGUI_API void ImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance,VkPhysicalDevice physical_device,VkDevice device,ImGui_ImplVulkanH_Window* wd,uint32_t queue_family,const VkAllocationCallbacks* allocator,int w,int h,uint32_t min_image_count);
|
||||||
|
CIMGUI_API void ImGui_ImplVulkanH_DestroyWindow(VkInstance instance,VkDevice device,ImGui_ImplVulkanH_Window* wd,const VkAllocationCallbacks* allocator);
|
||||||
|
CIMGUI_API VkSurfaceFormatKHR ImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkFormat* request_formats,int request_formats_count,VkColorSpaceKHR request_color_space);
|
||||||
|
CIMGUI_API VkPresentModeKHR ImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkPresentModeKHR* request_modes,int request_modes_count);
|
||||||
|
CIMGUI_API VkPhysicalDevice ImGui_ImplVulkanH_SelectPhysicalDevice(VkInstance instance);
|
||||||
|
CIMGUI_API uint32_t ImGui_ImplVulkanH_SelectQueueFamilyIndex(VkPhysicalDevice physical_device);
|
||||||
|
CIMGUI_API int ImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode);
|
||||||
|
CIMGUI_API ImGui_ImplVulkanH_Window* ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window(void);
|
||||||
|
|
||||||
|
#endif
|
23
generator/cimgui_impl_template.cpp
Normal file
23
generator/cimgui_impl_template.cpp
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
#include "./imgui/imgui.h"
|
||||||
|
#ifdef IMGUI_ENABLE_FREETYPE
|
||||||
|
#include "./imgui/misc/freetype/imgui_freetype.h"
|
||||||
|
#endif
|
||||||
|
#include "./imgui/imgui_internal.h"
|
||||||
|
#include "cimgui.h"
|
||||||
|
|
||||||
|
GENERATED_PLACEHOLDER
|
||||||
|
|
||||||
|
#include "cimgui_impl.h"
|
||||||
|
|
||||||
|
#ifdef CIMGUI_USE_VULKAN
|
||||||
|
|
||||||
|
CIMGUI_API ImGui_ImplVulkanH_Window* ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window()
|
||||||
|
{
|
||||||
|
return IM_NEW(ImGui_ImplVulkanH_Window)();
|
||||||
|
}
|
||||||
|
CIMGUI_API void ImGui_ImplVulkanH_Window_Construct(ImGui_ImplVulkanH_Window* self)
|
||||||
|
{
|
||||||
|
IM_PLACEMENT_NEW(self) ImGui_ImplVulkanH_Window();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////manual written functions
|
/////////////////////////////manual written functions
|
||||||
CIMGUI_API void igLogText(CONST char *fmt, ...)
|
CIMGUI_API void igLogText(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
char buffer[256];
|
char buffer[256];
|
||||||
va_list args;
|
va_list args;
|
||||||
@@ -22,11 +22,11 @@ CIMGUI_API void igLogText(CONST char *fmt, ...)
|
|||||||
|
|
||||||
ImGui::LogText("%s", buffer);
|
ImGui::LogText("%s", buffer);
|
||||||
}
|
}
|
||||||
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...)
|
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
buffer->appendfv(fmt, args);
|
self->appendfv(fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -49,7 +49,7 @@ typedef union SDL_Event SDL_Event;
|
|||||||
//no LogTextV
|
//no LogTextV
|
||||||
CIMGUI_API void igLogText(const char *fmt, ...);
|
CIMGUI_API void igLogText(const char *fmt, ...);
|
||||||
//no appendfV
|
//no appendfV
|
||||||
CIMGUI_API void ImGuiTextBuffer_appendf(struct ImGuiTextBuffer *buffer, const char *fmt, ...);
|
CIMGUI_API void ImGuiTextBuffer_appendf(ImGuiTextBuffer *self, const char *fmt, ...);
|
||||||
//for getting FLT_MAX in bindings
|
//for getting FLT_MAX in bindings
|
||||||
CIMGUI_API float igGET_FLT_MAX(void);
|
CIMGUI_API float igGET_FLT_MAX(void);
|
||||||
//for getting FLT_MIN in bindings
|
//for getting FLT_MIN in bindings
|
||||||
|
@@ -320,6 +320,9 @@ local function getRE()
|
|||||||
function_re = "^([^;{}]+%b()[\n%s]*;)%s*",
|
function_re = "^([^;{}]+%b()[\n%s]*;)%s*",
|
||||||
function_re = "^([^;{}=]+%b()[\n%s%w]*;)", --const at the end
|
function_re = "^([^;{}=]+%b()[\n%s%w]*;)", --const at the end
|
||||||
function_re = "^([^;{}=]+%b()[\n%s%w%(%)_]*;)", --attribute(deprecated)
|
function_re = "^([^;{}=]+%b()[\n%s%w%(%)_]*;)", --attribute(deprecated)
|
||||||
|
--we need to skip = as function because of "var = f()" initialization in struct fields
|
||||||
|
-- but we don want operator== to appear as a var and as we should skip this kind of function solution is:
|
||||||
|
operator_re = "^([^;{}]+operator[^;{}]+%b()[\n%s%w%(%)_]*;)",
|
||||||
struct_re = "^([^;{}]-struct[^;{}]-%b{}[%s%w_%(%)]*;)",
|
struct_re = "^([^;{}]-struct[^;{}]-%b{}[%s%w_%(%)]*;)",
|
||||||
enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)",
|
enum_re = "^([^;{}]-enum[^;{}]-%b{}[%s%w_%(%)]*;)",
|
||||||
union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)",
|
union_re = "^([^;{}]-union[^;{}]-%b{}[%s%w_%(%)]*;)",
|
||||||
@@ -344,7 +347,7 @@ local function getRE()
|
|||||||
}
|
}
|
||||||
|
|
||||||
local resN = {"comment2_re","comment_re","emptyline_re",
|
local resN = {"comment2_re","comment_re","emptyline_re",
|
||||||
"functypedef_re","functype_re","function_re","functionD_re","typedef_st_re","struct_re","enum_re","union_re","namespace_re","class_re","typedef_re","vardef_re"}
|
"functypedef_re","functype_re","function_re","functionD_re","operator_re","typedef_st_re","struct_re","enum_re","union_re","namespace_re","class_re","typedef_re","vardef_re"}
|
||||||
|
|
||||||
return res,resN
|
return res,resN
|
||||||
end
|
end
|
||||||
@@ -600,7 +603,7 @@ local function clean_names_from_signature(self,signat)
|
|||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
local function clean_functypedef(line)
|
local function clean_functypedef(line)
|
||||||
local first, args = line:match("(typedef .-%(%*[_%w]+%))%s*(%b())")
|
local first, args = line:match("(typedef .-%(%*%s*[_%w]+%))%s*(%b())")
|
||||||
|
|
||||||
if not args then
|
if not args then
|
||||||
print"not getting args in"
|
print"not getting args in"
|
||||||
@@ -946,6 +949,31 @@ local function AdjustArguments(FP)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
local function REPLACE_TEXTUREID(FP)
|
||||||
|
local defsT = FP.defsT
|
||||||
|
for numcdef,t in ipairs(FP.funcdefs) do
|
||||||
|
assert(t.cimguiname)
|
||||||
|
local cimf = defsT[t.cimguiname]
|
||||||
|
local defT = cimf[t.signature]
|
||||||
|
local hasTextureID = false
|
||||||
|
for i,arg in ipairs(defT.argsT) do
|
||||||
|
if arg.type == "ImTextureID" then print(t.cimguiname,t.signature);hasTextureID = true; break end
|
||||||
|
end
|
||||||
|
if hasTextureID then
|
||||||
|
for i,v in ipairs(defT.argsT) do
|
||||||
|
v.type = (v.type == "ImTextureID") and "ImTextureUserID" or v.type
|
||||||
|
end
|
||||||
|
--defaults table
|
||||||
|
for k,v in pairs(defT.defaults) do
|
||||||
|
if v:match"ImTextureID" then
|
||||||
|
error"default ImTextureID not implemented"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
defT.args = defT.args:gsub("ImTextureID","ImTextureUserID")
|
||||||
|
defT.signature = defT.signature:gsub("ImTextureID","ImTextureUserID")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
local function ADDIMSTR_S(FP)
|
local function ADDIMSTR_S(FP)
|
||||||
local defsT = FP.defsT
|
local defsT = FP.defsT
|
||||||
local newcdefs = {}
|
local newcdefs = {}
|
||||||
@@ -1042,7 +1070,39 @@ local function ADDIMSTR_S(FP)
|
|||||||
end
|
end
|
||||||
FP.funcdefs = newcdefs
|
FP.funcdefs = newcdefs
|
||||||
end
|
end
|
||||||
|
--this creates defsBystruct in case you need to list by struct container
|
||||||
|
local function DefsByStruct(FP)
|
||||||
|
local structs = {}
|
||||||
|
for fun,defs in pairs(FP.defsT) do
|
||||||
|
local stname = defs[1].stname
|
||||||
|
structs[stname] = structs[stname] or {}
|
||||||
|
table.insert(structs[stname],defs)--fun)
|
||||||
|
end
|
||||||
|
return structs
|
||||||
|
end
|
||||||
|
local function get_nonPOD(FP)
|
||||||
|
local defbystruct = DefsByStruct(FP)
|
||||||
|
--M.prtable(defbystruct)
|
||||||
|
local nonPOD = {}
|
||||||
|
for k,defs in pairs(defbystruct) do
|
||||||
|
if k~="" then
|
||||||
|
for i, ww in ipairs(defs) do
|
||||||
|
-- print(k,i,ww)
|
||||||
|
-- M.prtable(ww)
|
||||||
|
if not ww[1].ret then --constructor
|
||||||
|
nonPOD[k] = true
|
||||||
|
break;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
FP.structs_and_enums_table.nonPOD = nonPOD
|
||||||
|
return nonPOD
|
||||||
|
end
|
||||||
local function ADDnonUDT(FP)
|
local function ADDnonUDT(FP)
|
||||||
|
local nonPOD = get_nonPOD(FP)
|
||||||
|
--print"nonPOD"
|
||||||
|
--M.prtable(nonPOD)
|
||||||
local defsT = FP.defsT
|
local defsT = FP.defsT
|
||||||
--local newcdefs = {}
|
--local newcdefs = {}
|
||||||
for numcdef,t in ipairs(FP.funcdefs) do
|
for numcdef,t in ipairs(FP.funcdefs) do
|
||||||
@@ -1056,10 +1116,17 @@ local function ADDnonUDT(FP)
|
|||||||
end
|
end
|
||||||
--if UDT return generate nonUDT version
|
--if UDT return generate nonUDT version
|
||||||
local isUDT = false
|
local isUDT = false
|
||||||
|
--isUDT = FP.structs_and_enums_table.structs[defT.ret] and true or false
|
||||||
|
isUDT = nonPOD[defT.ret] and true or false
|
||||||
|
--inherited
|
||||||
|
if (not isUDT) and FP.cimgui_inherited and FP.cimgui_inherited.nonPOD[defT.ret] then
|
||||||
|
isUDT = true
|
||||||
|
end
|
||||||
for _,udt_ret in ipairs(FP.UDTs) do
|
for _,udt_ret in ipairs(FP.UDTs) do
|
||||||
if udt_ret == defT.ret then isUDT=true; break end
|
if udt_ret == defT.ret then isUDT=true; break end
|
||||||
end
|
end
|
||||||
--if defT.ret=="ImVec2" or defT.ret=="ImVec4" or defT.ret=="ImColor" then
|
|
||||||
|
|
||||||
if isUDT then
|
if isUDT then
|
||||||
--passing as a pointer arg
|
--passing as a pointer arg
|
||||||
local defT2 = {}
|
local defT2 = {}
|
||||||
@@ -1425,6 +1492,7 @@ function M.Parser()
|
|||||||
--save_data("./preparse"..tostring(self):gsub("table: ","")..".c",txt)
|
--save_data("./preparse"..tostring(self):gsub("table: ","")..".c",txt)
|
||||||
--]]
|
--]]
|
||||||
self.itemsarr = par:parseItemsR2(txt)
|
self.itemsarr = par:parseItemsR2(txt)
|
||||||
|
--save_data("./itemsarr.lua",ToStr(self.itemsarr))
|
||||||
itemsarr = self.itemsarr
|
itemsarr = self.itemsarr
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1471,10 +1539,13 @@ function M.Parser()
|
|||||||
local predeclare = ""
|
local predeclare = ""
|
||||||
--local iner = strip_end(stru:match("%b{}"):sub(2,-2))
|
--local iner = strip_end(stru:match("%b{}"):sub(2,-2))
|
||||||
local inistruct = clean_spaces(stru:match("(.-)%b{}"))
|
local inistruct = clean_spaces(stru:match("(.-)%b{}"))
|
||||||
|
--clean final:
|
||||||
|
inistruct = inistruct:gsub("%s*final%s*:",":")
|
||||||
--local stname = stru:match("struct%s*(%S+)%s*%b{}")
|
--local stname = stru:match("struct%s*(%S+)%s*%b{}")
|
||||||
local stname, derived
|
local stname, derived
|
||||||
if inistruct:match":" then
|
if inistruct:match":" then
|
||||||
stname,derived = inistruct:match"struct%s*([^%s:]+):(.+)"
|
stname,derived = inistruct:match"struct%s*([^%s:]+):(.+)"
|
||||||
|
--print(inistruct,stname,derived)
|
||||||
derived = derived:match"(%S+)$"
|
derived = derived:match"(%S+)$"
|
||||||
else
|
else
|
||||||
if itst.re_name == "struct_re" then
|
if itst.re_name == "struct_re" then
|
||||||
@@ -1529,12 +1600,14 @@ function M.Parser()
|
|||||||
--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*<(.+)>"
|
local ttype,template,te,code2 = check_template(it2) --it.item:match"([^%s,%(%)]+)%s*<(.+)>"
|
||||||
if template then
|
if template then
|
||||||
if self.typenames[ttype] ~= template then --rule out T (template typename)
|
--print("not doheader",ttype,template,te, self.typenames[ttype])
|
||||||
|
if self.typenames[ttype] ~= template and self.typenames[ttype].."*" ~= template then --rule out T (template typename)
|
||||||
self.templates[ttype] = self.templates[ttype] or {}
|
self.templates[ttype] = self.templates[ttype] or {}
|
||||||
self.templates[ttype][template] = te
|
self.templates[ttype][template] = te
|
||||||
it2=code2
|
it2=code2
|
||||||
end
|
end
|
||||||
if doheader then
|
if doheader then
|
||||||
|
|
||||||
local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template])
|
local templatetypedef = self:gentemplatetypedef(ttype, template,self.templates[ttype][template])
|
||||||
predeclare = predeclare .. templatetypedef
|
predeclare = predeclare .. templatetypedef
|
||||||
end
|
end
|
||||||
@@ -1590,7 +1663,7 @@ function M.Parser()
|
|||||||
end
|
end
|
||||||
elseif it.re_name == "enum_re" then
|
elseif it.re_name == "enum_re" then
|
||||||
--nop
|
--nop
|
||||||
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" then
|
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" and it.re_name ~= "operator_re" then
|
||||||
print(it.re_name,"not processed clean_struct in",stname,it.item:sub(1,24))
|
print(it.re_name,"not processed clean_struct in",stname,it.item:sub(1,24))
|
||||||
--M.prtable(it)
|
--M.prtable(it)
|
||||||
end
|
end
|
||||||
@@ -1657,6 +1730,7 @@ function M.Parser()
|
|||||||
it2 = clean_functypedef(it2)
|
it2 = clean_functypedef(it2)
|
||||||
else
|
else
|
||||||
assert(it.re_name == "vardef_re")
|
assert(it.re_name == "vardef_re")
|
||||||
|
it2 = it2:gsub("constexpr","static const")
|
||||||
if it2:match"enum" then
|
if it2:match"enum" then
|
||||||
print("--skip enum forward declaration:",it2)
|
print("--skip enum forward declaration:",it2)
|
||||||
it2 = ""
|
it2 = ""
|
||||||
@@ -1771,7 +1845,9 @@ function M.Parser()
|
|||||||
local ttype,fun = it.item:match"^%s*template%s+<%s*typename%s+([^>]+)%s*>%s*(.+)$"
|
local ttype,fun = it.item:match"^%s*template%s+<%s*typename%s+([^>]+)%s*>%s*(.+)$"
|
||||||
if self.ftemplate_list and self.ftemplate_list[ttype] then
|
if self.ftemplate_list and self.ftemplate_list[ttype] then
|
||||||
for iT,vT in ipairs(self.ftemplate_list[ttype]) do
|
for iT,vT in ipairs(self.ftemplate_list[ttype]) do
|
||||||
local funT = fun:gsub(ttype,vT)
|
local funT = fun:gsub("([< %(])"..ttype,"%1"..vT)
|
||||||
|
--funT = funT:gsub("sizeof%("..ttype.."%)","sizeof("..vT..")")
|
||||||
|
--local funT = fun:gsub(ttype,vT)
|
||||||
self:parseFunction(stname,{item=funT},namespace,it.locat)
|
self:parseFunction(stname,{item=funT},namespace,it.locat)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -1779,9 +1855,11 @@ function M.Parser()
|
|||||||
self:parseFunction(stname,it,namespace,it.locat)
|
self:parseFunction(stname,it,namespace,it.locat)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
if it.re_name~="operator_re" then
|
||||||
print("not processed gen",it.re_name,it.item:sub(1,20))
|
print("not processed gen",it.re_name,it.item:sub(1,20))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
self:Listing(itemsarr,processer)
|
self:Listing(itemsarr,processer)
|
||||||
|
|
||||||
@@ -1938,7 +2016,7 @@ function M.Parser()
|
|||||||
self.typedefs_dict[typedefname] = strip(typedefdef)
|
self.typedefs_dict[typedefname] = strip(typedefdef)
|
||||||
elseif it.re_name == "functypedef_re" then
|
elseif it.re_name == "functypedef_re" then
|
||||||
-- "^\n*%s*(typedef[%w%s%*_]+%([^*]*%*?%s*[%w_]+%s*%)%s*%b()%s*;)"
|
-- "^\n*%s*(typedef[%w%s%*_]+%([^*]*%*?%s*[%w_]+%s*%)%s*%b()%s*;)"
|
||||||
local key = it.item:match("%(%*([%w_]+)%)%([^%(%)]*%)")
|
local key = it.item:match("%(%*%s*([%w_]+)%)%s*%([^%(%)]*%)")
|
||||||
if key then
|
if key then
|
||||||
local linet = it.item
|
local linet = it.item
|
||||||
linet = linet:gsub("[\n%s]+typedef ","")
|
linet = linet:gsub("[\n%s]+typedef ","")
|
||||||
@@ -1989,7 +2067,7 @@ function M.Parser()
|
|||||||
end
|
end
|
||||||
elseif it.re_name == "namespace_re" or it.re_name == "union_re" or it.re_name == "functype_re" then
|
elseif it.re_name == "namespace_re" or it.re_name == "union_re" or it.re_name == "functype_re" then
|
||||||
--nop
|
--nop
|
||||||
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" then
|
elseif it.re_name ~= "functionD_re" and it.re_name ~= "function_re" and it.re_name ~= "operator_re" then
|
||||||
print("not processed gen table",it.re_name)
|
print("not processed gen table",it.re_name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -2062,6 +2140,11 @@ function M.Parser()
|
|||||||
for k,v in pairs(self.alltypes) do print(k, typetoStr(k) ) end
|
for k,v in pairs(self.alltypes) do print(k, typetoStr(k) ) end
|
||||||
end
|
end
|
||||||
function par:compute_overloads()
|
function par:compute_overloads()
|
||||||
|
-- if self.IMGUI_HAS_TEXTURES then
|
||||||
|
-- print"----------replacing ImTextureID with ImTextureUserID"
|
||||||
|
-- REPLACE_TEXTUREID(self)
|
||||||
|
-- print"----------end replacing ImTextureID with ImTextureUserID"
|
||||||
|
-- end
|
||||||
ADDIMSTR_S(self)
|
ADDIMSTR_S(self)
|
||||||
local strt = {}
|
local strt = {}
|
||||||
local numoverloaded = 0
|
local numoverloaded = 0
|
||||||
@@ -2234,6 +2317,7 @@ function M.Parser()
|
|||||||
return self:gen_template_typedef_auto(ttype,te,newte)
|
return self:gen_template_typedef_auto(ttype,te,newte)
|
||||||
end
|
end
|
||||||
function par:gen_template_typedef_auto(ttype,te,newte)
|
function par:gen_template_typedef_auto(ttype,te,newte)
|
||||||
|
--M.prtable(self.templated_structs)
|
||||||
assert(self.templated_structs[ttype],ttype)
|
assert(self.templated_structs[ttype],ttype)
|
||||||
local defi = self.templated_structs[ttype]
|
local defi = self.templated_structs[ttype]
|
||||||
local Targ = strsplit(self.typenames[ttype],",")
|
local Targ = strsplit(self.typenames[ttype],",")
|
||||||
@@ -2277,7 +2361,111 @@ function M.Parser()
|
|||||||
end
|
end
|
||||||
return par
|
return par
|
||||||
end
|
end
|
||||||
|
-- more compact serialization
|
||||||
|
local function basicSerialize (o)
|
||||||
|
if type(o) == "number" then
|
||||||
|
return string.format("%.17g", o)
|
||||||
|
elseif type(o)=="boolean" then
|
||||||
|
return tostring(o)
|
||||||
|
elseif type(o) == "string" then
|
||||||
|
return string.format("%q", o)
|
||||||
|
elseif pcall(function() return o.__serialize end) then
|
||||||
|
return o.__serialize(o)
|
||||||
|
elseif type(o)=="cdata" then
|
||||||
|
return cdataSerialize(o)
|
||||||
|
else
|
||||||
|
return tostring(o) --"nil"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- very readable and now suited for cyclic tables
|
||||||
|
local kw = {['and'] = true, ['break'] = true, ['do'] = true, ['else'] = true,
|
||||||
|
['elseif'] = true, ['end'] = true, ['false'] = true, ['for'] = true,
|
||||||
|
['function'] = true, ['goto'] = true, ['if'] = true, ['in'] = true,
|
||||||
|
['local'] = true, ['nil'] = true, ['not'] = true, ['or'] = true,
|
||||||
|
['repeat'] = true, ['return'] = true, ['then'] = true, ['true'] = true,
|
||||||
|
['until'] = true, ['while'] = true}
|
||||||
|
function tb2st_serialize(t,options)
|
||||||
|
options = options or {}
|
||||||
|
local function sorter(a,b)
|
||||||
|
if type(a)==type(b) then
|
||||||
|
return a<b
|
||||||
|
elseif type(a)=="number" then
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
assert(type(b)=="number")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local function serialize_key(val, dodot, pretty)
|
||||||
|
local dot = dodot and "." or ""
|
||||||
|
if type(val)=="string" then
|
||||||
|
if val:match '^[_%a][_%w]*$' and not kw[val] then
|
||||||
|
return dot..tostring(val)
|
||||||
|
else
|
||||||
|
return "[\""..tostring(val).."\"]"
|
||||||
|
end
|
||||||
|
elseif (not pretty) and (not dodot) and (type(val) == "number") and (math.floor(val)==val) then
|
||||||
|
return --array index
|
||||||
|
else
|
||||||
|
return "["..tostring(val).."]"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local function serialize_key_name(val)
|
||||||
|
return serialize_key(val, true)
|
||||||
|
end
|
||||||
|
local insert = table.insert
|
||||||
|
local function _tb2st(t,saved,sref,level,name)
|
||||||
|
saved = saved or {} -- initial value
|
||||||
|
level = level or 0
|
||||||
|
sref = sref or {}
|
||||||
|
name = name or "t"
|
||||||
|
if type(t)=="table" then
|
||||||
|
if saved[t] then
|
||||||
|
sref[#sref+1] = {saved[t],name}
|
||||||
|
return"nil"
|
||||||
|
else
|
||||||
|
saved[t] = name
|
||||||
|
|
||||||
|
local ordered_keys = {}
|
||||||
|
for k,v in pairs(t) do
|
||||||
|
insert(ordered_keys,k)
|
||||||
|
end
|
||||||
|
table.sort(ordered_keys,sorter)
|
||||||
|
|
||||||
|
local str2 = {}
|
||||||
|
insert(str2,"{")
|
||||||
|
if options.pretty then insert(str2,"\n") end
|
||||||
|
for _,k in ipairs(ordered_keys) do
|
||||||
|
if options.pretty then insert(str2,(" "):rep(level+1)) end
|
||||||
|
local v = t[k]
|
||||||
|
local kser = serialize_key(k, nil, options.pretty)
|
||||||
|
insert(str2, (kser and (kser .."=") or ""))
|
||||||
|
if type(v)~="table" then
|
||||||
|
insert(str2, basicSerialize(v))
|
||||||
|
else
|
||||||
|
local name2 = name .. serialize_key_name(k)
|
||||||
|
insert(str2,_tb2st(v,saved,sref,level+1,name2))
|
||||||
|
end
|
||||||
|
if options.pretty then insert(str2,",\n") else insert(str2, ",") end
|
||||||
|
end
|
||||||
|
str2[#str2] = "}"
|
||||||
|
if level == 0 then
|
||||||
|
--insert(str2, 1,"local ffi = require'ffi'\nlocal t=")
|
||||||
|
insert(str2, 1,"local t=")
|
||||||
|
for i,v in ipairs(sref) do
|
||||||
|
insert(str2, "\n"..v[2].."="..v[1])
|
||||||
|
end
|
||||||
|
insert(str2,"\n return t")
|
||||||
|
end
|
||||||
|
return table.concat(str2)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
return basicSerialize(t)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return(_tb2st(t))
|
||||||
|
end
|
||||||
|
M.tb2st_serialize = tb2st_serialize
|
||||||
------serializeTable("anyname",table) gives a string that recreates the table with dofile(generated_string)
|
------serializeTable("anyname",table) gives a string that recreates the table with dofile(generated_string)
|
||||||
local function serializeTable(name, value, saved)
|
local function serializeTable(name, value, saved)
|
||||||
|
|
||||||
@@ -2339,10 +2527,11 @@ local function serializeTable(name, value, saved)
|
|||||||
|
|
||||||
return table.concat(string_table)
|
return table.concat(string_table)
|
||||||
end
|
end
|
||||||
M.serializeTable = serializeTable
|
-- M.serializeTable = serializeTable
|
||||||
M.serializeTableF = function(t)
|
-- M.serializeTableF = function(t)
|
||||||
return M.serializeTable("defs",t).."\nreturn defs"
|
-- return M.serializeTable("defs",t).."\nreturn defs"
|
||||||
end
|
-- end
|
||||||
|
M.serializeTableF = function(t) return tb2st_serialize(t,{pretty=true}) end --new serialization more compact
|
||||||
--iterates lines from a gcc/clang -E in a specific location
|
--iterates lines from a gcc/clang -E in a specific location
|
||||||
local function location(file,locpathT,defines,COMPILER,keepemptylines)
|
local function location(file,locpathT,defines,COMPILER,keepemptylines)
|
||||||
local define_re = "^#define%s+([^%s]+)%s+(.+)$"
|
local define_re = "^#define%s+([^%s]+)%s+(.+)$"
|
||||||
|
@@ -20,7 +20,7 @@ set PATH=%PATH%;C:\anima;C:\mingws\i686-7.2.0-release-posix-dwarf-rt_v5-rev1\min
|
|||||||
:: examples: "" "internal" "internal comments"
|
:: examples: "" "internal" "internal comments"
|
||||||
:: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG)
|
:: arg[3..n] name of implementations to generate and/or CFLAGS (e.g. -DIMGUI_USER_CONFIG)
|
||||||
::-DIMGUI_USE_WCHAR32 should not be used (is discarded)
|
::-DIMGUI_USE_WCHAR32 should not be used (is discarded)
|
||||||
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 sdl3 -DIMGUI_USE_WCHAR32 %*
|
luajit ./generator.lua gcc "internal noimstrv" glfw opengl3 opengl2 sdl2 sdl3 vulkan %*
|
||||||
|
|
||||||
::leave console open
|
::leave console open
|
||||||
cmd /k
|
cmd /k
|
||||||
|
@@ -13,6 +13,7 @@ local CONSTRUCTORS_GENERATION = script_args[2]:match("constructors") and true or
|
|||||||
local NOCHAR = script_args[2]:match("nochar") and true or false
|
local NOCHAR = script_args[2]:match("nochar") and true or false
|
||||||
local NOIMSTRV = script_args[2]:match("noimstrv") and true or false
|
local NOIMSTRV = script_args[2]:match("noimstrv") and true or false
|
||||||
local IMGUI_PATH = os.getenv"IMGUI_PATH" or "../imgui"
|
local IMGUI_PATH = os.getenv"IMGUI_PATH" or "../imgui"
|
||||||
|
local CONFIG_GENERATOR_PATH = os.getenv"CONFIG_GENERATOR_PATH" or "./config_generator.lua"
|
||||||
local CFLAGS = ""
|
local CFLAGS = ""
|
||||||
local CPRE,CTEST
|
local CPRE,CTEST
|
||||||
--get implementations
|
--get implementations
|
||||||
@@ -91,6 +92,10 @@ local cimgui_skipped = {
|
|||||||
--desired name
|
--desired name
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
local cimgui_overloads = {
|
local cimgui_overloads = {
|
||||||
|
-- igGetIO = {
|
||||||
|
-- ["()"] = "igGetIO",
|
||||||
|
-- ["(ImGuiContext*)"] = "igGetIOEx",
|
||||||
|
-- },
|
||||||
--igPushID = {
|
--igPushID = {
|
||||||
--["(const char*)"] = "igPushIDStr",
|
--["(const char*)"] = "igPushIDStr",
|
||||||
--["(const char*,const char*)"] = "igPushIDRange",
|
--["(const char*,const char*)"] = "igPushIDRange",
|
||||||
@@ -124,16 +129,18 @@ local function func_header_impl_generate(FP)
|
|||||||
local cimf = FP.defsT[t.cimguiname]
|
local cimf = FP.defsT[t.cimguiname]
|
||||||
local def = cimf[t.signature]
|
local def = cimf[t.signature]
|
||||||
local addcoment = def.comment or ""
|
local addcoment = def.comment or ""
|
||||||
|
local empty = def.args:match("^%(%)") --no args
|
||||||
if def.constructor then
|
if def.constructor then
|
||||||
-- it happens with vulkan impl but constructor ImGui_ImplVulkanH_Window is not needed
|
-- only vulkan is manually created
|
||||||
--assert(def.stname ~= "","constructor without struct")
|
assert(def.ov_cimguiname=="ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window" or
|
||||||
--table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or --def.args)..";"..addcoment.."\n")
|
def.ov_cimguiname=="ImGui_ImplVulkanH_Window_Construct", "not cpp for "..def.ov_cimguiname)
|
||||||
|
assert(def.stname ~= "","constructor without struct")
|
||||||
|
table.insert(outtab,"CIMGUI_API "..def.stname.."* "..def.ov_cimguiname ..(empty and "(void)" or def.args)..";"..addcoment.."\n")
|
||||||
elseif def.destructor then
|
elseif def.destructor then
|
||||||
--table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
|
--table.insert(outtab,"CIMGUI_API void "..def.ov_cimguiname..def.args..";"..addcoment.."\n")
|
||||||
else
|
else
|
||||||
|
|
||||||
if def.stname == "" then --ImGui namespace or top level
|
if def.stname == "" then --ImGui namespace or top level
|
||||||
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")
|
table.insert(outtab,"CIMGUI_API".." "..def.ret.." "..def.ov_cimguiname..(empty and "(void)" or def.args)..";"..addcoment.."\n")
|
||||||
else
|
else
|
||||||
cpp2ffi.prtable(def)
|
cpp2ffi.prtable(def)
|
||||||
@@ -295,8 +302,8 @@ local function cimgui_generation(parser)
|
|||||||
local num
|
local num
|
||||||
hstrfile, num = hstrfile:gsub("typedef ImWchar16 ImWchar;", wchardefine)
|
hstrfile, num = hstrfile:gsub("typedef ImWchar16 ImWchar;", wchardefine)
|
||||||
assert(num == 1)
|
assert(num == 1)
|
||||||
hstrfile, num = hstrfile:gsub("Used4kPagesMap%[%(0xFFFF", "Used4kPagesMap[(IM_UNICODE_CODEPOINT_MAX")
|
hstrfile, num = hstrfile:gsub("kPagesMap%[%(0xFFFF", "kPagesMap[(IM_UNICODE_CODEPOINT_MAX")
|
||||||
assert(num == 1)
|
assert(num == 1, "kPagesMap[(IM_UNICODE_CODEPOINT_MAX not found or found more than once")
|
||||||
save_data("./output/cimgui.h",cimgui_header,hstrfile)
|
save_data("./output/cimgui.h",cimgui_header,hstrfile)
|
||||||
|
|
||||||
--merge it in cimgui_template.cpp to cimgui.cpp
|
--merge it in cimgui_template.cpp to cimgui.cpp
|
||||||
@@ -314,8 +321,8 @@ end
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
--get imgui.h version and IMGUI_HAS_DOCK--------------------------
|
--get imgui.h version and IMGUI_HAS_DOCK--------------------------
|
||||||
--defines for the cl compiler must be present in the print_defines.cpp file
|
--defines for the cl compiler must be present in the print_defines.cpp file
|
||||||
gdefines = get_defines{"IMGUI_VERSION","IMGUI_VERSION_NUM","FLT_MAX","FLT_MIN","IMGUI_HAS_DOCK","IMGUI_HAS_IMSTR","ImDrawCallback_ResetRenderState"}
|
gdefines = get_defines{"IMGUI_VERSION","IMGUI_VERSION_NUM","FLT_MAX","FLT_MIN","IMGUI_HAS_DOCK","IMGUI_HAS_IMSTR","ImDrawCallback_ResetRenderState","IMGUI_HAS_TEXTURES"}
|
||||||
--cpp2ffi.prtable(gdefines)
|
cpp2ffi.prtable(gdefines)
|
||||||
if gdefines.IMGUI_HAS_DOCK then gdefines.IMGUI_HAS_DOCK = true end
|
if gdefines.IMGUI_HAS_DOCK then gdefines.IMGUI_HAS_DOCK = true end
|
||||||
if gdefines.IMGUI_HAS_IMSTR then gdefines.IMGUI_HAS_IMSTR = true end
|
if gdefines.IMGUI_HAS_IMSTR then gdefines.IMGUI_HAS_IMSTR = true end
|
||||||
|
|
||||||
@@ -335,6 +342,7 @@ if gdefines.IMGUI_HAS_DOCK then
|
|||||||
end
|
end
|
||||||
assert(not NOCHAR or not NOIMSTRV,"nochar and noimstrv cant be set at the same time")
|
assert(not NOCHAR or not NOIMSTRV,"nochar and noimstrv cant be set at the same time")
|
||||||
print("IMGUI_HAS_IMSTR",gdefines.IMGUI_HAS_IMSTR)
|
print("IMGUI_HAS_IMSTR",gdefines.IMGUI_HAS_IMSTR)
|
||||||
|
print("IMGUI_HAS_TEXTURES",gdefines.IMGUI_HAS_TEXTURES and true)
|
||||||
print("NOCHAR",NOCHAR)
|
print("NOCHAR",NOCHAR)
|
||||||
print("NOIMSTRV",NOIMSTRV)
|
print("NOIMSTRV",NOIMSTRV)
|
||||||
print("IMGUI_HAS_DOCK",gdefines.IMGUI_HAS_DOCK)
|
print("IMGUI_HAS_DOCK",gdefines.IMGUI_HAS_DOCK)
|
||||||
@@ -374,6 +382,7 @@ local function parseImGuiHeader(header,names)
|
|||||||
parser.CONSTRUCTORS_GENERATION = CONSTRUCTORS_GENERATION
|
parser.CONSTRUCTORS_GENERATION = CONSTRUCTORS_GENERATION
|
||||||
parser.NOCHAR = NOCHAR
|
parser.NOCHAR = NOCHAR
|
||||||
parser.NOIMSTRV = NOIMSTRV
|
parser.NOIMSTRV = NOIMSTRV
|
||||||
|
parser.IMGUI_HAS_TEXTURES = gdefines.IMGUI_HAS_TEXTURES
|
||||||
parser.custom_function_post = custom_function_post
|
parser.custom_function_post = custom_function_post
|
||||||
parser.header_text_insert = header_text_insert
|
parser.header_text_insert = header_text_insert
|
||||||
local defines = parser:take_lines(CPRE..header,names,COMPILER)
|
local defines = parser:take_lines(CPRE..header,names,COMPILER)
|
||||||
@@ -446,11 +455,18 @@ local parser2
|
|||||||
|
|
||||||
if #implementations > 0 then
|
if #implementations > 0 then
|
||||||
print("------------------implementations generation with "..COMPILER.."------------------------")
|
print("------------------implementations generation with "..COMPILER.."------------------------")
|
||||||
|
--parser2 for function defs
|
||||||
|
--parser3 for separated structs and enums in cimgui_impl.h
|
||||||
parser2 = cpp2ffi.Parser()
|
parser2 = cpp2ffi.Parser()
|
||||||
|
|
||||||
local config = require"config_generator"
|
local config = dofile(CONFIG_GENERATOR_PATH) --"./config_generator.lua"
|
||||||
local impl_str = ""
|
local impl_str = ""
|
||||||
|
local impl_str_cpp = {}
|
||||||
for i,impl in ipairs(implementations) do
|
for i,impl in ipairs(implementations) do
|
||||||
|
table.insert(impl_str_cpp, "\n#ifdef CIMGUI_USE_" .. string.upper(impl))
|
||||||
|
table.insert(impl_str_cpp, [[#include "imgui_impl_]]..impl..[[.h"]])
|
||||||
|
table.insert(impl_str_cpp, "#endif")
|
||||||
|
|
||||||
local source = backends_folder .. [[imgui_impl_]].. impl .. ".h "
|
local source = backends_folder .. [[imgui_impl_]].. impl .. ".h "
|
||||||
local locati = [[imgui_impl_]].. impl
|
local locati = [[imgui_impl_]].. impl
|
||||||
|
|
||||||
@@ -464,27 +480,38 @@ if #implementations > 0 then
|
|||||||
extra_includes = extra_includes .. include_cmd .. inc .. " "
|
extra_includes = extra_includes .. include_cmd .. inc .. " "
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
parser2.cimgui_inherited = dofile([[../../cimgui/generator/output/structs_and_enums.lua]])
|
||||||
local defines = parser2:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
|
local defines = parser2:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
|
||||||
|
|
||||||
local parser3 = cpp2ffi.Parser()
|
local parser3 = cpp2ffi.Parser()
|
||||||
|
parser3.cimgui_inherited = dofile([[../../cimgui/generator/output/structs_and_enums.lua]])
|
||||||
parser3:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
|
parser3:take_lines(CPRE..extra_defines..extra_includes..source, {locati}, COMPILER)
|
||||||
parser3:do_parse()
|
parser3:do_parse()
|
||||||
local cfuncsstr = func_header_impl_generate(parser3)
|
local cfuncsstr = func_header_impl_generate(parser3)
|
||||||
local cstructstr1,cstructstr2 = parser3.structs_and_enums[1], parser3.structs_and_enums[2]
|
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"
|
local cstru = cstructstr1 .. cstructstr2
|
||||||
|
if cstru ~="" then
|
||||||
|
cstru = "#ifdef CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n"..cstru .."\n#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n"
|
||||||
|
end
|
||||||
|
impl_str = impl_str .. "#ifdef CIMGUI_USE_".. string.upper(impl).."\n".. cstru
|
||||||
|
local outtab = cpp2ffi.func_header_generate_structs(parser3)
|
||||||
|
if #outtab > 0 then
|
||||||
|
table.insert(outtab, 1, "#ifndef CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
|
||||||
|
table.insert(outtab,"#endif //CIMGUI_DEFINE_ENUMS_AND_STRUCTS\n")
|
||||||
|
end
|
||||||
|
impl_str = impl_str.. table.concat(outtab)..cfuncsstr .. "\n#endif\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
parser2:do_parse()
|
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)
|
|
||||||
save_data("./output/cimgui_impl.h",impl_str)
|
save_data("./output/cimgui_impl.h",impl_str)
|
||||||
|
|
||||||
----------save fundefs in impl_definitions.lua for using in bindings
|
----------save fundefs in impl_definitions.lua for using in bindings
|
||||||
save_data("./output/impl_definitions.lua",serializeTableF(parser2.defsT))
|
save_data("./output/impl_definitions.lua",serializeTableF(parser2.defsT))
|
||||||
|
--impl cpp
|
||||||
|
impl_str_cpp = table.concat(impl_str_cpp, "\n")
|
||||||
|
local cppstr = read_data"./cimgui_impl_template.cpp"
|
||||||
|
cppstr = cppstr:gsub("GENERATED_PLACEHOLDER", impl_str_cpp)
|
||||||
|
save_data("./output/cimgui_impl.cpp",cppstr)
|
||||||
|
|
||||||
end -- #implementations > 0 then
|
end -- #implementations > 0 then
|
||||||
|
|
||||||
@@ -516,7 +543,11 @@ end
|
|||||||
--]]
|
--]]
|
||||||
-------------------copy C files to repo root
|
-------------------copy C files to repo root
|
||||||
copyfile("./output/cimgui.h", "../cimgui.h")
|
copyfile("./output/cimgui.h", "../cimgui.h")
|
||||||
|
copyfile("./output/cimgui_impl.h", "../cimgui_impl.h")
|
||||||
|
copyfile("./output/cimgui_impl.cpp", "../cimgui_impl.cpp")
|
||||||
copyfile("./output/cimgui.cpp", "../cimgui.cpp")
|
copyfile("./output/cimgui.cpp", "../cimgui.cpp")
|
||||||
os.remove("./output/cimgui.h")
|
os.remove("./output/cimgui.h")
|
||||||
|
os.remove("./output/cimgui_impl.h")
|
||||||
|
os.remove("./output/cimgui_impl.cpp")
|
||||||
os.remove("./output/cimgui.cpp")
|
os.remove("./output/cimgui.cpp")
|
||||||
print"all done!!"
|
print"all done!!"
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
POSITIONAL_ARGS=()
|
POSITIONAL_ARGS=()
|
||||||
|
|
||||||
TARGETS="internal noimstrv"
|
TARGETS="internal noimstrv"
|
||||||
CFLAGS="glfw opengl3 opengl2 sdl2 sdl3"
|
CFLAGS="glfw opengl3 opengl2 sdl2 sdl3 vulkan"
|
||||||
|
|
||||||
help() {
|
help() {
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
@@ -1,88 +0,0 @@
|
|||||||
#ifdef CIMGUI_USE_GLFW
|
|
||||||
|
|
||||||
typedef struct GLFWwindow GLFWwindow;
|
|
||||||
typedef struct GLFWmonitor GLFWmonitor;
|
|
||||||
struct GLFWwindow;
|
|
||||||
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(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_SetCallbacksChainForAllWindows(bool chain_for_all_windows);
|
|
||||||
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);
|
|
||||||
CIMGUI_API void ImGui_ImplGlfw_Sleep(int milliseconds);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#ifdef CIMGUI_USE_OPENGL3
|
|
||||||
CIMGUI_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version);
|
|
||||||
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(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(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_SDL2
|
|
||||||
|
|
||||||
typedef struct SDL_Window SDL_Window;
|
|
||||||
typedef struct SDL_Renderer SDL_Renderer;
|
|
||||||
typedef struct _SDL_GameController _SDL_GameController;
|
|
||||||
struct SDL_Window;
|
|
||||||
struct SDL_Renderer;
|
|
||||||
struct _SDL_GameController;
|
|
||||||
typedef union SDL_Event SDL_Event;
|
|
||||||
typedef enum { ImGui_ImplSDL2_GamepadMode_AutoFirst, ImGui_ImplSDL2_GamepadMode_AutoAll, ImGui_ImplSDL2_GamepadMode_Manual }ImGui_ImplSDL2_GamepadMode;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,SDL_Renderer* renderer);
|
|
||||||
CIMGUI_API bool ImGui_ImplSDL2_InitForOther(SDL_Window* window);
|
|
||||||
CIMGUI_API void ImGui_ImplSDL2_Shutdown(void);
|
|
||||||
CIMGUI_API void ImGui_ImplSDL2_NewFrame(void);
|
|
||||||
CIMGUI_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);
|
|
||||||
CIMGUI_API void ImGui_ImplSDL2_SetGamepadMode(ImGui_ImplSDL2_GamepadMode mode,struct _SDL_GameController** manual_gamepads_array,int manual_gamepads_count);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#ifdef CIMGUI_USE_SDL3
|
|
||||||
|
|
||||||
typedef struct SDL_Window SDL_Window;
|
|
||||||
typedef struct SDL_Renderer SDL_Renderer;
|
|
||||||
typedef struct SDL_Gamepad SDL_Gamepad;
|
|
||||||
struct SDL_Window;
|
|
||||||
struct SDL_Renderer;
|
|
||||||
struct SDL_Gamepad;
|
|
||||||
typedef union SDL_Event SDL_Event;
|
|
||||||
typedef enum { ImGui_ImplSDL3_GamepadMode_AutoFirst, ImGui_ImplSDL3_GamepadMode_AutoAll, ImGui_ImplSDL3_GamepadMode_Manual }ImGui_ImplSDL3_GamepadMode;CIMGUI_API bool ImGui_ImplSDL3_InitForOpenGL(SDL_Window* window,void* sdl_gl_context);
|
|
||||||
CIMGUI_API bool ImGui_ImplSDL3_InitForVulkan(SDL_Window* window);
|
|
||||||
CIMGUI_API bool ImGui_ImplSDL3_InitForD3D(SDL_Window* window);
|
|
||||||
CIMGUI_API bool ImGui_ImplSDL3_InitForMetal(SDL_Window* window);
|
|
||||||
CIMGUI_API bool ImGui_ImplSDL3_InitForSDLRenderer(SDL_Window* window,SDL_Renderer* renderer);
|
|
||||||
CIMGUI_API bool ImGui_ImplSDL3_InitForOther(SDL_Window* window);
|
|
||||||
CIMGUI_API void ImGui_ImplSDL3_Shutdown(void);
|
|
||||||
CIMGUI_API void ImGui_ImplSDL3_NewFrame(void);
|
|
||||||
CIMGUI_API bool ImGui_ImplSDL3_ProcessEvent(const SDL_Event* event);
|
|
||||||
CIMGUI_API void ImGui_ImplSDL3_SetGamepadMode(ImGui_ImplSDL3_GamepadMode mode,SDL_Gamepad** manual_gamepads_array,int manual_gamepads_count);
|
|
||||||
|
|
||||||
#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",
|
"cimguiname": "ImGui_ImplGlfw_CharCallback",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_CharCallback",
|
"funcname": "ImGui_ImplGlfw_CharCallback",
|
||||||
"location": "imgui_impl_glfw:61",
|
"location": "imgui_impl_glfw:63",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_CharCallback",
|
"ov_cimguiname": "ImGui_ImplGlfw_CharCallback",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWwindow*,unsigned int)",
|
"signature": "(GLFWwindow*,unsigned int)",
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
|
"cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_CursorEnterCallback",
|
"funcname": "ImGui_ImplGlfw_CursorEnterCallback",
|
||||||
"location": "imgui_impl_glfw:56",
|
"location": "imgui_impl_glfw:58",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
|
"ov_cimguiname": "ImGui_ImplGlfw_CursorEnterCallback",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWwindow*,int)",
|
"signature": "(GLFWwindow*,int)",
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
|
"cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_CursorPosCallback",
|
"funcname": "ImGui_ImplGlfw_CursorPosCallback",
|
||||||
"location": "imgui_impl_glfw:57",
|
"location": "imgui_impl_glfw:59",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
|
"ov_cimguiname": "ImGui_ImplGlfw_CursorPosCallback",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWwindow*,double,double)",
|
"signature": "(GLFWwindow*,double,double)",
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
|
"cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_InitForOpenGL",
|
"funcname": "ImGui_ImplGlfw_InitForOpenGL",
|
||||||
"location": "imgui_impl_glfw:32",
|
"location": "imgui_impl_glfw:34",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
|
"ov_cimguiname": "ImGui_ImplGlfw_InitForOpenGL",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(GLFWwindow*,bool)",
|
"signature": "(GLFWwindow*,bool)",
|
||||||
@@ -121,7 +121,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_InitForOther",
|
"cimguiname": "ImGui_ImplGlfw_InitForOther",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_InitForOther",
|
"funcname": "ImGui_ImplGlfw_InitForOther",
|
||||||
"location": "imgui_impl_glfw:34",
|
"location": "imgui_impl_glfw:36",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_InitForOther",
|
"ov_cimguiname": "ImGui_ImplGlfw_InitForOther",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(GLFWwindow*,bool)",
|
"signature": "(GLFWwindow*,bool)",
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_InitForVulkan",
|
"cimguiname": "ImGui_ImplGlfw_InitForVulkan",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_InitForVulkan",
|
"funcname": "ImGui_ImplGlfw_InitForVulkan",
|
||||||
"location": "imgui_impl_glfw:33",
|
"location": "imgui_impl_glfw:35",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_InitForVulkan",
|
"ov_cimguiname": "ImGui_ImplGlfw_InitForVulkan",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(GLFWwindow*,bool)",
|
"signature": "(GLFWwindow*,bool)",
|
||||||
@@ -167,7 +167,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
|
"cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_InstallCallbacks",
|
"funcname": "ImGui_ImplGlfw_InstallCallbacks",
|
||||||
"location": "imgui_impl_glfw:47",
|
"location": "imgui_impl_glfw:49",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
|
"ov_cimguiname": "ImGui_ImplGlfw_InstallCallbacks",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWwindow*)",
|
"signature": "(GLFWwindow*)",
|
||||||
@@ -204,7 +204,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_KeyCallback",
|
"cimguiname": "ImGui_ImplGlfw_KeyCallback",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_KeyCallback",
|
"funcname": "ImGui_ImplGlfw_KeyCallback",
|
||||||
"location": "imgui_impl_glfw:60",
|
"location": "imgui_impl_glfw:62",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_KeyCallback",
|
"ov_cimguiname": "ImGui_ImplGlfw_KeyCallback",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWwindow*,int,int,int,int)",
|
"signature": "(GLFWwindow*,int,int,int,int)",
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_MonitorCallback",
|
"cimguiname": "ImGui_ImplGlfw_MonitorCallback",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_MonitorCallback",
|
"funcname": "ImGui_ImplGlfw_MonitorCallback",
|
||||||
"location": "imgui_impl_glfw:62",
|
"location": "imgui_impl_glfw:64",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_MonitorCallback",
|
"ov_cimguiname": "ImGui_ImplGlfw_MonitorCallback",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWmonitor*,int)",
|
"signature": "(GLFWmonitor*,int)",
|
||||||
@@ -262,7 +262,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
|
"cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_MouseButtonCallback",
|
"funcname": "ImGui_ImplGlfw_MouseButtonCallback",
|
||||||
"location": "imgui_impl_glfw:58",
|
"location": "imgui_impl_glfw:60",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
|
"ov_cimguiname": "ImGui_ImplGlfw_MouseButtonCallback",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWwindow*,int,int,int)",
|
"signature": "(GLFWwindow*,int,int,int)",
|
||||||
@@ -278,7 +278,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_NewFrame",
|
"cimguiname": "ImGui_ImplGlfw_NewFrame",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_NewFrame",
|
"funcname": "ImGui_ImplGlfw_NewFrame",
|
||||||
"location": "imgui_impl_glfw:36",
|
"location": "imgui_impl_glfw:38",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_NewFrame",
|
"ov_cimguiname": "ImGui_ImplGlfw_NewFrame",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "()",
|
"signature": "()",
|
||||||
@@ -299,7 +299,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
|
"cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_RestoreCallbacks",
|
"funcname": "ImGui_ImplGlfw_RestoreCallbacks",
|
||||||
"location": "imgui_impl_glfw:48",
|
"location": "imgui_impl_glfw:50",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
|
"ov_cimguiname": "ImGui_ImplGlfw_RestoreCallbacks",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWwindow*)",
|
"signature": "(GLFWwindow*)",
|
||||||
@@ -328,7 +328,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_ScrollCallback",
|
"cimguiname": "ImGui_ImplGlfw_ScrollCallback",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_ScrollCallback",
|
"funcname": "ImGui_ImplGlfw_ScrollCallback",
|
||||||
"location": "imgui_impl_glfw:59",
|
"location": "imgui_impl_glfw:61",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_ScrollCallback",
|
"ov_cimguiname": "ImGui_ImplGlfw_ScrollCallback",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWwindow*,double,double)",
|
"signature": "(GLFWwindow*,double,double)",
|
||||||
@@ -349,7 +349,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
|
"cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
|
"funcname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
|
||||||
"location": "imgui_impl_glfw:52",
|
"location": "imgui_impl_glfw:54",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
|
"ov_cimguiname": "ImGui_ImplGlfw_SetCallbacksChainForAllWindows",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(bool)",
|
"signature": "(bool)",
|
||||||
@@ -365,7 +365,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_Shutdown",
|
"cimguiname": "ImGui_ImplGlfw_Shutdown",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_Shutdown",
|
"funcname": "ImGui_ImplGlfw_Shutdown",
|
||||||
"location": "imgui_impl_glfw:35",
|
"location": "imgui_impl_glfw:37",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_Shutdown",
|
"ov_cimguiname": "ImGui_ImplGlfw_Shutdown",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "()",
|
"signature": "()",
|
||||||
@@ -386,7 +386,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_Sleep",
|
"cimguiname": "ImGui_ImplGlfw_Sleep",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_Sleep",
|
"funcname": "ImGui_ImplGlfw_Sleep",
|
||||||
"location": "imgui_impl_glfw:65",
|
"location": "imgui_impl_glfw:67",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_Sleep",
|
"ov_cimguiname": "ImGui_ImplGlfw_Sleep",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(int)",
|
"signature": "(int)",
|
||||||
@@ -411,7 +411,7 @@
|
|||||||
"cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
|
"cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplGlfw_WindowFocusCallback",
|
"funcname": "ImGui_ImplGlfw_WindowFocusCallback",
|
||||||
"location": "imgui_impl_glfw:55",
|
"location": "imgui_impl_glfw:57",
|
||||||
"ov_cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
|
"ov_cimguiname": "ImGui_ImplGlfw_WindowFocusCallback",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(GLFWwindow*,int)",
|
"signature": "(GLFWwindow*,int)",
|
||||||
@@ -924,7 +924,7 @@
|
|||||||
"cimguiname": "ImGui_ImplSDL3_InitForD3D",
|
"cimguiname": "ImGui_ImplSDL3_InitForD3D",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplSDL3_InitForD3D",
|
"funcname": "ImGui_ImplSDL3_InitForD3D",
|
||||||
"location": "imgui_impl_sdl3:38",
|
"location": "imgui_impl_sdl3:36",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_InitForD3D",
|
"ov_cimguiname": "ImGui_ImplSDL3_InitForD3D",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(SDL_Window*)",
|
"signature": "(SDL_Window*)",
|
||||||
@@ -945,7 +945,7 @@
|
|||||||
"cimguiname": "ImGui_ImplSDL3_InitForMetal",
|
"cimguiname": "ImGui_ImplSDL3_InitForMetal",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplSDL3_InitForMetal",
|
"funcname": "ImGui_ImplSDL3_InitForMetal",
|
||||||
"location": "imgui_impl_sdl3:39",
|
"location": "imgui_impl_sdl3:37",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_InitForMetal",
|
"ov_cimguiname": "ImGui_ImplSDL3_InitForMetal",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(SDL_Window*)",
|
"signature": "(SDL_Window*)",
|
||||||
@@ -970,7 +970,7 @@
|
|||||||
"cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
|
"cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplSDL3_InitForOpenGL",
|
"funcname": "ImGui_ImplSDL3_InitForOpenGL",
|
||||||
"location": "imgui_impl_sdl3:36",
|
"location": "imgui_impl_sdl3:34",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
|
"ov_cimguiname": "ImGui_ImplSDL3_InitForOpenGL",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(SDL_Window*,void*)",
|
"signature": "(SDL_Window*,void*)",
|
||||||
@@ -991,13 +991,34 @@
|
|||||||
"cimguiname": "ImGui_ImplSDL3_InitForOther",
|
"cimguiname": "ImGui_ImplSDL3_InitForOther",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplSDL3_InitForOther",
|
"funcname": "ImGui_ImplSDL3_InitForOther",
|
||||||
"location": "imgui_impl_sdl3:41",
|
"location": "imgui_impl_sdl3:40",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_InitForOther",
|
"ov_cimguiname": "ImGui_ImplSDL3_InitForOther",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(SDL_Window*)",
|
"signature": "(SDL_Window*)",
|
||||||
"stname": ""
|
"stname": ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"ImGui_ImplSDL3_InitForSDLGPU": [
|
||||||
|
{
|
||||||
|
"args": "(SDL_Window* window)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "window",
|
||||||
|
"type": "SDL_Window*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(SDL_Window* window)",
|
||||||
|
"call_args": "(window)",
|
||||||
|
"cimguiname": "ImGui_ImplSDL3_InitForSDLGPU",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplSDL3_InitForSDLGPU",
|
||||||
|
"location": "imgui_impl_sdl3:39",
|
||||||
|
"ov_cimguiname": "ImGui_ImplSDL3_InitForSDLGPU",
|
||||||
|
"ret": "bool",
|
||||||
|
"signature": "(SDL_Window*)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
"ImGui_ImplSDL3_InitForSDLRenderer": [
|
"ImGui_ImplSDL3_InitForSDLRenderer": [
|
||||||
{
|
{
|
||||||
"args": "(SDL_Window* window,SDL_Renderer* renderer)",
|
"args": "(SDL_Window* window,SDL_Renderer* renderer)",
|
||||||
@@ -1016,7 +1037,7 @@
|
|||||||
"cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
|
"cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplSDL3_InitForSDLRenderer",
|
"funcname": "ImGui_ImplSDL3_InitForSDLRenderer",
|
||||||
"location": "imgui_impl_sdl3:40",
|
"location": "imgui_impl_sdl3:38",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
|
"ov_cimguiname": "ImGui_ImplSDL3_InitForSDLRenderer",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(SDL_Window*,SDL_Renderer*)",
|
"signature": "(SDL_Window*,SDL_Renderer*)",
|
||||||
@@ -1037,7 +1058,7 @@
|
|||||||
"cimguiname": "ImGui_ImplSDL3_InitForVulkan",
|
"cimguiname": "ImGui_ImplSDL3_InitForVulkan",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplSDL3_InitForVulkan",
|
"funcname": "ImGui_ImplSDL3_InitForVulkan",
|
||||||
"location": "imgui_impl_sdl3:37",
|
"location": "imgui_impl_sdl3:35",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_InitForVulkan",
|
"ov_cimguiname": "ImGui_ImplSDL3_InitForVulkan",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(SDL_Window*)",
|
"signature": "(SDL_Window*)",
|
||||||
@@ -1053,7 +1074,7 @@
|
|||||||
"cimguiname": "ImGui_ImplSDL3_NewFrame",
|
"cimguiname": "ImGui_ImplSDL3_NewFrame",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplSDL3_NewFrame",
|
"funcname": "ImGui_ImplSDL3_NewFrame",
|
||||||
"location": "imgui_impl_sdl3:43",
|
"location": "imgui_impl_sdl3:42",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_NewFrame",
|
"ov_cimguiname": "ImGui_ImplSDL3_NewFrame",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "()",
|
"signature": "()",
|
||||||
@@ -1074,7 +1095,7 @@
|
|||||||
"cimguiname": "ImGui_ImplSDL3_ProcessEvent",
|
"cimguiname": "ImGui_ImplSDL3_ProcessEvent",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplSDL3_ProcessEvent",
|
"funcname": "ImGui_ImplSDL3_ProcessEvent",
|
||||||
"location": "imgui_impl_sdl3:44",
|
"location": "imgui_impl_sdl3:43",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_ProcessEvent",
|
"ov_cimguiname": "ImGui_ImplSDL3_ProcessEvent",
|
||||||
"ret": "bool",
|
"ret": "bool",
|
||||||
"signature": "(const SDL_Event*)",
|
"signature": "(const SDL_Event*)",
|
||||||
@@ -1106,7 +1127,7 @@
|
|||||||
"manual_gamepads_count": "-1"
|
"manual_gamepads_count": "-1"
|
||||||
},
|
},
|
||||||
"funcname": "ImGui_ImplSDL3_SetGamepadMode",
|
"funcname": "ImGui_ImplSDL3_SetGamepadMode",
|
||||||
"location": "imgui_impl_sdl3:49",
|
"location": "imgui_impl_sdl3:48",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_SetGamepadMode",
|
"ov_cimguiname": "ImGui_ImplSDL3_SetGamepadMode",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "(ImGui_ImplSDL3_GamepadMode,SDL_Gamepad**,int)",
|
"signature": "(ImGui_ImplSDL3_GamepadMode,SDL_Gamepad**,int)",
|
||||||
@@ -1122,11 +1143,484 @@
|
|||||||
"cimguiname": "ImGui_ImplSDL3_Shutdown",
|
"cimguiname": "ImGui_ImplSDL3_Shutdown",
|
||||||
"defaults": {},
|
"defaults": {},
|
||||||
"funcname": "ImGui_ImplSDL3_Shutdown",
|
"funcname": "ImGui_ImplSDL3_Shutdown",
|
||||||
"location": "imgui_impl_sdl3:42",
|
"location": "imgui_impl_sdl3:41",
|
||||||
"ov_cimguiname": "ImGui_ImplSDL3_Shutdown",
|
"ov_cimguiname": "ImGui_ImplSDL3_Shutdown",
|
||||||
"ret": "void",
|
"ret": "void",
|
||||||
"signature": "()",
|
"signature": "()",
|
||||||
"stname": ""
|
"stname": ""
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkanH_CreateOrResizeWindow": [
|
||||||
|
{
|
||||||
|
"args": "(VkInstance instance,VkPhysicalDevice physical_device,VkDevice device,ImGui_ImplVulkanH_Window* wd,uint32_t queue_family,const VkAllocationCallbacks* allocator,int w,int h,uint32_t min_image_count)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "instance",
|
||||||
|
"type": "VkInstance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "physical_device",
|
||||||
|
"type": "VkPhysicalDevice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "device",
|
||||||
|
"type": "VkDevice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wd",
|
||||||
|
"type": "ImGui_ImplVulkanH_Window*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "queue_family",
|
||||||
|
"type": "uint32_t"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "allocator",
|
||||||
|
"type": "const VkAllocationCallbacks*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "w",
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "h",
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "min_image_count",
|
||||||
|
"type": "uint32_t"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(VkInstance instance,VkPhysicalDevice physical_device,VkDevice device,ImGui_ImplVulkanH_Window* wd,uint32_t queue_family,const VkAllocationCallbacks* allocator,int w,int h,uint32_t min_image_count)",
|
||||||
|
"call_args": "(instance,physical_device,device,wd,queue_family,allocator,w,h,min_image_count)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkanH_CreateOrResizeWindow",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkanH_CreateOrResizeWindow",
|
||||||
|
"location": "imgui_impl_vulkan:166",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkanH_CreateOrResizeWindow",
|
||||||
|
"ret": "void",
|
||||||
|
"signature": "(VkInstance,VkPhysicalDevice,VkDevice,ImGui_ImplVulkanH_Window*,uint32_t,const VkAllocationCallbacks*,int,int,uint32_t)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkanH_DestroyWindow": [
|
||||||
|
{
|
||||||
|
"args": "(VkInstance instance,VkDevice device,ImGui_ImplVulkanH_Window* wd,const VkAllocationCallbacks* allocator)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "instance",
|
||||||
|
"type": "VkInstance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "device",
|
||||||
|
"type": "VkDevice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wd",
|
||||||
|
"type": "ImGui_ImplVulkanH_Window*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "allocator",
|
||||||
|
"type": "const VkAllocationCallbacks*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(VkInstance instance,VkDevice device,ImGui_ImplVulkanH_Window* wd,const VkAllocationCallbacks* allocator)",
|
||||||
|
"call_args": "(instance,device,wd,allocator)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkanH_DestroyWindow",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkanH_DestroyWindow",
|
||||||
|
"location": "imgui_impl_vulkan:167",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkanH_DestroyWindow",
|
||||||
|
"ret": "void",
|
||||||
|
"signature": "(VkInstance,VkDevice,ImGui_ImplVulkanH_Window*,const VkAllocationCallbacks*)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkanH_GetMinImageCountFromPresentMode": [
|
||||||
|
{
|
||||||
|
"args": "(VkPresentModeKHR present_mode)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "present_mode",
|
||||||
|
"type": "VkPresentModeKHR"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(VkPresentModeKHR present_mode)",
|
||||||
|
"call_args": "(present_mode)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
|
||||||
|
"location": "imgui_impl_vulkan:172",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkanH_GetMinImageCountFromPresentMode",
|
||||||
|
"ret": "int",
|
||||||
|
"signature": "(VkPresentModeKHR)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkanH_SelectPhysicalDevice": [
|
||||||
|
{
|
||||||
|
"args": "(VkInstance instance)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "instance",
|
||||||
|
"type": "VkInstance"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(VkInstance instance)",
|
||||||
|
"call_args": "(instance)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkanH_SelectPhysicalDevice",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkanH_SelectPhysicalDevice",
|
||||||
|
"location": "imgui_impl_vulkan:170",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkanH_SelectPhysicalDevice",
|
||||||
|
"ret": "VkPhysicalDevice",
|
||||||
|
"signature": "(VkInstance)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkanH_SelectPresentMode": [
|
||||||
|
{
|
||||||
|
"args": "(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkPresentModeKHR* request_modes,int request_modes_count)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "physical_device",
|
||||||
|
"type": "VkPhysicalDevice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "surface",
|
||||||
|
"type": "VkSurfaceKHR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "request_modes",
|
||||||
|
"type": "const VkPresentModeKHR*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "request_modes_count",
|
||||||
|
"type": "int"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkPresentModeKHR* request_modes,int request_modes_count)",
|
||||||
|
"call_args": "(physical_device,surface,request_modes,request_modes_count)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkanH_SelectPresentMode",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkanH_SelectPresentMode",
|
||||||
|
"location": "imgui_impl_vulkan:169",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkanH_SelectPresentMode",
|
||||||
|
"ret": "VkPresentModeKHR",
|
||||||
|
"signature": "(VkPhysicalDevice,VkSurfaceKHR,const VkPresentModeKHR*,int)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkanH_SelectQueueFamilyIndex": [
|
||||||
|
{
|
||||||
|
"args": "(VkPhysicalDevice physical_device)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "physical_device",
|
||||||
|
"type": "VkPhysicalDevice"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(VkPhysicalDevice physical_device)",
|
||||||
|
"call_args": "(physical_device)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
|
||||||
|
"location": "imgui_impl_vulkan:171",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
|
||||||
|
"ret": "uint32_t",
|
||||||
|
"signature": "(VkPhysicalDevice)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkanH_SelectSurfaceFormat": [
|
||||||
|
{
|
||||||
|
"args": "(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkFormat* request_formats,int request_formats_count,VkColorSpaceKHR request_color_space)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "physical_device",
|
||||||
|
"type": "VkPhysicalDevice"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "surface",
|
||||||
|
"type": "VkSurfaceKHR"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "request_formats",
|
||||||
|
"type": "const VkFormat*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "request_formats_count",
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "request_color_space",
|
||||||
|
"type": "VkColorSpaceKHR"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(VkPhysicalDevice physical_device,VkSurfaceKHR surface,const VkFormat* request_formats,int request_formats_count,VkColorSpaceKHR request_color_space)",
|
||||||
|
"call_args": "(physical_device,surface,request_formats,request_formats_count,request_color_space)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkanH_SelectSurfaceFormat",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkanH_SelectSurfaceFormat",
|
||||||
|
"location": "imgui_impl_vulkan:168",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkanH_SelectSurfaceFormat",
|
||||||
|
"ret": "VkSurfaceFormatKHR",
|
||||||
|
"signature": "(VkPhysicalDevice,VkSurfaceKHR,const VkFormat*,int,VkColorSpaceKHR)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window": [
|
||||||
|
{
|
||||||
|
"args": "()",
|
||||||
|
"argsT": [],
|
||||||
|
"argsoriginal": "()",
|
||||||
|
"call_args": "()",
|
||||||
|
"cimguiname": "ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window",
|
||||||
|
"constructor": true,
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkanH_Window",
|
||||||
|
"location": "imgui_impl_vulkan:214",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkanH_Window_ImGui_ImplVulkanH_Window",
|
||||||
|
"signature": "()",
|
||||||
|
"stname": "ImGui_ImplVulkanH_Window"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkanH_Window_destroy": [
|
||||||
|
{
|
||||||
|
"args": "(ImGui_ImplVulkanH_Window* self)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "self",
|
||||||
|
"type": "ImGui_ImplVulkanH_Window*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"call_args": "(self)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkanH_Window_destroy",
|
||||||
|
"defaults": {},
|
||||||
|
"destructor": true,
|
||||||
|
"location": "imgui_impl_vulkan:214",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkanH_Window_destroy",
|
||||||
|
"ret": "void",
|
||||||
|
"signature": "(ImGui_ImplVulkanH_Window*)",
|
||||||
|
"stname": "ImGui_ImplVulkanH_Window"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_AddTexture": [
|
||||||
|
{
|
||||||
|
"args": "(VkSampler sampler,VkImageView image_view,VkImageLayout image_layout)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "sampler",
|
||||||
|
"type": "VkSampler"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "image_view",
|
||||||
|
"type": "VkImageView"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "image_layout",
|
||||||
|
"type": "VkImageLayout"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(VkSampler sampler,VkImageView image_view,VkImageLayout image_layout)",
|
||||||
|
"call_args": "(sampler,image_view,image_layout)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_AddTexture",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkan_AddTexture",
|
||||||
|
"location": "imgui_impl_vulkan:123",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_AddTexture",
|
||||||
|
"ret": "VkDescriptorSet",
|
||||||
|
"signature": "(VkSampler,VkImageView,VkImageLayout)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_CreateFontsTexture": [
|
||||||
|
{
|
||||||
|
"args": "()",
|
||||||
|
"argsT": [],
|
||||||
|
"argsoriginal": "()",
|
||||||
|
"call_args": "()",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_CreateFontsTexture",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkan_CreateFontsTexture",
|
||||||
|
"location": "imgui_impl_vulkan:116",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_CreateFontsTexture",
|
||||||
|
"ret": "bool",
|
||||||
|
"signature": "()",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_DestroyFontsTexture": [
|
||||||
|
{
|
||||||
|
"args": "()",
|
||||||
|
"argsT": [],
|
||||||
|
"argsoriginal": "()",
|
||||||
|
"call_args": "()",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_DestroyFontsTexture",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkan_DestroyFontsTexture",
|
||||||
|
"location": "imgui_impl_vulkan:117",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_DestroyFontsTexture",
|
||||||
|
"ret": "void",
|
||||||
|
"signature": "()",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_Init": [
|
||||||
|
{
|
||||||
|
"args": "(ImGui_ImplVulkan_InitInfo* info)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "info",
|
||||||
|
"type": "ImGui_ImplVulkan_InitInfo*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(ImGui_ImplVulkan_InitInfo* info)",
|
||||||
|
"call_args": "(info)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_Init",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkan_Init",
|
||||||
|
"location": "imgui_impl_vulkan:112",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_Init",
|
||||||
|
"ret": "bool",
|
||||||
|
"signature": "(ImGui_ImplVulkan_InitInfo*)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_LoadFunctions": [
|
||||||
|
{
|
||||||
|
"args": "(uint32_t api_version,PFN_vkVoidFunction(*loader_func)(const char* function_name,void* user_data),void* user_data)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "api_version",
|
||||||
|
"type": "uint32_t"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user_data)",
|
||||||
|
"type": "PFN_vkVoidFunction(*loader_func)(const char* function_name,void*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "user_data",
|
||||||
|
"type": "void*"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(uint32_t api_version,PFN_vkVoidFunction(*loader_func)(const char* function_name,void* user_data),void* user_data=nullptr)",
|
||||||
|
"call_args": "(api_version,user_data),user_data)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_LoadFunctions",
|
||||||
|
"defaults": {
|
||||||
|
"user_data": "nullptr"
|
||||||
|
},
|
||||||
|
"funcname": "ImGui_ImplVulkan_LoadFunctions",
|
||||||
|
"location": "imgui_impl_vulkan:128",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_LoadFunctions",
|
||||||
|
"ret": "bool",
|
||||||
|
"signature": "(uint32_t,PFN_vkVoidFunction(*loader_func)(const char* function_name,void*,void*)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_NewFrame": [
|
||||||
|
{
|
||||||
|
"args": "()",
|
||||||
|
"argsT": [],
|
||||||
|
"argsoriginal": "()",
|
||||||
|
"call_args": "()",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_NewFrame",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkan_NewFrame",
|
||||||
|
"location": "imgui_impl_vulkan:114",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_NewFrame",
|
||||||
|
"ret": "void",
|
||||||
|
"signature": "()",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_RemoveTexture": [
|
||||||
|
{
|
||||||
|
"args": "(VkDescriptorSet descriptor_set)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "descriptor_set",
|
||||||
|
"type": "VkDescriptorSet"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(VkDescriptorSet descriptor_set)",
|
||||||
|
"call_args": "(descriptor_set)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_RemoveTexture",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkan_RemoveTexture",
|
||||||
|
"location": "imgui_impl_vulkan:124",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_RemoveTexture",
|
||||||
|
"ret": "void",
|
||||||
|
"signature": "(VkDescriptorSet)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_RenderDrawData": [
|
||||||
|
{
|
||||||
|
"args": "(ImDrawData* draw_data,VkCommandBuffer command_buffer,VkPipeline pipeline)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "draw_data",
|
||||||
|
"type": "ImDrawData*"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "command_buffer",
|
||||||
|
"type": "VkCommandBuffer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "pipeline",
|
||||||
|
"type": "VkPipeline"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(ImDrawData* draw_data,VkCommandBuffer command_buffer,VkPipeline pipeline=0ULL)",
|
||||||
|
"call_args": "(draw_data,command_buffer,pipeline)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_RenderDrawData",
|
||||||
|
"defaults": {
|
||||||
|
"pipeline": "0ULL"
|
||||||
|
},
|
||||||
|
"funcname": "ImGui_ImplVulkan_RenderDrawData",
|
||||||
|
"location": "imgui_impl_vulkan:115",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_RenderDrawData",
|
||||||
|
"ret": "void",
|
||||||
|
"signature": "(ImDrawData*,VkCommandBuffer,VkPipeline)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_SetMinImageCount": [
|
||||||
|
{
|
||||||
|
"args": "(uint32_t min_image_count)",
|
||||||
|
"argsT": [
|
||||||
|
{
|
||||||
|
"name": "min_image_count",
|
||||||
|
"type": "uint32_t"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"argsoriginal": "(uint32_t min_image_count)",
|
||||||
|
"call_args": "(min_image_count)",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_SetMinImageCount",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkan_SetMinImageCount",
|
||||||
|
"location": "imgui_impl_vulkan:118",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_SetMinImageCount",
|
||||||
|
"ret": "void",
|
||||||
|
"signature": "(uint32_t)",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ImGui_ImplVulkan_Shutdown": [
|
||||||
|
{
|
||||||
|
"args": "()",
|
||||||
|
"argsT": [],
|
||||||
|
"argsoriginal": "()",
|
||||||
|
"call_args": "()",
|
||||||
|
"cimguiname": "ImGui_ImplVulkan_Shutdown",
|
||||||
|
"defaults": {},
|
||||||
|
"funcname": "ImGui_ImplVulkan_Shutdown",
|
||||||
|
"location": "imgui_impl_vulkan:113",
|
||||||
|
"ov_cimguiname": "ImGui_ImplVulkan_Shutdown",
|
||||||
|
"ret": "void",
|
||||||
|
"signature": "()",
|
||||||
|
"stname": ""
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
@@ -123,9 +123,15 @@ igGetID 4
|
|||||||
igGetIDWithSeed 2
|
igGetIDWithSeed 2
|
||||||
1 ImGuiID igGetIDWithSeed_Str (const char*,const char*,ImGuiID)
|
1 ImGuiID igGetIDWithSeed_Str (const char*,const char*,ImGuiID)
|
||||||
2 ImGuiID igGetIDWithSeed_Int (int,ImGuiID)
|
2 ImGuiID igGetIDWithSeed_Int (int,ImGuiID)
|
||||||
|
igGetIO 2
|
||||||
|
1 ImGuiIO* igGetIO_Nil ()
|
||||||
|
2 ImGuiIO* igGetIO_ContextPtr (ImGuiContext*)
|
||||||
igGetKeyData 2
|
igGetKeyData 2
|
||||||
1 ImGuiKeyData* igGetKeyData_ContextPtr (ImGuiContext*,ImGuiKey)
|
1 ImGuiKeyData* igGetKeyData_ContextPtr (ImGuiContext*,ImGuiKey)
|
||||||
2 ImGuiKeyData* igGetKeyData_Key (ImGuiKey)
|
2 ImGuiKeyData* igGetKeyData_Key (ImGuiKey)
|
||||||
|
igGetPlatformIO 2
|
||||||
|
1 ImGuiPlatformIO* igGetPlatformIO_Nil ()
|
||||||
|
2 ImGuiPlatformIO* igGetPlatformIO_ContextPtr (ImGuiContext*)
|
||||||
igImAbs 3
|
igImAbs 3
|
||||||
1 int igImAbs_Int (int)
|
1 int igImAbs_Int (int)
|
||||||
2 float igImAbs_Float (float)
|
2 float igImAbs_Float (float)
|
||||||
@@ -293,4 +299,4 @@ igValue 4
|
|||||||
2 void igValue_Int (const char*,int)
|
2 void igValue_Int (const char*,int)
|
||||||
3 void igValue_Uint (const char*,unsigned int)
|
3 void igValue_Uint (const char*,unsigned int)
|
||||||
4 void igValue_Float (const char*,float,const char*)
|
4 void igValue_Float (const char*,float,const char*)
|
||||||
205 overloaded
|
209 overloaded
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -44,7 +44,7 @@
|
|||||||
"ImGuiDataType": "int",
|
"ImGuiDataType": "int",
|
||||||
"ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo",
|
"ImGuiDataTypeInfo": "struct ImGuiDataTypeInfo",
|
||||||
"ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage",
|
"ImGuiDataTypeStorage": "struct ImGuiDataTypeStorage",
|
||||||
"ImGuiDataVarInfo": "struct ImGuiDataVarInfo",
|
"ImGuiDeactivatedItemData": "struct ImGuiDeactivatedItemData",
|
||||||
"ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry",
|
"ImGuiDebugAllocEntry": "struct ImGuiDebugAllocEntry",
|
||||||
"ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo",
|
"ImGuiDebugAllocInfo": "struct ImGuiDebugAllocInfo",
|
||||||
"ImGuiDebugLogFlags": "int",
|
"ImGuiDebugLogFlags": "int",
|
||||||
@@ -140,6 +140,7 @@
|
|||||||
"ImGuiStyle": "struct ImGuiStyle",
|
"ImGuiStyle": "struct ImGuiStyle",
|
||||||
"ImGuiStyleMod": "struct ImGuiStyleMod",
|
"ImGuiStyleMod": "struct ImGuiStyleMod",
|
||||||
"ImGuiStyleVar": "int",
|
"ImGuiStyleVar": "int",
|
||||||
|
"ImGuiStyleVarInfo": "struct ImGuiStyleVarInfo",
|
||||||
"ImGuiTabBar": "struct ImGuiTabBar",
|
"ImGuiTabBar": "struct ImGuiTabBar",
|
||||||
"ImGuiTabBarFlags": "int",
|
"ImGuiTabBarFlags": "int",
|
||||||
"ImGuiTabItem": "struct ImGuiTabItem",
|
"ImGuiTabItem": "struct ImGuiTabItem",
|
||||||
|
@@ -1,207 +1,207 @@
|
|||||||
local defs = {}
|
local t={
|
||||||
defs["ImBitArrayForNamedKeys"] = "ImBitArray<ImGuiKey_NamedKey_COUNT, -ImGuiKey_NamedKey_BEGIN>"
|
ImBitArrayForNamedKeys="ImBitArray<ImGuiKey_NamedKey_COUNT, -ImGuiKey_NamedKey_BEGIN>",
|
||||||
defs["ImBitArrayPtr"] = "ImU32*"
|
ImBitArrayPtr="ImU32*",
|
||||||
defs["ImBitVector"] = "struct ImBitVector"
|
ImBitVector="struct ImBitVector",
|
||||||
defs["ImColor"] = "struct ImColor"
|
ImColor="struct ImColor",
|
||||||
defs["ImDrawCallback"] = "void (*)(const ImDrawList* parent_list, const ImDrawCmd* cmd);"
|
ImDrawCallback="void (*)(const ImDrawList* parent_list, const ImDrawCmd* cmd);",
|
||||||
defs["ImDrawChannel"] = "struct ImDrawChannel"
|
ImDrawChannel="struct ImDrawChannel",
|
||||||
defs["ImDrawCmd"] = "struct ImDrawCmd"
|
ImDrawCmd="struct ImDrawCmd",
|
||||||
defs["ImDrawCmdHeader"] = "struct ImDrawCmdHeader"
|
ImDrawCmdHeader="struct ImDrawCmdHeader",
|
||||||
defs["ImDrawData"] = "struct ImDrawData"
|
ImDrawData="struct ImDrawData",
|
||||||
defs["ImDrawDataBuilder"] = "struct ImDrawDataBuilder"
|
ImDrawDataBuilder="struct ImDrawDataBuilder",
|
||||||
defs["ImDrawFlags"] = "int"
|
ImDrawFlags="int",
|
||||||
defs["ImDrawIdx"] = "unsigned short"
|
ImDrawIdx="unsigned short",
|
||||||
defs["ImDrawList"] = "struct ImDrawList"
|
ImDrawList="struct ImDrawList",
|
||||||
defs["ImDrawListFlags"] = "int"
|
ImDrawListFlags="int",
|
||||||
defs["ImDrawListSharedData"] = "struct ImDrawListSharedData"
|
ImDrawListSharedData="struct ImDrawListSharedData",
|
||||||
defs["ImDrawListSplitter"] = "struct ImDrawListSplitter"
|
ImDrawListSplitter="struct ImDrawListSplitter",
|
||||||
defs["ImDrawVert"] = "struct ImDrawVert"
|
ImDrawVert="struct ImDrawVert",
|
||||||
defs["ImFileHandle"] = "FILE*"
|
ImFileHandle="FILE*",
|
||||||
defs["ImFont"] = "struct ImFont"
|
ImFont="struct ImFont",
|
||||||
defs["ImFontAtlas"] = "struct ImFontAtlas"
|
ImFontAtlas="struct ImFontAtlas",
|
||||||
defs["ImFontAtlasCustomRect"] = "struct ImFontAtlasCustomRect"
|
ImFontAtlasCustomRect="struct ImFontAtlasCustomRect",
|
||||||
defs["ImFontAtlasFlags"] = "int"
|
ImFontAtlasFlags="int",
|
||||||
defs["ImFontBuilderIO"] = "struct ImFontBuilderIO"
|
ImFontBuilderIO="struct ImFontBuilderIO",
|
||||||
defs["ImFontConfig"] = "struct ImFontConfig"
|
ImFontConfig="struct ImFontConfig",
|
||||||
defs["ImFontGlyph"] = "struct ImFontGlyph"
|
ImFontGlyph="struct ImFontGlyph",
|
||||||
defs["ImFontGlyphRangesBuilder"] = "struct ImFontGlyphRangesBuilder"
|
ImFontGlyphRangesBuilder="struct ImFontGlyphRangesBuilder",
|
||||||
defs["ImGuiActivateFlags"] = "int"
|
ImGuiActivateFlags="int",
|
||||||
defs["ImGuiBackendFlags"] = "int"
|
ImGuiBackendFlags="int",
|
||||||
defs["ImGuiBoxSelectState"] = "struct ImGuiBoxSelectState"
|
ImGuiBoxSelectState="struct ImGuiBoxSelectState",
|
||||||
defs["ImGuiButtonFlags"] = "int"
|
ImGuiButtonFlags="int",
|
||||||
defs["ImGuiChildFlags"] = "int"
|
ImGuiChildFlags="int",
|
||||||
defs["ImGuiCol"] = "int"
|
ImGuiCol="int",
|
||||||
defs["ImGuiColorEditFlags"] = "int"
|
ImGuiColorEditFlags="int",
|
||||||
defs["ImGuiColorMod"] = "struct ImGuiColorMod"
|
ImGuiColorMod="struct ImGuiColorMod",
|
||||||
defs["ImGuiComboFlags"] = "int"
|
ImGuiComboFlags="int",
|
||||||
defs["ImGuiComboPreviewData"] = "struct ImGuiComboPreviewData"
|
ImGuiComboPreviewData="struct ImGuiComboPreviewData",
|
||||||
defs["ImGuiCond"] = "int"
|
ImGuiCond="int",
|
||||||
defs["ImGuiConfigFlags"] = "int"
|
ImGuiConfigFlags="int",
|
||||||
defs["ImGuiContext"] = "struct ImGuiContext"
|
ImGuiContext="struct ImGuiContext",
|
||||||
defs["ImGuiContextHook"] = "struct ImGuiContextHook"
|
ImGuiContextHook="struct ImGuiContextHook",
|
||||||
defs["ImGuiContextHookCallback"] = "void (*)(ImGuiContext* ctx, ImGuiContextHook* hook);"
|
ImGuiContextHookCallback="void (*)(ImGuiContext* ctx, ImGuiContextHook* hook);",
|
||||||
defs["ImGuiDataAuthority"] = "int"
|
ImGuiDataAuthority="int",
|
||||||
defs["ImGuiDataType"] = "int"
|
ImGuiDataType="int",
|
||||||
defs["ImGuiDataTypeInfo"] = "struct ImGuiDataTypeInfo"
|
ImGuiDataTypeInfo="struct ImGuiDataTypeInfo",
|
||||||
defs["ImGuiDataTypeStorage"] = "struct ImGuiDataTypeStorage"
|
ImGuiDataTypeStorage="struct ImGuiDataTypeStorage",
|
||||||
defs["ImGuiDataVarInfo"] = "struct ImGuiDataVarInfo"
|
ImGuiDeactivatedItemData="struct ImGuiDeactivatedItemData",
|
||||||
defs["ImGuiDebugAllocEntry"] = "struct ImGuiDebugAllocEntry"
|
ImGuiDebugAllocEntry="struct ImGuiDebugAllocEntry",
|
||||||
defs["ImGuiDebugAllocInfo"] = "struct ImGuiDebugAllocInfo"
|
ImGuiDebugAllocInfo="struct ImGuiDebugAllocInfo",
|
||||||
defs["ImGuiDebugLogFlags"] = "int"
|
ImGuiDebugLogFlags="int",
|
||||||
defs["ImGuiDockContext"] = "struct ImGuiDockContext"
|
ImGuiDockContext="struct ImGuiDockContext",
|
||||||
defs["ImGuiDockNode"] = "struct ImGuiDockNode"
|
ImGuiDockNode="struct ImGuiDockNode",
|
||||||
defs["ImGuiDockNodeFlags"] = "int"
|
ImGuiDockNodeFlags="int",
|
||||||
defs["ImGuiDockNodeSettings"] = "struct ImGuiDockNodeSettings"
|
ImGuiDockNodeSettings="struct ImGuiDockNodeSettings",
|
||||||
defs["ImGuiDockRequest"] = "struct ImGuiDockRequest"
|
ImGuiDockRequest="struct ImGuiDockRequest",
|
||||||
defs["ImGuiDragDropFlags"] = "int"
|
ImGuiDragDropFlags="int",
|
||||||
defs["ImGuiErrorCallback"] = "void (*)(ImGuiContext* ctx, void* user_data, const char* msg);"
|
ImGuiErrorCallback="void (*)(ImGuiContext* ctx, void* user_data, const char* msg);",
|
||||||
defs["ImGuiErrorRecoveryState"] = "struct ImGuiErrorRecoveryState"
|
ImGuiErrorRecoveryState="struct ImGuiErrorRecoveryState",
|
||||||
defs["ImGuiFocusRequestFlags"] = "int"
|
ImGuiFocusRequestFlags="int",
|
||||||
defs["ImGuiFocusScopeData"] = "struct ImGuiFocusScopeData"
|
ImGuiFocusScopeData="struct ImGuiFocusScopeData",
|
||||||
defs["ImGuiFocusedFlags"] = "int"
|
ImGuiFocusedFlags="int",
|
||||||
defs["ImGuiGroupData"] = "struct ImGuiGroupData"
|
ImGuiGroupData="struct ImGuiGroupData",
|
||||||
defs["ImGuiHoveredFlags"] = "int"
|
ImGuiHoveredFlags="int",
|
||||||
defs["ImGuiID"] = "unsigned int"
|
ImGuiID="unsigned int",
|
||||||
defs["ImGuiIDStackTool"] = "struct ImGuiIDStackTool"
|
ImGuiIDStackTool="struct ImGuiIDStackTool",
|
||||||
defs["ImGuiIO"] = "struct ImGuiIO"
|
ImGuiIO="struct ImGuiIO",
|
||||||
defs["ImGuiInputEvent"] = "struct ImGuiInputEvent"
|
ImGuiInputEvent="struct ImGuiInputEvent",
|
||||||
defs["ImGuiInputEventAppFocused"] = "struct ImGuiInputEventAppFocused"
|
ImGuiInputEventAppFocused="struct ImGuiInputEventAppFocused",
|
||||||
defs["ImGuiInputEventKey"] = "struct ImGuiInputEventKey"
|
ImGuiInputEventKey="struct ImGuiInputEventKey",
|
||||||
defs["ImGuiInputEventMouseButton"] = "struct ImGuiInputEventMouseButton"
|
ImGuiInputEventMouseButton="struct ImGuiInputEventMouseButton",
|
||||||
defs["ImGuiInputEventMousePos"] = "struct ImGuiInputEventMousePos"
|
ImGuiInputEventMousePos="struct ImGuiInputEventMousePos",
|
||||||
defs["ImGuiInputEventMouseViewport"] = "struct ImGuiInputEventMouseViewport"
|
ImGuiInputEventMouseViewport="struct ImGuiInputEventMouseViewport",
|
||||||
defs["ImGuiInputEventMouseWheel"] = "struct ImGuiInputEventMouseWheel"
|
ImGuiInputEventMouseWheel="struct ImGuiInputEventMouseWheel",
|
||||||
defs["ImGuiInputEventText"] = "struct ImGuiInputEventText"
|
ImGuiInputEventText="struct ImGuiInputEventText",
|
||||||
defs["ImGuiInputFlags"] = "int"
|
ImGuiInputFlags="int",
|
||||||
defs["ImGuiInputTextCallback"] = "int (*)(ImGuiInputTextCallbackData* data);"
|
ImGuiInputTextCallback="int (*)(ImGuiInputTextCallbackData* data);",
|
||||||
defs["ImGuiInputTextCallbackData"] = "struct ImGuiInputTextCallbackData"
|
ImGuiInputTextCallbackData="struct ImGuiInputTextCallbackData",
|
||||||
defs["ImGuiInputTextDeactivateData"] = "struct ImGuiInputTextDeactivateData"
|
ImGuiInputTextDeactivateData="struct ImGuiInputTextDeactivateData",
|
||||||
defs["ImGuiInputTextDeactivatedState"] = "struct ImGuiInputTextDeactivatedState"
|
ImGuiInputTextDeactivatedState="struct ImGuiInputTextDeactivatedState",
|
||||||
defs["ImGuiInputTextFlags"] = "int"
|
ImGuiInputTextFlags="int",
|
||||||
defs["ImGuiInputTextState"] = "struct ImGuiInputTextState"
|
ImGuiInputTextState="struct ImGuiInputTextState",
|
||||||
defs["ImGuiItemFlags"] = "int"
|
ImGuiItemFlags="int",
|
||||||
defs["ImGuiItemStatusFlags"] = "int"
|
ImGuiItemStatusFlags="int",
|
||||||
defs["ImGuiKeyChord"] = "int"
|
ImGuiKeyChord="int",
|
||||||
defs["ImGuiKeyData"] = "struct ImGuiKeyData"
|
ImGuiKeyData="struct ImGuiKeyData",
|
||||||
defs["ImGuiKeyOwnerData"] = "struct ImGuiKeyOwnerData"
|
ImGuiKeyOwnerData="struct ImGuiKeyOwnerData",
|
||||||
defs["ImGuiKeyRoutingData"] = "struct ImGuiKeyRoutingData"
|
ImGuiKeyRoutingData="struct ImGuiKeyRoutingData",
|
||||||
defs["ImGuiKeyRoutingIndex"] = "ImS16"
|
ImGuiKeyRoutingIndex="ImS16",
|
||||||
defs["ImGuiKeyRoutingTable"] = "struct ImGuiKeyRoutingTable"
|
ImGuiKeyRoutingTable="struct ImGuiKeyRoutingTable",
|
||||||
defs["ImGuiLastItemData"] = "struct ImGuiLastItemData"
|
ImGuiLastItemData="struct ImGuiLastItemData",
|
||||||
defs["ImGuiLayoutType"] = "int"
|
ImGuiLayoutType="int",
|
||||||
defs["ImGuiListClipper"] = "struct ImGuiListClipper"
|
ImGuiListClipper="struct ImGuiListClipper",
|
||||||
defs["ImGuiListClipperData"] = "struct ImGuiListClipperData"
|
ImGuiListClipperData="struct ImGuiListClipperData",
|
||||||
defs["ImGuiListClipperRange"] = "struct ImGuiListClipperRange"
|
ImGuiListClipperRange="struct ImGuiListClipperRange",
|
||||||
defs["ImGuiLocEntry"] = "struct ImGuiLocEntry"
|
ImGuiLocEntry="struct ImGuiLocEntry",
|
||||||
defs["ImGuiLogFlags"] = "int"
|
ImGuiLogFlags="int",
|
||||||
defs["ImGuiMemAllocFunc"] = "void* (*)(size_t sz, void* user_data);"
|
ImGuiMemAllocFunc="void* (*)(size_t sz, void* user_data);",
|
||||||
defs["ImGuiMemFreeFunc"] = "void (*)(void* ptr, void* user_data);"
|
ImGuiMemFreeFunc="void (*)(void* ptr, void* user_data);",
|
||||||
defs["ImGuiMenuColumns"] = "struct ImGuiMenuColumns"
|
ImGuiMenuColumns="struct ImGuiMenuColumns",
|
||||||
defs["ImGuiMetricsConfig"] = "struct ImGuiMetricsConfig"
|
ImGuiMetricsConfig="struct ImGuiMetricsConfig",
|
||||||
defs["ImGuiMouseButton"] = "int"
|
ImGuiMouseButton="int",
|
||||||
defs["ImGuiMouseCursor"] = "int"
|
ImGuiMouseCursor="int",
|
||||||
defs["ImGuiMultiSelectFlags"] = "int"
|
ImGuiMultiSelectFlags="int",
|
||||||
defs["ImGuiMultiSelectIO"] = "struct ImGuiMultiSelectIO"
|
ImGuiMultiSelectIO="struct ImGuiMultiSelectIO",
|
||||||
defs["ImGuiMultiSelectState"] = "struct ImGuiMultiSelectState"
|
ImGuiMultiSelectState="struct ImGuiMultiSelectState",
|
||||||
defs["ImGuiMultiSelectTempData"] = "struct ImGuiMultiSelectTempData"
|
ImGuiMultiSelectTempData="struct ImGuiMultiSelectTempData",
|
||||||
defs["ImGuiNavItemData"] = "struct ImGuiNavItemData"
|
ImGuiNavItemData="struct ImGuiNavItemData",
|
||||||
defs["ImGuiNavMoveFlags"] = "int"
|
ImGuiNavMoveFlags="int",
|
||||||
defs["ImGuiNavRenderCursorFlags"] = "int"
|
ImGuiNavRenderCursorFlags="int",
|
||||||
defs["ImGuiNextItemData"] = "struct ImGuiNextItemData"
|
ImGuiNextItemData="struct ImGuiNextItemData",
|
||||||
defs["ImGuiNextItemDataFlags"] = "int"
|
ImGuiNextItemDataFlags="int",
|
||||||
defs["ImGuiNextWindowData"] = "struct ImGuiNextWindowData"
|
ImGuiNextWindowData="struct ImGuiNextWindowData",
|
||||||
defs["ImGuiNextWindowDataFlags"] = "int"
|
ImGuiNextWindowDataFlags="int",
|
||||||
defs["ImGuiOldColumnData"] = "struct ImGuiOldColumnData"
|
ImGuiOldColumnData="struct ImGuiOldColumnData",
|
||||||
defs["ImGuiOldColumnFlags"] = "int"
|
ImGuiOldColumnFlags="int",
|
||||||
defs["ImGuiOldColumns"] = "struct ImGuiOldColumns"
|
ImGuiOldColumns="struct ImGuiOldColumns",
|
||||||
defs["ImGuiOnceUponAFrame"] = "struct ImGuiOnceUponAFrame"
|
ImGuiOnceUponAFrame="struct ImGuiOnceUponAFrame",
|
||||||
defs["ImGuiPayload"] = "struct ImGuiPayload"
|
ImGuiPayload="struct ImGuiPayload",
|
||||||
defs["ImGuiPlatformIO"] = "struct ImGuiPlatformIO"
|
ImGuiPlatformIO="struct ImGuiPlatformIO",
|
||||||
defs["ImGuiPlatformImeData"] = "struct ImGuiPlatformImeData"
|
ImGuiPlatformImeData="struct ImGuiPlatformImeData",
|
||||||
defs["ImGuiPlatformMonitor"] = "struct ImGuiPlatformMonitor"
|
ImGuiPlatformMonitor="struct ImGuiPlatformMonitor",
|
||||||
defs["ImGuiPopupData"] = "struct ImGuiPopupData"
|
ImGuiPopupData="struct ImGuiPopupData",
|
||||||
defs["ImGuiPopupFlags"] = "int"
|
ImGuiPopupFlags="int",
|
||||||
defs["ImGuiPtrOrIndex"] = "struct ImGuiPtrOrIndex"
|
ImGuiPtrOrIndex="struct ImGuiPtrOrIndex",
|
||||||
defs["ImGuiScrollFlags"] = "int"
|
ImGuiScrollFlags="int",
|
||||||
defs["ImGuiSelectableFlags"] = "int"
|
ImGuiSelectableFlags="int",
|
||||||
defs["ImGuiSelectionBasicStorage"] = "struct ImGuiSelectionBasicStorage"
|
ImGuiSelectionBasicStorage="struct ImGuiSelectionBasicStorage",
|
||||||
defs["ImGuiSelectionExternalStorage"] = "struct ImGuiSelectionExternalStorage"
|
ImGuiSelectionExternalStorage="struct ImGuiSelectionExternalStorage",
|
||||||
defs["ImGuiSelectionRequest"] = "struct ImGuiSelectionRequest"
|
ImGuiSelectionRequest="struct ImGuiSelectionRequest",
|
||||||
defs["ImGuiSelectionUserData"] = "ImS64"
|
ImGuiSelectionUserData="ImS64",
|
||||||
defs["ImGuiSeparatorFlags"] = "int"
|
ImGuiSeparatorFlags="int",
|
||||||
defs["ImGuiSettingsHandler"] = "struct ImGuiSettingsHandler"
|
ImGuiSettingsHandler="struct ImGuiSettingsHandler",
|
||||||
defs["ImGuiShrinkWidthItem"] = "struct ImGuiShrinkWidthItem"
|
ImGuiShrinkWidthItem="struct ImGuiShrinkWidthItem",
|
||||||
defs["ImGuiSizeCallback"] = "void (*)(ImGuiSizeCallbackData* data);"
|
ImGuiSizeCallback="void (*)(ImGuiSizeCallbackData* data);",
|
||||||
defs["ImGuiSizeCallbackData"] = "struct ImGuiSizeCallbackData"
|
ImGuiSizeCallbackData="struct ImGuiSizeCallbackData",
|
||||||
defs["ImGuiSliderFlags"] = "int"
|
ImGuiSliderFlags="int",
|
||||||
defs["ImGuiStackLevelInfo"] = "struct ImGuiStackLevelInfo"
|
ImGuiStackLevelInfo="struct ImGuiStackLevelInfo",
|
||||||
defs["ImGuiStorage"] = "struct ImGuiStorage"
|
ImGuiStorage="struct ImGuiStorage",
|
||||||
defs["ImGuiStoragePair"] = "struct ImGuiStoragePair"
|
ImGuiStoragePair="struct ImGuiStoragePair",
|
||||||
defs["ImGuiStyle"] = "struct ImGuiStyle"
|
ImGuiStyle="struct ImGuiStyle",
|
||||||
defs["ImGuiStyleMod"] = "struct ImGuiStyleMod"
|
ImGuiStyleMod="struct ImGuiStyleMod",
|
||||||
defs["ImGuiStyleVar"] = "int"
|
ImGuiStyleVar="int",
|
||||||
defs["ImGuiTabBar"] = "struct ImGuiTabBar"
|
ImGuiStyleVarInfo="struct ImGuiStyleVarInfo",
|
||||||
defs["ImGuiTabBarFlags"] = "int"
|
ImGuiTabBar="struct ImGuiTabBar",
|
||||||
defs["ImGuiTabItem"] = "struct ImGuiTabItem"
|
ImGuiTabBarFlags="int",
|
||||||
defs["ImGuiTabItemFlags"] = "int"
|
ImGuiTabItem="struct ImGuiTabItem",
|
||||||
defs["ImGuiTable"] = "struct ImGuiTable"
|
ImGuiTabItemFlags="int",
|
||||||
defs["ImGuiTableBgTarget"] = "int"
|
ImGuiTable="struct ImGuiTable",
|
||||||
defs["ImGuiTableCellData"] = "struct ImGuiTableCellData"
|
ImGuiTableBgTarget="int",
|
||||||
defs["ImGuiTableColumn"] = "struct ImGuiTableColumn"
|
ImGuiTableCellData="struct ImGuiTableCellData",
|
||||||
defs["ImGuiTableColumnFlags"] = "int"
|
ImGuiTableColumn="struct ImGuiTableColumn",
|
||||||
defs["ImGuiTableColumnIdx"] = "ImS16"
|
ImGuiTableColumnFlags="int",
|
||||||
defs["ImGuiTableColumnSettings"] = "struct ImGuiTableColumnSettings"
|
ImGuiTableColumnIdx="ImS16",
|
||||||
defs["ImGuiTableColumnSortSpecs"] = "struct ImGuiTableColumnSortSpecs"
|
ImGuiTableColumnSettings="struct ImGuiTableColumnSettings",
|
||||||
defs["ImGuiTableColumnsSettings"] = "struct ImGuiTableColumnsSettings"
|
ImGuiTableColumnSortSpecs="struct ImGuiTableColumnSortSpecs",
|
||||||
defs["ImGuiTableDrawChannelIdx"] = "ImU16"
|
ImGuiTableColumnsSettings="struct ImGuiTableColumnsSettings",
|
||||||
defs["ImGuiTableFlags"] = "int"
|
ImGuiTableDrawChannelIdx="ImU16",
|
||||||
defs["ImGuiTableHeaderData"] = "struct ImGuiTableHeaderData"
|
ImGuiTableFlags="int",
|
||||||
defs["ImGuiTableInstanceData"] = "struct ImGuiTableInstanceData"
|
ImGuiTableHeaderData="struct ImGuiTableHeaderData",
|
||||||
defs["ImGuiTableRowFlags"] = "int"
|
ImGuiTableInstanceData="struct ImGuiTableInstanceData",
|
||||||
defs["ImGuiTableSettings"] = "struct ImGuiTableSettings"
|
ImGuiTableRowFlags="int",
|
||||||
defs["ImGuiTableSortSpecs"] = "struct ImGuiTableSortSpecs"
|
ImGuiTableSettings="struct ImGuiTableSettings",
|
||||||
defs["ImGuiTableTempData"] = "struct ImGuiTableTempData"
|
ImGuiTableSortSpecs="struct ImGuiTableSortSpecs",
|
||||||
defs["ImGuiTextBuffer"] = "struct ImGuiTextBuffer"
|
ImGuiTableTempData="struct ImGuiTableTempData",
|
||||||
defs["ImGuiTextFilter"] = "struct ImGuiTextFilter"
|
ImGuiTextBuffer="struct ImGuiTextBuffer",
|
||||||
defs["ImGuiTextFlags"] = "int"
|
ImGuiTextFilter="struct ImGuiTextFilter",
|
||||||
defs["ImGuiTextIndex"] = "struct ImGuiTextIndex"
|
ImGuiTextFlags="int",
|
||||||
defs["ImGuiTextRange"] = "struct ImGuiTextRange"
|
ImGuiTextIndex="struct ImGuiTextIndex",
|
||||||
defs["ImGuiTooltipFlags"] = "int"
|
ImGuiTextRange="struct ImGuiTextRange",
|
||||||
defs["ImGuiTreeNodeFlags"] = "int"
|
ImGuiTooltipFlags="int",
|
||||||
defs["ImGuiTreeNodeStackData"] = "struct ImGuiTreeNodeStackData"
|
ImGuiTreeNodeFlags="int",
|
||||||
defs["ImGuiTypingSelectFlags"] = "int"
|
ImGuiTreeNodeStackData="struct ImGuiTreeNodeStackData",
|
||||||
defs["ImGuiTypingSelectRequest"] = "struct ImGuiTypingSelectRequest"
|
ImGuiTypingSelectFlags="int",
|
||||||
defs["ImGuiTypingSelectState"] = "struct ImGuiTypingSelectState"
|
ImGuiTypingSelectRequest="struct ImGuiTypingSelectRequest",
|
||||||
defs["ImGuiViewport"] = "struct ImGuiViewport"
|
ImGuiTypingSelectState="struct ImGuiTypingSelectState",
|
||||||
defs["ImGuiViewportFlags"] = "int"
|
ImGuiViewport="struct ImGuiViewport",
|
||||||
defs["ImGuiViewportP"] = "struct ImGuiViewportP"
|
ImGuiViewportFlags="int",
|
||||||
defs["ImGuiWindow"] = "struct ImGuiWindow"
|
ImGuiViewportP="struct ImGuiViewportP",
|
||||||
defs["ImGuiWindowClass"] = "struct ImGuiWindowClass"
|
ImGuiWindow="struct ImGuiWindow",
|
||||||
defs["ImGuiWindowDockStyle"] = "struct ImGuiWindowDockStyle"
|
ImGuiWindowClass="struct ImGuiWindowClass",
|
||||||
defs["ImGuiWindowFlags"] = "int"
|
ImGuiWindowDockStyle="struct ImGuiWindowDockStyle",
|
||||||
defs["ImGuiWindowRefreshFlags"] = "int"
|
ImGuiWindowFlags="int",
|
||||||
defs["ImGuiWindowSettings"] = "struct ImGuiWindowSettings"
|
ImGuiWindowRefreshFlags="int",
|
||||||
defs["ImGuiWindowStackData"] = "struct ImGuiWindowStackData"
|
ImGuiWindowSettings="struct ImGuiWindowSettings",
|
||||||
defs["ImGuiWindowTempData"] = "struct ImGuiWindowTempData"
|
ImGuiWindowStackData="struct ImGuiWindowStackData",
|
||||||
defs["ImPoolIdx"] = "int"
|
ImGuiWindowTempData="struct ImGuiWindowTempData",
|
||||||
defs["ImRect"] = "struct ImRect"
|
ImPoolIdx="int",
|
||||||
defs["ImS16"] = "signed short"
|
ImRect="struct ImRect",
|
||||||
defs["ImS32"] = "signed int"
|
ImS16="signed short",
|
||||||
defs["ImS64"] = "signed long long"
|
ImS32="signed int",
|
||||||
defs["ImS8"] = "signed char"
|
ImS64="signed long long",
|
||||||
defs["ImStbTexteditState"] = "ImStb::STB_TexteditState"
|
ImS8="signed char",
|
||||||
defs["ImTextureID"] = "ImU64"
|
ImStbTexteditState="ImStb::STB_TexteditState",
|
||||||
defs["ImU16"] = "unsigned short"
|
ImTextureID="ImU64",
|
||||||
defs["ImU32"] = "unsigned int"
|
ImU16="unsigned short",
|
||||||
defs["ImU64"] = "unsigned long long"
|
ImU32="unsigned int",
|
||||||
defs["ImU8"] = "unsigned char"
|
ImU64="unsigned long long",
|
||||||
defs["ImVec1"] = "struct ImVec1"
|
ImU8="unsigned char",
|
||||||
defs["ImVec2"] = "struct ImVec2"
|
ImVec1="struct ImVec1",
|
||||||
defs["ImVec2ih"] = "struct ImVec2ih"
|
ImVec2="struct ImVec2",
|
||||||
defs["ImVec4"] = "struct ImVec4"
|
ImVec2ih="struct ImVec2ih",
|
||||||
defs["ImWchar"] = "ImWchar16"
|
ImVec4="struct ImVec4",
|
||||||
defs["ImWchar16"] = "unsigned short"
|
ImWchar="ImWchar16",
|
||||||
defs["ImWchar32"] = "unsigned int"
|
ImWchar16="unsigned short",
|
||||||
defs["STB_TexteditState"] = "struct STB_TexteditState"
|
ImWchar32="unsigned int",
|
||||||
|
STB_TexteditState="struct STB_TexteditState"}
|
||||||
return defs
|
return t
|
@@ -31,3 +31,7 @@
|
|||||||
#ifdef ImDrawCallback_ResetRenderState
|
#ifdef ImDrawCallback_ResetRenderState
|
||||||
#pragma message(CIMGUI_DEFSTRING(ImDrawCallback_ResetRenderState))
|
#pragma message(CIMGUI_DEFSTRING(ImDrawCallback_ResetRenderState))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef IMGUI_HAS_TEXTURES
|
||||||
|
#pragma message(CIMGUI_DEFSTRING(IMGUI_HAS_TEXTURES))
|
||||||
|
#endif
|
2
imgui
2
imgui
Submodule imgui updated: 947aa9c972...4806a1924f
@@ -11,6 +11,8 @@
|
|||||||
#define igDebugCheckVersionAndDataLayout igDebugCheckVersionAndDataLayout_Str
|
#define igDebugCheckVersionAndDataLayout igDebugCheckVersionAndDataLayout_Str
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define igGetIO igGetIO_Nil
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
assert(igDebugCheckVersionAndDataLayout(igGetVersion(), sizeof(ImGuiIO), sizeof(ImGuiStyle),
|
assert(igDebugCheckVersionAndDataLayout(igGetVersion(), sizeof(ImGuiIO), sizeof(ImGuiStyle),
|
||||||
|
Reference in New Issue
Block a user