summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h
diff options
context:
space:
mode:
authorZack Rusin <zackr@vmware.com>2009-08-25 14:01:58 -0400
committerZack Rusin <zackr@vmware.com>2009-08-25 14:01:58 -0400
commit23b59d3b4029ea89b5a8e85ea3cc10bea1ab01d0 (patch)
tree790b3c5b0838367767ca25cf2cd8f1412bd0c148 /src/gallium/state_trackers/xorg/xorg_exa_tgsi.h
parentc7653a83330e5ea63ad3a566da15155e216c6cb4 (diff)
exa: add basic code to cache vertex and fragment shaders
Diffstat (limited to 'src/gallium/state_trackers/xorg/xorg_exa_tgsi.h')
-rw-r--r--src/gallium/state_trackers/xorg/xorg_exa_tgsi.h27
1 files changed, 22 insertions, 5 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h
index b7245c8e89..f87f035267 100644
--- a/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h
+++ b/src/gallium/state_trackers/xorg/xorg_exa_tgsi.h
@@ -3,15 +3,32 @@
#include "xorg_exa.h"
+enum xorg_vs_traits {
+ VS_COMPOSITE = 1 << 0,
+ VS_FILL = 1 << 1
+ /*VS_TRANSFORM = 1 << 2*/
+};
+
+enum xorg_fs_traits {
+ FS_COMPOSITE = 1 << 0,
+ FS_MASK = 1 << 1,
+ FS_FILL = 1 << 2,
+ FS_LINEAR_GRADIENT = 1 << 3,
+ FS_RADIAL_GRADIENT = 1 << 4
+};
+
struct xorg_shader {
void *fs;
void *vs;
};
-struct xorg_shader xorg_shader_construct(struct exa_context *exa,
- int op,
- PicturePtr src_picture,
- PicturePtr mask_picture,
- PicturePtr dst_picture);
+struct xorg_shaders;
+
+struct xorg_shaders *xorg_shaders_create(struct exa_context *exa);
+void xorg_shaders_destroy(struct xorg_shaders *shaders);
+
+struct xorg_shader xorg_shaders_get(struct xorg_shaders *shaders,
+ unsigned vs_traits,
+ unsigned fs_traits);
#endif