1 /**************************************************************************
3 * Copyright 2005 Tungsten Graphics, Inc., Cedar Park, Texas.
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 **************************************************************************/
31 #include "mtypes.h" /* for GLcontext... */
32 #include "brw_attrib.h"
36 struct brw_draw_prim
{
48 struct brw_draw_index_buffer
{
51 struct gl_buffer_object
*obj
;
57 #define BRW_DRAW_SORTED 0x1
58 #define BRW_DRAW_ALL_INTERLEAVED 0x2
59 #define BRW_DRAW_NON_INTERLEAVED 0x4
60 #define BRW_DRAW_LOCKED 0x8
62 GLboolean
brw_draw_prims( GLcontext
*ctx
,
63 const struct gl_client_array
*arrays
[],
64 const struct brw_draw_prim
*prims
,
66 const struct brw_draw_index_buffer
*ib
,
71 void brw_draw_init( struct brw_context
*brw
);
72 void brw_draw_destroy( struct brw_context
*brw
);
76 void brw_init_current_values(GLcontext
*ctx
,
77 struct gl_client_array
*arrays
);
82 void brw_upload_indices( struct brw_context
*brw
,
83 const struct brw_draw_index_buffer
*index_buffer
);
85 GLboolean
brw_upload_vertices( struct brw_context
*brw
,
90 /* Helpers for save, exec. Should probably have their own file:
92 struct brw_exec_context
;
93 struct brw_save_context
;
95 struct brw_exec_save
{
96 struct brw_exec_context
*exec
;
97 struct brw_save_context
*save
;
100 /* Doesn't really belong here:
102 #define IMM_CONTEXT(ctx) ((struct brw_exec_save *)((ctx)->swtnl_im))