diff options
author | pixel <pixel> | 2003-04-02 16:49:55 +0000 |
---|---|---|
committer | pixel <pixel> | 2003-04-02 16:49:55 +0000 |
commit | 36527119ae021b317f8405c4cf40251ddcc037b9 (patch) | |
tree | 330c16cf3e0cdc8f48a43aed6e25fb3b1b5d5259 /lib/mcolor.cc | |
parent | e834c4110af138f8fd4c485999a8294883dbcb0e (diff) |
Color fix
Diffstat (limited to 'lib/mcolor.cc')
-rw-r--r-- | lib/mcolor.cc | 21 |
1 files changed, 19 insertions, 2 deletions
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; +} |