You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Broaden GLFW backend conditionals to include METAL and OPENGL variants and integrate a new OpenGL-based preview pipeline. Key changes:
- Replaced many IMIV_BACKEND_VULKAN_GLFW-only #if checks with ORs to also enable IMIV_BACKEND_METAL_GLFW and IMIV_BACKEND_OPENGL_GLFW.
- Added platform_glfw_get_proc_address and header declaration for loading GL entry points.
- Major OpenGL renderer updates: new RendererTextureBackendState fields, preview linear/nearest textures, source texture, preview dirty/params tracking, and preview framebuffer handling.
- Introduced shader-based BasicPreviewProgram, program/VAO creation, shader compile/link helpers, and runtime loading of extra GL procs (glUniform1f, glDrawArrays, framebuffer funcs, etc.).
- Implemented render_preview_texture to draw into an intermediate framebuffer using a fullscreen triangle and configurable controls (exposure, gamma, offset, color modes, channel, orientation, etc.).
- Updated texture allocation/update/destroy flows to separate source texture from preview targets and generate preview textures on demand.
- Fixed RGBA float pixel packing for 1/2/3/4 channel images and added comparison for preview control changes to avoid redundant renders.
- Adjusted ImGui/test-engine/platform interactions and removed Vulkan-specific strings where appropriate.
- Ensured cleanup of preview program and framebuffer on renderer shutdown.
Overall this enables OpenGL-backed previews with shader-driven display controls and extends GLFW-guarded features to other GLFW-based backends.
0 commit comments