On Fri, Jan 27, 2012 at 2:33 AM, Jose Fonseca <jfons...@vmware.com> wrote:
> Brian,
>
> This is probably right but a tad verbose, and error prone.
>
> I'm not sure what's the best way to simplify this though. It's not possible 
> to canonize the comparisons because there are missing combinations.
>
> But I think that at least using ternary operators would make the code more 
> compact and help ensuring thar cases don't follow through the cracks. For 
> example:
>
>    case MESA_FORMAT_RGBA8888:
>
>        if (format == GL_RGBA &&
>            type == (!swapBytes ? GL_UNSIGNED_INT_8_8_8_8 : 
> GL_UNSIGNED_INT_8_8_8_8_REV))
>            return GL_TRUE;
>
>        if (format == GL_ABGR_EXT &&
>            type == (!swapBytes ? GL_UNSIGNED_INT_8_8_8_8_REV : 
> GL_UNSIGNED_INT_8_8_8_8))
>            return GL_TRUE;
>
>       if (format == (!littleEndian ? GL_RGBA : GL_ABGR_EXT) &&
>           type == GL_UNSIGNED_BYTE)
>           return GL_TRUE;

Honestly, I find my approach easier to read and understand than that.

I don't think there's an ideal way to express all the various
combinations.  I opted for simple (if verbose) logic over more
sophisticated logic (which can be error-prone too).

-Brian
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to