]> Dogcows Code - chaz/openbox/blobdiff - otk/truerendercontrol.hh
properly support "cross endian" configurations
[chaz/openbox] / otk / truerendercontrol.hh
index a4735c8fbdb0b54728cbea7b8b6937c256d4f546..3a5d3e5aa3847e8ce54f297e54e6e0f7e2205ffb 100644 (file)
@@ -22,9 +22,21 @@ namespace otk {
 
 #ifdef HAVE_STDINT_H
 typedef uint32_t pixel32;
+typedef uint16_t pixel16;
 #else
 typedef u_int32_t pixel32;
-#endif
+typedef u_int16_t pixel16;
+#endif /* HAVE_STDINT_H */
+
+#ifdef WORDS_BIGENDIAN
+const int default_red_shift=0;
+const int default_green_shift=8;
+const int default_blue_shift=16;
+#else
+const int default_red_shift=16;
+const int default_green_shift=8;
+const int default_blue_shift=0;
+#endif /* WORDS_BIGENDIAN */
 
 class TrueRenderControl : public RenderControl {
 private:
@@ -48,6 +60,13 @@ public:
                                       const RenderTexture &texture) const;
 
   inline void highlight(pixel32 *x, pixel32 *y, bool raised) const;
+  void reduceDepth(XImage *im, pixel32 *data) const;
+  void verticalGradient(Surface &sf, const RenderTexture &texture,
+                        pixel32 *data) const;
+  void diagonalGradient(Surface &sf, const RenderTexture &texture,
+                        pixel32 *data) const;
+  void crossDiagonalGradient(Surface &sf, const RenderTexture &texture,
+                        pixel32 *data) const;
 };
 
 }
This page took 0.024348 seconds and 4 git commands to generate.