From 354c69fda0d92f59ae63b64c39596f1947a64a47 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 6 Jan 2016 11:31:18 -0800 Subject: [PATCH] Fix the call to `glUniform4f()` when setting the filter parameters. It needed the program to be bound first. --- src/renderer.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/renderer.rs b/src/renderer.rs index f08268dc5c..9201a2a43e 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -1031,6 +1031,7 @@ impl Renderer { gl::enable(gl::BLEND); let program; + let mut filter_params = None; match info.operation { CompositionOp::Filter(LowLevelFilterOp::Brightness( amount)) => { @@ -1106,11 +1107,7 @@ impl Renderer { } }; - self.device.set_uniform_4f(self.u_filter_params, - opcode, - amount, - param0, - param1); + filter_params = Some((opcode, amount, param0, param1)); } CompositionOp::MixBlend(MixBlendMode::Multiply) => { gl::blend_func(gl::DST_COLOR, gl::ZERO); @@ -1134,6 +1131,14 @@ impl Renderer { } self.device.bind_program(program, &projection); + + if let Some(ref filter_params) = filter_params { + self.device.set_uniform_4f(self.u_filter_params, + filter_params.0, + filter_params.1, + filter_params.2, + filter_params.3); + } } let (mut indices, mut vertices) = (vec![], vec![]);