diff options
author | Zack Rusin <zackr@vmware.com> | 2009-08-25 14:01:58 -0400 |
---|---|---|
committer | Zack Rusin <zackr@vmware.com> | 2009-08-25 14:01:58 -0400 |
commit | 23b59d3b4029ea89b5a8e85ea3cc10bea1ab01d0 (patch) | |
tree | 790b3c5b0838367767ca25cf2cd8f1412bd0c148 /src/gallium/state_trackers/xorg/xorg_exa_tgsi.h | |
parent | c7653a83330e5ea63ad3a566da15155e216c6cb4 (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.h | 27 |
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 |