no need to have different sqrt tables for each object
This commit is contained in:
parent
794e2a522e
commit
25a9c7b57a
2 changed files with 27 additions and 26 deletions
20
src/Image.cc
20
src/Image.cc
|
@ -25,7 +25,7 @@
|
||||||
// stupid macros needed to access some functions in version 2 of the GNU C
|
// stupid macros needed to access some functions in version 2 of the GNU C
|
||||||
// library
|
// library
|
||||||
|
|
||||||
// $Id: Image.cc,v 1.10 2002/07/19 20:30:45 fluxgen Exp $
|
// $Id: Image.cc,v 1.11 2002/07/22 22:33:45 fluxgen Exp $
|
||||||
|
|
||||||
//use GNU extensions
|
//use GNU extensions
|
||||||
#ifndef _GNU_SOURCE
|
#ifndef _GNU_SOURCE
|
||||||
|
@ -69,6 +69,8 @@ typedef unsigned int u_int32_t;
|
||||||
# include <ctype.h>
|
# include <ctype.h>
|
||||||
#endif // HAVE_CTYPE_H
|
#endif // HAVE_CTYPE_H
|
||||||
|
|
||||||
|
unsigned long *BImageControl::sqrt_table = 0;
|
||||||
|
|
||||||
static unsigned long bsqrt(unsigned long x) {
|
static unsigned long bsqrt(unsigned long x) {
|
||||||
if (x <= 0) return 0;
|
if (x <= 0) return 0;
|
||||||
if (x == 1) return 1;
|
if (x == 1) return 1;
|
||||||
|
@ -261,11 +263,10 @@ Pixmap BImage::render_gradient(BTexture *texture) {
|
||||||
if (texture->getTexture() & BImage::BEVEL1) bevel1();
|
if (texture->getTexture() & BImage::BEVEL1) bevel1();
|
||||||
else if (texture->getTexture() & BImage::BEVEL2) bevel2();
|
else if (texture->getTexture() & BImage::BEVEL2) bevel2();
|
||||||
|
|
||||||
if (inverted) invert();
|
if (inverted)
|
||||||
|
invert();
|
||||||
|
|
||||||
Pixmap pixmap = renderPixmap();
|
return renderPixmap();
|
||||||
|
|
||||||
return pixmap;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1852,8 +1853,6 @@ BImageControl::BImageControl(BaseDisplay *dpy, ScreenInfo *scrn, bool _dither,
|
||||||
grad_xbuffer = grad_ybuffer = (unsigned int *) 0;
|
grad_xbuffer = grad_ybuffer = (unsigned int *) 0;
|
||||||
grad_buffer_width = grad_buffer_height = 0;
|
grad_buffer_width = grad_buffer_height = 0;
|
||||||
|
|
||||||
sqrt_table = (unsigned long *) 0;
|
|
||||||
|
|
||||||
screen_depth = screeninfo->getDepth();
|
screen_depth = screeninfo->getDepth();
|
||||||
window = screeninfo->getRootWindow();
|
window = screeninfo->getRootWindow();
|
||||||
screen_number = screeninfo->getScreenNumber();
|
screen_number = screeninfo->getScreenNumber();
|
||||||
|
@ -1957,15 +1956,16 @@ BImageControl::BImageControl(BaseDisplay *dpy, ScreenInfo *scrn, bool _dither,
|
||||||
red_color_table[i] = green_color_table[i] = blue_color_table[i] =
|
red_color_table[i] = green_color_table[i] = blue_color_table[i] =
|
||||||
i / bits;
|
i / bits;
|
||||||
|
|
||||||
for (r = 0, i = 0; r < colors_per_channel; r++)
|
for (r = 0, i = 0; r < colors_per_channel; r++) {
|
||||||
for (g = 0; g < colors_per_channel; g++)
|
for (g = 0; g < colors_per_channel; g++) {
|
||||||
for (b = 0; b < colors_per_channel; b++, i++) {
|
for (b = 0; b < colors_per_channel; b++, i++) {
|
||||||
colors[i].red = (r * 0xffff) / (colors_per_channel - 1);
|
colors[i].red = (r * 0xffff) / (colors_per_channel - 1);
|
||||||
colors[i].green = (g * 0xffff) / (colors_per_channel - 1);
|
colors[i].green = (g * 0xffff) / (colors_per_channel - 1);
|
||||||
colors[i].blue = (b * 0xffff) / (colors_per_channel - 1);;
|
colors[i].blue = (b * 0xffff) / (colors_per_channel - 1);;
|
||||||
colors[i].flags = DoRed|DoGreen|DoBlue;
|
colors[i].flags = DoRed|DoGreen|DoBlue;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
basedisplay->grab();
|
basedisplay->grab();
|
||||||
|
|
||||||
for (i = 0; i < ncolors; i++) {
|
for (i = 0; i < ncolors; i++) {
|
||||||
|
|
19
src/Image.hh
19
src/Image.hh
|
@ -22,7 +22,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
// $Id: Image.hh,v 1.8 2002/07/19 20:33:15 fluxgen Exp $
|
// $Id: Image.hh,v 1.9 2002/07/22 22:33:45 fluxgen Exp $
|
||||||
|
|
||||||
#ifndef IMAGE_HH
|
#ifndef IMAGE_HH
|
||||||
#define IMAGE_HH
|
#define IMAGE_HH
|
||||||
|
@ -177,7 +177,7 @@ public:
|
||||||
unsigned long color(const char *colorname);
|
unsigned long color(const char *colorname);
|
||||||
unsigned long color(const char *, unsigned char *, unsigned char *,
|
unsigned long color(const char *, unsigned char *, unsigned char *,
|
||||||
unsigned char *);
|
unsigned char *);
|
||||||
unsigned long getSqrt(unsigned int);
|
unsigned long getSqrt(unsigned int val);
|
||||||
|
|
||||||
Pixmap renderImage(unsigned int, unsigned int, BTexture *);
|
Pixmap renderImage(unsigned int, unsigned int, BTexture *);
|
||||||
|
|
||||||
|
@ -188,15 +188,15 @@ public:
|
||||||
void getXColorTable(XColor **, int *);
|
void getXColorTable(XColor **, int *);
|
||||||
void getGradientBuffers(unsigned int, unsigned int,
|
void getGradientBuffers(unsigned int, unsigned int,
|
||||||
unsigned int **, unsigned int **);
|
unsigned int **, unsigned int **);
|
||||||
void setDither(Bool d) { dither = d; }
|
void setDither(bool d) { dither = d; }
|
||||||
void setColorsPerChannel(int);
|
void setColorsPerChannel(int cpc);
|
||||||
void parseTexture(BTexture *, char *);
|
void parseTexture(BTexture *ret_texture, char *sval);
|
||||||
void parseColor(BColor *, char * = 0);
|
void parseColor(BColor *ret_color, char *sval = 0);
|
||||||
|
|
||||||
virtual void timeout(void);
|
virtual void timeout();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Bool dither;
|
bool dither;
|
||||||
BaseDisplay *basedisplay;
|
BaseDisplay *basedisplay;
|
||||||
ScreenInfo *screeninfo;
|
ScreenInfo *screeninfo;
|
||||||
#ifdef TIMEDCACHE
|
#ifdef TIMEDCACHE
|
||||||
|
@ -214,7 +214,8 @@ private:
|
||||||
blue_color_table[256];
|
blue_color_table[256];
|
||||||
unsigned int *grad_xbuffer, *grad_ybuffer, grad_buffer_width,
|
unsigned int *grad_xbuffer, *grad_ybuffer, grad_buffer_width,
|
||||||
grad_buffer_height;
|
grad_buffer_height;
|
||||||
unsigned long *sqrt_table, cache_max;
|
static unsigned long *sqrt_table;
|
||||||
|
unsigned long cache_max;
|
||||||
|
|
||||||
typedef struct Cache {
|
typedef struct Cache {
|
||||||
Pixmap pixmap;
|
Pixmap pixmap;
|
||||||
|
|
Loading…
Reference in a new issue