summaryrefslogtreecommitdiffstats
path: root/glow/src/triangle/gradient.rs
diff options
context:
space:
mode:
Diffstat (limited to 'glow/src/triangle/gradient.rs')
-rw-r--r--glow/src/triangle/gradient.rs27
1 files changed, 13 insertions, 14 deletions
diff --git a/glow/src/triangle/gradient.rs b/glow/src/triangle/gradient.rs
index a8bb5ec5..6bca44ee 100644
--- a/glow/src/triangle/gradient.rs
+++ b/glow/src/triangle/gradient.rs
@@ -1,25 +1,25 @@
use crate::program::Version;
-use crate::triangle::{set_transform, simple_triangle_program};
+use crate::triangle;
use glow::{Context, HasContext, NativeProgram};
use iced_graphics::gradient::Gradient;
use iced_graphics::gradient::Linear;
use iced_graphics::Transformation;
#[derive(Debug)]
-pub struct GradientProgram {
+pub struct Program {
pub program: <Context as HasContext>::Program,
- pub uniform_data: GradientUniformData,
+ pub uniform_data: UniformData,
}
#[derive(Debug)]
-pub struct GradientUniformData {
+pub struct UniformData {
gradient: Gradient,
transform: Transformation,
- uniform_locations: GradientUniformLocations,
+ uniform_locations: UniformLocations,
}
#[derive(Debug)]
-struct GradientUniformLocations {
+struct UniformLocations {
gradient_direction_location: <Context as HasContext>::UniformLocation,
color_stops_size_location: <Context as HasContext>::UniformLocation,
//currently the maximum number of stops is 16 due to lack of SSBO in GL2.1
@@ -27,9 +27,9 @@ struct GradientUniformLocations {
transform_location: <Context as HasContext>::UniformLocation,
}
-impl GradientProgram {
+impl Program {
pub fn new(gl: &Context, shader_version: &Version) -> Self {
- let program = simple_triangle_program(
+ let program = triangle::program(
gl,
shader_version,
include_str!("../shader/common/gradient.frag"),
@@ -37,7 +37,7 @@ impl GradientProgram {
Self {
program,
- uniform_data: GradientUniformData::new(gl, program),
+ uniform_data: UniformData::new(gl, program),
}
}
@@ -48,7 +48,7 @@ impl GradientProgram {
transform: &Transformation,
) {
if transform != &self.uniform_data.transform {
- set_transform(
+ triangle::set_transform(
gl,
self.uniform_data.uniform_locations.transform_location,
*transform,
@@ -117,12 +117,11 @@ impl GradientProgram {
transform: &Transformation,
) {
unsafe { gl.use_program(Some(self.program)) }
-
self.write_uniforms(gl, gradient, transform);
}
}
-impl GradientUniformData {
+impl UniformData {
fn new(gl: &Context, program: NativeProgram) -> Self {
let gradient_direction_location =
unsafe { gl.get_uniform_location(program, "gradient_direction") }
@@ -141,14 +140,14 @@ impl GradientUniformData {
unsafe { gl.get_uniform_location(program, "u_Transform") }
.expect("Gradient - Get u_Transform.");
- GradientUniformData {
+ Self {
gradient: Gradient::Linear(Linear {
start: Default::default(),
end: Default::default(),
color_stops: vec![],
}),
transform: Transformation::identity(),
- uniform_locations: GradientUniformLocations {
+ uniform_locations: UniformLocations {
gradient_direction_location,
color_stops_size_location,
color_stops_location,