diff options
Diffstat (limited to 'libs/hwui/Program.cpp')
-rw-r--r-- | libs/hwui/Program.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
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 |