add renderer abstraction

This commit is contained in:
Sven Balzer
2026-07-03 10:14:10 +02:00
parent f8f82bc653
commit aaa5b2078b
118 changed files with 1852545 additions and 1052 deletions
@@ -0,0 +1,142 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_allegro5.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_allegro5.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplAllegro5_Init(cimgui::ALLEGRO_DISPLAY* display)
{
return ::ImGui_ImplAllegro5_Init(reinterpret_cast<::ALLEGRO_DISPLAY*>(display));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplAllegro5_Shutdown(void)
{
::ImGui_ImplAllegro5_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplAllegro5_NewFrame(void)
{
::ImGui_ImplAllegro5_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplAllegro5_RenderDrawData(cimgui::ImDrawData* draw_data)
{
::ImGui_ImplAllegro5_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplAllegro5_ProcessEvent(cimgui::ALLEGRO_EVENT* event)
{
return ::ImGui_ImplAllegro5_ProcessEvent(reinterpret_cast<::ALLEGRO_EVENT*>(event));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplAllegro5_SetDisplay(cimgui::ALLEGRO_DISPLAY* display)
{
::ImGui_ImplAllegro5_SetDisplay(reinterpret_cast<::ALLEGRO_DISPLAY*>(display));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplAllegro5_CreateDeviceObjects(void)
{
return ::ImGui_ImplAllegro5_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplAllegro5_InvalidateDeviceObjects(void)
{
::ImGui_ImplAllegro5_InvalidateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplAllegro5_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplAllegro5_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
@@ -0,0 +1,62 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer + Platform Backend for Allegro 5
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.)
// Implemented features:
// [X] Renderer: User texture binding. Use 'ALLEGRO_BITMAP*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef!
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy ALLEGRO_KEY_* values are obsolete since 1.87 and not supported since 1.91.5]
// [X] Platform: Clipboard support (from Allegro 5.1.12).
// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
// Missing features or Issues:
// [ ] Renderer: The renderer is suboptimal as we need to unindex our buffers and convert vertices manually.
// [ ] Platform: Missing gamepad support.
// [ ] Renderer: Multi-viewport support (multiple windows).
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct ALLEGRO_DISPLAY_t ALLEGRO_DISPLAY;
typedef union ALLEGRO_EVENT_t ALLEGRO_EVENT;
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display);
CIMGUI_IMPL_API void cImGui_ImplAllegro5_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplAllegro5_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplAllegro5_RenderDrawData(ImDrawData* draw_data);
CIMGUI_IMPL_API bool cImGui_ImplAllegro5_ProcessEvent(ALLEGRO_EVENT* event);
CIMGUI_IMPL_API void cImGui_ImplAllegro5_SetDisplay(ALLEGRO_DISPLAY* display);
// Use if you want to reset your rendering device without losing Dear ImGui state.
CIMGUI_IMPL_API bool cImGui_ImplAllegro5_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplAllegro5_InvalidateDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplAllegro5_UpdateTexture(ImTextureData* tex);
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,382 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h"
}
}
],
"structs": [
{
"name": "ALLEGRO_DISPLAY",
"original_fully_qualified_name": "ALLEGRO_DISPLAY",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 27
}
},
{
"name": "ALLEGRO_EVENT",
"original_fully_qualified_name": "ALLEGRO_EVENT",
"kind": "union",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 28
}
},
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplAllegro5_Init",
"original_fully_qualified_name": "ImGui_ImplAllegro5_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "display",
"type": {
"declaration": "ALLEGRO_DISPLAY*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ALLEGRO_DISPLAY"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 31
}
},
{
"name": "cImGui_ImplAllegro5_Shutdown",
"original_fully_qualified_name": "ImGui_ImplAllegro5_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 32
}
},
{
"name": "cImGui_ImplAllegro5_NewFrame",
"original_fully_qualified_name": "ImGui_ImplAllegro5_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 33
}
},
{
"name": "cImGui_ImplAllegro5_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplAllegro5_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 34
}
},
{
"name": "cImGui_ImplAllegro5_ProcessEvent",
"original_fully_qualified_name": "ImGui_ImplAllegro5_ProcessEvent",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "event",
"type": {
"declaration": "ALLEGRO_EVENT*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ALLEGRO_EVENT"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 35
}
},
{
"name": "cImGui_ImplAllegro5_SetDisplay",
"original_fully_qualified_name": "ImGui_ImplAllegro5_SetDisplay",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "display",
"type": {
"declaration": "ALLEGRO_DISPLAY*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ALLEGRO_DISPLAY"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 36
}
},
{
"name": "cImGui_ImplAllegro5_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplAllegro5_CreateDeviceObjects",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Use if you want to reset your rendering device without losing Dear ImGui state."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 39
}
},
{
"name": "cImGui_ImplAllegro5_InvalidateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplAllegro5_InvalidateDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 40
}
},
{
"name": "cImGui_ImplAllegro5_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplAllegro5_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_allegro5.h",
"line": 43
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,117 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_android.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_android.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplAndroid_Init(cimgui::ANativeWindow* window)
{
return ::ImGui_ImplAndroid_Init(reinterpret_cast<::ANativeWindow*>(window));
}
CIMGUI_IMPL_API int32_t cimgui::cImGui_ImplAndroid_HandleInputEvent(const cimgui::AInputEvent* input_event)
{
return ::ImGui_ImplAndroid_HandleInputEvent(reinterpret_cast<const ::AInputEvent*>(input_event));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplAndroid_Shutdown(void)
{
::ImGui_ImplAndroid_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplAndroid_NewFrame(void)
{
::ImGui_ImplAndroid_NewFrame();
}
#endif // #ifndef IMGUI_DISABLE
@@ -0,0 +1,55 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Platform Binding for Android native app
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with the OpenGL 3 Renderer (imgui_impl_opengl3)
// Implemented features:
// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy AKEYCODE_* values are obsolete since 1.87 and not supported since 1.91.5]
// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen/Pen.
// Missing features or Issues:
// [ ] Platform: Clipboard support.
// [ ] Platform: Gamepad support.
// [ ] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. FIXME: Check if this is even possible with Android.
// [ ] Platform: Multi-viewport support (multiple windows). Not meaningful on Android.
// Important:
// - Consider using SDL or GLFW backend on Android, which will be more full-featured than this.
// - FIXME: On-screen keyboard currently needs to be enabled by the application (see examples/ and issue #3446)
// - FIXME: Unicode character inputs needs to be passed by Dear ImGui by the application (see examples/ and issue #3446)
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct ANativeWindow_t ANativeWindow;
typedef struct AInputEvent_t AInputEvent;
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplAndroid_Init(ANativeWindow* window);
CIMGUI_IMPL_API int32_t cImGui_ImplAndroid_HandleInputEvent(const AInputEvent* input_event);
CIMGUI_IMPL_API void cImGui_ImplAndroid_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplAndroid_NewFrame(void);
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,209 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_android.h"
}
}
],
"structs": [
{
"name": "ANativeWindow",
"original_fully_qualified_name": "ANativeWindow",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_android.h",
"line": 29
}
},
{
"name": "AInputEvent",
"original_fully_qualified_name": "AInputEvent",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_android.h",
"line": 30
}
},
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_android.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplAndroid_Init",
"original_fully_qualified_name": "ImGui_ImplAndroid_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "ANativeWindow*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ANativeWindow"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_android.h",
"line": 33
}
},
{
"name": "cImGui_ImplAndroid_HandleInputEvent",
"original_fully_qualified_name": "ImGui_ImplAndroid_HandleInputEvent",
"return_type": {
"declaration": "int32_t",
"description": {
"kind": "User",
"name": "int32_t"
}
},
"arguments": [
{
"name": "input_event",
"type": {
"declaration": "const AInputEvent*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "AInputEvent",
"storage_classes": [
"const"
]
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_android.h",
"line": 34
}
},
{
"name": "cImGui_ImplAndroid_Shutdown",
"original_fully_qualified_name": "ImGui_ImplAndroid_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_android.h",
"line": 35
}
},
{
"name": "cImGui_ImplAndroid_NewFrame",
"original_fully_qualified_name": "ImGui_ImplAndroid_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_android.h",
"line": 36
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+133
View File
@@ -0,0 +1,133 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_dx10.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_dx10.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplDX10_Init(cimgui::ID3D10Device* device)
{
return ::ImGui_ImplDX10_Init(reinterpret_cast<::ID3D10Device*>(device));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX10_Shutdown(void)
{
::ImGui_ImplDX10_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX10_NewFrame(void)
{
::ImGui_ImplDX10_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX10_RenderDrawData(cimgui::ImDrawData* draw_data)
{
::ImGui_ImplDX10_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplDX10_CreateDeviceObjects(void)
{
return ::ImGui_ImplDX10_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX10_InvalidateDeviceObjects(void)
{
::ImGui_ImplDX10_InvalidateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX10_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplDX10_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
+69
View File
@@ -0,0 +1,69 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for DirectX10
// Auto-generated forward declarations for C header
typedef struct ImGui_ImplDX10_RenderState_t ImGui_ImplDX10_RenderState;
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Platform Backend (e.g. Win32)
// Implemented features:
// [X] Renderer: User texture binding. Use 'ID3D10ShaderResourceView*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef!
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct ID3D10Device_t ID3D10Device;
typedef struct ID3D10SamplerState_t ID3D10SamplerState;
typedef struct ID3D10Buffer_t ID3D10Buffer;
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplDX10_Init(ID3D10Device* device);
CIMGUI_IMPL_API void cImGui_ImplDX10_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplDX10_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplDX10_RenderDrawData(ImDrawData* draw_data);
// Use if you want to reset your rendering device without losing Dear ImGui state.
CIMGUI_IMPL_API bool cImGui_ImplDX10_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplDX10_InvalidateDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplDX10_UpdateTexture(ImTextureData* tex);
// [BETA] Selected render state data shared with callbacks.
// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplDX10_RenderDrawData() call.
// (Please open an issue if you feel you need access to more data)
struct ImGui_ImplDX10_RenderState_t
{
ID3D10Device* Device;
ID3D10SamplerState* SamplerLinear;
ID3D10SamplerState* SamplerNearest;
ID3D10Buffer* VertexConstantBuffer;
};
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,418 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h"
}
}
],
"structs": [
{
"name": "ID3D10Device",
"original_fully_qualified_name": "ID3D10Device",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 22
}
},
{
"name": "ID3D10SamplerState",
"original_fully_qualified_name": "ID3D10SamplerState",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 23
}
},
{
"name": "ID3D10Buffer",
"original_fully_qualified_name": "ID3D10Buffer",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 24
}
},
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 1
}
},
{
"name": "ImGui_ImplDX10_RenderState",
"original_fully_qualified_name": "ImGui_ImplDX10_RenderState",
"kind": "struct",
"by_value": false,
"forward_declaration": false,
"is_anonymous": false,
"fields": [
{
"name": "Device",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D10Device*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D10Device"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 44
}
},
{
"name": "SamplerLinear",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D10SamplerState*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D10SamplerState"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 45
}
},
{
"name": "SamplerNearest",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D10SamplerState*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D10SamplerState"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 46
}
},
{
"name": "VertexConstantBuffer",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D10Buffer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D10Buffer"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 47
}
}
],
"comments": {
"preceding": [
"// [BETA] Selected render state data shared with callbacks.",
"// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplDX10_RenderDrawData() call.",
"// (Please open an issue if you feel you need access to more data)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 42
}
}
],
"functions": [
{
"name": "cImGui_ImplDX10_Init",
"original_fully_qualified_name": "ImGui_ImplDX10_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "device",
"type": {
"declaration": "ID3D10Device*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D10Device"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 27
}
},
{
"name": "cImGui_ImplDX10_Shutdown",
"original_fully_qualified_name": "ImGui_ImplDX10_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 28
}
},
{
"name": "cImGui_ImplDX10_NewFrame",
"original_fully_qualified_name": "ImGui_ImplDX10_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 29
}
},
{
"name": "cImGui_ImplDX10_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplDX10_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 30
}
},
{
"name": "cImGui_ImplDX10_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplDX10_CreateDeviceObjects",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Use if you want to reset your rendering device without losing Dear ImGui state."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 33
}
},
{
"name": "cImGui_ImplDX10_InvalidateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplDX10_InvalidateDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 34
}
},
{
"name": "cImGui_ImplDX10_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplDX10_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx10.h",
"line": 37
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+133
View File
@@ -0,0 +1,133 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_dx11.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_dx11.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context)
{
return ::ImGui_ImplDX11_Init(device, device_context);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX11_Shutdown(void)
{
::ImGui_ImplDX11_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX11_NewFrame(void)
{
::ImGui_ImplDX11_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX11_RenderDrawData(cimgui::ImDrawData* draw_data)
{
::ImGui_ImplDX11_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplDX11_CreateDeviceObjects(void)
{
return ::ImGui_ImplDX11_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX11_InvalidateDeviceObjects(void)
{
::ImGui_ImplDX11_InvalidateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX11_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplDX11_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
+67
View File
@@ -0,0 +1,67 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for DirectX11
// Auto-generated forward declarations for C header
typedef struct ImGui_ImplDX11_RenderState_t ImGui_ImplDX11_RenderState;
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Platform Backend (e.g. Win32)
// Implemented features:
// [X] Renderer: User texture binding. Use 'ID3D11ShaderResourceView*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef!
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'.
// [X] Renderer: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context);
CIMGUI_IMPL_API void cImGui_ImplDX11_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplDX11_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplDX11_RenderDrawData(ImDrawData* draw_data);
// Use if you want to reset your rendering device without losing Dear ImGui state.
CIMGUI_IMPL_API bool cImGui_ImplDX11_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplDX11_InvalidateDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplDX11_UpdateTexture(ImTextureData* tex);
// [BETA] Selected render state data shared with callbacks.
// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplDX11_RenderDrawData() call.
// (Please open an issue if you feel you need access to more data)
struct ImGui_ImplDX11_RenderState_t
{
ID3D11Device* Device;
ID3D11DeviceContext* DeviceContext;
ID3D11SamplerState* SamplerLinear;
ID3D11SamplerState* SamplerNearest;
ID3D11Buffer* VertexConstantBuffer;
};
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,412 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h"
}
}
],
"structs": [
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 1
}
},
{
"name": "ImGui_ImplDX11_RenderState",
"original_fully_qualified_name": "ImGui_ImplDX11_RenderState",
"kind": "struct",
"by_value": false,
"forward_declaration": false,
"is_anonymous": false,
"fields": [
{
"name": "Device",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D11Device*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D11Device"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 46
}
},
{
"name": "DeviceContext",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D11DeviceContext*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D11DeviceContext"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 47
}
},
{
"name": "SamplerLinear",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D11SamplerState*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D11SamplerState"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 48
}
},
{
"name": "SamplerNearest",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D11SamplerState*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D11SamplerState"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 49
}
},
{
"name": "VertexConstantBuffer",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D11Buffer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D11Buffer"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 50
}
}
],
"comments": {
"preceding": [
"// [BETA] Selected render state data shared with callbacks.",
"// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplDX11_RenderDrawData() call.",
"// (Please open an issue if you feel you need access to more data)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 44
}
}
],
"functions": [
{
"name": "cImGui_ImplDX11_Init",
"original_fully_qualified_name": "ImGui_ImplDX11_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "device",
"type": {
"declaration": "ID3D11Device*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D11Device"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "device_context",
"type": {
"declaration": "ID3D11DeviceContext*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D11DeviceContext"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 29
}
},
{
"name": "cImGui_ImplDX11_Shutdown",
"original_fully_qualified_name": "ImGui_ImplDX11_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 30
}
},
{
"name": "cImGui_ImplDX11_NewFrame",
"original_fully_qualified_name": "ImGui_ImplDX11_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 31
}
},
{
"name": "cImGui_ImplDX11_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplDX11_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 32
}
},
{
"name": "cImGui_ImplDX11_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplDX11_CreateDeviceObjects",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Use if you want to reset your rendering device without losing Dear ImGui state."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 35
}
},
{
"name": "cImGui_ImplDX11_InvalidateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplDX11_InvalidateDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 36
}
},
{
"name": "cImGui_ImplDX11_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplDX11_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx11.h",
"line": 39
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+143
View File
@@ -0,0 +1,143 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_dx12.h"
#include <stdio.h>
#include <d3d12.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_dx12.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplDX12_Init(cimgui::ImGui_ImplDX12_InitInfo* info)
{
return ::ImGui_ImplDX12_Init(reinterpret_cast<::ImGui_ImplDX12_InitInfo*>(info));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX12_Shutdown(void)
{
::ImGui_ImplDX12_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX12_NewFrame(void)
{
::ImGui_ImplDX12_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX12_RenderDrawData(cimgui::ImDrawData* draw_data, ID3D12GraphicsCommandList* graphics_command_list)
{
::ImGui_ImplDX12_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), graphics_command_list);
}
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
CIMGUI_IMPL_API bool cimgui::cImGui_ImplDX12_InitID3D12DevicePtr(ID3D12Device* device, int num_frames_in_flight, DXGI_FORMAT rtv_format, ID3D12DescriptorHeap* srv_descriptor_heap, D3D12_CPU_DESCRIPTOR_HANDLE font_srv_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE font_srv_gpu_desc_handle)
{
return ::ImGui_ImplDX12_Init(device, num_frames_in_flight, rtv_format, srv_descriptor_heap, font_srv_cpu_desc_handle, font_srv_gpu_desc_handle);
}
#endif // #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
CIMGUI_IMPL_API bool cimgui::cImGui_ImplDX12_CreateDeviceObjects(void)
{
return ::ImGui_ImplDX12_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX12_InvalidateDeviceObjects(void)
{
::ImGui_ImplDX12_InvalidateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX12_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplDX12_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
+106
View File
@@ -0,0 +1,106 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for DirectX12
// Auto-generated forward declarations for C header
typedef struct ImGui_ImplDX12_InitInfo_t ImGui_ImplDX12_InitInfo;
typedef struct ImGui_ImplDX12_RenderState_t ImGui_ImplDX12_RenderState;
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Platform Backend (e.g. Win32)
// Implemented features:
// [X] Renderer: User texture binding. Use 'D3D12_GPU_DESCRIPTOR_HANDLE' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef!
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'.
// [X] Renderer: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// The aim of imgui_impl_dx12.h/.cpp is to be usable in your engine without any modification.
// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
#include <dxgiformat.h>
#include <d3d12.h>
// Clang/GCC warnings with -Weverything
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast
#endif // #if defined(__clang__)
typedef struct ImGui_ImplDX12_InitInfo_ImDrawData_t ImGui_ImplDX12_InitInfo_ImDrawData;
// Initialization data, for ImGui_ImplDX12_Init()
struct ImGui_ImplDX12_InitInfo_t
{
ID3D12Device* Device;
ID3D12CommandQueue* CommandQueue; // Command queue used for queuing texture uploads.
int NumFramesInFlight;
DXGI_FORMAT RTVFormat; // RenderTarget format.
DXGI_FORMAT DSVFormat; // DepthStencilView format.
void* UserData;
// Allocating SRV descriptors for textures is up to the application, so we provide callbacks.
// (current version of the backend will only allocate one descriptor, from 1.92 the backend will need to allocate more)
ID3D12DescriptorHeap* SrvDescriptorHeap;
void (*SrvDescriptorAllocFn)(ImGui_ImplDX12_InitInfo* info, D3D12_CPU_DESCRIPTOR_HANDLE* out_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE* out_gpu_desc_handle);
void (*SrvDescriptorFreeFn)(ImGui_ImplDX12_InitInfo* info, D3D12_CPU_DESCRIPTOR_HANDLE cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE gpu_desc_handle);
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
D3D12_CPU_DESCRIPTOR_HANDLE LegacySingleSrvCpuDescriptor; // To facilitate transition from single descriptor to allocator callback, you may use those.
D3D12_GPU_DESCRIPTOR_HANDLE LegacySingleSrvGpuDescriptor;
#endif // #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
};
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplDX12_Init(ImGui_ImplDX12_InitInfo* info);
CIMGUI_IMPL_API void cImGui_ImplDX12_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplDX12_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplDX12_RenderDrawData(ImDrawData* draw_data, ID3D12GraphicsCommandList* graphics_command_list);
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
// Legacy initialization API Obsoleted in 1.91.5
// - font_srv_cpu_desc_handle and font_srv_gpu_desc_handle are handles to a single SRV descriptor to use for the internal font texture, they must be in 'srv_descriptor_heap'
// - When we introduced the ImGui_ImplDX12_InitInfo struct we also added a 'ID3D12CommandQueue* CommandQueue' field.
CIMGUI_IMPL_API bool cImGui_ImplDX12_InitID3D12DevicePtr(ID3D12Device* device, int num_frames_in_flight, DXGI_FORMAT rtv_format, ID3D12DescriptorHeap* srv_descriptor_heap, D3D12_CPU_DESCRIPTOR_HANDLE font_srv_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE font_srv_gpu_desc_handle);
#endif // #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
// Use if you want to reset your rendering device without losing Dear ImGui state.
CIMGUI_IMPL_API bool cImGui_ImplDX12_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplDX12_InvalidateDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplDX12_UpdateTexture(ImTextureData* tex);
// [BETA] Selected render state data shared with callbacks.
// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplDX12_RenderDrawData() call.
// (Please open an issue if you feel you need access to more data)
struct ImGui_ImplDX12_RenderState_t
{
ID3D12Device* Device;
ID3D12GraphicsCommandList* CommandList;
};
#if defined(__clang__)
#pragma clang diagnostic pop
#endif // #if defined(__clang__)
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,918 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h"
}
}
],
"structs": [
{
"name": "ImGui_ImplDX12_InitInfo_ImDrawData",
"original_fully_qualified_name": "ImGui_ImplDX12_InitInfo_ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 1
}
},
{
"name": "ImGui_ImplDX12_InitInfo",
"original_fully_qualified_name": "ImGui_ImplDX12_InitInfo",
"kind": "struct",
"by_value": false,
"forward_declaration": false,
"is_anonymous": false,
"fields": [
{
"name": "Device",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D12Device*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D12Device"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 37
}
},
{
"name": "CommandQueue",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D12CommandQueue*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D12CommandQueue"
}
}
},
"comments": {
"attached": "// Command queue used for queuing texture uploads."
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 38
}
},
{
"name": "NumFramesInFlight",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 39
}
},
{
"name": "RTVFormat",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "DXGI_FORMAT",
"description": {
"kind": "User",
"name": "DXGI_FORMAT"
}
},
"comments": {
"attached": "// RenderTarget format."
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 40
}
},
{
"name": "DSVFormat",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "DXGI_FORMAT",
"description": {
"kind": "User",
"name": "DXGI_FORMAT"
}
},
"comments": {
"attached": "// DepthStencilView format."
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 41
}
},
{
"name": "UserData",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "void*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Builtin",
"builtin_type": "void"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 42
}
},
{
"name": "SrvDescriptorHeap",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D12DescriptorHeap*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D12DescriptorHeap"
}
}
},
"comments": {
"preceding": [
"// Allocating SRV descriptors for textures is up to the application, so we provide callbacks.",
"// (current version of the backend will only allocate one descriptor, from 1.92 the backend will need to allocate more)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 46
}
},
{
"name": "SrvDescriptorAllocFn",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "void (*SrvDescriptorAllocFn)(ImGui_ImplDX12_InitInfo* info, D3D12_CPU_DESCRIPTOR_HANDLE* out_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE* out_gpu_desc_handle)",
"type_details": {
"flavour": "function_pointer",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "info",
"type": {
"declaration": "ImGui_ImplDX12_InitInfo*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImGui_ImplDX12_InitInfo"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "out_cpu_desc_handle",
"type": {
"declaration": "D3D12_CPU_DESCRIPTOR_HANDLE*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "D3D12_CPU_DESCRIPTOR_HANDLE"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "out_gpu_desc_handle",
"type": {
"declaration": "D3D12_GPU_DESCRIPTOR_HANDLE*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "D3D12_GPU_DESCRIPTOR_HANDLE"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
]
},
"description": {
"kind": "Type",
"name": "SrvDescriptorAllocFn",
"inner_type": {
"kind": "Pointer",
"inner_type": {
"kind": "Function",
"return_type": {
"kind": "Builtin",
"builtin_type": "void"
},
"parameters": [
{
"kind": "Type",
"name": "info",
"inner_type": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImGui_ImplDX12_InitInfo"
}
}
},
{
"kind": "Type",
"name": "out_cpu_desc_handle",
"inner_type": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "D3D12_CPU_DESCRIPTOR_HANDLE"
}
}
},
{
"kind": "Type",
"name": "out_gpu_desc_handle",
"inner_type": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "D3D12_GPU_DESCRIPTOR_HANDLE"
}
}
}
]
}
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h"
}
},
{
"name": "SrvDescriptorFreeFn",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "void (*SrvDescriptorFreeFn)(ImGui_ImplDX12_InitInfo* info, D3D12_CPU_DESCRIPTOR_HANDLE cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE gpu_desc_handle)",
"type_details": {
"flavour": "function_pointer",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "info",
"type": {
"declaration": "ImGui_ImplDX12_InitInfo*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImGui_ImplDX12_InitInfo"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "cpu_desc_handle",
"type": {
"declaration": "D3D12_CPU_DESCRIPTOR_HANDLE",
"description": {
"kind": "User",
"name": "D3D12_CPU_DESCRIPTOR_HANDLE"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "gpu_desc_handle",
"type": {
"declaration": "D3D12_GPU_DESCRIPTOR_HANDLE",
"description": {
"kind": "User",
"name": "D3D12_GPU_DESCRIPTOR_HANDLE"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
]
},
"description": {
"kind": "Type",
"name": "SrvDescriptorFreeFn",
"inner_type": {
"kind": "Pointer",
"inner_type": {
"kind": "Function",
"return_type": {
"kind": "Builtin",
"builtin_type": "void"
},
"parameters": [
{
"kind": "Type",
"name": "info",
"inner_type": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImGui_ImplDX12_InitInfo"
}
}
},
{
"kind": "Type",
"name": "cpu_desc_handle",
"inner_type": {
"kind": "User",
"name": "D3D12_CPU_DESCRIPTOR_HANDLE"
}
},
{
"kind": "Type",
"name": "gpu_desc_handle",
"inner_type": {
"kind": "User",
"name": "D3D12_GPU_DESCRIPTOR_HANDLE"
}
}
]
}
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h"
}
},
{
"name": "LegacySingleSrvCpuDescriptor",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "D3D12_CPU_DESCRIPTOR_HANDLE",
"description": {
"kind": "User",
"name": "D3D12_CPU_DESCRIPTOR_HANDLE"
}
},
"comments": {
"attached": "// To facilitate transition from single descriptor to allocator callback, you may use those."
},
"conditionals": [
{
"condition": "ifndef",
"expression": "IMGUI_DISABLE_OBSOLETE_FUNCTIONS"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 50
}
},
{
"name": "LegacySingleSrvGpuDescriptor",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "D3D12_GPU_DESCRIPTOR_HANDLE",
"description": {
"kind": "User",
"name": "D3D12_GPU_DESCRIPTOR_HANDLE"
}
},
"conditionals": [
{
"condition": "ifndef",
"expression": "IMGUI_DISABLE_OBSOLETE_FUNCTIONS"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 51
}
}
],
"comments": {
"preceding": [
"// Initialization data, for ImGui_ImplDX12_Init()"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 35
}
},
{
"name": "ImGui_ImplDX12_RenderState",
"original_fully_qualified_name": "ImGui_ImplDX12_RenderState",
"kind": "struct",
"by_value": false,
"forward_declaration": false,
"is_anonymous": false,
"fields": [
{
"name": "Device",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D12Device*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D12Device"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 82
}
},
{
"name": "CommandList",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "ID3D12GraphicsCommandList*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D12GraphicsCommandList"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 83
}
}
],
"comments": {
"preceding": [
"// [BETA] Selected render state data shared with callbacks.",
"// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplDX12_RenderDrawData() call.",
"// (Please open an issue if you feel you need access to more data)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 80
}
}
],
"functions": [
{
"name": "cImGui_ImplDX12_Init",
"original_fully_qualified_name": "ImGui_ImplDX12_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "info",
"type": {
"declaration": "ImGui_ImplDX12_InitInfo*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImGui_ImplDX12_InitInfo"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 58
}
},
{
"name": "cImGui_ImplDX12_Shutdown",
"original_fully_qualified_name": "ImGui_ImplDX12_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 59
}
},
{
"name": "cImGui_ImplDX12_NewFrame",
"original_fully_qualified_name": "ImGui_ImplDX12_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 60
}
},
{
"name": "cImGui_ImplDX12_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplDX12_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "graphics_command_list",
"type": {
"declaration": "ID3D12GraphicsCommandList*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D12GraphicsCommandList"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 61
}
},
{
"name": "cImGui_ImplDX12_InitID3D12DevicePtr",
"original_fully_qualified_name": "ImGui_ImplDX12_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "device",
"type": {
"declaration": "ID3D12Device*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D12Device"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "num_frames_in_flight",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "rtv_format",
"type": {
"declaration": "DXGI_FORMAT",
"description": {
"kind": "User",
"name": "DXGI_FORMAT"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "srv_descriptor_heap",
"type": {
"declaration": "ID3D12DescriptorHeap*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ID3D12DescriptorHeap"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "font_srv_cpu_desc_handle",
"type": {
"declaration": "D3D12_CPU_DESCRIPTOR_HANDLE",
"description": {
"kind": "User",
"name": "D3D12_CPU_DESCRIPTOR_HANDLE"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "font_srv_gpu_desc_handle",
"type": {
"declaration": "D3D12_GPU_DESCRIPTOR_HANDLE",
"description": {
"kind": "User",
"name": "D3D12_GPU_DESCRIPTOR_HANDLE"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Legacy initialization API Obsoleted in 1.91.5",
"// - font_srv_cpu_desc_handle and font_srv_gpu_desc_handle are handles to a single SRV descriptor to use for the internal font texture, they must be in 'srv_descriptor_heap'",
"// - When we introduced the ImGui_ImplDX12_InitInfo struct we also added a 'ID3D12CommandQueue* CommandQueue' field."
]
},
"conditionals": [
{
"condition": "ifndef",
"expression": "IMGUI_DISABLE_OBSOLETE_FUNCTIONS"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 67
}
},
{
"name": "cImGui_ImplDX12_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplDX12_CreateDeviceObjects",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Use if you want to reset your rendering device without losing Dear ImGui state."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 71
}
},
{
"name": "cImGui_ImplDX12_InvalidateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplDX12_InvalidateDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 72
}
},
{
"name": "cImGui_ImplDX12_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplDX12_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx12.h",
"line": 75
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+133
View File
@@ -0,0 +1,133 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_dx9.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_dx9.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplDX9_Init(cimgui::IDirect3DDevice9* device)
{
return ::ImGui_ImplDX9_Init(reinterpret_cast<::IDirect3DDevice9*>(device));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX9_Shutdown(void)
{
::ImGui_ImplDX9_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX9_NewFrame(void)
{
::ImGui_ImplDX9_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX9_RenderDrawData(cimgui::ImDrawData* draw_data)
{
::ImGui_ImplDX9_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplDX9_CreateDeviceObjects(void)
{
return ::ImGui_ImplDX9_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX9_InvalidateDeviceObjects(void)
{
::ImGui_ImplDX9_InvalidateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplDX9_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplDX9_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
+55
View File
@@ -0,0 +1,55 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for DirectX9
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Platform Backend (e.g. Win32)
// Implemented features:
// [X] Renderer: User texture binding. Use 'LPDIRECT3DTEXTURE9' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef!
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: IMGUI_USE_BGRA_PACKED_COLOR support, as this is the optimal color encoding for DirectX9.
// [X] Renderer: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct IDirect3DDevice9 IDirect3DDevice9;
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplDX9_Init(IDirect3DDevice9* device);
CIMGUI_IMPL_API void cImGui_ImplDX9_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplDX9_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplDX9_RenderDrawData(ImDrawData* draw_data);
// Use if you want to reset your rendering device without losing Dear ImGui state.
CIMGUI_IMPL_API bool cImGui_ImplDX9_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplDX9_InvalidateDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplDX9_UpdateTexture(ImTextureData* tex);
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
+288
View File
@@ -0,0 +1,288 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h"
}
}
],
"structs": [
{
"name": "IDirect3DDevice9",
"original_fully_qualified_name": "IDirect3DDevice9",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h",
"line": 23
}
},
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplDX9_Init",
"original_fully_qualified_name": "ImGui_ImplDX9_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "device",
"type": {
"declaration": "IDirect3DDevice9*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "IDirect3DDevice9"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h",
"line": 26
}
},
{
"name": "cImGui_ImplDX9_Shutdown",
"original_fully_qualified_name": "ImGui_ImplDX9_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h",
"line": 27
}
},
{
"name": "cImGui_ImplDX9_NewFrame",
"original_fully_qualified_name": "ImGui_ImplDX9_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h",
"line": 28
}
},
{
"name": "cImGui_ImplDX9_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplDX9_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h",
"line": 29
}
},
{
"name": "cImGui_ImplDX9_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplDX9_CreateDeviceObjects",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Use if you want to reset your rendering device without losing Dear ImGui state."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h",
"line": 32
}
},
{
"name": "cImGui_ImplDX9_InvalidateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplDX9_InvalidateDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h",
"line": 33
}
},
{
"name": "cImGui_ImplDX9_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplDX9_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_dx9.h",
"line": 36
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+202
View File
@@ -0,0 +1,202 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_glfw.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_glfw.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplGlfw_InitForOpenGL(cimgui::GLFWwindow* window, bool install_callbacks)
{
return ::ImGui_ImplGlfw_InitForOpenGL(reinterpret_cast<::GLFWwindow*>(window), install_callbacks);
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplGlfw_InitForVulkan(cimgui::GLFWwindow* window, bool install_callbacks)
{
return ::ImGui_ImplGlfw_InitForVulkan(reinterpret_cast<::GLFWwindow*>(window), install_callbacks);
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplGlfw_InitForOther(cimgui::GLFWwindow* window, bool install_callbacks)
{
return ::ImGui_ImplGlfw_InitForOther(reinterpret_cast<::GLFWwindow*>(window), install_callbacks);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_Shutdown(void)
{
::ImGui_ImplGlfw_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_NewFrame(void)
{
::ImGui_ImplGlfw_NewFrame();
}
#ifdef __EMSCRIPTEN__
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_InstallEmscriptenCallbacks(cimgui::GLFWwindow* window, const char* canvas_selector)
{
::ImGui_ImplGlfw_InstallEmscriptenCallbacks(reinterpret_cast<::GLFWwindow*>(window), canvas_selector);
}
#endif // #ifdef __EMSCRIPTEN__
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_InstallCallbacks(cimgui::GLFWwindow* window)
{
::ImGui_ImplGlfw_InstallCallbacks(reinterpret_cast<::GLFWwindow*>(window));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_RestoreCallbacks(cimgui::GLFWwindow* window)
{
::ImGui_ImplGlfw_RestoreCallbacks(reinterpret_cast<::GLFWwindow*>(window));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_SetCallbacksChainForAllWindows(bool chain_for_all_windows)
{
::ImGui_ImplGlfw_SetCallbacksChainForAllWindows(chain_for_all_windows);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_WindowFocusCallback(cimgui::GLFWwindow* window, int focused)
{
::ImGui_ImplGlfw_WindowFocusCallback(reinterpret_cast<::GLFWwindow*>(window), focused);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_CursorEnterCallback(cimgui::GLFWwindow* window, int entered)
{
::ImGui_ImplGlfw_CursorEnterCallback(reinterpret_cast<::GLFWwindow*>(window), entered);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_CursorPosCallback(cimgui::GLFWwindow* window, double x, double y)
{
::ImGui_ImplGlfw_CursorPosCallback(reinterpret_cast<::GLFWwindow*>(window), x, y);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_MouseButtonCallback(cimgui::GLFWwindow* window, int button, int action, int mods)
{
::ImGui_ImplGlfw_MouseButtonCallback(reinterpret_cast<::GLFWwindow*>(window), button, action, mods);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_ScrollCallback(cimgui::GLFWwindow* window, double xoffset, double yoffset)
{
::ImGui_ImplGlfw_ScrollCallback(reinterpret_cast<::GLFWwindow*>(window), xoffset, yoffset);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_KeyCallback(cimgui::GLFWwindow* window, int key, int scancode, int action, int mods)
{
::ImGui_ImplGlfw_KeyCallback(reinterpret_cast<::GLFWwindow*>(window), key, scancode, action, mods);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_CharCallback(cimgui::GLFWwindow* window, unsigned int c)
{
::ImGui_ImplGlfw_CharCallback(reinterpret_cast<::GLFWwindow*>(window), c);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_MonitorCallback(cimgui::GLFWmonitor* monitor, int event)
{
::ImGui_ImplGlfw_MonitorCallback(reinterpret_cast<::GLFWmonitor*>(monitor), event);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGlfw_Sleep(int milliseconds)
{
::ImGui_ImplGlfw_Sleep(milliseconds);
}
CIMGUI_IMPL_API float cimgui::cImGui_ImplGlfw_GetContentScaleForWindow(cimgui::GLFWwindow* window)
{
return ::ImGui_ImplGlfw_GetContentScaleForWindow(reinterpret_cast<::GLFWwindow*>(window));
}
CIMGUI_IMPL_API float cimgui::cImGui_ImplGlfw_GetContentScaleForMonitor(cimgui::GLFWmonitor* monitor)
{
return ::ImGui_ImplGlfw_GetContentScaleForMonitor(reinterpret_cast<::GLFWmonitor*>(monitor));
}
#endif // #ifndef IMGUI_DISABLE
+88
View File
@@ -0,0 +1,88 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Platform Backend for GLFW
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Renderer (e.g. OpenGL3, Vulkan, WebGPU..)
// (Info: GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
// (Requires: GLFW 3.0+. Prefer GLFW 3.3+/3.4+ for full feature support.)
// Implemented features:
// [X] Platform: Clipboard support.
// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen/Pen (Windows only).
// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy GLFW_KEY_* values are obsolete since 1.87 and not supported since 1.91.5]
// [X] Platform: Gamepad support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'.
// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors) with GLFW 3.1+. Resizing cursors requires GLFW 3.4+! Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
// [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// [X] Multiple Dear ImGui contexts support.
// Missing features or Issues:
// [ ] Platform: Touch events are only correctly identified as Touch on Windows. This create issues with some interactions. GLFW doesn't provide a way to identify touch inputs from mouse inputs, we cannot call io.AddMouseSourceEvent() to identify the source. We provide a Windows-specific workaround.
// [ ] Platform: Missing ImGuiMouseCursor_Wait and ImGuiMouseCursor_Progress cursors.
// [ ] Platform: Multi-viewport: Missing ImGuiBackendFlags_HasParentViewport support. The viewport->ParentViewportID field is ignored, and therefore io.ConfigViewportsNoDefaultParent has no effect either.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct GLFWwindow GLFWwindow;
typedef struct GLFWmonitor GLFWmonitor;
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplGlfw_InitForOpenGL(GLFWwindow* window, bool install_callbacks);
CIMGUI_IMPL_API bool cImGui_ImplGlfw_InitForVulkan(GLFWwindow* window, bool install_callbacks);
CIMGUI_IMPL_API bool cImGui_ImplGlfw_InitForOther(GLFWwindow* window, bool install_callbacks);
CIMGUI_IMPL_API void cImGui_ImplGlfw_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplGlfw_NewFrame(void);
// Emscripten related initialization phase methods (call after ImGui_ImplGlfw_InitForOpenGL)
#ifdef __EMSCRIPTEN__
CIMGUI_IMPL_API void cImGui_ImplGlfw_InstallEmscriptenCallbacks(GLFWwindow* window, const char* canvas_selector);
//static inline void ImGui_ImplGlfw_InstallEmscriptenCanvasResizeCallback(const char* canvas_selector) { ImGui_ImplGlfw_InstallEmscriptenCallbacks(nullptr, canvas_selector); } } // Renamed in 1.91.0
#endif // #ifdef __EMSCRIPTEN__
// GLFW callbacks install
// - When calling Init with 'install_callbacks=true': ImGui_ImplGlfw_InstallCallbacks() is called. GLFW callbacks will be installed for you. They will chain-call user's previously installed callbacks, if any.
// - When calling Init with 'install_callbacks=false': GLFW callbacks won't be installed. You will need to call individual function yourself from your own GLFW callbacks.
CIMGUI_IMPL_API void cImGui_ImplGlfw_InstallCallbacks(GLFWwindow* window);
CIMGUI_IMPL_API void cImGui_ImplGlfw_RestoreCallbacks(GLFWwindow* window);
// GLFW callbacks options:
// - Set 'chain_for_all_windows=true' to enable chaining callbacks for all windows (including secondary viewports created by backends or by user)
CIMGUI_IMPL_API void cImGui_ImplGlfw_SetCallbacksChainForAllWindows(bool chain_for_all_windows);
// GLFW callbacks (individual callbacks to call yourself if you didn't install callbacks)
CIMGUI_IMPL_API void cImGui_ImplGlfw_WindowFocusCallback(GLFWwindow* window, int focused); // Since 1.84
CIMGUI_IMPL_API void cImGui_ImplGlfw_CursorEnterCallback(GLFWwindow* window, int entered); // Since 1.84
CIMGUI_IMPL_API void cImGui_ImplGlfw_CursorPosCallback(GLFWwindow* window, double x, double y); // Since 1.87
CIMGUI_IMPL_API void cImGui_ImplGlfw_MouseButtonCallback(GLFWwindow* window, int button, int action, int mods);
CIMGUI_IMPL_API void cImGui_ImplGlfw_ScrollCallback(GLFWwindow* window, double xoffset, double yoffset);
CIMGUI_IMPL_API void cImGui_ImplGlfw_KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods);
CIMGUI_IMPL_API void cImGui_ImplGlfw_CharCallback(GLFWwindow* window, unsigned int c);
CIMGUI_IMPL_API void cImGui_ImplGlfw_MonitorCallback(GLFWmonitor* monitor, int event);
// GLFW helpers
CIMGUI_IMPL_API void cImGui_ImplGlfw_Sleep(int milliseconds);
CIMGUI_IMPL_API float cImGui_ImplGlfw_GetContentScaleForWindow(GLFWwindow* window);
CIMGUI_IMPL_API float cImGui_ImplGlfw_GetContentScaleForMonitor(GLFWmonitor* monitor);
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+158
View File
@@ -0,0 +1,158 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_glut.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_glut.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplGLUT_Init(void)
{
return ::ImGui_ImplGLUT_Init();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_InstallFuncs(void)
{
::ImGui_ImplGLUT_InstallFuncs();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_Shutdown(void)
{
::ImGui_ImplGLUT_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_NewFrame(void)
{
::ImGui_ImplGLUT_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_ReshapeFunc(int w, int h)
{
::ImGui_ImplGLUT_ReshapeFunc(w, h);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_MotionFunc(int x, int y)
{
::ImGui_ImplGLUT_MotionFunc(x, y);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_MouseFunc(int button, int state, int x, int y)
{
::ImGui_ImplGLUT_MouseFunc(button, state, x, y);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_MouseWheelFunc(int button, int dir, int x, int y)
{
::ImGui_ImplGLUT_MouseWheelFunc(button, dir, x, y);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_KeyboardFunc(unsigned char c, int x, int y)
{
::ImGui_ImplGLUT_KeyboardFunc(c, x, y);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_KeyboardUpFunc(unsigned char c, int x, int y)
{
::ImGui_ImplGLUT_KeyboardUpFunc(c, x, y);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_SpecialFunc(int key, int x, int y)
{
::ImGui_ImplGLUT_SpecialFunc(key, x, y);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplGLUT_SpecialUpFunc(int key, int x, int y)
{
::ImGui_ImplGLUT_SpecialUpFunc(key, x, y);
}
#endif // #ifndef IMGUI_DISABLE
+65
View File
@@ -0,0 +1,65 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Platform Backend for GLUT/FreeGLUT
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Renderer (e.g. OpenGL2)
// !!! GLUT/FreeGLUT IS OBSOLETE PREHISTORIC SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
// !!! If someone or something is teaching you GLUT today, you are being abused. Please show some resistance. !!!
// !!! Nowadays, prefer using GLFW or SDL instead!
// Implemented features:
// [X] Platform: Partial keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy GLUT values are obsolete since 1.87 and not supported since 1.91.5]
// Missing features or Issues:
// [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I
// [ ] Platform: Missing horizontal mouse wheel support.
// [ ] Platform: Missing mouse cursor shape/visibility support.
// [ ] Platform: Missing clipboard support (not supported by Glut).
// [ ] Platform: Missing gamepad support.
// [ ] Platform: Missing multi-viewport support (multiple windows).
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#ifndef IMGUI_DISABLE
#include "dcimgui.h"
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplGLUT_Init(void);
CIMGUI_IMPL_API void cImGui_ImplGLUT_InstallFuncs(void);
CIMGUI_IMPL_API void cImGui_ImplGLUT_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplGLUT_NewFrame(void);
// You can call ImGui_ImplGLUT_InstallFuncs() to get all those functions installed automatically,
// or call them yourself from your own GLUT handlers. We are using the same weird names as GLUT for consistency..
//------------------------------------ GLUT name ---------------------------------------------- Decent Name ---------
CIMGUI_IMPL_API void cImGui_ImplGLUT_ReshapeFunc(int w, int h); // ~ ResizeFunc
CIMGUI_IMPL_API void cImGui_ImplGLUT_MotionFunc(int x, int y); // ~ MouseMoveFunc
CIMGUI_IMPL_API void cImGui_ImplGLUT_MouseFunc(int button, int state, int x, int y); // ~ MouseButtonFunc
CIMGUI_IMPL_API void cImGui_ImplGLUT_MouseWheelFunc(int button, int dir, int x, int y); // ~ MouseWheelFunc
CIMGUI_IMPL_API void cImGui_ImplGLUT_KeyboardFunc(unsigned char c, int x, int y); // ~ CharPressedFunc
CIMGUI_IMPL_API void cImGui_ImplGLUT_KeyboardUpFunc(unsigned char c, int x, int y); // ~ CharReleasedFunc
CIMGUI_IMPL_API void cImGui_ImplGLUT_SpecialFunc(int key, int x, int y); // ~ KeyPressedFunc
CIMGUI_IMPL_API void cImGui_ImplGLUT_SpecialUpFunc(int key, int x, int y); // ~ KeyReleasedFunc
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,677 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h"
}
}
],
"structs": [
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplGLUT_Init",
"original_fully_qualified_name": "ImGui_ImplGLUT_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 31
}
},
{
"name": "cImGui_ImplGLUT_InstallFuncs",
"original_fully_qualified_name": "ImGui_ImplGLUT_InstallFuncs",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 32
}
},
{
"name": "cImGui_ImplGLUT_Shutdown",
"original_fully_qualified_name": "ImGui_ImplGLUT_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 33
}
},
{
"name": "cImGui_ImplGLUT_NewFrame",
"original_fully_qualified_name": "ImGui_ImplGLUT_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 34
}
},
{
"name": "cImGui_ImplGLUT_ReshapeFunc",
"original_fully_qualified_name": "ImGui_ImplGLUT_ReshapeFunc",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "w",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "h",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// You can call ImGui_ImplGLUT_InstallFuncs() to get all those functions installed automatically,",
"// or call them yourself from your own GLUT handlers. We are using the same weird names as GLUT for consistency..",
"//------------------------------------ GLUT name ---------------------------------------------- Decent Name ---------"
],
"attached": "// ~ ResizeFunc"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 39
}
},
{
"name": "cImGui_ImplGLUT_MotionFunc",
"original_fully_qualified_name": "ImGui_ImplGLUT_MotionFunc",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "x",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "y",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// ~ MouseMoveFunc"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 40
}
},
{
"name": "cImGui_ImplGLUT_MouseFunc",
"original_fully_qualified_name": "ImGui_ImplGLUT_MouseFunc",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "button",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "state",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "x",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "y",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// ~ MouseButtonFunc"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 41
}
},
{
"name": "cImGui_ImplGLUT_MouseWheelFunc",
"original_fully_qualified_name": "ImGui_ImplGLUT_MouseWheelFunc",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "button",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "dir",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "x",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "y",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// ~ MouseWheelFunc"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 42
}
},
{
"name": "cImGui_ImplGLUT_KeyboardFunc",
"original_fully_qualified_name": "ImGui_ImplGLUT_KeyboardFunc",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "c",
"type": {
"declaration": "unsigned char",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_char"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "x",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "y",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// ~ CharPressedFunc"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 43
}
},
{
"name": "cImGui_ImplGLUT_KeyboardUpFunc",
"original_fully_qualified_name": "ImGui_ImplGLUT_KeyboardUpFunc",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "c",
"type": {
"declaration": "unsigned char",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_char"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "x",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "y",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// ~ CharReleasedFunc"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 44
}
},
{
"name": "cImGui_ImplGLUT_SpecialFunc",
"original_fully_qualified_name": "ImGui_ImplGLUT_SpecialFunc",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "key",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "x",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "y",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// ~ KeyPressedFunc"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 45
}
},
{
"name": "cImGui_ImplGLUT_SpecialUpFunc",
"original_fully_qualified_name": "ImGui_ImplGLUT_SpecialUpFunc",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "key",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "x",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "y",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// ~ KeyReleasedFunc"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_glut.h",
"line": 46
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+148
View File
@@ -0,0 +1,148 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_null.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_null.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplNull_Init(void)
{
return ::ImGui_ImplNull_Init();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplNull_Shutdown(void)
{
::ImGui_ImplNull_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplNull_NewFrame(void)
{
::ImGui_ImplNull_NewFrame();
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplNullPlatform_Init(void)
{
return ::ImGui_ImplNullPlatform_Init();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplNullPlatform_Shutdown(void)
{
::ImGui_ImplNullPlatform_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplNullPlatform_NewFrame(void)
{
::ImGui_ImplNullPlatform_NewFrame();
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplNullRender_Init(void)
{
return ::ImGui_ImplNullRender_Init();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplNullRender_Shutdown(void)
{
::ImGui_ImplNullRender_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplNullRender_NewFrame(void)
{
::ImGui_ImplNullRender_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplNullRender_RenderDrawData(cimgui::ImDrawData* draw_data)
{
::ImGui_ImplNullRender_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data));
}
#endif // #ifndef IMGUI_DISABLE
+51
View File
@@ -0,0 +1,51 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Null Platform+Renderer Backends
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This is designed if you need to use a blind Dear Imgui context with no input and no output.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
typedef struct ImDrawData_t ImDrawData;
// Null = NullPlatform + NullRender
CIMGUI_IMPL_API bool cImGui_ImplNull_Init(void);
CIMGUI_IMPL_API void cImGui_ImplNull_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplNull_NewFrame(void);
// Null platform only (single screen, fixed timestep, no inputs)
CIMGUI_IMPL_API bool cImGui_ImplNullPlatform_Init(void);
CIMGUI_IMPL_API void cImGui_ImplNullPlatform_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplNullPlatform_NewFrame(void);
// Null renderer only (no output)
CIMGUI_IMPL_API bool cImGui_ImplNullRender_Init(void);
CIMGUI_IMPL_API void cImGui_ImplNullRender_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplNullRender_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplNullRender_RenderDrawData(ImDrawData* draw_data);
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,309 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h"
}
}
],
"structs": [
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplNull_Init",
"original_fully_qualified_name": "ImGui_ImplNull_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Null = NullPlatform + NullRender"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 19
}
},
{
"name": "cImGui_ImplNull_Shutdown",
"original_fully_qualified_name": "ImGui_ImplNull_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 20
}
},
{
"name": "cImGui_ImplNull_NewFrame",
"original_fully_qualified_name": "ImGui_ImplNull_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 21
}
},
{
"name": "cImGui_ImplNullPlatform_Init",
"original_fully_qualified_name": "ImGui_ImplNullPlatform_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Null platform only (single screen, fixed timestep, no inputs)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 24
}
},
{
"name": "cImGui_ImplNullPlatform_Shutdown",
"original_fully_qualified_name": "ImGui_ImplNullPlatform_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 25
}
},
{
"name": "cImGui_ImplNullPlatform_NewFrame",
"original_fully_qualified_name": "ImGui_ImplNullPlatform_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 26
}
},
{
"name": "cImGui_ImplNullRender_Init",
"original_fully_qualified_name": "ImGui_ImplNullRender_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Null renderer only (no output)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 29
}
},
{
"name": "cImGui_ImplNullRender_Shutdown",
"original_fully_qualified_name": "ImGui_ImplNullRender_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 30
}
},
{
"name": "cImGui_ImplNullRender_NewFrame",
"original_fully_qualified_name": "ImGui_ImplNullRender_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 31
}
},
{
"name": "cImGui_ImplNullRender_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplNullRender_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_null.h",
"line": 32
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,133 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_opengl2.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_opengl2.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplOpenGL2_Init(void)
{
return ::ImGui_ImplOpenGL2_Init();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL2_Shutdown(void)
{
::ImGui_ImplOpenGL2_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL2_NewFrame(void)
{
::ImGui_ImplOpenGL2_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL2_RenderDrawData(cimgui::ImDrawData* draw_data)
{
::ImGui_ImplOpenGL2_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplOpenGL2_CreateDeviceObjects(void)
{
return ::ImGui_ImplOpenGL2_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL2_DestroyDeviceObjects(void)
{
::ImGui_ImplOpenGL2_DestroyDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL2_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplOpenGL2_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
@@ -0,0 +1,61 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for OpenGL2 (legacy OpenGL, fixed pipeline)
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..)
// Implemented features:
// [X] Renderer: User texture binding. Use 'GLuint' OpenGL texture as texture identifier. Read the FAQ about ImTextureID/ImTextureRef!
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// Missing features or Issues:
// [ ] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
// **Prefer using the code in imgui_impl_opengl3.cpp**
// This code is mostly provided as a reference to learn how ImGui integration works, because it is shorter to read.
// If your code is using GL3+ context or any semi modern OpenGL calls, using this is likely to make everything more
// complicated, will require your code to reset every single OpenGL attributes to their initial state, and might
// confuse your GPU driver.
// The GL2 code is unable to reset attributes or even call e.g. "glUseProgram(0)" because they don't exist in that API.
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplOpenGL2_Init(void);
CIMGUI_IMPL_API void cImGui_ImplOpenGL2_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplOpenGL2_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data);
// Called by Init/NewFrame/Shutdown
CIMGUI_IMPL_API bool cImGui_ImplOpenGL2_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplOpenGL2_DestroyDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplOpenGL2_UpdateTexture(ImTextureData* tex);
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,257 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl2.h"
}
}
],
"structs": [
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl2.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplOpenGL2_Init",
"original_fully_qualified_name": "ImGui_ImplOpenGL2_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl2.h",
"line": 32
}
},
{
"name": "cImGui_ImplOpenGL2_Shutdown",
"original_fully_qualified_name": "ImGui_ImplOpenGL2_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl2.h",
"line": 33
}
},
{
"name": "cImGui_ImplOpenGL2_NewFrame",
"original_fully_qualified_name": "ImGui_ImplOpenGL2_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl2.h",
"line": 34
}
},
{
"name": "cImGui_ImplOpenGL2_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplOpenGL2_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl2.h",
"line": 35
}
},
{
"name": "cImGui_ImplOpenGL2_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplOpenGL2_CreateDeviceObjects",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Called by Init/NewFrame/Shutdown"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl2.h",
"line": 38
}
},
{
"name": "cImGui_ImplOpenGL2_DestroyDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplOpenGL2_DestroyDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl2.h",
"line": 39
}
},
{
"name": "cImGui_ImplOpenGL2_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplOpenGL2_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl2.h",
"line": 42
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,138 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_opengl3.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_opengl3.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplOpenGL3_Init(void)
{
return ::ImGui_ImplOpenGL3_Init();
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplOpenGL3_InitEx(const char* glsl_version)
{
return ::ImGui_ImplOpenGL3_Init(glsl_version);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL3_Shutdown(void)
{
::ImGui_ImplOpenGL3_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL3_NewFrame(void)
{
::ImGui_ImplOpenGL3_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL3_RenderDrawData(cimgui::ImDrawData* draw_data)
{
::ImGui_ImplOpenGL3_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplOpenGL3_CreateDeviceObjects(void)
{
return ::ImGui_ImplOpenGL3_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL3_DestroyDeviceObjects(void)
{
::ImGui_ImplOpenGL3_DestroyDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplOpenGL3_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplOpenGL3_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
@@ -0,0 +1,87 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for modern OpenGL with shaders / programmatic pipeline
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// - Desktop GL: 2.x 3.x 4.x
// - Embedded GL: ES 2.0 (WebGL 1.0), ES 3.0 (WebGL 2.0)
// This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..)
// Implemented features:
// [X] Renderer: User texture binding. Use 'GLuint' OpenGL texture as texture identifier. Read the FAQ about ImTextureID/ImTextureRef!
// [x] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset) [Desktop OpenGL only!]
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// About WebGL/ES:
// - You need to '#define IMGUI_IMPL_OPENGL_ES2' or '#define IMGUI_IMPL_OPENGL_ES3' to use WebGL or OpenGL ES.
// - This is done automatically on iOS, Android and Emscripten targets.
// - For other targets, the define needs to be visible from the imgui_impl_opengl3.cpp compilation unit. If unsure, define globally or in imconfig.h.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
// About GLSL version:
// The 'glsl_version' initialization parameter should be nullptr (default) or a "#version XXX" string.
// On computer platform the GLSL version default to "#version 130". On OpenGL ES 3 platform it defaults to "#version 300 es"
// Only override if your GL version doesn't handle this GLSL version. See GLSL version table at the top of imgui_impl_opengl3.cpp.
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplOpenGL3_Init(void); // Implied glsl_version = nullptr
CIMGUI_IMPL_API bool cImGui_ImplOpenGL3_InitEx(const char* glsl_version /* = nullptr */);
CIMGUI_IMPL_API void cImGui_ImplOpenGL3_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplOpenGL3_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data);
// (Optional) Called by Init/NewFrame/Shutdown
CIMGUI_IMPL_API bool cImGui_ImplOpenGL3_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplOpenGL3_DestroyDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplOpenGL3_UpdateTexture(ImTextureData* tex);
// Configuration flags to add in your imconfig file:
//#define IMGUI_IMPL_OPENGL_ES2 // Enable ES 2 (Auto-detected on Emscripten)
//#define IMGUI_IMPL_OPENGL_ES3 // Enable ES 3 (Auto-detected on iOS/Android)
// You can explicitly select GLES2 or GLES3 API by using one of the '#define IMGUI_IMPL_OPENGL_LOADER_XXX' in imconfig.h or compiler command-line.
#if !defined(IMGUI_IMPL_OPENGL_ES2)\
&&!defined(IMGUI_IMPL_OPENGL_ES3)
// Try to detect GLES on matching platforms
#if defined(__APPLE__)
#include <TargetConditionals.h>
#endif // #if defined(__APPLE__)
#if (defined(__APPLE__)&&(TARGET_OS_IOS || TARGET_OS_TV))||(defined(__ANDROID__))
#define IMGUI_IMPL_OPENGL_ES3 // iOS, Android -> GL ES 3, "#version 300 es"
#else
#if defined(__EMSCRIPTEN__)|| defined(__amigaos4__)
#define IMGUI_IMPL_OPENGL_ES2 // Emscripten -> GL ES 2, "#version 100"
#else
// Otherwise imgui_impl_opengl3_loader.h will be used.
#endif // #if defined(__EMSCRIPTEN__)|| defined(__amigaos4__)
#endif // #if (defined(__APPLE__)&&(TARGET_OS_IOS || TARGET_OS_TV))||(defined(__ANDROID__))
#endif // #if !defined(IMGUI_IMPL_OPENGL_ES2) &&!defined(IMGUI_IMPL_OPENGL_ES3)
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,349 @@
{
"defines": [
{
"name": "IMGUI_IMPL_OPENGL_ES3",
"comments": {
"attached": "// iOS, Android -> GL ES 3, \"#version 300 es\""
},
"conditionals": [
{
"condition": "if",
"expression": "!defined(IMGUI_IMPL_OPENGL_ES2)\\\n &&!defined(IMGUI_IMPL_OPENGL_ES3)"
},
{
"condition": "if",
"expression": "(defined(__APPLE__)&&(TARGET_OS_IOS || TARGET_OS_TV))||(defined(__ANDROID__))"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 60
}
},
{
"name": "IMGUI_IMPL_OPENGL_ES2",
"comments": {
"attached": "// Emscripten -> GL ES 2, \"#version 100\""
},
"conditionals": [
{
"condition": "if",
"expression": "!defined(IMGUI_IMPL_OPENGL_ES2)\\\n &&!defined(IMGUI_IMPL_OPENGL_ES3)"
},
{
"condition": "ifnot",
"expression": "(defined(__APPLE__)&&(TARGET_OS_IOS || TARGET_OS_TV))||(defined(__ANDROID__))"
},
{
"condition": "if",
"expression": "defined(__EMSCRIPTEN__)|| defined(__amigaos4__)"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 62
}
}
],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h"
}
}
],
"structs": [
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplOpenGL3_Init",
"original_fully_qualified_name": "ImGui_ImplOpenGL3_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": true,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
],
"attached": "// Implied glsl_version = nullptr"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 35
}
},
{
"name": "cImGui_ImplOpenGL3_InitEx",
"original_fully_qualified_name": "ImGui_ImplOpenGL3_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "glsl_version",
"type": {
"declaration": "const char*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Builtin",
"builtin_type": "char",
"storage_classes": [
"const"
]
}
}
},
"is_array": false,
"is_varargs": false,
"default_value": "nullptr",
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 35
}
},
{
"name": "cImGui_ImplOpenGL3_Shutdown",
"original_fully_qualified_name": "ImGui_ImplOpenGL3_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 36
}
},
{
"name": "cImGui_ImplOpenGL3_NewFrame",
"original_fully_qualified_name": "ImGui_ImplOpenGL3_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 37
}
},
{
"name": "cImGui_ImplOpenGL3_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplOpenGL3_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 38
}
},
{
"name": "cImGui_ImplOpenGL3_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplOpenGL3_CreateDeviceObjects",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Optional) Called by Init/NewFrame/Shutdown"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 41
}
},
{
"name": "cImGui_ImplOpenGL3_DestroyDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplOpenGL3_DestroyDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 42
}
},
{
"name": "cImGui_ImplOpenGL3_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplOpenGL3_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_opengl3.h",
"line": 45
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+168
View File
@@ -0,0 +1,168 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_sdl2.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_sdl2.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL2_InitForOpenGL(cimgui::SDL_Window* window, void* sdl_gl_context)
{
return ::ImGui_ImplSDL2_InitForOpenGL(reinterpret_cast<::SDL_Window*>(window), sdl_gl_context);
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL2_InitForVulkan(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL2_InitForVulkan(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL2_InitForD3D(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL2_InitForD3D(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL2_InitForMetal(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL2_InitForMetal(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL2_InitForSDLRenderer(cimgui::SDL_Window* window, cimgui::SDL_Renderer* renderer)
{
return ::ImGui_ImplSDL2_InitForSDLRenderer(reinterpret_cast<::SDL_Window*>(window), reinterpret_cast<::SDL_Renderer*>(renderer));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL2_InitForOther(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL2_InitForOther(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL2_Shutdown(void)
{
::ImGui_ImplSDL2_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL2_NewFrame(void)
{
::ImGui_ImplSDL2_NewFrame();
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL2_ProcessEvent(const SDL_Event* event)
{
return ::ImGui_ImplSDL2_ProcessEvent(event);
}
CIMGUI_IMPL_API float cimgui::cImGui_ImplSDL2_GetContentScaleForWindow(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL2_GetContentScaleForWindow(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API float cimgui::cImGui_ImplSDL2_GetContentScaleForDisplay(int display_index)
{
return ::ImGui_ImplSDL2_GetContentScaleForDisplay(display_index);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL2_SetGamepadMode(cimgui::ImGui_ImplSDL2_GamepadMode mode)
{
::ImGui_ImplSDL2_SetGamepadMode(static_cast<::ImGui_ImplSDL2_GamepadMode>(mode));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL2_SetGamepadModeEx(cimgui::ImGui_ImplSDL2_GamepadMode mode, struct cimgui::_SDL_GameController** manual_gamepads_array, int manual_gamepads_count)
{
::ImGui_ImplSDL2_SetGamepadMode(static_cast<::ImGui_ImplSDL2_GamepadMode>(mode), reinterpret_cast<struct ::_SDL_GameController**>(manual_gamepads_array), manual_gamepads_count);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL2_SetMouseCaptureMode(cimgui::ImGui_ImplSDL2_MouseCaptureMode mode)
{
::ImGui_ImplSDL2_SetMouseCaptureMode(static_cast<::ImGui_ImplSDL2_MouseCaptureMode>(mode));
}
#endif // #ifndef IMGUI_DISABLE
+89
View File
@@ -0,0 +1,89 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Platform Backend for SDL2
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
// (Info: SDL2 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.)
// Implemented features:
// [X] Platform: Clipboard support.
// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen.
// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy SDL_SCANCODE_* values are obsolete since 1.87 and not supported since 1.91.5]
// [X] Platform: Gamepad support.
// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
// [X] Platform: Basic IME support. App needs to call 'SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");' before SDL_CreateWindow()!.
// [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// Missing features or Issues:
// [ ] Platform: Multi-viewport: Minimized windows seems to break mouse wheel events (at least under Windows).
// [ ] Platform: Multi-viewport: Missing ImGuiBackendFlags_HasParentViewport support. The viewport->ParentViewportID field is ignored, and therefore io.ConfigViewportsNoDefaultParent has no effect either.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct SDL_Window SDL_Window;
typedef struct SDL_Renderer SDL_Renderer;
typedef struct _SDL_GameController _SDL_GameController;
typedef union SDL_Event SDL_Event;
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplSDL2_InitForOpenGL(SDL_Window* window, void* sdl_gl_context);
CIMGUI_IMPL_API bool cImGui_ImplSDL2_InitForVulkan(SDL_Window* window);
CIMGUI_IMPL_API bool cImGui_ImplSDL2_InitForD3D(SDL_Window* window);
CIMGUI_IMPL_API bool cImGui_ImplSDL2_InitForMetal(SDL_Window* window);
CIMGUI_IMPL_API bool cImGui_ImplSDL2_InitForSDLRenderer(SDL_Window* window, SDL_Renderer* renderer);
CIMGUI_IMPL_API bool cImGui_ImplSDL2_InitForOther(SDL_Window* window);
CIMGUI_IMPL_API void cImGui_ImplSDL2_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplSDL2_NewFrame(void);
CIMGUI_IMPL_API bool cImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);
// DPI-related helpers (optional)
CIMGUI_IMPL_API float cImGui_ImplSDL2_GetContentScaleForWindow(SDL_Window* window);
CIMGUI_IMPL_API float cImGui_ImplSDL2_GetContentScaleForDisplay(int display_index);
// Gamepad selection automatically starts in AutoFirst mode, picking first available SDL_Gamepad. You may override this.
// When using manual mode, caller is responsible for opening/closing gamepad.
typedef enum
{
ImGui_ImplSDL2_GamepadMode_AutoFirst,
ImGui_ImplSDL2_GamepadMode_AutoAll,
ImGui_ImplSDL2_GamepadMode_Manual,
} ImGui_ImplSDL2_GamepadMode;
CIMGUI_IMPL_API void cImGui_ImplSDL2_SetGamepadMode(ImGui_ImplSDL2_GamepadMode mode); // Implied manual_gamepads_array = nullptr, manual_gamepads_count = -1
CIMGUI_IMPL_API void cImGui_ImplSDL2_SetGamepadModeEx(ImGui_ImplSDL2_GamepadMode mode, struct _SDL_GameController** manual_gamepads_array /* = nullptr */, int manual_gamepads_count /* = -1 */);
// (Advanced, for X11 users) Override Mouse Capture mode. Mouse capture allows receiving updated mouse position after clicking inside our window and dragging outside it.
// Having this 'Enabled' is in theory always better. But, on X11 if you crash/break to debugger while capture is active you may temporarily lose access to your mouse.
// The best solution is to setup your debugger to automatically release capture, e.g. 'setxkbmap -option grab:break_actions && xdotool key XF86Ungrab' or via a GDB script. See #3650.
// But you may independently decide on X11, when a debugger is attached, to set this value to ImGui_ImplSDL2_MouseCaptureMode_Disabled.
typedef enum
{
ImGui_ImplSDL2_MouseCaptureMode_Enabled,
ImGui_ImplSDL2_MouseCaptureMode_EnabledAfterDrag,
ImGui_ImplSDL2_MouseCaptureMode_Disabled,
} ImGui_ImplSDL2_MouseCaptureMode;
CIMGUI_IMPL_API void cImGui_ImplSDL2_SetMouseCaptureMode(ImGui_ImplSDL2_MouseCaptureMode mode);
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,798 @@
{
"defines": [],
"enums": [
{
"name": "ImGui_ImplSDL2_GamepadMode",
"original_fully_qualified_name": "ImGui_ImplSDL2_GamepadMode",
"is_flags_enum": false,
"elements": [
{
"name": "ImGui_ImplSDL2_GamepadMode_AutoFirst",
"value": 0,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 51
}
},
{
"name": "ImGui_ImplSDL2_GamepadMode_AutoAll",
"value": 1,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 51
}
},
{
"name": "ImGui_ImplSDL2_GamepadMode_Manual",
"value": 2,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 51
}
}
],
"comments": {
"preceding": [
"// Gamepad selection automatically starts in AutoFirst mode, picking first available SDL_Gamepad. You may override this.",
"// When using manual mode, caller is responsible for opening/closing gamepad."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 51
}
},
{
"name": "ImGui_ImplSDL2_MouseCaptureMode",
"original_fully_qualified_name": "ImGui_ImplSDL2_MouseCaptureMode",
"is_flags_enum": false,
"elements": [
{
"name": "ImGui_ImplSDL2_MouseCaptureMode_Enabled",
"value": 0,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 58
}
},
{
"name": "ImGui_ImplSDL2_MouseCaptureMode_EnabledAfterDrag",
"value": 1,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 58
}
},
{
"name": "ImGui_ImplSDL2_MouseCaptureMode_Disabled",
"value": 2,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 58
}
}
],
"comments": {
"preceding": [
"// (Advanced, for X11 users) Override Mouse Capture mode. Mouse capture allows receiving updated mouse position after clicking inside our window and dragging outside it.",
"// Having this 'Enabled' is in theory always better. But, on X11 if you crash/break to debugger while capture is active you may temporarily lose access to your mouse.",
"// The best solution is to setup your debugger to automatically release capture, e.g. 'setxkbmap -option grab:break_actions && xdotool key XF86Ungrab' or via a GDB script. See #3650.",
"// But you may independently decide on X11, when a debugger is attached, to set this value to ImGui_ImplSDL2_MouseCaptureMode_Disabled."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 58
}
}
],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h"
}
},
{
"name": "SDL_Event",
"type": {
"declaration": "SDL_Event",
"description": {
"kind": "User",
"name": "SDL_Event"
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h"
}
}
],
"structs": [
{
"name": "SDL_Window",
"original_fully_qualified_name": "SDL_Window",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 29
}
},
{
"name": "SDL_Renderer",
"original_fully_qualified_name": "SDL_Renderer",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 30
}
},
{
"name": "_SDL_GameController",
"original_fully_qualified_name": "_SDL_GameController",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 31
}
},
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplSDL2_InitForOpenGL",
"original_fully_qualified_name": "ImGui_ImplSDL2_InitForOpenGL",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "sdl_gl_context",
"type": {
"declaration": "void*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Builtin",
"builtin_type": "void"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 35
}
},
{
"name": "cImGui_ImplSDL2_InitForVulkan",
"original_fully_qualified_name": "ImGui_ImplSDL2_InitForVulkan",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 36
}
},
{
"name": "cImGui_ImplSDL2_InitForD3D",
"original_fully_qualified_name": "ImGui_ImplSDL2_InitForD3D",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 37
}
},
{
"name": "cImGui_ImplSDL2_InitForMetal",
"original_fully_qualified_name": "ImGui_ImplSDL2_InitForMetal",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 38
}
},
{
"name": "cImGui_ImplSDL2_InitForSDLRenderer",
"original_fully_qualified_name": "ImGui_ImplSDL2_InitForSDLRenderer",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "renderer",
"type": {
"declaration": "SDL_Renderer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Renderer"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 39
}
},
{
"name": "cImGui_ImplSDL2_InitForOther",
"original_fully_qualified_name": "ImGui_ImplSDL2_InitForOther",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 40
}
},
{
"name": "cImGui_ImplSDL2_Shutdown",
"original_fully_qualified_name": "ImGui_ImplSDL2_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 41
}
},
{
"name": "cImGui_ImplSDL2_NewFrame",
"original_fully_qualified_name": "ImGui_ImplSDL2_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 42
}
},
{
"name": "cImGui_ImplSDL2_ProcessEvent",
"original_fully_qualified_name": "ImGui_ImplSDL2_ProcessEvent",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "event",
"type": {
"declaration": "const SDL_Event*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Event",
"storage_classes": [
"const"
]
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 43
}
},
{
"name": "cImGui_ImplSDL2_GetContentScaleForWindow",
"original_fully_qualified_name": "ImGui_ImplSDL2_GetContentScaleForWindow",
"return_type": {
"declaration": "float",
"description": {
"kind": "Builtin",
"builtin_type": "float"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// DPI-related helpers (optional)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 46
}
},
{
"name": "cImGui_ImplSDL2_GetContentScaleForDisplay",
"original_fully_qualified_name": "ImGui_ImplSDL2_GetContentScaleForDisplay",
"return_type": {
"declaration": "float",
"description": {
"kind": "Builtin",
"builtin_type": "float"
}
},
"arguments": [
{
"name": "display_index",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 47
}
},
{
"name": "cImGui_ImplSDL2_SetGamepadMode",
"original_fully_qualified_name": "ImGui_ImplSDL2_SetGamepadMode",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "mode",
"type": {
"declaration": "ImGui_ImplSDL2_GamepadMode",
"description": {
"kind": "User",
"name": "ImGui_ImplSDL2_GamepadMode"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": true,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// Implied manual_gamepads_array = nullptr, manual_gamepads_count = -1"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 52
}
},
{
"name": "cImGui_ImplSDL2_SetGamepadModeEx",
"original_fully_qualified_name": "ImGui_ImplSDL2_SetGamepadMode",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "mode",
"type": {
"declaration": "ImGui_ImplSDL2_GamepadMode",
"description": {
"kind": "User",
"name": "ImGui_ImplSDL2_GamepadMode"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "manual_gamepads_array",
"type": {
"declaration": "struct _SDL_GameController**",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "_SDL_GameController"
}
}
}
},
"is_array": false,
"is_varargs": false,
"default_value": "nullptr",
"is_instance_pointer": false
},
{
"name": "manual_gamepads_count",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"default_value": "-1",
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 52
}
},
{
"name": "cImGui_ImplSDL2_SetMouseCaptureMode",
"original_fully_qualified_name": "ImGui_ImplSDL2_SetMouseCaptureMode",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "mode",
"type": {
"declaration": "ImGui_ImplSDL2_MouseCaptureMode",
"description": {
"kind": "User",
"name": "ImGui_ImplSDL2_MouseCaptureMode"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl2.h",
"line": 59
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+163
View File
@@ -0,0 +1,163 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_sdl3.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_sdl3.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL3_InitForOpenGL(cimgui::SDL_Window* window, void* sdl_gl_context)
{
return ::ImGui_ImplSDL3_InitForOpenGL(reinterpret_cast<::SDL_Window*>(window), sdl_gl_context);
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL3_InitForVulkan(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL3_InitForVulkan(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL3_InitForD3D(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL3_InitForD3D(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL3_InitForMetal(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL3_InitForMetal(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL3_InitForSDLRenderer(cimgui::SDL_Window* window, cimgui::SDL_Renderer* renderer)
{
return ::ImGui_ImplSDL3_InitForSDLRenderer(reinterpret_cast<::SDL_Window*>(window), reinterpret_cast<::SDL_Renderer*>(renderer));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL3_InitForSDLGPU(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL3_InitForSDLGPU(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL3_InitForOther(cimgui::SDL_Window* window)
{
return ::ImGui_ImplSDL3_InitForOther(reinterpret_cast<::SDL_Window*>(window));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL3_Shutdown(void)
{
::ImGui_ImplSDL3_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL3_NewFrame(void)
{
::ImGui_ImplSDL3_NewFrame();
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDL3_ProcessEvent(const SDL_Event* event)
{
return ::ImGui_ImplSDL3_ProcessEvent(event);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL3_SetGamepadMode(cimgui::ImGui_ImplSDL3_GamepadMode mode)
{
::ImGui_ImplSDL3_SetGamepadMode(static_cast<::ImGui_ImplSDL3_GamepadMode>(mode));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL3_SetGamepadModeEx(cimgui::ImGui_ImplSDL3_GamepadMode mode, cimgui::SDL_Gamepad** manual_gamepads_array, int manual_gamepads_count)
{
::ImGui_ImplSDL3_SetGamepadMode(static_cast<::ImGui_ImplSDL3_GamepadMode>(mode), reinterpret_cast<::SDL_Gamepad**>(manual_gamepads_array), manual_gamepads_count);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDL3_SetMouseCaptureMode(cimgui::ImGui_ImplSDL3_MouseCaptureMode mode)
{
::ImGui_ImplSDL3_SetMouseCaptureMode(static_cast<::ImGui_ImplSDL3_MouseCaptureMode>(mode));
}
#endif // #ifndef IMGUI_DISABLE
+85
View File
@@ -0,0 +1,85 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Platform Backend for SDL3
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Renderer (e.g. SDL_GPU, DirectX11, OpenGL3, Vulkan..)
// (Info: SDL3 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.)
// Implemented features:
// [X] Platform: Clipboard support.
// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen.
// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy SDL_SCANCODE_* values are obsolete since 1.87 and not supported since 1.91.5]
// [X] Platform: Gamepad support.
// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
// [x] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable' -> the OS animation effect when window gets created/destroyed is problematic. SDL2 backend doesn't have issue.
// Missing features or Issues:
// [ ] Platform: Multi-viewport: Minimized windows seems to break mouse wheel events (at least under Windows).
// [x] Platform: IME support. Position somehow broken in SDL3 + app needs to call 'SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");' before SDL_CreateWindow()!.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct SDL_Window SDL_Window;
typedef struct SDL_Renderer SDL_Renderer;
typedef struct SDL_Gamepad SDL_Gamepad;
typedef union SDL_Event SDL_Event;
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplSDL3_InitForOpenGL(SDL_Window* window, void* sdl_gl_context);
CIMGUI_IMPL_API bool cImGui_ImplSDL3_InitForVulkan(SDL_Window* window);
CIMGUI_IMPL_API bool cImGui_ImplSDL3_InitForD3D(SDL_Window* window);
CIMGUI_IMPL_API bool cImGui_ImplSDL3_InitForMetal(SDL_Window* window);
CIMGUI_IMPL_API bool cImGui_ImplSDL3_InitForSDLRenderer(SDL_Window* window, SDL_Renderer* renderer);
CIMGUI_IMPL_API bool cImGui_ImplSDL3_InitForSDLGPU(SDL_Window* window);
CIMGUI_IMPL_API bool cImGui_ImplSDL3_InitForOther(SDL_Window* window);
CIMGUI_IMPL_API void cImGui_ImplSDL3_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplSDL3_NewFrame(void);
CIMGUI_IMPL_API bool cImGui_ImplSDL3_ProcessEvent(const SDL_Event* event);
// Gamepad selection automatically starts in AutoFirst mode, picking first available SDL_Gamepad. You may override this.
// When using manual mode, caller is responsible for opening/closing gamepad.
typedef enum
{
ImGui_ImplSDL3_GamepadMode_AutoFirst,
ImGui_ImplSDL3_GamepadMode_AutoAll,
ImGui_ImplSDL3_GamepadMode_Manual,
} ImGui_ImplSDL3_GamepadMode;
CIMGUI_IMPL_API void cImGui_ImplSDL3_SetGamepadMode(ImGui_ImplSDL3_GamepadMode mode); // Implied manual_gamepads_array = nullptr, manual_gamepads_count = -1
CIMGUI_IMPL_API void cImGui_ImplSDL3_SetGamepadModeEx(ImGui_ImplSDL3_GamepadMode mode, SDL_Gamepad** manual_gamepads_array /* = nullptr */, int manual_gamepads_count /* = -1 */);
// (Advanced, for X11 users) Override Mouse Capture mode. Mouse capture allows receiving updated mouse position after clicking inside our window and dragging outside it.
// Having this 'Enabled' is in theory always better. But, on X11 if you crash/break to debugger while capture is active you may temporarily lose access to your mouse.
// The best solution is to setup your debugger to automatically release capture, e.g. 'setxkbmap -option grab:break_actions && xdotool key XF86Ungrab' or via a GDB script. See #3650.
// But you may independently decide on X11, when a debugger is attached, to set this value to ImGui_ImplSDL3_MouseCaptureMode_Disabled.
typedef enum
{
ImGui_ImplSDL3_MouseCaptureMode_Enabled,
ImGui_ImplSDL3_MouseCaptureMode_EnabledAfterDrag,
ImGui_ImplSDL3_MouseCaptureMode_Disabled,
} ImGui_ImplSDL3_MouseCaptureMode;
CIMGUI_IMPL_API void cImGui_ImplSDL3_SetMouseCaptureMode(ImGui_ImplSDL3_MouseCaptureMode mode);
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,756 @@
{
"defines": [],
"enums": [
{
"name": "ImGui_ImplSDL3_GamepadMode",
"original_fully_qualified_name": "ImGui_ImplSDL3_GamepadMode",
"is_flags_enum": false,
"elements": [
{
"name": "ImGui_ImplSDL3_GamepadMode_AutoFirst",
"value": 0,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 47
}
},
{
"name": "ImGui_ImplSDL3_GamepadMode_AutoAll",
"value": 1,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 47
}
},
{
"name": "ImGui_ImplSDL3_GamepadMode_Manual",
"value": 2,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 47
}
}
],
"comments": {
"preceding": [
"// Gamepad selection automatically starts in AutoFirst mode, picking first available SDL_Gamepad. You may override this.",
"// When using manual mode, caller is responsible for opening/closing gamepad."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 47
}
},
{
"name": "ImGui_ImplSDL3_MouseCaptureMode",
"original_fully_qualified_name": "ImGui_ImplSDL3_MouseCaptureMode",
"is_flags_enum": false,
"elements": [
{
"name": "ImGui_ImplSDL3_MouseCaptureMode_Enabled",
"value": 0,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 54
}
},
{
"name": "ImGui_ImplSDL3_MouseCaptureMode_EnabledAfterDrag",
"value": 1,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 54
}
},
{
"name": "ImGui_ImplSDL3_MouseCaptureMode_Disabled",
"value": 2,
"is_count": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 54
}
}
],
"comments": {
"preceding": [
"// (Advanced, for X11 users) Override Mouse Capture mode. Mouse capture allows receiving updated mouse position after clicking inside our window and dragging outside it.",
"// Having this 'Enabled' is in theory always better. But, on X11 if you crash/break to debugger while capture is active you may temporarily lose access to your mouse.",
"// The best solution is to setup your debugger to automatically release capture, e.g. 'setxkbmap -option grab:break_actions && xdotool key XF86Ungrab' or via a GDB script. See #3650.",
"// But you may independently decide on X11, when a debugger is attached, to set this value to ImGui_ImplSDL3_MouseCaptureMode_Disabled."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 54
}
}
],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h"
}
},
{
"name": "SDL_Event",
"type": {
"declaration": "SDL_Event",
"description": {
"kind": "User",
"name": "SDL_Event"
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h"
}
}
],
"structs": [
{
"name": "SDL_Window",
"original_fully_qualified_name": "SDL_Window",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 28
}
},
{
"name": "SDL_Renderer",
"original_fully_qualified_name": "SDL_Renderer",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 29
}
},
{
"name": "SDL_Gamepad",
"original_fully_qualified_name": "SDL_Gamepad",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 30
}
},
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplSDL3_InitForOpenGL",
"original_fully_qualified_name": "ImGui_ImplSDL3_InitForOpenGL",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "sdl_gl_context",
"type": {
"declaration": "void*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Builtin",
"builtin_type": "void"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 34
}
},
{
"name": "cImGui_ImplSDL3_InitForVulkan",
"original_fully_qualified_name": "ImGui_ImplSDL3_InitForVulkan",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 35
}
},
{
"name": "cImGui_ImplSDL3_InitForD3D",
"original_fully_qualified_name": "ImGui_ImplSDL3_InitForD3D",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 36
}
},
{
"name": "cImGui_ImplSDL3_InitForMetal",
"original_fully_qualified_name": "ImGui_ImplSDL3_InitForMetal",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 37
}
},
{
"name": "cImGui_ImplSDL3_InitForSDLRenderer",
"original_fully_qualified_name": "ImGui_ImplSDL3_InitForSDLRenderer",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "renderer",
"type": {
"declaration": "SDL_Renderer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Renderer"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 38
}
},
{
"name": "cImGui_ImplSDL3_InitForSDLGPU",
"original_fully_qualified_name": "ImGui_ImplSDL3_InitForSDLGPU",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 39
}
},
{
"name": "cImGui_ImplSDL3_InitForOther",
"original_fully_qualified_name": "ImGui_ImplSDL3_InitForOther",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "window",
"type": {
"declaration": "SDL_Window*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Window"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 40
}
},
{
"name": "cImGui_ImplSDL3_Shutdown",
"original_fully_qualified_name": "ImGui_ImplSDL3_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 41
}
},
{
"name": "cImGui_ImplSDL3_NewFrame",
"original_fully_qualified_name": "ImGui_ImplSDL3_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 42
}
},
{
"name": "cImGui_ImplSDL3_ProcessEvent",
"original_fully_qualified_name": "ImGui_ImplSDL3_ProcessEvent",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "event",
"type": {
"declaration": "const SDL_Event*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Event",
"storage_classes": [
"const"
]
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 43
}
},
{
"name": "cImGui_ImplSDL3_SetGamepadMode",
"original_fully_qualified_name": "ImGui_ImplSDL3_SetGamepadMode",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "mode",
"type": {
"declaration": "ImGui_ImplSDL3_GamepadMode",
"description": {
"kind": "User",
"name": "ImGui_ImplSDL3_GamepadMode"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": true,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// Implied manual_gamepads_array = nullptr, manual_gamepads_count = -1"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 48
}
},
{
"name": "cImGui_ImplSDL3_SetGamepadModeEx",
"original_fully_qualified_name": "ImGui_ImplSDL3_SetGamepadMode",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "mode",
"type": {
"declaration": "ImGui_ImplSDL3_GamepadMode",
"description": {
"kind": "User",
"name": "ImGui_ImplSDL3_GamepadMode"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "manual_gamepads_array",
"type": {
"declaration": "SDL_Gamepad**",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Gamepad"
}
}
}
},
"is_array": false,
"is_varargs": false,
"default_value": "nullptr",
"is_instance_pointer": false
},
{
"name": "manual_gamepads_count",
"type": {
"declaration": "int",
"description": {
"kind": "Builtin",
"builtin_type": "int"
}
},
"is_array": false,
"is_varargs": false,
"default_value": "-1",
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 48
}
},
{
"name": "cImGui_ImplSDL3_SetMouseCaptureMode",
"original_fully_qualified_name": "ImGui_ImplSDL3_SetMouseCaptureMode",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "mode",
"type": {
"declaration": "ImGui_ImplSDL3_MouseCaptureMode",
"description": {
"kind": "User",
"name": "ImGui_ImplSDL3_MouseCaptureMode"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdl3.h",
"line": 55
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,144 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_sdlgpu3.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_sdlgpu3.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDLGPU3_Init(cimgui::ImGui_ImplSDLGPU3_InitInfo* info)
{
return ::ImGui_ImplSDLGPU3_Init(reinterpret_cast<::ImGui_ImplSDLGPU3_InitInfo*>(info));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLGPU3_Shutdown(void)
{
::ImGui_ImplSDLGPU3_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLGPU3_NewFrame(void)
{
::ImGui_ImplSDLGPU3_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLGPU3_PrepareDrawData(cimgui::ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer)
{
::ImGui_ImplSDLGPU3_PrepareDrawData(reinterpret_cast<::ImDrawData*>(draw_data), command_buffer);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLGPU3_RenderDrawData(cimgui::ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer, SDL_GPURenderPass* render_pass)
{
::ImGui_ImplSDLGPU3_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), command_buffer, render_pass);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLGPU3_RenderDrawDataEx(cimgui::ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer, SDL_GPURenderPass* render_pass, SDL_GPUGraphicsPipeline* pipeline)
{
::ImGui_ImplSDLGPU3_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), command_buffer, render_pass, pipeline);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLGPU3_CreateDeviceObjects(void)
{
::ImGui_ImplSDLGPU3_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLGPU3_DestroyDeviceObjects(void)
{
::ImGui_ImplSDLGPU3_DestroyDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLGPU3_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplSDLGPU3_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
@@ -0,0 +1,86 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for SDL_GPU
// Auto-generated forward declarations for C header
typedef struct ImGui_ImplSDLGPU3_InitInfo_t ImGui_ImplSDLGPU3_InitInfo;
typedef struct ImGui_ImplSDLGPU3_RenderState_t ImGui_ImplSDLGPU3_RenderState;
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with the SDL3 Platform Backend
// Implemented features:
// [X] Renderer: User texture binding. Use 'SDL_GPUTexture*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef! **IMPORTANT** Before 2025/08/08, ImTextureID was a reference to a SDL_GPUTextureSamplerBinding struct.
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// The aim of imgui_impl_sdlgpu3.h/.cpp is to be usable in your engine without any modification.
// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
// Important note to the reader who wish to integrate imgui_impl_sdlgpu3.cpp/.h in their own engine/app.
// - Unlike other backends, the user must call the function ImGui_ImplSDLGPU_PrepareDrawData BEFORE issuing a SDL_GPURenderPass containing ImGui_ImplSDLGPU_RenderDrawData.
// Calling the function is MANDATORY, otherwise the ImGui will not upload neither the vertex nor the index buffer for the GPU. See imgui_impl_sdlgpu3.cpp for more info.
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
#include <SDL3/SDL_gpu.h> // Initialization data, for ImGui_ImplSDLGPU_Init()
// - Remember to set ColorTargetFormat to the correct format. If you're rendering to the swapchain, call SDL_GetGPUSwapchainTextureFormat() to query the right value
struct ImGui_ImplSDLGPU3_InitInfo_t
{
SDL_GPUDevice* Device /* = nullptr */;
SDL_GPUTextureFormat ColorTargetFormat /* = SDL_GPU_TEXTUREFORMAT_INVALID */;
SDL_GPUSampleCount MSAASamples /* = SDL_GPU_SAMPLECOUNT_1 */;
SDL_GPUSwapchainComposition SwapchainComposition /* = SDL_GPU_SWAPCHAINCOMPOSITION_SDR */; // Only used in multi-viewports mode.
SDL_GPUPresentMode PresentMode /* = SDL_GPU_PRESENTMODE_VSYNC */; // Only used in multi-viewports mode.
};
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplSDLGPU3_Init(ImGui_ImplSDLGPU3_InitInfo* info);
CIMGUI_IMPL_API void cImGui_ImplSDLGPU3_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplSDLGPU3_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplSDLGPU3_PrepareDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer);
CIMGUI_IMPL_API void cImGui_ImplSDLGPU3_RenderDrawData(ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer, SDL_GPURenderPass* render_pass); // Implied pipeline = nullptr
CIMGUI_IMPL_API void cImGui_ImplSDLGPU3_RenderDrawDataEx(ImDrawData* draw_data, SDL_GPUCommandBuffer* command_buffer, SDL_GPURenderPass* render_pass, SDL_GPUGraphicsPipeline* pipeline /* = nullptr */);
// Use if you want to reset your rendering device without losing Dear ImGui state.
CIMGUI_IMPL_API void cImGui_ImplSDLGPU3_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplSDLGPU3_DestroyDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplSDLGPU3_UpdateTexture(ImTextureData* tex);
// [BETA] Selected render state data shared with callbacks.
// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplSDLGPU3_RenderDrawData() call.
// (Please open an issue if you feel you need access to more data)
struct ImGui_ImplSDLGPU3_RenderState_t
{
SDL_GPUDevice* Device;
SDL_GPUSampler* SamplerLinear; // Bilinear filtering sampler
SDL_GPUSampler* SamplerNearest; // Nearest/point filtering sampler
SDL_GPUSampler* SamplerCurrent; // Current sampler (may be changed by callback)
};
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,684 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h"
}
}
],
"structs": [
{
"name": "ImGui_ImplSDLGPU3_InitInfo",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_InitInfo",
"kind": "struct",
"by_value": false,
"forward_declaration": false,
"is_anonymous": false,
"fields": [
{
"name": "Device",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_GPUDevice*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPUDevice"
}
}
},
"default_value": "nullptr",
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 34
}
},
{
"name": "ColorTargetFormat",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_GPUTextureFormat",
"description": {
"kind": "User",
"name": "SDL_GPUTextureFormat"
}
},
"default_value": "SDL_GPU_TEXTUREFORMAT_INVALID",
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 35
}
},
{
"name": "MSAASamples",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_GPUSampleCount",
"description": {
"kind": "User",
"name": "SDL_GPUSampleCount"
}
},
"default_value": "SDL_GPU_SAMPLECOUNT_1",
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 36
}
},
{
"name": "SwapchainComposition",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_GPUSwapchainComposition",
"description": {
"kind": "User",
"name": "SDL_GPUSwapchainComposition"
}
},
"default_value": "SDL_GPU_SWAPCHAINCOMPOSITION_SDR",
"comments": {
"attached": "// Only used in multi-viewports mode."
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 37
}
},
{
"name": "PresentMode",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_GPUPresentMode",
"description": {
"kind": "User",
"name": "SDL_GPUPresentMode"
}
},
"default_value": "SDL_GPU_PRESENTMODE_VSYNC",
"comments": {
"attached": "// Only used in multi-viewports mode."
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 38
}
}
],
"comments": {
"preceding": [
"// - Remember to set ColorTargetFormat to the correct format. If you're rendering to the swapchain, call SDL_GetGPUSwapchainTextureFormat() to query the right value"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 32
}
},
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 1
}
},
{
"name": "ImGui_ImplSDLGPU3_RenderState",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_RenderState",
"kind": "struct",
"by_value": false,
"forward_declaration": false,
"is_anonymous": false,
"fields": [
{
"name": "Device",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_GPUDevice*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPUDevice"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 60
}
},
{
"name": "SamplerLinear",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_GPUSampler*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPUSampler"
}
}
},
"comments": {
"attached": "// Bilinear filtering sampler"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 61
}
},
{
"name": "SamplerNearest",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_GPUSampler*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPUSampler"
}
}
},
"comments": {
"attached": "// Nearest/point filtering sampler"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 62
}
},
{
"name": "SamplerCurrent",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_GPUSampler*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPUSampler"
}
}
},
"comments": {
"attached": "// Current sampler (may be changed by callback)"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 63
}
}
],
"comments": {
"preceding": [
"// [BETA] Selected render state data shared with callbacks.",
"// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplSDLGPU3_RenderDrawData() call.",
"// (Please open an issue if you feel you need access to more data)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 58
}
}
],
"functions": [
{
"name": "cImGui_ImplSDLGPU3_Init",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "info",
"type": {
"declaration": "ImGui_ImplSDLGPU3_InitInfo*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImGui_ImplSDLGPU3_InitInfo"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 42
}
},
{
"name": "cImGui_ImplSDLGPU3_Shutdown",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 43
}
},
{
"name": "cImGui_ImplSDLGPU3_NewFrame",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 44
}
},
{
"name": "cImGui_ImplSDLGPU3_PrepareDrawData",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_PrepareDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "command_buffer",
"type": {
"declaration": "SDL_GPUCommandBuffer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPUCommandBuffer"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 45
}
},
{
"name": "cImGui_ImplSDLGPU3_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "command_buffer",
"type": {
"declaration": "SDL_GPUCommandBuffer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPUCommandBuffer"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "render_pass",
"type": {
"declaration": "SDL_GPURenderPass*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPURenderPass"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": true,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// Implied pipeline = nullptr"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 46
}
},
{
"name": "cImGui_ImplSDLGPU3_RenderDrawDataEx",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "command_buffer",
"type": {
"declaration": "SDL_GPUCommandBuffer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPUCommandBuffer"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "render_pass",
"type": {
"declaration": "SDL_GPURenderPass*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPURenderPass"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "pipeline",
"type": {
"declaration": "SDL_GPUGraphicsPipeline*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_GPUGraphicsPipeline"
}
}
},
"is_array": false,
"is_varargs": false,
"default_value": "nullptr",
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 46
}
},
{
"name": "cImGui_ImplSDLGPU3_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_CreateDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Use if you want to reset your rendering device without losing Dear ImGui state."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 49
}
},
{
"name": "cImGui_ImplSDLGPU3_DestroyDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_DestroyDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 50
}
},
{
"name": "cImGui_ImplSDLGPU3_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplSDLGPU3_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlgpu3.h",
"line": 53
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,133 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_sdlrenderer2.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_sdlrenderer2.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDLRenderer2_Init(cimgui::SDL_Renderer* renderer)
{
return ::ImGui_ImplSDLRenderer2_Init(reinterpret_cast<::SDL_Renderer*>(renderer));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer2_Shutdown(void)
{
::ImGui_ImplSDLRenderer2_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer2_NewFrame(void)
{
::ImGui_ImplSDLRenderer2_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer2_RenderDrawData(cimgui::ImDrawData* draw_data, cimgui::SDL_Renderer* renderer)
{
::ImGui_ImplSDLRenderer2_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), reinterpret_cast<::SDL_Renderer*>(renderer));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer2_CreateDeviceObjects(void)
{
::ImGui_ImplSDLRenderer2_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer2_DestroyDeviceObjects(void)
{
::ImGui_ImplSDLRenderer2_DestroyDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer2_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplSDLRenderer2_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
@@ -0,0 +1,74 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for SDL_Renderer for SDL2
// Auto-generated forward declarations for C header
typedef struct ImGui_ImplSDLRenderer2_RenderState_t ImGui_ImplSDLRenderer2_RenderState;
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// (Requires: SDL 2.0.17+)
// Note that SDL_Renderer is an _optional_ component of SDL2, which IMHO is now largely obsolete.
// For a multi-platform app consider using other technologies:
// - SDL3+SDL_GPU: SDL_GPU is SDL3 new graphics abstraction API. You will need to update to SDL3.
// - SDL2+DirectX, SDL2+OpenGL, SDL2+Vulkan: combine SDL with dedicated renderers.
// If your application wants to render any non trivial amount of graphics other than UI,
// please be aware that SDL_Renderer currently offers a limited graphic API to the end-user
// and it might be difficult to step out of those boundaries.
// Implemented features:
// [X] Renderer: User texture binding. Use 'SDL_Texture*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef!
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'.
// Missing features:
// [ ] Renderer: Multi-viewport support (multiple windows).
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#ifndef IMGUI_DISABLE
#include "dcimgui.h"
typedef struct SDL_Renderer SDL_Renderer;
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplSDLRenderer2_Init(SDL_Renderer* renderer);
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer2_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer2_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer2_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer);
// Called by Init/NewFrame/Shutdown
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer2_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer2_DestroyDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer2_UpdateTexture(ImTextureData* tex);
// [BETA] Selected render state data shared with callbacks.
// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplSDLRenderer2_RenderDrawData() call.
// (Please open an issue if you feel you need access to more data)
struct ImGui_ImplSDLRenderer2_RenderState_t
{
SDL_Renderer* Renderer;
};
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,346 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h"
}
}
],
"structs": [
{
"name": "SDL_Renderer",
"original_fully_qualified_name": "SDL_Renderer",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 32
}
},
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 1
}
},
{
"name": "ImGui_ImplSDLRenderer2_RenderState",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer2_RenderState",
"kind": "struct",
"by_value": false,
"forward_declaration": false,
"is_anonymous": false,
"fields": [
{
"name": "Renderer",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_Renderer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Renderer"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 52
}
}
],
"comments": {
"preceding": [
"// [BETA] Selected render state data shared with callbacks.",
"// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplSDLRenderer2_RenderDrawData() call.",
"// (Please open an issue if you feel you need access to more data)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 50
}
}
],
"functions": [
{
"name": "cImGui_ImplSDLRenderer2_Init",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer2_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "renderer",
"type": {
"declaration": "SDL_Renderer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Renderer"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 35
}
},
{
"name": "cImGui_ImplSDLRenderer2_Shutdown",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer2_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 36
}
},
{
"name": "cImGui_ImplSDLRenderer2_NewFrame",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer2_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 37
}
},
{
"name": "cImGui_ImplSDLRenderer2_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer2_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "renderer",
"type": {
"declaration": "SDL_Renderer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Renderer"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 38
}
},
{
"name": "cImGui_ImplSDLRenderer2_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer2_CreateDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Called by Init/NewFrame/Shutdown"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 41
}
},
{
"name": "cImGui_ImplSDLRenderer2_DestroyDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer2_DestroyDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 42
}
},
{
"name": "cImGui_ImplSDLRenderer2_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer2_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer2.h",
"line": 45
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,133 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_sdlrenderer3.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_sdlrenderer3.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplSDLRenderer3_Init(cimgui::SDL_Renderer* renderer)
{
return ::ImGui_ImplSDLRenderer3_Init(reinterpret_cast<::SDL_Renderer*>(renderer));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer3_Shutdown(void)
{
::ImGui_ImplSDLRenderer3_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer3_NewFrame(void)
{
::ImGui_ImplSDLRenderer3_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer3_RenderDrawData(cimgui::ImDrawData* draw_data, cimgui::SDL_Renderer* renderer)
{
::ImGui_ImplSDLRenderer3_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), reinterpret_cast<::SDL_Renderer*>(renderer));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer3_CreateDeviceObjects(void)
{
::ImGui_ImplSDLRenderer3_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer3_DestroyDeviceObjects(void)
{
::ImGui_ImplSDLRenderer3_DestroyDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplSDLRenderer3_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplSDLRenderer3_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
#endif // #ifndef IMGUI_DISABLE
@@ -0,0 +1,74 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for SDL_Renderer for SDL3
// Auto-generated forward declarations for C header
typedef struct ImGui_ImplSDLRenderer3_RenderState_t ImGui_ImplSDLRenderer3_RenderState;
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// (Requires: SDL 3.1.8+)
// Note that SDL_Renderer is an _optional_ component of SDL3, which IMHO is now largely obsolete.
// For a multi-platform app consider using other technologies:
// - SDL3+SDL_GPU: SDL_GPU is SDL3 new graphics abstraction API.
// - SDL3+DirectX, SDL3+OpenGL, SDL3+Vulkan: combine SDL with dedicated renderers.
// If your application wants to render any non trivial amount of graphics other than UI,
// please be aware that SDL_Renderer currently offers a limited graphic API to the end-user
// and it might be difficult to step out of those boundaries.
// Implemented features:
// [X] Renderer: User texture binding. Use 'SDL_Texture*' as texture identifier. Read the FAQ about ImTextureID/ImTextureRef!
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'.
// Missing features:
// [ ] Renderer: Multi-viewport support (multiple windows).
// You can copy and use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct SDL_Renderer SDL_Renderer;
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplSDLRenderer3_Init(SDL_Renderer* renderer);
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer3_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer3_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer3_RenderDrawData(ImDrawData* draw_data, SDL_Renderer* renderer);
// Called by Init/NewFrame/Shutdown
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer3_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer3_DestroyDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplSDLRenderer3_UpdateTexture(ImTextureData* tex);
// [BETA] Selected render state data shared with callbacks.
// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplSDLRenderer3_RenderDrawData() call.
// (Please open an issue if you feel you need access to more data)
struct ImGui_ImplSDLRenderer3_RenderState_t
{
SDL_Renderer* Renderer;
};
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,346 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h"
}
}
],
"structs": [
{
"name": "SDL_Renderer",
"original_fully_qualified_name": "SDL_Renderer",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 32
}
},
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 1
}
},
{
"name": "ImGui_ImplSDLRenderer3_RenderState",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer3_RenderState",
"kind": "struct",
"by_value": false,
"forward_declaration": false,
"is_anonymous": false,
"fields": [
{
"name": "Renderer",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "SDL_Renderer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Renderer"
}
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 52
}
}
],
"comments": {
"preceding": [
"// [BETA] Selected render state data shared with callbacks.",
"// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplSDLRenderer3_RenderDrawData() call.",
"// (Please open an issue if you feel you need access to more data)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 50
}
}
],
"functions": [
{
"name": "cImGui_ImplSDLRenderer3_Init",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer3_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "renderer",
"type": {
"declaration": "SDL_Renderer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Renderer"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 35
}
},
{
"name": "cImGui_ImplSDLRenderer3_Shutdown",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer3_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 36
}
},
{
"name": "cImGui_ImplSDLRenderer3_NewFrame",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer3_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 37
}
},
{
"name": "cImGui_ImplSDLRenderer3_RenderDrawData",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer3_RenderDrawData",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "draw_data",
"type": {
"declaration": "ImDrawData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImDrawData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "renderer",
"type": {
"declaration": "SDL_Renderer*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "SDL_Renderer"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 38
}
},
{
"name": "cImGui_ImplSDLRenderer3_CreateDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer3_CreateDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Called by Init/NewFrame/Shutdown"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 41
}
},
{
"name": "cImGui_ImplSDLRenderer3_DestroyDeviceObjects",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer3_DestroyDeviceObjects",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 42
}
},
{
"name": "cImGui_ImplSDLRenderer3_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplSDLRenderer3_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_sdlrenderer3.h",
"line": 45
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,198 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_vulkan.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_vulkan.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplVulkan_Init(cimgui::ImGui_ImplVulkan_InitInfo* info)
{
return ::ImGui_ImplVulkan_Init(reinterpret_cast<::ImGui_ImplVulkan_InitInfo*>(info));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_Shutdown(void)
{
::ImGui_ImplVulkan_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_NewFrame(void)
{
::ImGui_ImplVulkan_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_RenderDrawData(cimgui::ImDrawData* draw_data, VkCommandBuffer command_buffer)
{
::ImGui_ImplVulkan_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), command_buffer);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_RenderDrawDataEx(cimgui::ImDrawData* draw_data, VkCommandBuffer command_buffer, VkPipeline pipeline)
{
::ImGui_ImplVulkan_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), command_buffer, pipeline);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count)
{
::ImGui_ImplVulkan_SetMinImageCount(min_image_count);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_CreateMainPipeline(const cimgui::ImGui_ImplVulkan_PipelineInfo* info)
{
::ImGui_ImplVulkan_CreateMainPipeline(reinterpret_cast<const ::ImGui_ImplVulkan_PipelineInfo*>(info));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplVulkan_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
CIMGUI_IMPL_API VkDescriptorSet cimgui::cImGui_ImplVulkan_AddTexture(VkSampler sampler, VkImageView image_view, VkImageLayout image_layout)
{
return ::ImGui_ImplVulkan_AddTexture(sampler, image_view, image_layout);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_RemoveTexture(VkDescriptorSet descriptor_set)
{
::ImGui_ImplVulkan_RemoveTexture(descriptor_set);
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplVulkan_LoadFunctions(uint32_t api_version, PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data))
{
return ::ImGui_ImplVulkan_LoadFunctions(api_version, loader_func);
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplVulkan_LoadFunctionsEx(uint32_t api_version, PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data), void* user_data)
{
return ::ImGui_ImplVulkan_LoadFunctions(api_version, loader_func, user_data);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, cimgui::ImGui_ImplVulkanH_Window* wd, uint32_t queue_family, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count, VkImageUsageFlags image_usage)
{
::ImGui_ImplVulkanH_CreateOrResizeWindow(instance, physical_device, device, reinterpret_cast<::ImGui_ImplVulkanH_Window*>(wd), queue_family, allocator, w, h, min_image_count, image_usage);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, cimgui::ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator)
{
::ImGui_ImplVulkanH_DestroyWindow(instance, device, reinterpret_cast<::ImGui_ImplVulkanH_Window*>(wd), allocator);
}
CIMGUI_IMPL_API VkSurfaceFormatKHR cimgui::cImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space)
{
return ::ImGui_ImplVulkanH_SelectSurfaceFormat(physical_device, surface, request_formats, request_formats_count, request_color_space);
}
CIMGUI_IMPL_API VkPresentModeKHR cimgui::cImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkPresentModeKHR* request_modes, int request_modes_count)
{
return ::ImGui_ImplVulkanH_SelectPresentMode(physical_device, surface, request_modes, request_modes_count);
}
CIMGUI_IMPL_API VkPhysicalDevice cimgui::cImGui_ImplVulkanH_SelectPhysicalDevice(VkInstance instance)
{
return ::ImGui_ImplVulkanH_SelectPhysicalDevice(instance);
}
CIMGUI_IMPL_API uint32_t cimgui::cImGui_ImplVulkanH_SelectQueueFamilyIndex(VkPhysicalDevice physical_device)
{
return ::ImGui_ImplVulkanH_SelectQueueFamilyIndex(physical_device);
}
CIMGUI_IMPL_API int cimgui::cImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode)
{
return ::ImGui_ImplVulkanH_GetMinImageCountFromPresentMode(present_mode);
}
CIMGUI_IMPL_API cimgui::ImGui_ImplVulkanH_Window* cimgui::cImGui_ImplVulkanH_GetWindowDataFromViewport(cimgui::ImGuiViewport* viewport)
{
return reinterpret_cast<::cimgui::ImGui_ImplVulkanH_Window*>(::ImGui_ImplVulkanH_GetWindowDataFromViewport(reinterpret_cast<::ImGuiViewport*>(viewport)));
}
#endif // #ifndef IMGUI_DISABLE
+291
View File
@@ -0,0 +1,291 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer Backend for Vulkan
// Auto-generated forward declarations for C header
typedef struct ImVector_VkDynamicState_t ImVector_VkDynamicState;
typedef struct ImGui_ImplVulkan_PipelineInfo_t ImGui_ImplVulkan_PipelineInfo;
typedef struct ImGui_ImplVulkan_InitInfo_t ImGui_ImplVulkan_InitInfo;
typedef struct ImGui_ImplVulkan_RenderState_t ImGui_ImplVulkan_RenderState;
typedef struct ImVector_ImGui_ImplVulkanH_Frame_t ImVector_ImGui_ImplVulkanH_Frame;
typedef struct ImGui_ImplVulkanH_FrameSemaphores_t ImGui_ImplVulkanH_FrameSemaphores;
typedef struct ImVector_ImGui_ImplVulkanH_FrameSemaphores_t ImVector_ImGui_ImplVulkanH_FrameSemaphores;
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..)
// Implemented features:
// [!] Renderer: User texture binding. Use 'VkDescriptorSet' as texture identifier. Call ImGui_ImplVulkan_AddTexture() to register one. Read the FAQ about ImTextureID/ImTextureRef + https://github.com/ocornut/imgui/pull/914 for discussions.
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'.
// [x] Renderer: Multi-viewport / platform windows. With issues (flickering when creating a new viewport).
// The aim of imgui_impl_vulkan.h/.cpp is to be usable in your engine without any modification.
// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app.
// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h.
// You will use those if you want to use this rendering backend in your engine/app.
// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by
// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code.
// Read comments in imgui_impl_vulkan.h.
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#ifndef IMGUI_DISABLE
#include "dcimgui.h"
// [Configuration] in order to use a custom Vulkan function loader:
// (1) You'll need to disable default Vulkan function prototypes.
// We provide a '#define IMGUI_IMPL_VULKAN_NO_PROTOTYPES' convenience configuration flag.
// In order to make sure this is visible from the imgui_impl_vulkan.cpp compilation unit:
// - Add '#define IMGUI_IMPL_VULKAN_NO_PROTOTYPES' in your imconfig.h file
// - Or as a compilation flag in your build system
// - Or uncomment here (not recommended because you'd be modifying imgui sources!)
// - Do not simply add it in a .cpp file!
// (2) Call ImGui_ImplVulkan_LoadFunctions() before ImGui_ImplVulkan_Init() with your custom function.
// If you have no idea what this is, leave it alone!
//#define IMGUI_IMPL_VULKAN_NO_PROTOTYPES
// [Configuration] Convenience support for Volk
// (you can also technically use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + wrap Volk via ImGui_ImplVulkan_LoadFunctions().)
// (When using Volk from directory outside your include directories list you can specify full path to the volk.h header,
// for example when using Volk from VulkanSDK and using include_directories(${Vulkan_INCLUDE_DIRS})' from 'find_package(Vulkan REQUIRED)')
//#define IMGUI_IMPL_VULKAN_USE_VOLK
//#define IMGUI_IMPL_VULKAN_VOLK_FILENAME <Volk/volk.h>
//#define IMGUI_IMPL_VULKAN_VOLK_FILENAME <volk.h> // Default
// Reminder: make those changes in your imconfig.h file, not here!
// Clang/GCC warnings with -Weverything
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wold-style-cast" // warning: use of old-style cast
#endif // #if defined(__clang__)
#if defined(IMGUI_IMPL_VULKAN_NO_PROTOTYPES)&&!defined(VK_NO_PROTOTYPES)
#define VK_NO_PROTOTYPES
#endif // #if defined(IMGUI_IMPL_VULKAN_NO_PROTOTYPES)&&!defined(VK_NO_PROTOTYPES)
#if defined(VK_USE_PLATFORM_WIN32_KHR)&&!defined(NOMINMAX)
#define NOMINMAX
#endif // #if defined(VK_USE_PLATFORM_WIN32_KHR)&&!defined(NOMINMAX)
// Vulkan includes
#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
#ifdef IMGUI_IMPL_VULKAN_VOLK_FILENAME
#include IMGUI_IMPL_VULKAN_VOLK_FILENAME
#else
#include <volk.h>
#endif // #ifdef IMGUI_IMPL_VULKAN_VOLK_FILENAME
#else
#include <vulkan/vulkan.h>
#endif // #ifdef IMGUI_IMPL_VULKAN_USE_VOLK
struct ImVector_VkDynamicState_t { int Size; int Capacity; VkDynamicState* Data; }; // Instantiation of ImVector<VkDynamicState>
#if defined(VK_VERSION_1_3)|| defined(VK_KHR_dynamic_rendering)
#define IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
#endif // #if defined(VK_VERSION_1_3)|| defined(VK_KHR_dynamic_rendering)
// Backend uses a small number of descriptors per font atlas + as many as additional calls done to ImGui_ImplVulkan_AddTexture().
#define IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE (8) // Minimum per atlas
// Specify settings to create pipeline and swapchain
struct ImGui_ImplVulkan_PipelineInfo_t
{
// For Main viewport only
VkRenderPass RenderPass; // Ignored if using dynamic rendering
// For Main and Secondary viewports
uint32_t Subpass; //
VkSampleCountFlagBits MSAASamples /* = {} */; // 0 defaults to VK_SAMPLE_COUNT_1_BIT
ImVector_VkDynamicState ExtraDynamicStates; // Optional, allows to insert more dynamic states into our VkPipeline
#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
VkPipelineRenderingCreateInfoKHR PipelineRenderingCreateInfo; // Optional, valid if .sType == VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR
#endif // #ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
// For Secondary viewports only (created/managed by backend)
VkImageUsageFlags SwapChainImageUsage; // Extra flags for vkCreateSwapchainKHR() calls for secondary viewports. We automatically add VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT. You can add e.g. VK_IMAGE_USAGE_TRANSFER_SRC_BIT if you need to capture from viewports.
};
// Initialization data, for ImGui_ImplVulkan_Init()
// [Please zero-clear before use!]
// - About descriptor pool:
// - A VkDescriptorPool should be created with VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
// and must contain a pool size large enough to hold a small number of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER descriptors.
// - As an convenience, by setting DescriptorPoolSize > 0 the backend will create one for you.
// - About dynamic rendering:
// - When using dynamic rendering, set UseDynamicRendering=true + fill PipelineInfoMain.PipelineRenderingCreateInfo structure.
struct ImGui_ImplVulkan_InitInfo_t
{
uint32_t ApiVersion; // Fill with API version of Instance, e.g. VK_API_VERSION_1_3 or your value of VkApplicationInfo::apiVersion. May be lower than header version (VK_HEADER_VERSION_COMPLETE)
VkInstance Instance;
VkPhysicalDevice PhysicalDevice;
VkDevice Device;
uint32_t QueueFamily;
VkQueue Queue;
VkDescriptorPool DescriptorPool; // See requirements in note above; ignored if using DescriptorPoolSize > 0
uint32_t DescriptorPoolSize; // Optional: set to create internal descriptor pool automatically instead of using DescriptorPool.
uint32_t MinImageCount; // >= 2
uint32_t ImageCount; // >= MinImageCount
VkPipelineCache PipelineCache; // Optional
// Pipeline
ImGui_ImplVulkan_PipelineInfo PipelineInfoMain; // Infos for Main Viewport (created by app/user)
ImGui_ImplVulkan_PipelineInfo PipelineInfoForViewports; // Infos for Secondary Viewports (created by backend)
//VkRenderPass RenderPass; // --> Since 2025/09/26: set 'PipelineInfoMain.RenderPass' instead
//uint32_t Subpass; // --> Since 2025/09/26: set 'PipelineInfoMain.Subpass' instead
//VkSampleCountFlagBits MSAASamples; // --> Since 2025/09/26: set 'PipelineInfoMain.MSAASamples' instead
//VkPipelineRenderingCreateInfoKHR PipelineRenderingCreateInfo; // Since 2025/09/26: set 'PipelineInfoMain.PipelineRenderingCreateInfo' instead
// (Optional) Dynamic Rendering
// Need to explicitly enable VK_KHR_dynamic_rendering extension to use this, even for Vulkan 1.3 + setup PipelineInfoMain.PipelineRenderingCreateInfo and PipelineInfoViewports.PipelineRenderingCreateInfo.
bool UseDynamicRendering;
// (Optional) Allocation, Debugging
const VkAllocationCallbacks* Allocator;
void (*CheckVkResultFn)(VkResult err);
VkDeviceSize MinAllocationSize; // Minimum allocation size. Set to 1024*1024 to satisfy zealous best practices validation layer and waste a little memory.
// (Optional) Customize default vertex/fragment shaders.
// - if .sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO we use specified structs, otherwise we use defaults.
// - Shader inputs/outputs need to match ours. Code/data pointed to by the structure needs to survive for whole during of backend usage.
VkShaderModuleCreateInfo CustomShaderVertCreateInfo;
VkShaderModuleCreateInfo CustomShaderFragCreateInfo;
};
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info);
CIMGUI_IMPL_API void cImGui_ImplVulkan_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplVulkan_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer command_buffer); // Implied pipeline = VK_NULL_HANDLE
CIMGUI_IMPL_API void cImGui_ImplVulkan_RenderDrawDataEx(ImDrawData* draw_data, VkCommandBuffer command_buffer, VkPipeline pipeline /* = VK_NULL_HANDLE */);
CIMGUI_IMPL_API void cImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count); // To override MinImageCount after initialization (e.g. if swap chain is recreated)
// (Advanced) Use e.g. if you need to recreate pipeline without reinitializing the backend (see #8110, #8111)
// The main window pipeline will be created by ImGui_ImplVulkan_Init() if possible (== RenderPass xor (UseDynamicRendering && PipelineRenderingCreateInfo->sType == VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR))
// Else, the pipeline can be created, or re-created, using ImGui_ImplVulkan_CreateMainPipeline() before rendering.
CIMGUI_IMPL_API void cImGui_ImplVulkan_CreateMainPipeline(const ImGui_ImplVulkan_PipelineInfo* info);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplVulkan_UpdateTexture(ImTextureData* tex);
// Register a texture (VkDescriptorSet == ImTextureID)
// FIXME: This is experimental in the sense that we are unsure how to best design/tackle this problem
// Please post to https://github.com/ocornut/imgui/pull/914 if you have suggestions.
CIMGUI_IMPL_API VkDescriptorSet cImGui_ImplVulkan_AddTexture(VkSampler sampler, VkImageView image_view, VkImageLayout image_layout);
CIMGUI_IMPL_API void cImGui_ImplVulkan_RemoveTexture(VkDescriptorSet descriptor_set);
// Optional: load Vulkan functions with a custom function loader
// This is only useful with IMGUI_IMPL_VULKAN_NO_PROTOTYPES / VK_NO_PROTOTYPES
CIMGUI_IMPL_API bool cImGui_ImplVulkan_LoadFunctions(uint32_t api_version, PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data)); // Implied user_data = nullptr
CIMGUI_IMPL_API bool cImGui_ImplVulkan_LoadFunctionsEx(uint32_t api_version, PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data), void* user_data /* = nullptr */);
// [BETA] Selected render state data shared with callbacks.
// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplVulkan_RenderDrawData() call.
// (Please open an issue if you feel you need access to more data)
struct ImGui_ImplVulkan_RenderState_t
{
VkCommandBuffer CommandBuffer;
VkPipeline Pipeline;
VkPipelineLayout PipelineLayout;
};
//-------------------------------------------------------------------------
// Internal / Miscellaneous Vulkan Helpers
//-------------------------------------------------------------------------
// Used by example's main.cpp. Used by multi-viewport features. PROBABLY NOT used by your own engine/app.
//
// You probably do NOT need to use or care about those functions.
// WE DO NOT PROVIDE STRONG GUARANTEES OF BACKWARD/FORWARD COMPATIBILITY.
// Those functions only exist because:
// 1) they facilitate the readability and maintenance of the multiple main.cpp examples files.
// 2) the multi-viewport / platform window implementation needs them internally.
// Generally we avoid exposing any kind of superfluous high-level helpers in the backends,
// but it is too much code to duplicate everywhere so we exceptionally expose them.
//
// Your engine/app will likely _already_ have code to setup all that stuff (swap chain,
// render pass, frame buffers, etc.). You may read this code if you are curious, but
// it is recommended you use your own custom tailored code to do equivalent work.
//
// The ImGui_ImplVulkanH_XXX functions should NOT interact with any of the state used
// by the regular ImGui_ImplVulkan_XXX functions.
//-------------------------------------------------------------------------
typedef struct ImGui_ImplVulkanH_Frame_t ImGui_ImplVulkanH_Frame;
typedef struct ImGui_ImplVulkanH_Window_t ImGui_ImplVulkanH_Window;
// Helpers
CIMGUI_IMPL_API void cImGui_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, VkImageUsageFlags image_usage);
CIMGUI_IMPL_API void cImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator);
CIMGUI_IMPL_API VkSurfaceFormatKHR cImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space);
CIMGUI_IMPL_API VkPresentModeKHR cImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkPresentModeKHR* request_modes, int request_modes_count);
CIMGUI_IMPL_API VkPhysicalDevice cImGui_ImplVulkanH_SelectPhysicalDevice(VkInstance instance);
CIMGUI_IMPL_API uint32_t cImGui_ImplVulkanH_SelectQueueFamilyIndex(VkPhysicalDevice physical_device);
CIMGUI_IMPL_API int cImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode);
CIMGUI_IMPL_API ImGui_ImplVulkanH_Window* cImGui_ImplVulkanH_GetWindowDataFromViewport(ImGuiViewport* viewport); // Access to Vulkan objects associated with a viewport (e.g to export a screenshot)
// Helper structure to hold the data needed by one rendering frame
// (Used by example's main.cpp. Used by multi-viewport features. Probably NOT used by your own engine/app.)
// [Please zero-clear before use!]
struct ImGui_ImplVulkanH_Frame_t
{
VkCommandPool CommandPool;
VkCommandBuffer CommandBuffer;
VkFence Fence;
VkImage Backbuffer;
VkImageView BackbufferView;
VkFramebuffer Framebuffer;
};
struct ImVector_ImGui_ImplVulkanH_Frame_t { int Size; int Capacity; ImGui_ImplVulkanH_Frame* Data; }; // Instantiation of ImVector<ImGui_ImplVulkanH_Frame>
struct ImGui_ImplVulkanH_FrameSemaphores_t
{
VkSemaphore ImageAcquiredSemaphore;
VkSemaphore RenderCompleteSemaphore;
};
struct ImVector_ImGui_ImplVulkanH_FrameSemaphores_t { int Size; int Capacity; ImGui_ImplVulkanH_FrameSemaphores* Data; }; // Instantiation of ImVector<ImGui_ImplVulkanH_FrameSemaphores>
// Helper structure to hold the data needed by one rendering context into one OS window
// (Used by example's main.cpp. Used by multi-viewport features. Probably NOT used by your own engine/app.)
struct ImGui_ImplVulkanH_Window_t
{
// Input
bool UseDynamicRendering;
VkSurfaceKHR Surface; // Surface created and destroyed by caller.
VkSurfaceFormatKHR SurfaceFormat;
VkPresentModeKHR PresentMode;
VkAttachmentDescription AttachmentDesc; // RenderPass creation: main attachment description.
VkClearValue ClearValue; // RenderPass creation: clear value when using VK_ATTACHMENT_LOAD_OP_CLEAR.
// Internal
int Width; // Generally same as passed to ImGui_ImplVulkanH_CreateOrResizeWindow()
int Height;
VkSwapchainKHR Swapchain;
VkRenderPass RenderPass;
uint32_t FrameIndex; // Current frame being rendered to (0 <= FrameIndex < FrameInFlightCount)
uint32_t ImageCount; // Number of simultaneous in-flight frames (returned by vkGetSwapchainImagesKHR, usually derived from min_image_count)
uint32_t SemaphoreCount; // Number of simultaneous in-flight frames + 1, to be able to use it in vkAcquireNextImageKHR
uint32_t SemaphoreIndex; // Current set of swapchain wait semaphores we're using (needs to be distinct from per frame data)
ImVector_ImGui_ImplVulkanH_Frame Frames;
ImVector_ImGui_ImplVulkanH_FrameSemaphores FrameSemaphores;
};
#if defined(__clang__)
#pragma clang diagnostic pop
#endif // #if defined(__clang__)
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
+191
View File
@@ -0,0 +1,191 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_wgpu.h"
#include <stdio.h>
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_wgpu.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplWGPU_Init(cimgui::ImGui_ImplWGPU_InitInfo* init_info)
{
return ::ImGui_ImplWGPU_Init(reinterpret_cast<::ImGui_ImplWGPU_InitInfo*>(init_info));
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplWGPU_Shutdown(void)
{
::ImGui_ImplWGPU_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplWGPU_NewFrame(void)
{
::ImGui_ImplWGPU_NewFrame();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplWGPU_RenderDrawData(cimgui::ImDrawData* draw_data, WGPURenderPassEncoder pass_encoder)
{
::ImGui_ImplWGPU_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), pass_encoder);
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplWGPU_CreateDeviceObjects(void)
{
return ::ImGui_ImplWGPU_CreateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplWGPU_InvalidateDeviceObjects(void)
{
::ImGui_ImplWGPU_InvalidateDeviceObjects();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplWGPU_UpdateTexture(cimgui::ImTextureData* tex)
{
::ImGui_ImplWGPU_UpdateTexture(reinterpret_cast<::ImTextureData*>(tex));
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplWGPU_IsSurfaceStatusError(WGPUSurfaceGetCurrentTextureStatus status)
{
return ::ImGui_ImplWGPU_IsSurfaceStatusError(status);
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplWGPU_IsSurfaceStatusSubOptimal(WGPUSurfaceGetCurrentTextureStatus status)
{
return ::ImGui_ImplWGPU_IsSurfaceStatusSubOptimal(status);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplWGPU_DebugPrintAdapterInfo(WGPUAdapter adapter)
{
::ImGui_ImplWGPU_DebugPrintAdapterInfo(reinterpret_cast<const ::WGPUAdapter&>(adapter));
}
CIMGUI_IMPL_API const char* cimgui::cImGui_ImplWGPU_GetBackendTypeName(WGPUBackendType type)
{
return ::ImGui_ImplWGPU_GetBackendTypeName(type);
}
CIMGUI_IMPL_API const char* cimgui::cImGui_ImplWGPU_GetAdapterTypeName(WGPUAdapterType type)
{
return ::ImGui_ImplWGPU_GetAdapterTypeName(type);
}
#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN)
CIMGUI_IMPL_API const char* cimgui::cImGui_ImplWGPU_GetDeviceLostReasonName(WGPUDeviceLostReason type)
{
return ::ImGui_ImplWGPU_GetDeviceLostReasonName(type);
}
CIMGUI_IMPL_API const char* cimgui::cImGui_ImplWGPU_GetErrorTypeName(WGPUErrorType type)
{
return ::ImGui_ImplWGPU_GetErrorTypeName(type);
}
#endif // #if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN)
#if !(defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN))
#if defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
// CIMGUI_IMPL_API const char* cimgui::cImGui_ImplWGPU_GetLogLevelName(WGPULogLevel level)
// {
// return ::ImGui_ImplWGPU_GetLogLevelName(level);
// }
#endif // #if defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
#endif // #if !(defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN))
#ifndef __EMSCRIPTEN__
CIMGUI_IMPL_API WGPUSurface cimgui::cImGui_ImplWGPU_CreateWGPUSurfaceHelper(cimgui::ImGui_ImplWGPU_CreateSurfaceInfo* info)
{
return ::ImGui_ImplWGPU_CreateWGPUSurfaceHelper(reinterpret_cast<::ImGui_ImplWGPU_CreateSurfaceInfo*>(info));
}
#endif // #ifndef __EMSCRIPTEN__
#endif // #ifndef IMGUI_DISABLE
+134
View File
@@ -0,0 +1,134 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Renderer for WebGPU
// Auto-generated forward declarations for C header
typedef struct ImGui_ImplWGPU_InitInfo_t ImGui_ImplWGPU_InitInfo;
typedef struct ImGui_ImplWGPU_RenderState_t ImGui_ImplWGPU_RenderState;
typedef struct ImGui_ImplWGPU_CreateSurfaceInfo_t ImGui_ImplWGPU_CreateSurfaceInfo;
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Platform Binding (e.g. GLFW, SDL2, SDL3)
// (Please note that WebGPU is a recent API, may not be supported by all browser, and its ecosystem is generally a mess)
// When targeting native platforms:
// - One of IMGUI_IMPL_WEBGPU_BACKEND_DAWN, IMGUI_IMPL_WEBGPU_BACKEND_WGPU or IMGUI_IMPL_WEBGPU_BACKEND_WGVK *must* be provided.
// When targeting Emscripten:
// - We now defaults to IMGUI_IMPL_WEBGPU_BACKEND_DAWN and requires Emscripten 4.0.10+, which correspond to using Emscripten '--use-port=emdawnwebgpu'.
// - Emscripten < 4.0.10 is not supported anymore (old '-sUSE_WEBGPU=1' option).
// - We can still define IMGUI_IMPL_WEBGPU_BACKEND_WGPU to use Emscripten '-s USE_WEBGPU=1' which is marked as obsolete by Emscripten.
// Add #define to your imconfig.h file, or as a compilation flag in your build system.
// This requirement may be removed once WebGPU stabilizes and backends converge on a unified interface.
//#define IMGUI_IMPL_WEBGPU_BACKEND_DAWN
//#define IMGUI_IMPL_WEBGPU_BACKEND_WGPU
//#define IMGUI_IMPL_WEBGPU_BACKEND_WGVK
// Implemented features:
// [X] Renderer: User texture binding. Use 'WGPUTextureView' as ImTextureID. Read the FAQ about ImTextureID/ImTextureRef!
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'.
// [X] Renderer: Texture updates support for dynamic font system (ImGuiBackendFlags_RendererHasTextures).
// Missing features or Issues:
// [ ] Renderer: Multi-viewport support (multiple windows), useful for desktop.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
// Setup Emscripten default if not specified.
#if defined(__EMSCRIPTEN__)&&!defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN)&&!defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
#include <emscripten/version.h>
#define IMGUI_IMPL_WEBGPU_BACKEND_DAWN
#endif // #if defined(__EMSCRIPTEN__)&&!defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN)&&!defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
#include <webgpu/webgpu.h>
#if defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)&&!defined(__EMSCRIPTEN__)
#include <webgpu/wgpu.h>
#endif // #if defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)&&!defined(__EMSCRIPTEN__)
typedef struct ImGui_ImplWGPU_InitInfo_ImDrawData_t ImGui_ImplWGPU_InitInfo_ImDrawData;
// Initialization data, for ImGui_ImplWGPU_Init()
struct ImGui_ImplWGPU_InitInfo_t
{
WGPUDevice Device /* = nullptr */;
int NumFramesInFlight /* = 3 */;
WGPUTextureFormat RenderTargetFormat /* = WGPUTextureFormat_Undefined */;
WGPUTextureFormat DepthStencilFormat /* = WGPUTextureFormat_Undefined */;
WGPUMultisampleState PipelineMultisampleState /* = {} */;
};
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplWGPU_Init(ImGui_ImplWGPU_InitInfo* init_info);
CIMGUI_IMPL_API void cImGui_ImplWGPU_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplWGPU_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplWGPU_RenderDrawData(ImDrawData* draw_data, WGPURenderPassEncoder pass_encoder);
// Use if you want to reset your rendering device without losing Dear ImGui state.
CIMGUI_IMPL_API bool cImGui_ImplWGPU_CreateDeviceObjects(void);
CIMGUI_IMPL_API void cImGui_ImplWGPU_InvalidateDeviceObjects(void);
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = nullptr to handle this manually.
CIMGUI_IMPL_API void cImGui_ImplWGPU_UpdateTexture(ImTextureData* tex);
// [BETA] Selected render state data shared with callbacks.
// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplWGPU_RenderDrawData() call.
// (Please open an issue if you feel you need access to more data)
struct ImGui_ImplWGPU_RenderState_t
{
WGPUDevice Device;
WGPURenderPassEncoder RenderPassEncoder;
};
//-------------------------------------------------------------------------
// Internal Helpers
// Those are currently used by our example applications.
//-------------------------------------------------------------------------
// (Optional) Helper to wrap some of the Dawn/WGPU/Emscripten quirks
CIMGUI_IMPL_API bool cImGui_ImplWGPU_IsSurfaceStatusError(WGPUSurfaceGetCurrentTextureStatus status);
CIMGUI_IMPL_API bool cImGui_ImplWGPU_IsSurfaceStatusSubOptimal(WGPUSurfaceGetCurrentTextureStatus status); // Return whether the texture is suboptimal and may need to be recreated.
// (Optional) Helper for debugging/logging
CIMGUI_IMPL_API void cImGui_ImplWGPU_DebugPrintAdapterInfo(WGPUAdapter adapter);
CIMGUI_IMPL_API const char* cImGui_ImplWGPU_GetBackendTypeName(WGPUBackendType type);
CIMGUI_IMPL_API const char* cImGui_ImplWGPU_GetAdapterTypeName(WGPUAdapterType type);
#if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN)
CIMGUI_IMPL_API const char* cImGui_ImplWGPU_GetDeviceLostReasonName(WGPUDeviceLostReason type);
CIMGUI_IMPL_API const char* cImGui_ImplWGPU_GetErrorTypeName(WGPUErrorType type);
#else
#if defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
CIMGUI_IMPL_API const char* cImGui_ImplWGPU_GetLogLevelName(WGPULogLevel level);
#endif // #if defined(IMGUI_IMPL_WEBGPU_BACKEND_WGPU)
#endif // #if defined(IMGUI_IMPL_WEBGPU_BACKEND_DAWN)
// (Optional) Helper to create a surface on macOS/Wayland/X11/Window
#ifndef __EMSCRIPTEN__
struct ImGui_ImplWGPU_CreateSurfaceInfo_t
{
WGPUInstance Instance;
const char* System; // "cocoa" | "wayland" | "x11" | "win32"
void* RawWindow; // NSWindow* | 0 | Window | HWND
void* RawDisplay; // 0 | wl_display* | Display* | 0
void* RawSurface; // | wl_surface* | 0 | 0
void* RawInstance; // 0 | 0 | 0 | HINSTANCE
};
CIMGUI_IMPL_API WGPUSurface cImGui_ImplWGPU_CreateWGPUSurfaceHelper(ImGui_ImplWGPU_CreateSurfaceInfo* info);
#endif// #ifndef __EMSCRIPTEN__
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,158 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
#include "imgui.h"
#include "imgui_impl_win32.h"
#include <stdio.h>
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
// This define indicates that we have windows.h included
#define IMGUI_BACKEND_HAS_WINDOWS_H
// We need to manually declare this
extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
// Wrap this in a namespace to keep it separate from the C++ API
// This define prevents #defines in the header getting defined again (as they are already in the normal header above),
// and thus generating redefinition warnings
#define DEAR_BINDINGS_INTERNAL_GLUE_CODE
namespace cimgui
{
#include "dcimgui_impl_win32.h"
}
#undef DEAR_BINDINGS_INTERNAL_GLUE_CODE
// By-value struct conversions
static inline cimgui::ImVec2 ConvertFromCPP_ImVec2(const ::ImVec2& src)
{
cimgui::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline ::ImVec2 ConvertToCPP_ImVec2(const cimgui::ImVec2& src)
{
::ImVec2 dest;
dest.x = src.x;
dest.y = src.y;
return dest;
}
static inline cimgui::ImVec4 ConvertFromCPP_ImVec4(const ::ImVec4& src)
{
cimgui::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline ::ImVec4 ConvertToCPP_ImVec4(const cimgui::ImVec4& src)
{
::ImVec4 dest;
dest.x = src.x;
dest.y = src.y;
dest.z = src.z;
dest.w = src.w;
return dest;
}
static inline cimgui::ImTextureRef ConvertFromCPP_ImTextureRef(const ::ImTextureRef& src)
{
cimgui::ImTextureRef dest;
dest._TexData = reinterpret_cast<cimgui::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline ::ImTextureRef ConvertToCPP_ImTextureRef(const cimgui::ImTextureRef& src)
{
::ImTextureRef dest;
dest._TexData = reinterpret_cast<::ImTextureData*>(src._TexData);
dest._TexID = src._TexID;
return dest;
}
static inline cimgui::ImColor ConvertFromCPP_ImColor(const ::ImColor& src)
{
cimgui::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
static inline ::ImColor ConvertToCPP_ImColor(const cimgui::ImColor& src)
{
::ImColor dest;
dest.Value.x = src.Value.x;
dest.Value.y = src.Value.y;
dest.Value.z = src.Value.z;
dest.Value.w = src.Value.w;
return dest;
}
// Function stubs
#ifndef IMGUI_DISABLE
CIMGUI_IMPL_API bool cimgui::cImGui_ImplWin32_Init(void* hwnd)
{
return ::ImGui_ImplWin32_Init(hwnd);
}
CIMGUI_IMPL_API bool cimgui::cImGui_ImplWin32_InitForOpenGL(void* hwnd)
{
return ::ImGui_ImplWin32_InitForOpenGL(hwnd);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplWin32_Shutdown(void)
{
::ImGui_ImplWin32_Shutdown();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplWin32_NewFrame(void)
{
::ImGui_ImplWin32_NewFrame();
}
#ifdef IMGUI_BACKEND_HAS_WINDOWS_H
CIMGUI_IMPL_API LRESULT cimgui::cImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
return ::ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam);
}
#endif // #ifdef IMGUI_BACKEND_HAS_WINDOWS_H
CIMGUI_IMPL_API void cimgui::cImGui_ImplWin32_EnableDpiAwareness(void)
{
::ImGui_ImplWin32_EnableDpiAwareness();
}
CIMGUI_IMPL_API float cimgui::cImGui_ImplWin32_GetDpiScaleForHwnd(void* hwnd)
{
return ::ImGui_ImplWin32_GetDpiScaleForHwnd(hwnd);
}
CIMGUI_IMPL_API float cimgui::cImGui_ImplWin32_GetDpiScaleForMonitor(void* monitor)
{
return ::ImGui_ImplWin32_GetDpiScaleForMonitor(monitor);
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplWin32_EnableAlphaCompositing(void* hwnd)
{
::ImGui_ImplWin32_EnableAlphaCompositing(hwnd);
}
#endif // #ifndef IMGUI_DISABLE
@@ -0,0 +1,71 @@
// THIS FILE HAS BEEN AUTO-GENERATED BY THE 'DEAR BINDINGS' GENERATOR.
// **DO NOT EDIT DIRECTLY**
// https://github.com/dearimgui/dear_bindings
// dear imgui: Platform Backend for Windows (standard windows API for 32-bits AND 64-bits applications)
// ImDrawIdx: vertex index. [Compile-time configurable type]
// - To use 16-bit indices + allow large meshes: backend need to set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset (recommended).
// - To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in your imconfig.h file.
#ifndef ImDrawIdx
typedef unsigned short ImDrawIdx; // Default: 16-bit (for maximum compatibility with renderer backends)
#endif // #ifndef ImDrawIdx
// This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
// Implemented features:
// [X] Platform: Clipboard support (for Win32 this is actually part of core dear imgui)
// [X] Platform: Mouse support. Can discriminate Mouse/TouchScreen/Pen.
// [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy VK_* values are obsolete since 1.87 and not supported since 1.91.5]
// [X] Platform: Gamepad support.
// [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
// [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
// Learn about Dear ImGui:
// - FAQ https://dearimgui.com/faq
// - Getting Started https://dearimgui.com/getting-started
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
// - Introduction, links and more at the top of imgui.cpp
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include "dcimgui.h"
#ifndef IMGUI_DISABLE
typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
CIMGUI_IMPL_API bool cImGui_ImplWin32_Init(void* hwnd);
CIMGUI_IMPL_API bool cImGui_ImplWin32_InitForOpenGL(void* hwnd);
CIMGUI_IMPL_API void cImGui_ImplWin32_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplWin32_NewFrame(void);
// Win32 message handler your application needs to call.
// - Intentionally commented out in a '#if 0' block to avoid dragging dependencies on <windows.h> from this helper.
// - You should COPY the line below into your .cpp code to forward declare the function and then you can call it.
// - Call from your application's message handler. Keep calling your message handler unless this function returns TRUE.
#ifdef IMGUI_BACKEND_HAS_WINDOWS_H
extern
CIMGUI_IMPL_API LRESULT cImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
#endif // #ifdef IMGUI_BACKEND_HAS_WINDOWS_H
// DPI-related helpers (optional)
// - Use to enable DPI awareness without having to create an application manifest.
// - Your own app may already do this via a manifest or explicit calls. This is mostly useful for our examples/ apps.
// - In theory we could call simple functions from Windows SDK such as SetProcessDPIAware(), SetProcessDpiAwareness(), etc.
// but most of the functions provided by Microsoft require Windows 8.1/10+ SDK at compile time and Windows 8/10+ at runtime,
// neither of which we want to require the user to have. So we dynamically select and load those functions to avoid dependencies.
CIMGUI_IMPL_API void cImGui_ImplWin32_EnableDpiAwareness(void);
CIMGUI_IMPL_API float cImGui_ImplWin32_GetDpiScaleForHwnd(void* hwnd); // HWND hwnd
CIMGUI_IMPL_API float cImGui_ImplWin32_GetDpiScaleForMonitor(void* monitor); // HMONITOR monitor
// Transparency related helpers (optional) [experimental]
// - Use to enable alpha compositing transparency with the desktop.
// - Use together with e.g. clearing your framebuffer with zero-alpha.
CIMGUI_IMPL_API void cImGui_ImplWin32_EnableAlphaCompositing(void* hwnd); // HWND hwnd
#endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus
} // End of extern "C" block
#endif
@@ -0,0 +1,427 @@
{
"defines": [],
"enums": [],
"typedefs": [
{
"name": "ImDrawIdx",
"type": {
"declaration": "unsigned short",
"description": {
"kind": "Builtin",
"builtin_type": "unsigned_short"
}
},
"comments": {
"attached": "// Default: 16-bit (for maximum compatibility with renderer backends)"
},
"conditionals": [
{
"condition": "ifndef",
"expression": "ImDrawIdx"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h"
}
}
],
"structs": [
{
"name": "ImDrawData",
"original_fully_qualified_name": "ImDrawData",
"kind": "struct",
"by_value": false,
"forward_declaration": true,
"is_anonymous": false,
"fields": [],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 1
}
}
],
"functions": [
{
"name": "cImGui_ImplWin32_Init",
"original_fully_qualified_name": "ImGui_ImplWin32_Init",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "hwnd",
"type": {
"declaration": "void*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Builtin",
"builtin_type": "void"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 25
}
},
{
"name": "cImGui_ImplWin32_InitForOpenGL",
"original_fully_qualified_name": "ImGui_ImplWin32_InitForOpenGL",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [
{
"name": "hwnd",
"type": {
"declaration": "void*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Builtin",
"builtin_type": "void"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 26
}
},
{
"name": "cImGui_ImplWin32_Shutdown",
"original_fully_qualified_name": "ImGui_ImplWin32_Shutdown",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 27
}
},
{
"name": "cImGui_ImplWin32_NewFrame",
"original_fully_qualified_name": "ImGui_ImplWin32_NewFrame",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 28
}
},
{
"name": "cImGui_ImplWin32_WndProcHandler",
"original_fully_qualified_name": "ImGui_ImplWin32_WndProcHandler",
"return_type": {
"declaration": "LRESULT",
"description": {
"kind": "User",
"name": "LRESULT"
}
},
"arguments": [
{
"name": "hWnd",
"type": {
"declaration": "HWND",
"description": {
"kind": "User",
"name": "HWND"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "msg",
"type": {
"declaration": "UINT",
"description": {
"kind": "User",
"name": "UINT"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "wParam",
"type": {
"declaration": "WPARAM",
"description": {
"kind": "User",
"name": "WPARAM"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{
"name": "lParam",
"type": {
"declaration": "LPARAM",
"description": {
"kind": "User",
"name": "LPARAM"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"conditionals": [
{
"condition": "ifdef",
"expression": "IMGUI_BACKEND_HAS_WINDOWS_H"
}
],
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 36
}
},
{
"name": "cImGui_ImplWin32_EnableDpiAwareness",
"original_fully_qualified_name": "ImGui_ImplWin32_EnableDpiAwareness",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// DPI-related helpers (optional)",
"// - Use to enable DPI awareness without having to create an application manifest.",
"// - Your own app may already do this via a manifest or explicit calls. This is mostly useful for our examples/ apps.",
"// - In theory we could call simple functions from Windows SDK such as SetProcessDPIAware(), SetProcessDpiAwareness(), etc.",
"// but most of the functions provided by Microsoft require Windows 8.1/10+ SDK at compile time and Windows 8/10+ at runtime,",
"// neither of which we want to require the user to have. So we dynamically select and load those functions to avoid dependencies."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 45
}
},
{
"name": "cImGui_ImplWin32_GetDpiScaleForHwnd",
"original_fully_qualified_name": "ImGui_ImplWin32_GetDpiScaleForHwnd",
"return_type": {
"declaration": "float",
"description": {
"kind": "Builtin",
"builtin_type": "float"
}
},
"arguments": [
{
"name": "hwnd",
"type": {
"declaration": "void*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Builtin",
"builtin_type": "void"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// HWND hwnd"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 46
}
},
{
"name": "cImGui_ImplWin32_GetDpiScaleForMonitor",
"original_fully_qualified_name": "ImGui_ImplWin32_GetDpiScaleForMonitor",
"return_type": {
"declaration": "float",
"description": {
"kind": "Builtin",
"builtin_type": "float"
}
},
"arguments": [
{
"name": "monitor",
"type": {
"declaration": "void*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Builtin",
"builtin_type": "void"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"attached": "// HMONITOR monitor"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 47
}
},
{
"name": "cImGui_ImplWin32_EnableAlphaCompositing",
"original_fully_qualified_name": "ImGui_ImplWin32_EnableAlphaCompositing",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "hwnd",
"type": {
"declaration": "void*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "Builtin",
"builtin_type": "void"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// Transparency related helpers (optional) [experimental]",
"// - Use to enable alpha compositing transparency with the desktop.",
"// - Use together with e.g. clearing your framebuffer with zero-alpha."
],
"attached": "// HWND hwnd"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_win32.h",
"line": 52
}
}
]
}
@@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}
File diff suppressed because it is too large Load Diff