summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-08-08 23:07:24 +0000
committerDana Jansens <danakj@orodu.net>2002-08-08 23:07:24 +0000
commit01096f867493aed2efc2694c986811404288c1f1 (patch)
tree69be448dffccea605007a2c254c22ac6a2ac9d90 /src
parent2d5e1c55f132a0a834eb28146fe60c8e2ca8e665 (diff)
sync with blackbox-cvs
Diffstat (limited to 'src')
-rw-r--r--src/Image.cc63
-rw-r--r--src/Image.hh16
-rw-r--r--src/ImageControl.cc21
-rw-r--r--src/Texture.cc6
4 files changed, 43 insertions, 63 deletions
diff --git a/src/Image.cc b/src/Image.cc
index c20c4f7c..674fdeac 100644
--- a/src/Image.cc
+++ b/src/Image.cc
@@ -44,8 +44,8 @@ using std::min;
BImage::BImage(BImageControl *c, unsigned int w, unsigned int h) {
control = c;
- width = ((signed) w > 0) ? w : 1;
- height = ((signed) h > 0) ? h : 1;
+ width = (w > 0) ? w : 1;
+ height = (h > 0) ? h : 1;
red = new unsigned char[width * height];
green = new unsigned char[width * height];
@@ -66,18 +66,18 @@ BImage::BImage(BImageControl *c, unsigned int w, unsigned int h) {
BImage::~BImage(void) {
- if (red) delete [] red;
- if (green) delete [] green;
- if (blue) delete [] blue;
+ delete [] red;
+ delete [] green;
+ delete [] blue;
}
Pixmap BImage::render(const BTexture &texture) {
- if ((texture.texture() & BTexture::Parent_Relative))
+ if (texture.texture() & BTexture::Parent_Relative)
return ParentRelative;
- else if ((texture.texture() & BTexture::Solid))
+ else if (texture.texture() & BTexture::Solid)
return render_solid(texture);
- else if ((texture.texture() & BTexture::Gradient))
+ else if (texture.texture() & BTexture::Gradient)
return render_gradient(texture);
return None;
}
@@ -103,8 +103,7 @@ Pixmap BImage::render_solid(const BTexture &texture) {
if (texture.texture() & BTexture::Interlaced) {
BPen peninterlace(texture.colorTo());
- register unsigned int i = 0;
- for (; i < height; i += 2)
+ for (unsigned int i = 0; i < height; i += 2)
XDrawLine(display, pixmap, peninterlace.gc(), 0, i, width, i);
}
@@ -159,7 +158,7 @@ Pixmap BImage::render_solid(const BTexture &texture) {
Pixmap BImage::render_gradient(const BTexture &texture) {
- int inverted = 0;
+ bool inverted = False;
interlaced = texture.texture() & BTexture::Interlaced;
@@ -167,12 +166,12 @@ Pixmap BImage::render_gradient(const BTexture &texture) {
from = texture.colorTo();
to = texture.color();
- if (! (texture.texture() & BTexture::Invert)) inverted = 1;
+ if (! (texture.texture() & BTexture::Invert)) inverted = True;
} else {
from = texture.color();
to = texture.colorTo();
- if (texture.texture() & BTexture::Invert) inverted = 1;
+ if (texture.texture() & BTexture::Invert) inverted = True;
}
control->getGradientBuffers(width, height, &xtable, &ytable);
@@ -191,9 +190,7 @@ Pixmap BImage::render_gradient(const BTexture &texture) {
if (inverted) invert();
- Pixmap pixmap = renderPixmap();
-
- return pixmap;
+ return renderPixmap();
}
@@ -461,6 +458,8 @@ XImage *BImage::renderXImage(void) {
unsigned int o = image->bits_per_pixel +
((image->byte_order == MSBFirst) ? 1 : 0);
+ bool unsupported = False;
+
if (control->doDither() && width > 1 && height > 1) {
switch (control->getVisual()->c_class) {
case TrueColor:
@@ -478,23 +477,18 @@ XImage *BImage::renderXImage(void) {
}
default:
- fprintf(stderr, i18n(ImageSet, ImageUnsupVisual,
- "BImage::renderXImage: unsupported visual\n"));
- delete [] d;
- XDestroyImage(image);
- return (XImage *) 0;
+ unsupported = True;
}
} else {
- register unsigned int x, y, r, g, b, offset;
-
+ unsigned int x, y, r, g, b, offset;
unsigned char *pixel_data = d, *ppixel_data = d;
unsigned long pixel;
switch (control->getVisual()->c_class) {
case StaticColor:
case PseudoColor:
- for (y = 0, offset = 0; y < height; y++) {
- for (x = 0; x < width; x++, offset++) {
+ for (y = 0, offset = 0; y < height; ++y) {
+ for (x = 0; x < width; ++x, ++offset) {
r = red_table[red[offset]];
g = green_table[green[offset]];
b = blue_table[blue[offset]];
@@ -542,15 +536,20 @@ XImage *BImage::renderXImage(void) {
break;
default:
- fprintf(stderr, i18n(ImageSet, ImageUnsupVisual,
- "BImage::renderXImage: unsupported visual\n"));
- delete [] d;
- XDestroyImage(image);
- return (XImage *) 0;
+ unsupported = True;
}
}
+ if (unsupported) {
+ fprintf(stderr, i18n(ImageSet, ImageUnsupVisual,
+ "BImage::renderXImage: unsupported visual\n"));
+ delete [] d;
+ XDestroyImage(image);
+ return (XImage *) 0;
+ }
+
image->data = (char *) d;
+
return image;
}
@@ -571,7 +570,9 @@ Pixmap BImage::renderPixmap(void) {
if (! image) {
XFreePixmap(control->getBaseDisplay()->getXDisplay(), pixmap);
return None;
- } else if (! image->data) {
+ }
+
+ if (! image->data) {
XDestroyImage(image);
XFreePixmap(control->getBaseDisplay()->getXDisplay(), pixmap);
return None;
diff --git a/src/Image.hh b/src/Image.hh
index 4d72bc14..0e82456c 100644
--- a/src/Image.hh
+++ b/src/Image.hh
@@ -37,7 +37,6 @@ extern "C" {
class BImageControl;
class BTexture;
-class BImageCache;
class BImage {
private:
@@ -59,6 +58,8 @@ private:
#endif
Pixmap renderPixmap(void);
+ Pixmap render_solid(const BTexture &texture);
+ Pixmap render_gradient(const BTexture &texture);
XImage *renderXImage(void);
@@ -80,19 +81,6 @@ public:
~BImage(void);
Pixmap render(const BTexture &texture);
- Pixmap render_solid(const BTexture &texture);
- Pixmap render_gradient(const BTexture &texture);
-
- // static methods for the builtin cache
- static unsigned long maximumCacheSize(void);
- static void setMaximumCacheSize(const unsigned long cache_max);
-
- static unsigned long cacheTimeout(void);
- static void setCacheTimeout(const unsigned long cache_timeout);
-
-private:
- // global image cache
- static BImageCache *imagecache;
};
diff --git a/src/ImageControl.cc b/src/ImageControl.cc
index 9be8cf13..c93a40f9 100644
--- a/src/ImageControl.cc
+++ b/src/ImageControl.cc
@@ -65,8 +65,7 @@ BImageControl *ctrl = 0;
BImageControl::BImageControl(BaseDisplay *dpy, const ScreenInfo *scrn,
bool _dither, int _cpc,
unsigned long cache_timeout,
- unsigned long cmax)
-{
+ unsigned long cmax) {
if (! ctrl) ctrl = this;
basedisplay = dpy;
@@ -364,8 +363,7 @@ BImageControl::~BImageControl(void) {
if (colors) {
unsigned long *pixels = new unsigned long [ncolors];
- int i;
- for (i = 0; i < ncolors; i++)
+ for (int i = 0; i < ncolors; i++)
*(pixels + i) = (*(colors + i)).pixel;
XFreeColors(basedisplay->getXDisplay(), colormap, pixels, ncolors, 0);
@@ -381,9 +379,8 @@ BImageControl::~BImageControl(void) {
//#endif
CacheContainer::iterator it = cache.begin();
const CacheContainer::iterator end = cache.end();
- for (; it != end; ++it) {
- XFreePixmap(basedisplay->getXDisplay(), (*it).pixmap);
- }
+ for (; it != end; ++it)
+ XFreePixmap(basedisplay->getXDisplay(), it->pixmap);
}
#ifdef TIMEDCACHE
if (timer) {
@@ -405,8 +402,8 @@ Pixmap BImageControl::searchCache(const unsigned int width,
const CacheContainer::iterator end = cache.end();
for (; it != end; ++it) {
CachedImage& tmp = *it;
- if ((tmp.width == width) && (tmp.height == height) &&
- (tmp.texture == texture) && (tmp.pixel1 == c1.pixel()))
+ if (tmp.width == width && tmp.height == height &&
+ tmp.texture == texture && tmp.pixel1 == c1.pixel())
if (texture & BTexture::Gradient) {
if (tmp.pixel2 == c2.pixel()) {
tmp.count++;
@@ -514,9 +511,8 @@ void BImageControl::getGradientBuffers(unsigned int w,
unsigned int **ybuf)
{
if (w > grad_buffer_width) {
- if (grad_xbuffer) {
+ if (grad_xbuffer)
delete [] grad_xbuffer;
- }
grad_buffer_width = w;
@@ -524,9 +520,8 @@ void BImageControl::getGradientBuffers(unsigned int w,
}
if (h > grad_buffer_height) {
- if (grad_ybuffer) {
+ if (grad_ybuffer)
delete [] grad_ybuffer;
- }
grad_buffer_height = h;
diff --git a/src/Texture.cc b/src/Texture.cc
index caab82e8..8f2731b6 100644
--- a/src/Texture.cc
+++ b/src/Texture.cc
@@ -116,8 +116,6 @@ void BTexture::setDescription(const string &d) {
addTexture(BTexture::PipeCross);
else if (descr.find("elliptic") != string::npos)
addTexture(BTexture::Elliptic);
- else if (descr.find("diagonal") != string::npos)
- addTexture(BTexture::Diagonal);
else if (descr.find("horizontal") != string::npos)
addTexture(BTexture::Horizontal);
else if (descr.find("vertical") != string::npos)
@@ -128,9 +126,7 @@ void BTexture::setDescription(const string &d) {
addTexture(BTexture::Solid);
}
- if (descr.find("raised") != string::npos)
- addTexture(BTexture::Raised);
- else if (descr.find("sunken") != string::npos)
+ if (descr.find("sunken") != string::npos)
addTexture(BTexture::Sunken);
else if (descr.find("flat") != string::npos)
addTexture(BTexture::Flat);