Tizen 2.0 Release
[profile/ivi/osmesa.git] / src / gallium / state_trackers / xorg / xorg_exa_tgsi.h
1 #ifndef XORG_EXA_TGSI_H
2 #define XORG_EXA_TGSI_H
3
4 #include "xorg_renderer.h"
5
6 enum xorg_vs_traits {
7    VS_COMPOSITE        = 1 << 0,
8    VS_MASK             = 1 << 1,
9    VS_SOLID_FILL       = 1 << 2,
10    VS_LINGRAD_FILL     = 1 << 3,
11    VS_RADGRAD_FILL     = 1 << 4,
12    VS_YUV              = 1 << 5,
13
14
15    VS_FILL             = (VS_SOLID_FILL |
16                           VS_LINGRAD_FILL |
17                           VS_RADGRAD_FILL)
18 };
19
20 enum xorg_fs_traits {
21    FS_COMPOSITE        = 1 << 0,
22    FS_MASK             = 1 << 1,
23    FS_SOLID_FILL       = 1 << 2,
24    FS_LINGRAD_FILL     = 1 << 3,
25    FS_RADGRAD_FILL     = 1 << 4,
26    FS_CA_FULL          = 1 << 5, /* src.rgba * mask.rgba */
27    FS_CA_SRCALPHA      = 1 << 6, /* src.aaaa * mask.rgba */
28    FS_YUV              = 1 << 7,
29    FS_SRC_REPEAT_NONE  = 1 << 8,
30    FS_MASK_REPEAT_NONE = 1 << 9,
31    FS_SRC_SWIZZLE_RGB  = 1 << 10,
32    FS_MASK_SWIZZLE_RGB = 1 << 11,
33    FS_SRC_SET_ALPHA    = 1 << 12,
34    FS_MASK_SET_ALPHA   = 1 << 13,
35    FS_SRC_LUMINANCE    = 1 << 14,
36    FS_MASK_LUMINANCE   = 1 << 15,
37
38    FS_FILL             = (FS_SOLID_FILL |
39                           FS_LINGRAD_FILL |
40                           FS_RADGRAD_FILL),
41    FS_COMPONENT_ALPHA  = (FS_CA_FULL |
42                           FS_CA_SRCALPHA)
43 };
44
45 struct xorg_shader {
46    void *fs;
47    void *vs;
48 };
49
50 struct xorg_shaders;
51
52 struct xorg_shaders *xorg_shaders_create(struct xorg_renderer *renderer);
53 void xorg_shaders_destroy(struct xorg_shaders *shaders);
54
55 struct xorg_shader xorg_shaders_get(struct xorg_shaders *shaders,
56                                     unsigned vs_traits,
57                                     unsigned fs_traits);
58
59 #endif