[PATCH 4/7] wined3d: Introduce table with typed format channels.

Henri Verbeet hverbeet at gmail.com
Wed Feb 10 09:20:03 CST 2016


On 10 February 2016 at 02:14, Józef Kucia <jkucia at codeweavers.com> wrote:
> +enum wined3d_channel_type
> +{
> +    C_UNUSED,
> +    C_UNORM,
> +    C_SNORM,
> +    C_UINT,
> +    C_SINT,
> +    C_FLOAT,
> +    C_DEPTH,
> +    C_STENCIL
> +};
These would need to be called something like
WINED3D_CHANNEL_TYPE_UNORM, etc. Those are a bit longer to type, but
we could use a scheme similar to the opcode table in shader_sm4.c to
keep the table readable. (Perhaps "I" -> SINT, "i" -> SNORM, "S" ->
STENCIL, etc.)

> +struct wined3d_typed_format_info
>  {
>      enum wined3d_format_id id;
>      enum wined3d_format_id typeless_id;
> +    enum wined3d_channel_type red_channel;
> +    enum wined3d_channel_type green_channel;
> +    enum wined3d_channel_type blue_channel;
> +    enum wined3d_channel_type alpha_channel;
>  };
Just a thought, but would it make things easier if the channel types
were an array? It would probably make sense for struct wined3d_format
at least to have something like

struct
{
    unsigned int size;
    unsigned int offset;
    enum wined3d_channel_type type;
} channels[4];



More information about the wine-devel mailing list