From 36527119ae021b317f8405c4cf40251ddcc037b9 Mon Sep 17 00:00:00 2001 From: pixel Date: Wed, 2 Apr 2003 16:49:55 +0000 Subject: Color fix --- lib/mcolor.cc | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'lib/mcolor.cc') diff --git a/lib/mcolor.cc b/lib/mcolor.cc index 806a812..1c13717 100644 --- a/lib/mcolor.cc +++ b/lib/mcolor.cc @@ -16,9 +16,26 @@ void mogltk::ColorP::Bind() { } Uint32 mogltk::ColorP::toSDL(SDL_PixelFormat * f) { - if (!f) { + if (!f) f = mogltk::engine::base_o->getsurface()->format; - } return SDL_MapRGBA(f, MIN(MAX(c.R, Min.R), Max.R), MIN(MAX(c.G, Min.G), Max.G), MIN(MAX(c.B, Min.B), Max.B), MIN(MAX(c.A, Min.A), Max.A)); } + +void mogltk::ColorP::fromSDL(Uint32 p, SDL_PixelFormat * f) { + if (!f) + f = mogltk::engine::base_o->getsurface()->format; + + SDL_GetRGBA(p, f, &c.R, &c.G, &c.B, &c.A); +} + +void mogltk::ColorP::Norm() { + c.R = MIN(MAX(c.R, Min.R), Max.R); + c.G = MIN(MAX(c.R, Min.G), Max.G); + c.B = MIN(MAX(c.R, Min.B), Max.B); + c.A = MIN(MAX(c.R, Min.A), Max.A); +} + +bool mogltk::ColorP::operator==(const ColorP & nc) { + return c == nc.c; +} -- cgit v1.2.3