summaryrefslogtreecommitdiff
path: root/libmetacity
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2016-07-07 19:31:19 +0300
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2016-07-07 19:31:19 +0300
commitf8fbc7e01fa301a95bbfc67f307ac9caadbf213d (patch)
tree02c3ef194a7bc3b678b63a74acd461f4e6644505 /libmetacity
parentd43837aafb5e2156c864820ee6cd5801d041e81f (diff)
downloadmetacity-f8fbc7e01fa301a95bbfc67f307ac9caadbf213d.tar.gz
libmetacity: remove unused gradient functions
Diffstat (limited to 'libmetacity')
-rw-r--r--libmetacity/meta-gradient-private.h22
-rw-r--r--libmetacity/meta-gradient.c676
2 files changed, 0 insertions, 698 deletions
diff --git a/libmetacity/meta-gradient-private.h b/libmetacity/meta-gradient-private.h
index 99ee64e5..695b37a0 100644
--- a/libmetacity/meta-gradient-private.h
+++ b/libmetacity/meta-gradient-private.h
@@ -41,28 +41,6 @@ typedef enum
} MetaGradientType;
G_GNUC_INTERNAL
-GdkPixbuf *meta_gradient_create_simple (int width,
- int height,
- const GdkRGBA *from,
- const GdkRGBA *to,
- MetaGradientType style);
-
-G_GNUC_INTERNAL
-GdkPixbuf *meta_gradient_create_multi (int width,
- int height,
- const GdkRGBA *colors,
- int n_colors,
- MetaGradientType style);
-
-G_GNUC_INTERNAL
-GdkPixbuf *meta_gradient_create_interwoven (int width,
- int height,
- const GdkRGBA colors1[2],
- int thickness1,
- const GdkRGBA colors2[2],
- int thickness2);
-
-G_GNUC_INTERNAL
void meta_gradient_add_alpha (GdkPixbuf *pixbuf,
const guchar *alphas,
int n_alphas,
diff --git a/libmetacity/meta-gradient.c b/libmetacity/meta-gradient.c
index c1965cd2..0dc3e7fc 100644
--- a/libmetacity/meta-gradient.c
+++ b/libmetacity/meta-gradient.c
@@ -30,486 +30,6 @@
#include "meta-gradient-private.h"
static void
-free_buffer (guchar *pixels,
- gpointer data)
-{
- g_free (pixels);
-}
-
-static GdkPixbuf*
-blank_pixbuf (int width,
- int height)
-{
- guchar *buf;
- int rowstride;
-
- g_return_val_if_fail (width > 0, NULL);
- g_return_val_if_fail (height > 0, NULL);
-
- /* Always align rows to 32-bit boundaries */
- rowstride = 4 * ((4 * width + 4) / 4);
-
- buf = g_try_malloc (height * rowstride);
- if (!buf)
- return NULL;
-
- return gdk_pixbuf_new_from_data (buf, GDK_COLORSPACE_RGB,
- TRUE, 8,
- width, height, rowstride,
- free_buffer, NULL);
-}
-
-/*
- *----------------------------------------------------------------------
- * meta_gradient_create_horizontal--
- * Renders a horizontal linear gradient of the specified size in the
- * GdkPixbuf format with a border of the specified type.
- *
- * Returns:
- * A 24bit GdkPixbuf with the gradient (no alpha channel).
- *
- * Side effects:
- * None
- *----------------------------------------------------------------------
- */
-static GdkPixbuf*
-meta_gradient_create_horizontal (int width,
- int height,
- const GdkRGBA *from,
- const GdkRGBA *to)
-{
- int i;
- long r, g, b, a, dr, dg, db, da;
- GdkPixbuf *pixbuf;
- unsigned char *ptr;
- unsigned char *pixels;
- int r0, g0, b0, a0;
- int rf, gf, bf, af;
- int rowstride;
-
- pixbuf = blank_pixbuf (width, height);
- if (pixbuf == NULL)
- return NULL;
-
- pixels = gdk_pixbuf_get_pixels (pixbuf);
- ptr = pixels;
- rowstride = gdk_pixbuf_get_rowstride (pixbuf);
-
- r0 = (guchar) (from->red * 0xff);
- g0 = (guchar) (from->green * 0xff);
- b0 = (guchar) (from->blue * 0xff);
- a0 = (guchar) (from->alpha * 0xff);
- rf = (guchar) (to->red * 0xff);
- gf = (guchar) (to->green * 0xff);
- bf = (guchar) (to->blue * 0xff);
- af = (guchar) (to->alpha * 0xff);
-
- r = r0 << 16;
- g = g0 << 16;
- b = b0 << 16;
- a = a0 << 16;
-
- dr = ((rf-r0)<<16)/(int)width;
- dg = ((gf-g0)<<16)/(int)width;
- db = ((bf-b0)<<16)/(int)width;
- da = ((af-a0)<<16)/(int)width;
- /* render the first line */
- for (i=0; i<width; i++)
- {
- *(ptr++) = (unsigned char)(r>>16);
- *(ptr++) = (unsigned char)(g>>16);
- *(ptr++) = (unsigned char)(b>>16);
- *(ptr++) = (unsigned char)(a>>16);
- r += dr;
- g += dg;
- b += db;
- a += da;
- }
-
- /* copy the first line to the other lines */
- for (i=1; i<height; i++)
- {
- memcpy (&(pixels[i*rowstride]), pixels, rowstride);
- }
- return pixbuf;
-}
-
-/*
- *----------------------------------------------------------------------
- * meta_gradient_create_vertical--
- * Renders a vertical linear gradient of the specified size in the
- * GdkPixbuf format with a border of the specified type.
- *
- * Returns:
- * A 24bit GdkPixbuf with the gradient (no alpha channel).
- *
- * Side effects:
- * None
- *----------------------------------------------------------------------
- */
-static GdkPixbuf *
-meta_gradient_create_vertical (int width,
- int height,
- const GdkRGBA *from,
- const GdkRGBA *to)
-{
- int i, j;
- long r, g, b, a, dr, dg, db, da;
- GdkPixbuf *pixbuf;
- unsigned char *ptr;
- int r0, g0, b0, a0;
- int rf, gf, bf, af;
- int rowstride;
- unsigned char *pixels;
-
- pixbuf = blank_pixbuf (width, height);
- if (pixbuf == NULL)
- return NULL;
-
- pixels = gdk_pixbuf_get_pixels (pixbuf);
- rowstride = gdk_pixbuf_get_rowstride (pixbuf);
-
- r0 = (guchar) (from->red * 0xff);
- g0 = (guchar) (from->green * 0xff);
- b0 = (guchar) (from->blue * 0xff);
- a0 = (guchar) (from->alpha * 0xff);
- rf = (guchar) (to->red * 0xff);
- gf = (guchar) (to->green * 0xff);
- bf = (guchar) (to->blue * 0xff);
- af = (guchar) (to->alpha * 0xff);
-
- r = r0<<16;
- g = g0<<16;
- b = b0<<16;
- a = a0<<16;
-
- dr = ((rf-r0)<<16)/(int)height;
- dg = ((gf-g0)<<16)/(int)height;
- db = ((bf-b0)<<16)/(int)height;
- da = ((af-a0)<<16)/(int)height;
-
- for (i=0; i<height; i++)
- {
- ptr = pixels + i * rowstride;
-
- ptr[0] = (unsigned char)(r>>16);
- ptr[1] = (unsigned char)(g>>16);
- ptr[2] = (unsigned char)(b>>16);
- ptr[3] = (unsigned char)(a>>16);
-
- for (j=1; j <= width/2; j *= 2)
- memcpy (&(ptr[j*4]), ptr, j*4);
- memcpy (&(ptr[j*4]), ptr, (width - j)*4);
-
- r+=dr;
- g+=dg;
- b+=db;
- a+=da;
- }
- return pixbuf;
-}
-
-/*
- *----------------------------------------------------------------------
- * meta_gradient_create_diagonal--
- * Renders a diagonal linear gradient of the specified size in the
- * GdkPixbuf format with a border of the specified type.
- *
- * Returns:
- * A 24bit GdkPixbuf with the gradient (no alpha channel).
- *
- * Side effects:
- * None
- *----------------------------------------------------------------------
- */
-static GdkPixbuf *
-meta_gradient_create_diagonal (int width,
- int height,
- const GdkRGBA *from,
- const GdkRGBA *to)
-{
- GdkPixbuf *pixbuf, *tmp;
- int j;
- float a, offset;
- unsigned char *ptr;
- unsigned char *pixels;
- int rowstride;
-
- if (width == 1)
- return meta_gradient_create_vertical (width, height, from, to);
- else if (height == 1)
- return meta_gradient_create_horizontal (width, height, from, to);
-
- pixbuf = blank_pixbuf (width, height);
- if (pixbuf == NULL)
- return NULL;
-
- pixels = gdk_pixbuf_get_pixels (pixbuf);
- rowstride = gdk_pixbuf_get_rowstride (pixbuf);
-
- tmp = meta_gradient_create_horizontal (2*width-1, 1, from, to);
- if (!tmp)
- {
- g_object_unref (G_OBJECT (pixbuf));
- return NULL;
- }
-
- ptr = gdk_pixbuf_get_pixels (tmp);
-
- a = ((float)(width - 1))/((float)(height - 1));
- width = width * 4;
-
- /* copy the first line to the other lines with corresponding offset */
- for (j=0, offset=0.0; j<rowstride*height; j += rowstride)
- {
- memcpy (&(pixels[j]), &ptr[4*(int)offset], width);
- offset += a;
- }
-
- g_object_unref (G_OBJECT (tmp));
- return pixbuf;
-}
-
-static GdkPixbuf *
-meta_gradient_create_multi_horizontal (int width,
- int height,
- const GdkRGBA *colors,
- int count)
-{
- int i, j, k;
- long r, g, b, a, dr, dg, db, da;
- GdkPixbuf *pixbuf;
- unsigned char *ptr;
- unsigned char *pixels;
- int width2;
- int rowstride;
-
- g_return_val_if_fail (count > 2, NULL);
-
- pixbuf = blank_pixbuf (width, height);
- if (pixbuf == NULL)
- return NULL;
-
- pixels = gdk_pixbuf_get_pixels (pixbuf);
- rowstride = gdk_pixbuf_get_rowstride (pixbuf);
- ptr = pixels;
-
- if (count > width)
- count = width;
-
- if (count > 1)
- width2 = width/(count-1);
- else
- width2 = width;
-
- k = 0;
-
- r = (long)(colors[0].red * 0xffffff);
- g = (long)(colors[0].green * 0xffffff);
- b = (long)(colors[0].blue * 0xffffff);
- a = (long)(colors[0].alpha * 0xffffff);
-
- /* render the first line */
- for (i=1; i<count; i++)
- {
- dr = (int)((colors[i].red - colors[i-1].red) *0xffffff)/(int)width2;
- dg = (int)((colors[i].green - colors[i-1].green)*0xffffff)/(int)width2;
- db = (int)((colors[i].blue - colors[i-1].blue) *0xffffff)/(int)width2;
- da = (int)((colors[i].alpha - colors[i-1].alpha) *0xffffff)/(int)width2;
- for (j=0; j<width2; j++)
- {
- *ptr++ = (unsigned char)(r>>16);
- *ptr++ = (unsigned char)(g>>16);
- *ptr++ = (unsigned char)(b>>16);
- *ptr++ = (unsigned char)(a>>16);
- r += dr;
- g += dg;
- b += db;
- a += da;
- k++;
- }
- r = (long)(colors[i].red * 0xffffff);
- g = (long)(colors[i].green * 0xffffff);
- b = (long)(colors[i].blue * 0xffffff);
- a = (long)(colors[i].alpha * 0xffffff);
- }
- for (j=k; j<width; j++)
- {
- *ptr++ = (unsigned char)(r>>16);
- *ptr++ = (unsigned char)(g>>16);
- *ptr++ = (unsigned char)(b>>16);
- *ptr++ = (unsigned char)(a>>16);
- }
-
- /* copy the first line to the other lines */
- for (i=1; i<height; i++)
- {
- memcpy (&(pixels[i*rowstride]), pixels, rowstride);
- }
- return pixbuf;
-}
-
-static GdkPixbuf *
-meta_gradient_create_multi_vertical (int width,
- int height,
- const GdkRGBA *colors,
- int count)
-{
- int i, j, k;
- long r, g, b, a, dr, dg, db, da;
- GdkPixbuf *pixbuf;
- unsigned char *ptr, *tmp, *pixels;
- int height2;
- int x;
- int rowstride;
-
- g_return_val_if_fail (count > 2, NULL);
-
- pixbuf = blank_pixbuf (width, height);
- if (pixbuf == NULL)
- return NULL;
-
- pixels = gdk_pixbuf_get_pixels (pixbuf);
- rowstride = gdk_pixbuf_get_rowstride (pixbuf);
- ptr = pixels;
-
- if (count > height)
- count = height;
-
- if (count > 1)
- height2 = height/(count-1);
- else
- height2 = height;
-
- k = 0;
-
- r = (long)(colors[0].red * 0xffffff);
- g = (long)(colors[0].green * 0xffffff);
- b = (long)(colors[0].blue * 0xffffff);
- a = (long)(colors[0].alpha * 0xffffff);
-
- for (i=1; i<count; i++)
- {
- dr = (int)((colors[i].red - colors[i-1].red) *0xffffff)/(int)height2;
- dg = (int)((colors[i].green - colors[i-1].green)*0xffffff)/(int)height2;
- db = (int)((colors[i].blue - colors[i-1].blue) *0xffffff)/(int)height2;
- da = (int)((colors[i].alpha - colors[i-1].alpha) *0xffffff)/(int)height2;
-
- for (j=0; j<height2; j++)
- {
- ptr[0] = (unsigned char)(r>>16);
- ptr[1] = (unsigned char)(g>>16);
- ptr[2] = (unsigned char)(b>>16);
- ptr[3] = (unsigned char)(a>>16);
-
- for (x=1; x <= width/2; x *= 2)
- memcpy (&(ptr[x*4]), ptr, x*4);
- memcpy (&(ptr[x*4]), ptr, (width - x)*4);
-
- ptr += rowstride;
-
- r += dr;
- g += dg;
- b += db;
- a += da;
- k++;
- }
- r = (long)(colors[i].red * 0xffffff);
- g = (long)(colors[i].green * 0xffffff);
- b = (long)(colors[i].blue * 0xffffff);
- a = (long)(colors[i].alpha * 0xffffff);
- }
-
- if (k<height)
- {
- tmp = ptr;
-
- ptr[0] = (unsigned char) (r>>16);
- ptr[1] = (unsigned char) (g>>16);
- ptr[2] = (unsigned char) (b>>16);
- ptr[3] = (unsigned char) (a>>16);
-
- for (x=1; x <= width/2; x *= 2)
- memcpy (&(ptr[x*4]), ptr, x*4);
- memcpy (&(ptr[x*4]), ptr, (width - x)*4);
-
- ptr += rowstride;
-
- for (j=k+1; j<height; j++)
- {
- memcpy (ptr, tmp, rowstride);
- ptr += rowstride;
- }
- }
-
- return pixbuf;
-}
-
-static GdkPixbuf *
-meta_gradient_create_multi_diagonal (int width,
- int height,
- const GdkRGBA *colors,
- int count)
-{
- GdkPixbuf *pixbuf, *tmp;
- float a, offset;
- int j;
- unsigned char *ptr;
- unsigned char *pixels;
- int rowstride;
-
- g_return_val_if_fail (count > 2, NULL);
-
- if (width == 1)
- return meta_gradient_create_multi_vertical (width, height, colors, count);
- else if (height == 1)
- return meta_gradient_create_multi_horizontal (width, height, colors, count);
-
- pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8,
- width, height);
- if (pixbuf == NULL)
- return NULL;
-
- pixels = gdk_pixbuf_get_pixels (pixbuf);
- rowstride = gdk_pixbuf_get_rowstride (pixbuf);
-
- if (count > width)
- count = width;
- if (count > height)
- count = height;
-
- if (count > 2)
- tmp = meta_gradient_create_multi_horizontal (2*width-1, 1, colors, count);
- else
- /* wrlib multiplies these colors by 256 before passing them in, but
- * I think it's a bug in wrlib, so changed here. I could be wrong
- * though, if we notice two-color multi diagonals not working.
- */
- tmp = meta_gradient_create_horizontal (2*width-1, 1,
- &colors[0], &colors[1]);
-
- if (!tmp)
- {
- g_object_unref (G_OBJECT (pixbuf));
- return NULL;
- }
- ptr = gdk_pixbuf_get_pixels (tmp);
-
- a = ((float)(width - 1))/((float)(height - 1));
- width = width * 3;
-
- /* copy the first line to the other lines with corresponding offset */
- for (j=0, offset=0; j<rowstride*height; j += rowstride)
- {
- memcpy (&(pixels[j]), &ptr[3*(int)offset], width);
- offset += a;
- }
-
- g_object_unref (G_OBJECT (tmp));
- return pixbuf;
-}
-
-static void
simple_multiply_alpha (GdkPixbuf *pixbuf,
guchar alpha)
{
@@ -654,202 +174,6 @@ meta_gradient_add_alpha_horizontal (GdkPixbuf *pixbuf,
}
/**
- * meta_gradient_create_simple:
- * @width: Width in pixels
- * @height: Height in pixels
- * @from: Starting color
- * @to: Ending color
- * @style: Gradient style
- *
- * Returns: (transfer full): A new linear gradient
- */
-GdkPixbuf *
-meta_gradient_create_simple (int width,
- int height,
- const GdkRGBA *from,
- const GdkRGBA *to,
- MetaGradientType style)
-{
- switch (style)
- {
- case META_GRADIENT_HORIZONTAL:
- return meta_gradient_create_horizontal (width, height, from, to);
- case META_GRADIENT_VERTICAL:
- return meta_gradient_create_vertical (width, height, from, to);
-
- case META_GRADIENT_DIAGONAL:
- return meta_gradient_create_diagonal (width, height, from, to);
- case META_GRADIENT_LAST:
- break;
-
- default:
- break;
- }
-
- g_assert_not_reached ();
- return NULL;
-}
-
-/**
- * meta_gradient_create_multi:
- * @width: Width in pixels
- * @height: Height in pixels
- * @colors: (array length=n_colors): Array of colors
- * @n_colors: Number of colors
- * @style: Gradient style
- *
- * Returns: (transfer full): A new multi-step linear gradient
- */
-GdkPixbuf *
-meta_gradient_create_multi (int width,
- int height,
- const GdkRGBA *colors,
- int n_colors,
- MetaGradientType style)
-{
-
- if (n_colors > 2)
- {
- switch (style)
- {
- case META_GRADIENT_HORIZONTAL:
- return meta_gradient_create_multi_horizontal (width, height, colors, n_colors);
- case META_GRADIENT_VERTICAL:
- return meta_gradient_create_multi_vertical (width, height, colors, n_colors);
- case META_GRADIENT_DIAGONAL:
- return meta_gradient_create_multi_diagonal (width, height, colors, n_colors);
- case META_GRADIENT_LAST:
- g_assert_not_reached ();
- break;
- default:
- g_assert_not_reached ();
- break;
- }
- }
- else if (n_colors > 1)
- {
- return meta_gradient_create_simple (width, height, &colors[0], &colors[1],
- style);
- }
- else if (n_colors > 0)
- {
- return meta_gradient_create_simple (width, height, &colors[0], &colors[0],
- style);
- }
- g_assert_not_reached ();
- return NULL;
-}
-
-/**
- * meta_gradient_create_interwoven: (skip)
- * @width: Width in pixels
- * @height: Height in pixels
- * @colors1: Array of colors
- * @thickness1: Thickness
- * @colors2: Array of colors
- * @thickness2: Thickness
- *
- * Interwoven essentially means we have two vertical gradients,
- * cut into horizontal strips of the given thickness, and then the strips
- * are alternated. I'm not sure what it's good for, just copied since
- * WindowMaker had it.
- */
-GdkPixbuf*
-meta_gradient_create_interwoven (int width,
- int height,
- const GdkRGBA colors1[2],
- int thickness1,
- const GdkRGBA colors2[2],
- int thickness2)
-{
-
- int i, j, k, l, ll;
- long r1, g1, b1, a1, dr1, dg1, db1, da1;
- long r2, g2, b2, a2, dr2, dg2, db2, da2;
- GdkPixbuf *pixbuf;
- unsigned char *ptr;
- unsigned char *pixels;
- int rowstride;
-
- pixbuf = blank_pixbuf (width, height);
- if (pixbuf == NULL)
- return NULL;
-
- pixels = gdk_pixbuf_get_pixels (pixbuf);
- rowstride = gdk_pixbuf_get_rowstride (pixbuf);
-
- r1 = (long)(colors1[0].red*0xffffff);
- g1 = (long)(colors1[0].green*0xffffff);
- b1 = (long)(colors1[0].blue*0xffffff);
- a1 = (long)(colors1[0].alpha*0xffffff);
-
- r2 = (long)(colors2[0].red*0xffffff);
- g2 = (long)(colors2[0].green*0xffffff);
- b2 = (long)(colors2[0].blue*0xffffff);
- a2 = (long)(colors2[0].alpha*0xffffff);
-
- dr1 = ((colors1[1].red-colors1[0].red)*0xffffff)/(int)height;
- dg1 = ((colors1[1].green-colors1[0].green)*0xffffff)/(int)height;
- db1 = ((colors1[1].blue-colors1[0].blue)*0xffffff)/(int)height;
- da1 = ((colors1[1].alpha-colors1[0].alpha)*0xffffff)/(int)height;
-
- dr2 = ((colors2[1].red-colors2[0].red)*0xffffff)/(int)height;
- dg2 = ((colors2[1].green-colors2[0].green)*0xffffff)/(int)height;
- db2 = ((colors2[1].blue-colors2[0].blue)*0xffffff)/(int)height;
- da2 = ((colors2[1].alpha-colors2[0].alpha)*0xffffff)/(int)height;
-
- for (i=0,k=0,l=0,ll=thickness1; i<height; i++)
- {
- ptr = pixels + i * rowstride;
-
- if (k == 0)
- {
- ptr[0] = (unsigned char) (r1>>16);
- ptr[1] = (unsigned char) (g1>>16);
- ptr[2] = (unsigned char) (b1>>16);
- ptr[3] = (unsigned char) (a1>>16);
- }
- else
- {
- ptr[0] = (unsigned char) (r2>>16);
- ptr[1] = (unsigned char) (g2>>16);
- ptr[2] = (unsigned char) (b2>>16);
- ptr[3] = (unsigned char) (a2>>16);
- }
-
- for (j=1; j <= width/2; j *= 2)
- memcpy (&(ptr[j*4]), ptr, j*4);
- memcpy (&(ptr[j*4]), ptr, (width - j)*4);
-
- if (++l == ll)
- {
- if (k == 0)
- {
- k = 1;
- ll = thickness2;
- }
- else
- {
- k = 0;
- ll = thickness1;
- }
- l = 0;
- }
- r1+=dr1;
- g1+=dg1;
- b1+=db1;
- a1+=da1;
-
- r2+=dr2;
- g2+=dg2;
- b2+=db2;
- a2+=da2;
- }
-
- return pixbuf;
-}
-
-/**
* meta_gradient_add_alpha:
* @pixbuf:
* @alphas: