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 mat3 u_matrix;
|
||||||
|
|
||||||
uniform int u_gradient_type;
|
uniform int u_gradient_type;
|
||||||
uniform float u_ratios[15];
|
uniform float u_ratios[16];
|
||||||
uniform vec4 u_colors[15];
|
uniform vec4 u_colors[16];
|
||||||
uniform int u_num_colors;
|
uniform int u_num_colors;
|
||||||
uniform int u_repeat_mode;
|
uniform int u_repeat_mode;
|
||||||
uniform float u_focal_point;
|
uniform float u_focal_point;
|
||||||
|
|
|
@ -507,7 +507,7 @@ impl WebGlRenderBackend {
|
||||||
*color = srgb_to_linear(*color);
|
*color = srgb_to_linear(*color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for i in num_colors..8 {
|
for i in num_colors..MAX_GRADIENT_COLORS {
|
||||||
ratios[i] = ratios[i - 1];
|
ratios[i] = ratios[i - 1];
|
||||||
colors[i] = colors[i - 1];
|
colors[i] = colors[i - 1];
|
||||||
}
|
}
|
||||||
|
@ -1019,8 +1019,12 @@ impl RenderBackend for WebGlRenderBackend {
|
||||||
gradient.gradient_type,
|
gradient.gradient_type,
|
||||||
);
|
);
|
||||||
program.uniform1fv(&self.gl, ShaderUniform::GradientRatios, &gradient.ratios);
|
program.uniform1fv(&self.gl, ShaderUniform::GradientRatios, &gradient.ratios);
|
||||||
let colors =
|
let colors = unsafe {
|
||||||
unsafe { std::slice::from_raw_parts(gradient.colors[0].as_ptr(), 32) };
|
std::slice::from_raw_parts(
|
||||||
|
gradient.colors[0].as_ptr(),
|
||||||
|
MAX_GRADIENT_COLORS * 4,
|
||||||
|
)
|
||||||
|
};
|
||||||
program.uniform4fv(&self.gl, ShaderUniform::GradientColors, &colors);
|
program.uniform4fv(&self.gl, ShaderUniform::GradientColors, &colors);
|
||||||
program.uniform1i(
|
program.uniform1i(
|
||||||
&self.gl,
|
&self.gl,
|
||||||
|
|
Loading…
Reference in New Issue