From f9764a4f532561f6e2e985ff3b25112f1132ce44 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Fri, 16 Jul 2010 23:13:33 -0700 Subject: Add program for linear gradient. This change adds a new DrawLinearGradientProgram class to enable the drawing of linear gradients. Two new vertex and fragment shaders are introduced, based on DrawTextureProgram's shaders. Change-Id: I885afc076bb6cef8cd3962ae21a086fa6a03bf96 --- libs/hwui/Program.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'libs/hwui/Program.cpp') diff --git a/libs/hwui/Program.cpp b/libs/hwui/Program.cpp index 609b28a4f361..6202ba3647da 100644 --- a/libs/hwui/Program.cpp +++ b/libs/hwui/Program.cpp @@ -33,6 +33,9 @@ namespace uirenderer { #include "shaders/drawTexture.vert" #include "shaders/drawTexture.frag" +#include "shaders/drawLinearGradient.vert" +#include "shaders/drawLinearGradient.frag" + /////////////////////////////////////////////////////////////////////////////// // Base program /////////////////////////////////////////////////////////////////////////////// @@ -178,5 +181,26 @@ void DrawTextureProgram::remove() { glDisableVertexAttribArray(texCoords); } +/////////////////////////////////////////////////////////////////////////////// +// Draw linear gradient +/////////////////////////////////////////////////////////////////////////////// + +DrawLinearGradientProgram::DrawLinearGradientProgram(): + DrawColorProgram(gDrawLinearGradientVertexShader, gDrawLinearGradientFragmentShader) { + gradient = addUniform("gradient"); + gradientLength = addUniform("gradientLength"); + sampler = addUniform("sampler"); +} + +void DrawLinearGradientProgram::use() { + DrawColorProgram::use(); + glActiveTexture(GL_TEXTURE0); + glUniform1i(sampler, 0); +} + +void DrawLinearGradientProgram::remove() { + DrawColorProgram::remove(); +} + }; // namespace uirenderer }; // namespace android -- cgit v1.2.3-59-g8ed1b