From 0348a2f3abd2334f5f5812c5fb45c1b4fffb46a5 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Mon, 20 Jan 2003 07:07:13 +0000 Subject: add rendercolor class, with a cache of gcs for the colors --- otk/rendercolor.hh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 otk/rendercolor.hh (limited to 'otk/rendercolor.hh') diff --git a/otk/rendercolor.hh b/otk/rendercolor.hh new file mode 100644 index 00000000..fbfe2aef --- /dev/null +++ b/otk/rendercolor.hh @@ -0,0 +1,45 @@ +// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- +#ifndef __rendercolor_hh +#define __rendercolor_hh + +extern "C" { +#include +} + +#include + +namespace otk { + +class RenderColor { + struct CacheItem { + GC gc; + int count; + CacheItem(GC g) : gc(g), count(0) {} + }; + static std::map *_cache; + + int _screen; + unsigned char _red; + unsigned char _green; + unsigned char _blue; + + GC _gc; + +public: + static void initialize(); + static void destroy(); + + RenderColor(int screen, unsigned char red, + unsigned char green, unsigned char blue); + virtual ~RenderColor(); + + inline int screen() const { return _screen; } + inline unsigned char red() const { return _red; } + inline unsigned char green() const { return _green; } + inline unsigned char blue() const { return _blue; } + inline GC gc() const { return _gc; } +}; + +} + +#endif // __rendercolor_hh -- cgit v1.2.3