47
47
#define FO_NEW_ALPHA_TEST 0x100
48
48
#define FO_NEW_DEPTH_STENCIL 0x200
49
49
#define FO_NEW_SAMPLER 0x400
50
#define FO_NEW_TEXTURE 0x800
50
#define FO_NEW_SAMPLER_VIEW 0x800
51
51
#define FO_NEW_VERTEX 0x2000
52
52
#define FO_NEW_VERTEX_SHADER 0x4000
53
53
#define FO_NEW_BLEND_COLOR 0x8000
55
55
#define FO_NEW_CLEAR_COLOR 0x20000
56
56
#define FO_NEW_VERTEX_BUFFER 0x40000
57
57
#define FO_NEW_VERTEX_ELEMENT 0x80000
58
#define FO_NEW_SAMPLE_MASK 0x100000
59
#define FO_NEW_INDEX_BUFFER 0x200000
71
struct fo_sampler_view {
72
struct pipe_sampler_view base;
73
struct pipe_sampler_view *sw;
74
struct pipe_sampler_view *hw;
68
77
struct failover_context {
69
78
struct pipe_context pipe; /**< base class */
78
87
const struct fo_state *rasterizer;
79
88
const struct fo_state *fragment_shader;
80
89
const struct fo_state *vertex_shader;
90
const struct fo_state *vertex_elements;
82
92
struct pipe_blend_color blend_color;
83
93
struct pipe_stencil_ref stencil_ref;
84
94
struct pipe_clip_state clip;
85
96
struct pipe_framebuffer_state framebuffer;
86
97
struct pipe_poly_stipple poly_stipple;
87
98
struct pipe_scissor_state scissor;
88
struct pipe_texture *texture[PIPE_MAX_SAMPLERS];
89
struct pipe_texture *vertex_textures[PIPE_MAX_VERTEX_SAMPLERS];
90
99
struct pipe_viewport_state viewport;
91
100
struct pipe_vertex_buffer vertex_buffers[PIPE_MAX_ATTRIBS];
92
struct pipe_vertex_element vertex_elements[PIPE_MAX_ATTRIBS];
101
struct pipe_index_buffer index_buffer;
94
103
uint num_vertex_buffers;
95
uint num_vertex_elements;
97
105
void *sw_sampler_state[PIPE_MAX_SAMPLERS];
98
106
void *hw_sampler_state[PIPE_MAX_SAMPLERS];
99
107
void *sw_vertex_sampler_state[PIPE_MAX_VERTEX_SAMPLERS];
100
108
void *hw_vertex_sampler_state[PIPE_MAX_VERTEX_SAMPLERS];
110
struct fo_sampler_view *fragment_sampler_views[PIPE_MAX_SAMPLERS];
111
struct fo_sampler_view *vertex_sampler_views[PIPE_MAX_VERTEX_SAMPLERS];
112
unsigned num_fragment_sampler_views;
113
unsigned num_vertex_sampler_views;
104
117
unsigned num_samplers;
105
118
unsigned num_vertex_samplers;
106
unsigned num_textures;
107
unsigned num_vertex_textures;
110
121
struct pipe_context *hw;
128
139
failover_set_constant_buffer(struct pipe_context *pipe,
129
140
uint shader, uint index,
130
struct pipe_buffer *buf);
141
struct pipe_resource *resource);
133
144
#endif /* FO_CONTEXT_H */