Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4358 | Serge | 1 | /********************************************************** |
2 | * Copyright 2008-2009 VMware, Inc. All rights reserved. |
||
3 | * |
||
4 | * Permission is hereby granted, free of charge, to any person |
||
5 | * obtaining a copy of this software and associated documentation |
||
6 | * files (the "Software"), to deal in the Software without |
||
7 | * restriction, including without limitation the rights to use, copy, |
||
8 | * modify, merge, publish, distribute, sublicense, and/or sell copies |
||
9 | * of the Software, and to permit persons to whom the Software is |
||
10 | * furnished to do so, subject to the following conditions: |
||
11 | * |
||
12 | * The above copyright notice and this permission notice shall be |
||
13 | * included in all copies or substantial portions of the Software. |
||
14 | * |
||
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||
16 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||
17 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
||
18 | * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
||
19 | * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
||
20 | * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
||
21 | * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
||
22 | * SOFTWARE. |
||
23 | * |
||
24 | **********************************************************/ |
||
25 | |||
26 | #ifndef SVGA_DRAW_H |
||
27 | #define SVGA_DRAW_H |
||
28 | |||
29 | #include "pipe/p_compiler.h" |
||
30 | |||
31 | #include "svga_hw_reg.h" |
||
32 | |||
33 | struct svga_hwtnl; |
||
34 | struct svga_winsys_context; |
||
35 | struct svga_screen; |
||
36 | struct svga_context; |
||
37 | struct pipe_resource; |
||
38 | struct u_upload_mgr; |
||
39 | |||
40 | struct svga_hwtnl *svga_hwtnl_create( struct svga_context *svga, |
||
41 | struct u_upload_mgr *upload_ib, |
||
42 | struct svga_winsys_context *swc ); |
||
43 | |||
44 | void svga_hwtnl_destroy( struct svga_hwtnl *hwtnl ); |
||
45 | |||
46 | void svga_hwtnl_set_flatshade( struct svga_hwtnl *hwtnl, |
||
47 | boolean flatshade, |
||
48 | boolean flatshade_first ); |
||
49 | |||
50 | void svga_hwtnl_set_unfilled( struct svga_hwtnl *hwtnl, |
||
51 | unsigned mode ); |
||
52 | |||
53 | void svga_hwtnl_vdecl( struct svga_hwtnl *hwtnl, |
||
54 | unsigned i, |
||
55 | const SVGA3dVertexDecl *decl, |
||
56 | struct pipe_resource *vb); |
||
57 | |||
58 | void svga_hwtnl_reset_vdecl( struct svga_hwtnl *hwtnl, |
||
59 | unsigned count ); |
||
60 | |||
61 | |||
62 | enum pipe_error |
||
63 | svga_hwtnl_draw_arrays( struct svga_hwtnl *hwtnl, |
||
64 | unsigned prim, |
||
65 | unsigned start, |
||
66 | unsigned count); |
||
67 | |||
68 | enum pipe_error |
||
69 | svga_hwtnl_draw_range_elements( struct svga_hwtnl *hwtnl, |
||
70 | struct pipe_resource *indexBuffer, |
||
71 | unsigned index_size, |
||
72 | int index_bias, |
||
73 | unsigned min_index, |
||
74 | unsigned max_index, |
||
75 | unsigned prim, |
||
76 | unsigned start, |
||
77 | unsigned count ); |
||
78 | |||
79 | boolean |
||
80 | svga_hwtnl_is_buffer_referred( struct svga_hwtnl *hwtnl, |
||
81 | struct pipe_resource *buffer ); |
||
82 | |||
83 | enum pipe_error |
||
84 | svga_hwtnl_flush( struct svga_hwtnl *hwtnl ); |
||
85 | |||
86 | void svga_hwtnl_set_index_bias( struct svga_hwtnl *hwtnl, |
||
87 | int index_bias); |
||
88 | |||
89 | |||
90 | #endif /* SVGA_DRAW_H_ */ |