b373d1357bbfbf17d57e359cd6d6775120481386
[mesa.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_FILL = (VS_SOLID_FILL |
13 VS_LINGRAD_FILL |
14 VS_RADGRAD_FILL)
15 /*VS_TRANSFORM = 1 << 5*/
16 };
17
18 enum xorg_fs_traits {
19 FS_COMPOSITE = 1 << 0,
20 FS_MASK = 1 << 1,
21 FS_SOLID_FILL = 1 << 2,
22 FS_LINGRAD_FILL = 1 << 3,
23 FS_RADGRAD_FILL = 1 << 4,
24 FS_CA_FULL = 1 << 5, /* src.rgba * mask.rgba */
25 FS_CA_SRCALPHA = 1 << 6, /* src.aaaa * mask.rgba */
26 FS_YUV = 1<< 7,
27
28 FS_FILL = (FS_SOLID_FILL |
29 FS_LINGRAD_FILL |
30 FS_RADGRAD_FILL),
31 FS_COMPONENT_ALPHA = (FS_CA_FULL |
32 FS_CA_SRCALPHA)
33 };
34
35 struct xorg_shader {
36 void *fs;
37 void *vs;
38 };
39
40 struct xorg_shaders;
41
42 struct xorg_shaders *xorg_shaders_create(struct xorg_renderer *renderer);
43 void xorg_shaders_destroy(struct xorg_shaders *shaders);
44
45 struct xorg_shader xorg_shaders_get(struct xorg_shaders *shaders,
46 unsigned vs_traits,
47 unsigned fs_traits);
48
49 #endif