webgl: Set uniforms for all gradient colors
Was mistakenly not uploading all colors. Fixes #1240.
This commit is contained in:
parent
f0a02f00b5
commit
3ddfd516d5
|
@ -8,8 +8,8 @@ uniform vec4 add_color;
|
|||
uniform mat3 u_matrix;
|
||||
|
||||
uniform int u_gradient_type;
|
||||
uniform float u_ratios[15];
|
||||
uniform vec4 u_colors[15];
|
||||
uniform float u_ratios[16];
|
||||
uniform vec4 u_colors[16];
|
||||
uniform int u_num_colors;
|
||||
uniform int u_repeat_mode;
|
||||
uniform float u_focal_point;
|
||||
|
|
|
@ -507,7 +507,7 @@ impl WebGlRenderBackend {
|
|||
*color = srgb_to_linear(*color);
|
||||
}
|
||||
}
|
||||
for i in num_colors..8 {
|
||||
for i in num_colors..MAX_GRADIENT_COLORS {
|
||||
ratios[i] = ratios[i - 1];
|
||||
colors[i] = colors[i - 1];
|
||||
}
|
||||
|
@ -1019,8 +1019,12 @@ impl RenderBackend for WebGlRenderBackend {
|
|||
gradient.gradient_type,
|
||||
);
|
||||
program.uniform1fv(&self.gl, ShaderUniform::GradientRatios, &gradient.ratios);
|
||||
let colors =
|
||||
unsafe { std::slice::from_raw_parts(gradient.colors[0].as_ptr(), 32) };
|
||||
let colors = unsafe {
|
||||
std::slice::from_raw_parts(
|
||||
gradient.colors[0].as_ptr(),
|
||||
MAX_GRADIENT_COLORS * 4,
|
||||
)
|
||||
};
|
||||
program.uniform4fv(&self.gl, ShaderUniform::GradientColors, &colors);
|
||||
program.uniform1i(
|
||||
&self.gl,
|
||||
|
|
Loading…
Reference in New Issue