From a4a4bca745fc9e5417243be404c77486fcdfe336 Mon Sep 17 00:00:00 2001
From: Mathias Gumz <akira at fluxbox dot org>
Date: Wed, 6 Feb 2013 08:04:40 +0100
Subject: Reduces memory footprint

The buffer for some gradients does not have to be width * height big when two
lines are sufficient.
---
 src/FbTk/TextureRender.cc | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/src/FbTk/TextureRender.cc b/src/FbTk/TextureRender.cc
index 93c91f1..ce1613a 100644
--- a/src/FbTk/TextureRender.cc
+++ b/src/FbTk/TextureRender.cc
@@ -403,7 +403,7 @@ void renderPyramidGradient(bool interlaced,
         FbTk::ImageControl& imgctrl) {
 
 
-    const size_t s = width * height;
+    const size_t s = width + height;
 
     // we need 2 gradients but use only 'one' buffer
     FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0];
@@ -446,7 +446,7 @@ void renderRectangleGradient(bool interlaced,
         const FbTk::Color* from, const FbTk::Color* to,
         FbTk::ImageControl& imgctrl) {
 
-    const size_t s = width * height;
+    const size_t s = width + height;
 
     // we need 2 gradients but use only 'one' buffer
     FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0];
@@ -488,7 +488,7 @@ void renderPipeCrossGradient(bool interlaced,
         const FbTk::Color* from, const FbTk::Color* to,
         FbTk::ImageControl& imgctrl) {
 
-    size_t s = width * height;
+    size_t s = width + height;
 
     // we need 2 gradients but use only 'one' buffer
     FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0];
@@ -535,7 +535,7 @@ void renderDiagonalGradient(bool interlaced,
         FbTk::ImageControl& imgctrl) {
 
 
-    size_t s = width * height;
+    size_t s = width + height;
 
     // we need 2 gradients but use only 'one' buffer
     FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0];
@@ -569,8 +569,6 @@ void renderEllipticGradient(bool interlaced,
         const FbTk::Color* from, const FbTk::Color* to,
         FbTk::ImageControl& imgctrl) {
 
-    size_t s = width * height;
-
     size_t i;
     int x;
     int y;
@@ -614,7 +612,7 @@ void renderCrossDiagonalGradient(bool interlaced,
         const FbTk::Color* from, const FbTk::Color* to,
         FbTk::ImageControl& imgctrl) {
 
-    size_t s = width * height;
+    size_t s = width + height;
 
     // we need 2 gradients but use only 'one' buffer
     FbTk::RGBA* x_gradient = (FbTk::RGBA*)&getGradientBuffer(s * sizeof(FbTk::RGBA))[0];
-- 
cgit v0.11.2