diff options
author | Mathias Gumz <akira at fluxbox dot org> | 2010-09-17 13:34:12 (GMT) |
---|---|---|
committer | Mathias Gumz <akira at fluxbox dot org> | 2010-09-17 13:34:12 (GMT) |
commit | e84c64f7be701e04ec2a2e0fbf980aa4fc9685ad (patch) | |
tree | c290b1e8e86e655e3b37e92477d9cab080243b1f /src/FbTk/ImageControl.hh | |
parent | 603b36a2ccfb6f825dff7259c4d5397c896cc08e (diff) | |
download | fluxbox-e84c64f7be701e04ec2a2e0fbf980aa4fc9685ad.zip fluxbox-e84c64f7be701e04ec2a2e0fbf980aa4fc9685ad.tar.bz2 |
lots of code cleanup, reordering, trimming public API, bugfixes
## FbTk/ImageControl.hh:
* moved 'getSqrt()' over to TextureRender.cc because it is used only there
* removed unused members m_root_window
* use std::vector<> for colors and for the gradient buffers.
## FbTk/ImageControl.cc:
* fixed memory leak in '~ImageControl', 'pixels' where not deleted[]
at all. switched to std::vector, non-issue anymore.
* moved identical code into functions 'allocateUnallocatedColors', 'initColortables'
## FbTk/TextureRenderer:
* removed 'from', 'to', 'interlaced' from class, only used in
'renderGradient()' and are actually part of the given
texture.
* removed 'xtable', 'ytable' from class, only used in
'renderGradient()'
* removed 'colors' from the class, is part of 'control'
* moved render actions (invert, bevel1, bevel2, *gradient), they need more
love but for now this is sufficient
Diffstat (limited to 'src/FbTk/ImageControl.hh')
-rw-r--r-- | src/FbTk/ImageControl.hh | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/FbTk/ImageControl.hh b/src/FbTk/ImageControl.hh index b7b90f7..747525b 100644 --- a/src/FbTk/ImageControl.hh +++ b/src/FbTk/ImageControl.hh | |||
@@ -30,7 +30,9 @@ | |||
30 | #include "NotCopyable.hh" | 30 | #include "NotCopyable.hh" |
31 | 31 | ||
32 | #include <X11/Xlib.h> // for Visual* etc | 32 | #include <X11/Xlib.h> // for Visual* etc |
33 | |||
33 | #include <list> | 34 | #include <list> |
35 | #include <vector> | ||
34 | 36 | ||
35 | namespace FbTk { | 37 | namespace FbTk { |
36 | 38 | ||
@@ -45,9 +47,10 @@ public: | |||
45 | 47 | ||
46 | int depth() const { return m_screen_depth; } | 48 | int depth() const { return m_screen_depth; } |
47 | int colorsPerChannel() const { return m_colors_per_channel; } | 49 | int colorsPerChannel() const { return m_colors_per_channel; } |
50 | size_t nrColors() const { return m_colors.size(); } | ||
51 | const XColor* colors() const { return &m_colors[0]; } | ||
48 | int screenNumber() const { return m_screen_num; } | 52 | int screenNumber() const { return m_screen_num; } |
49 | Visual *visual() const { return m_visual; } | 53 | Visual *visual() const { return m_visual; } |
50 | unsigned long getSqrt(unsigned int val) const; | ||
51 | 54 | ||
52 | /** | 55 | /** |
53 | Render to pixmap | 56 | Render to pixmap |
@@ -84,24 +87,24 @@ private: | |||
84 | 87 | ||
85 | Colormap m_colormap; | 88 | Colormap m_colormap; |
86 | 89 | ||
87 | Window m_root_window; | 90 | std::vector<XColor> m_colors; ///< color table |
88 | |||
89 | XColor *m_colors; ///< color table | ||
90 | unsigned int m_num_colors; ///< number of colors in color table | ||
91 | 91 | ||
92 | Visual *m_visual; | 92 | Visual *m_visual; |
93 | 93 | ||
94 | int bits_per_pixel, red_offset, green_offset, blue_offset, | 94 | int bits_per_pixel; |
95 | int red_offset, green_offset, blue_offset, | ||
95 | red_bits, green_bits, blue_bits; | 96 | red_bits, green_bits, blue_bits; |
96 | int m_colors_per_channel; ///< number of colors per channel | 97 | int m_colors_per_channel; ///< number of colors per channel |
97 | int m_screen_depth; ///< bit depth of screen | 98 | int m_screen_depth; ///< bit depth of screen |
98 | int m_screen_num; ///< screen number | 99 | int m_screen_num; ///< screen number |
100 | |||
99 | unsigned char red_color_table[256]; | 101 | unsigned char red_color_table[256]; |
100 | unsigned char green_color_table[256]; | 102 | unsigned char green_color_table[256]; |
101 | unsigned char blue_color_table[256]; | 103 | unsigned char blue_color_table[256]; |
102 | 104 | ||
103 | unsigned int *grad_xbuffer, *grad_ybuffer, grad_buffer_width, | 105 | // TextureRenderer uses these buffers |
104 | grad_buffer_height; | 106 | std::vector<unsigned int> grad_xbuffer; |
107 | std::vector<unsigned int> grad_ybuffer; | ||
105 | 108 | ||
106 | struct Cache; | 109 | struct Cache; |
107 | typedef std::list<Cache *> CacheList; | 110 | typedef std::list<Cache *> CacheList; |