mirror of
https://github.com/johndoe6345789/SDL3CPlusPlus.git
synced 2026-04-26 22:54:59 +00:00
- Added a new GUI renderer implementation in gui_renderer_old.cpp. - Introduced functionality to parse SVG files and extract circle elements. - Implemented drawing methods for rectangles, text, and SVG graphics. - Added clipping functionality to restrict drawing to specified areas. - Enhanced pixel blending for transparency handling in the rendering process. - Created a staging buffer for efficient pixel transfer to the GPU. - Implemented resizing and clearing of the canvas for dynamic GUI updates. - Added error handling for file operations and parsing.
34 lines
761 B
GLSL
34 lines
761 B
GLSL
#version 450
|
|
|
|
layout(location = 0) in vec3 inPos;
|
|
layout(location = 1) in vec4 inColor;
|
|
|
|
layout(location = 0) out vec4 fragColor;
|
|
|
|
layout(push_constant) uniform PushConstants {
|
|
mat4 model;
|
|
mat4 viewProj;
|
|
// Extended fields for PBR/atmospherics (ignored by basic shaders)
|
|
mat4 view;
|
|
mat4 proj;
|
|
mat4 lightViewProj;
|
|
vec3 cameraPos;
|
|
float time;
|
|
// Atmospherics parameters
|
|
float ambientStrength;
|
|
float fogDensity;
|
|
float fogStart;
|
|
float fogEnd;
|
|
vec3 fogColor;
|
|
float gamma;
|
|
float exposure;
|
|
int enableShadows;
|
|
int enableFog;
|
|
} pushConstants;
|
|
|
|
void main() {
|
|
fragColor = inColor;
|
|
vec4 worldPos = pushConstants.model * vec4(inPos, 1.0);
|
|
gl_Position = pushConstants.viewProj * worldPos;
|
|
}
|