[GEM-dev] Next week?
chris clepper
cgc at humboldtblvd.com
Sun May 9 21:18:25 CEST 2004
On May 7, 2004, at 12:50 PM, IOhannes m zmoelnig wrote:
> just for clarification: the rgb-like colourspace (RGBA on other
> systems) is GL_BGRA even though it is actually ARGB ? is this true ??
It's ARGB but submitted as BGRA only reversed using the _REV_ GL flags.
Confusing, but I guess concessions to the PC world were needed.
Here's the current state of Pete's plugs for me:
pix_backlight - the output is different between the colorspaces as
previously noted.
pix_colorreduce - just crashes on any YUV data I try. It's not a very
good solution to do the conversions just to get it to work. Even if it
did work, I would vote to just not have it process YUV since it would
be so slow.
pix_halftone - doesn't really produce very meaningful output in YUV.
It makes the dot patterns but it's not nearly as legible as the RGB. I
fixed the shifts for OSX so now it's not just green, but maybe that
screws up the x86 code so I put a little ifdef around it.
pix_kaleidoscope - output is different, but hey it's about 3x faster in
YUV. Will anyone complain?
pix_levels - doesn't seem to do any sane YUV processing at all. The
code obviously just applies RGB transforms without regard to the chroma
offset. This needs a rewrite for YUV (it might work for gray as well).
pix_lumaoffset - now crashes religiously when using smooth and YUV (the
version I committed did not), and the RGB code crashes no matter what
when the offset and gap get too high. Some sort of bounds checking is
either not in place or failing.
pix_metaimage - sometimes using YUV and not 'cheap' there is a green
edge to the boxes. this is probably an off by one where there is not a
proper pixel pair. I don't know where to fix this. Also, when size =
0 CPU load skyrockets and things start to turn into a slideshow.
Should that value be trapped and just bypass the effect altogether?
pix_refraction - this seems to work pretty well for both RGB and YUV,
but the output is different. Does that matter?
To sum up, the following seem fine:
backlight, kaleidoscope, refraction, and possibly metaimage
The rest need work:
colorreduce - this needs a full reworking in YUV, and I have a hard
time understanding how the hell the histogram is made. I would think
you need it to hold either 256 slots per channel or one for every
possible pixel sampled because they might all be unique. This code
seems to do neither? It does sample every 4 pixels which would reduce
the array needed for the second method. The sort might be hellish on a
720x480 though.
halftone - I don't know where this one is going wrong.
levels - this one seems easiest to write for YUV. Heck, just a quick
multiply for each component would do and skip the rest of it.
lumaoffset - I could have sworn there was some sort of sanity check for
pixel coordinates, but now I just don't know. The crash is always at
the smoothing conditional and one of the attendant pointer operations.
I checked out the version I committed a few days ago and now it crashes
and it did not before (or else I wouldn't have committed it).
The real question to me is how much effort do these really warrant?
Sure some of them look quite nice, but none of the objects are
particularly essential, and the original Pete code performs terribly.
Also, I can't recall anyone ever posting about these objects apart from
the Linux compile problems caused by kaleidoscope. It's starting to
irritate that these are holding up the show.
cgc
More information about the GEM-dev
mailing list