#[cfg(doctest)]
mod removed_free_api_contracts {
struct ProcessSysEvent;
struct ProcessSysEventForContext;
struct Sdl3PollEventLl;
struct SetGamepadMode;
struct SetGamepadModeForContext;
struct SetGamepadModeManual;
struct SetGamepadModeManualForContext;
struct RemovedOpenGlViewportTrace;
}
mod backend;
mod callback_events;
mod callback_ownership;
mod clipboard;
mod core;
mod cursors;
mod events;
mod input;
#[cfg(any(
feature = "opengl3-renderer",
feature = "sdlrenderer3-renderer",
feature = "sdlgpu3-renderer"
))]
mod renderer_textures;
mod runtime;
#[cfg(test)]
mod tests;
mod viewport;
#[cfg(feature = "opengl3-renderer")]
use std::ffi::CString;
use std::ffi::c_void;
#[cfg(any(
feature = "opengl3-renderer",
feature = "sdlrenderer3-renderer",
feature = "sdlgpu3-renderer"
))]
use dear_imgui_rs::ContextBinding;
#[cfg(any(
feature = "opengl3-renderer",
feature = "sdlrenderer3-renderer",
feature = "sdlgpu3-renderer"
))]
use dear_imgui_rs::render::{DrawData, PendingFrame, ReconciledFrame};
use dear_imgui_rs::{Context, ContextId};
#[cfg(feature = "opengl3-renderer")]
use dear_imgui_sys::backend_shim::opengl3 as opengl3_backend;
#[cfg(feature = "sdlgpu3-renderer")]
use sdl3::gpu::CommandBuffer;
#[cfg(feature = "sdlgpu3-renderer")]
use sdl3::gpu::RenderPass;
#[cfg(feature = "sdlrenderer3-renderer")]
use sdl3::render::WindowCanvas;
use sdl3::video::{GLContext, Window};
use sdl3_sys::events::SDL_Event;
#[cfg(feature = "sdlgpu3-renderer")]
use sdl3_sys::gpu::{
SDL_GPUCommandBuffer, SDL_GPUDevice, SDL_GPUGraphicsPipeline, SDL_GPUPresentMode,
SDL_GPURenderPass, SDL_GPUSampleCount, SDL_GPUSwapchainComposition, SDL_GPUTextureFormat,
};
#[cfg(feature = "sdlrenderer3-renderer")]
use sdl3_sys::render::SDL_Renderer;
pub use self::backend::Sdl3PlatformBackend;
#[cfg(any(feature = "opengl3-renderer", feature = "sdlgpu3-renderer"))]
pub use self::backend::Sdl3ViewportRouteError;
#[cfg(feature = "sdlrenderer3-renderer")]
pub use self::backend::SdlRenderer3Backend;
#[cfg(feature = "opengl3-renderer")]
pub use self::backend::{
Sdl3OpenGl3Backend, Sdl3OpenGl3PreparedViewportFrame, Sdl3OpenGl3ViewportRouteError,
Sdl3OpenGl3ViewportRouteFault,
};
#[cfg(feature = "sdlgpu3-renderer")]
pub use self::backend::{
SdlGpu3PreparedViewportFrame, SdlGpu3RenderPassFrame, SdlGpu3RendererBackend,
};
pub use self::callback_events::{
Sdl3CallbackEvent, Sdl3CallbackEventBatch, Sdl3CallbackEventHandoff,
Sdl3CallbackEventHandoffError,
};
#[cfg(feature = "multi-viewport")]
pub use self::core::Sdl3VulkanSurfaceError;
pub use self::core::{Sdl3BackendError, Sdl3OpenGlViewportSwapInterval};
use self::core::{ffi, sdl3_new_frame_impl, with_context};
#[cfg(feature = "opengl3-renderer")]
use self::core::{init_opengl3_impl, new_frame_opengl3_impl, shutdown_opengl3_renderer_impl};
#[cfg(feature = "sdlrenderer3-renderer")]
use self::core::{new_frame_sdlrenderer3_impl, shutdown_sdlrenderer3_renderer_impl};
use self::events::{process_callback_owned_event, process_owned_event, process_raw_sys_event};
pub use self::input::{GamepadMode, MouseCaptureMode};
use self::input::{set_gamepad_mode, set_gamepad_mode_manual, set_mouse_capture_mode};
#[cfg(feature = "multi-viewport")]
pub use self::runtime::Sdl3VulkanSurfaceProvider;
pub use self::runtime::{Sdl3ViewportAttempt, Sdl3ViewportRendererAdapter};
#[cfg(feature = "sdlgpu3-renderer")]
pub use self::viewport::SdlGpu3InitInfo;
pub use self::viewport::enable_native_ime_ui;
#[cfg(feature = "sdlgpu3-renderer")]
use self::core::{init_sdlgpu3_impl, new_frame_sdlgpu3_impl, shutdown_sdlgpu3_renderer_impl};
use self::runtime::{NativeRendererKind, PlatformGraphicsKind, RuntimeRegistration};
#[cfg(feature = "sdlrenderer3-renderer")]
use self::viewport::init_for_canvas;
#[cfg(target_os = "windows")]
use self::viewport::init_for_d3d;
#[cfg(feature = "sdlgpu3-renderer")]
use self::viewport::init_for_sdlgpu3;
use self::viewport::{
init_for_metal, init_for_other, init_for_sdl_gpu, init_for_sdl_renderer, init_for_vulkan,
init_platform_for_opengl,
};
#[cfg(feature = "opengl3-renderer")]
use self::viewport::{init_for_opengl, init_for_opengl_default};