summaryrefslogtreecommitdiff
path: root/otk/rendercolor.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-03-21 18:42:39 +0000
committerDana Jansens <danakj@orodu.net>2003-03-21 18:42:39 +0000
commita52a6d96d701c993896f276e4198003317632aaf (patch)
treebe2f51e6a433d1fdf9a7c8248b343cb3f6297212 /otk/rendercolor.cc
parenta36c7543d4eedaa9e10bfd9f4d9b81279b1bb7e6 (diff)
rm the old code including the .pys and the c++ shit
Diffstat (limited to 'otk/rendercolor.cc')
-rw-r--r--otk/rendercolor.cc101
1 files changed, 0 insertions, 101 deletions
diff --git a/otk/rendercolor.cc b/otk/rendercolor.cc
deleted file mode 100644
index 5da218ea..00000000
--- a/otk/rendercolor.cc
+++ /dev/null
@@ -1,101 +0,0 @@
-// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
-
-#include "config.h"
-
-#include "rendercolor.hh"
-#include "display.hh"
-#include "screeninfo.hh"
-#include "rendercontrol.hh"
-
-#include <cstdio>
-
-namespace otk {
-
-std::map<unsigned long, RenderColor::CacheItem*> *RenderColor::_cache = 0;
-
-void RenderColor::initialize()
-{
- _cache = new std::map<unsigned long, CacheItem*>[ScreenCount(**display)];
-}
-
-void RenderColor::destroy()
-{
- delete [] _cache;
-}
-
-RenderColor::RenderColor(int screen, unsigned char red,
- unsigned char green, unsigned char blue)
- : _screen(screen),
- _red(red),
- _green(green),
- _blue(blue)
-{
- create();
-}
-
-RenderColor::RenderColor(int screen, RGB rgb)
- : _screen(screen),
- _red(rgb.r),
- _green(rgb.g),
- _blue(rgb.b)
-{
- create();
-}
-
-void RenderColor::create()
-{
- unsigned long color = _blue | _green << 8 | _red << 16;
-
- // try get a gc from the cache
- CacheItem *item = _cache[_screen][color];
-
- if (item) {
- _gc = item->gc;
- _pixel = item->pixel;
- ++item->count;
- } else {
- XGCValues gcv;
-
- // allocate a color and GC from the server
- const ScreenInfo *info = display->screenInfo(_screen);
-
- XColor xcol; // convert from 0-0xff to 0-0xffff
- xcol.red = (_red << 8) | _red;
- xcol.green = (_green << 8) | _green;
- xcol.blue = (_blue << 8) | _blue;
-
- display->renderControl(_screen)->allocateColor(&xcol);
-
- _pixel = xcol.pixel;
- gcv.foreground = _pixel;
- gcv.cap_style = CapProjecting;
- _gc = XCreateGC(**display, info->rootWindow(),
- GCForeground | GCCapStyle, &gcv);
- assert(_gc);
-
- // insert into the cache
- item = new CacheItem(_gc, _pixel);
- _cache[_screen][color] = item;
- ++item->count;
- }
-}
-
-RenderColor::~RenderColor()
-{
- unsigned long color = _blue | _green << 8 | _red << 16;
-
- CacheItem *item = _cache[_screen][color];
- assert(item); // better be...
-
- if (--item->count <= 0) {
- // remove from the cache
- XFreeGC(**display, _gc);
- _cache[_screen][color] = 0;
- delete item;
-
- const ScreenInfo *info = display->screenInfo(_screen);
- XFreeColors(**display, info->colormap(), &_pixel, 1, 0);
- }
-}
-
-}