18 bool enable_validation =
true;
21 bool enable_debug_markers =
false;
25 bool compute_shaders =
true;
26 bool geometry_shaders =
false;
27 bool tessellation_shaders =
false;
28 bool multi_viewport =
false;
29 bool sampler_anisotropy =
true;
30 bool fill_mode_non_solid =
false;
38 } memory_strategy = MemoryStrategy::BALANCED;
45 } command_pooling = CommandPooling::PER_THREAD;
48 uint32_t max_frames_in_flight = 2;
51 bool enable_compute_queue =
true;
54 bool enable_transfer_queue =
false;
61 } shader_compilation = ShaderCompilation::CACHED;
64 std::filesystem::path shader_cache_dir =
"cache/shaders";
79 uint32_t max_windows = 16;
82 uint32_t max_staging_buffer_mb = 256;
85 uint32_t max_compute_buffer_mb = 1024;
88 uint32_t max_texture_cache_mb = 2048;
91 uint32_t max_descriptor_sets = 1024;
94 uint32_t max_pipelines = 256;
157 uint32_t image_count = 3;
160 bool enable_regions =
true;
163 uint32_t max_regions_per_window = 256;
169 bool measure_frame_time {};
267 uint32_t target_frame_rate = 60;
277#if defined(MAYAFLUX_PLATFORM_LINUX)
278 "sans-serif",
"", 24, 512
279#elif defined(MAYAFLUX_PLATFORM_MACOS)
280 "Helvetica Neue",
"", 24, 512
281#elif defined(MAYAFLUX_PLATFORM_WINDOWS)
282 "Segoe UI",
"", 24, 512
284 "sans-serif",
"", 24, 512
303 std::string title {
"MayaFlux Window" };
307 uint32_t height { 1080 };
310 int32_t monitor_id { -1 };
316 bool resizable {
true };
319 bool decorated {
true };
328 bool register_for_processing {
true };
338 uint32_t color_channels { 4 };
343 std::array<float, 4> clear_color { { 0.0F, 0.0F, 0.0F, 1.0F } };
513 bool is_primary =
false;
CursorMode
Cursor visibility and behavior.
@ DISABLED
Invisible and locked (FPS camera)
@ NORMAL
Visible and movable.
@ CAPTURED
Invisible, locked, raw motion.
@ HIDDEN
Invisible but movable.
WindowEventType
Types of window and input events.
std::function< void(const WindowEvent &)> WindowEventCallback
enum MayaFlux::Core::GlfwPreInitConfig::Platform platform
bool headless
Request OpenGL debug context (if using OpenGL backend)
bool cocoa_chdir_resources
Platform
Force a specific windowing platform on Linux.
bool disable_libdecor
this prevents crash on some wayland compositors
Configuration hints for GLFW initialization.
GraphicsSurfaceInfo surface_info
System-wide configuration for visual stream processing.
WindowingBackend
Windowing library selection.
GlfwPreInitConfig glfw_preinit_config
Pre-initialization configuration for GLFW.
GraphicsResourceLimits resource_limits
Resource limits.
GraphicsBackendInfo backend_info
Graphics backend configuration.
std::vector< std::string > required_extensions
Backend-specific extensions to request.
MemoryStrategy
Memory allocation strategy.
std::vector< std::string > optional_extensions
CommandPooling
Command buffer pooling strategy.
ShaderCompilation
Shader compilation strategy.
Configuration for graphics API backend (Vulkan/OpenGL/etc.)
Resource limits and budgets for graphics subsystem.
ColorSpace
Default color space for window surfaces.
SurfaceFormat
Default pixel format for window surfaces (Vulkan-compatible)
PresentMode
Frame presentation strategy.
std::unordered_map< std::string, std::any > backend_options
Backend-specific configuration parameters.
System-wide configuration for visual stream processing.
Information about a physical display.
std::string style
Optional style hint (e.g.
uint32_t atlas_size
Atlas texture dimension (power of two).
uint32_t pixel_size
Glyph rasterization height in pixels.
std::string family
Font family name forwarded to Platform::find_font().
Default font configuration for Portal::Text.
bool operator==(const VideoMode &other) const
std::optional< GraphicsSurfaceInfo::PresentMode > present_mode
Override global present mode (nullopt = use global default)
std::optional< GraphicsSurfaceInfo::SurfaceFormat > surface_format
Override global surface format (nullopt = use global default)
Configuration for creating a single window instance.
std::variant< std::monostate, ResizeData, KeyData, MousePosData, MouseButtonData, ScrollData, std::any > EventData
WindowEvent(const WindowEvent &)=default
WindowEvent(WindowEvent &&) noexcept=default
Event data for window and input events.
double average_frame_time
Runtime state of a window (mutable by system, read by user)