]> Dogcows Code - chaz/openbox/blobdiff - otk/truerendercontrol.hh
properly support "cross endian" configurations
[chaz/openbox] / otk / truerendercontrol.hh
index e4975aeb002250478753faf1fbcbae5eb93b02ca..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:
@@ -46,6 +58,15 @@ public:
   virtual void drawBackground(Surface& sf, const RenderTexture &texture) const;
   virtual void drawGradientBackground(Surface &sf,
                                       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.020455 seconds and 4 git commands to generate.