1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/**************************************************************************
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright 2007-2008 Tungsten Graphics, Inc., Cedar Park, Texas.
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * All Rights Reserved.
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * copy of this software and associated documentation files (the
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * "Software"), to deal in the Software without restriction, including
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * without limitation the rights to use, copy, modify, merge, publish,
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * distribute, sub license, and/or sell copies of the Software, and to
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * permit persons to whom the Software is furnished to do so, subject to
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the following conditions:
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice (including the
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * next paragraph) shall be included in all copies or substantial portions
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * of the Software.
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org **************************************************************************/
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef CSO_CONTEXT_H
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define CSO_CONTEXT_H
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "pipe/p_context.h"
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "pipe/p_state.h"
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "pipe/p_defines.h"
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifdef	__cplusplus
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern "C" {
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct cso_context;
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct u_vbuf;
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct cso_context *cso_create_context( struct pipe_context *pipe );
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_release_all( struct cso_context *ctx );
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_destroy_context( struct cso_context *cso );
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_blend( struct cso_context *cso,
53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                               const struct pipe_blend_state *blend );
54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_blend(struct cso_context *cso);
55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_blend(struct cso_context *cso);
56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_depth_stencil_alpha( struct cso_context *cso,
60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                             const struct pipe_depth_stencil_alpha_state *dsa );
61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_depth_stencil_alpha(struct cso_context *cso);
62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_depth_stencil_alpha(struct cso_context *cso);
63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_rasterizer( struct cso_context *cso,
67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                    const struct pipe_rasterizer_state *rasterizer );
68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_rasterizer(struct cso_context *cso);
69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_rasterizer(struct cso_context *cso);
70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error
73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_set_samplers(struct cso_context *cso,
74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                 unsigned shader_stage,
75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                 unsigned count,
76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                 const struct pipe_sampler_state **states);
77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_save_samplers(struct cso_context *cso, unsigned shader_stage);
80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_restore_samplers(struct cso_context *cso, unsigned shader_stage);
83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* Alternate interface to support state trackers that like to modify
85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * samplers one at a time:
86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error
88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_single_sampler(struct cso_context *cso,
89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                   unsigned shader_stage,
90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                   unsigned count,
91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                   const struct pipe_sampler_state *states);
92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_single_sampler_done(struct cso_context *cso, unsigned shader_stage);
95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_vertex_elements(struct cso_context *ctx,
98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                        unsigned count,
99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                        const struct pipe_vertex_element *states);
100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_vertex_elements(struct cso_context *ctx);
101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_vertex_elements(struct cso_context *ctx);
102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_set_vertex_buffers(struct cso_context *ctx,
105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                            unsigned count,
106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                            const struct pipe_vertex_buffer *buffers);
107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_vertex_buffers(struct cso_context *ctx);
108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_vertex_buffers(struct cso_context *ctx);
109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_set_stream_outputs(struct cso_context *ctx,
112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                            unsigned num_targets,
113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                            struct pipe_stream_output_target **targets,
114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                            unsigned append_bitmask);
115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_stream_outputs(struct cso_context *ctx);
116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_stream_outputs(struct cso_context *ctx);
117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*
120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * We don't provide shader caching in CSO.  Most of the time the api provides
121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * object semantics for shaders anyway, and the cases where it doesn't
122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * (eg mesa's internally-generated texenv programs), it will be up to
123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the state tracker to implement their own specialized caching.
124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_fragment_shader_handle(struct cso_context *ctx,
127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                               void *handle );
128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_delete_fragment_shader(struct cso_context *ctx, void *handle );
129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_fragment_shader(struct cso_context *cso);
130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_fragment_shader(struct cso_context *cso);
131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_vertex_shader_handle(struct cso_context *ctx,
134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                             void *handle );
135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_delete_vertex_shader(struct cso_context *ctx, void *handle );
136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_vertex_shader(struct cso_context *cso);
137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_vertex_shader(struct cso_context *cso);
138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_geometry_shader_handle(struct cso_context *ctx,
141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                               void *handle);
142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_delete_geometry_shader(struct cso_context *ctx, void *handle);
143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_geometry_shader(struct cso_context *cso);
144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_geometry_shader(struct cso_context *cso);
145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_framebuffer(struct cso_context *cso,
148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                    const struct pipe_framebuffer_state *fb);
149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_framebuffer(struct cso_context *cso);
150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_framebuffer(struct cso_context *cso);
151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_viewport(struct cso_context *cso,
154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                 const struct pipe_viewport_state *vp);
155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_viewport(struct cso_context *cso);
156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_viewport(struct cso_context *cso);
157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_blend_color(struct cso_context *cso,
160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                    const struct pipe_blend_color *bc);
161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_sample_mask(struct cso_context *cso,
163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                    unsigned stencil_mask);
164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_sample_mask(struct cso_context *ctx);
165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_sample_mask(struct cso_context *ctx);
166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_error cso_set_stencil_ref(struct cso_context *cso,
168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                    const struct pipe_stencil_ref *sr);
169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_save_stencil_ref(struct cso_context *cso);
170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid cso_restore_stencil_ref(struct cso_context *cso);
171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* clip state */
174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_set_clip(struct cso_context *cso,
177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org             const struct pipe_clip_state *clip);
178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_save_clip(struct cso_context *cso);
181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_restore_clip(struct cso_context *cso);
184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* sampler view state */
187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_set_sampler_views(struct cso_context *cso,
190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                      unsigned shader_stage,
191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                      unsigned count,
192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                      struct pipe_sampler_view **views);
193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_save_sampler_views(struct cso_context *cso, unsigned shader_stage);
196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_restore_sampler_views(struct cso_context *cso, unsigned shader_stage);
199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* drawing */
203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_set_index_buffer(struct cso_context *cso,
206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     const struct pipe_index_buffer *ib);
207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_draw_vbo(struct cso_context *cso,
210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org             const struct pipe_draw_info *info);
211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* helper drawing function */
213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid
214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgcso_draw_arrays(struct cso_context *cso, uint mode, uint start, uint count);
215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifdef	__cplusplus
217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif
219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif
221