1 #include "draw/draw_context.h"
2 #include "pipe/p_defines.h"
3 #include "pipe/p_winsys.h"
4 #include "pipe/p_util.h"
6 #include "nv50_context.h"
7 #include "nv50_screen.h"
10 nv50_flush(struct pipe_context
*pipe
, unsigned flags
,
11 struct pipe_fence_handle
**fence
)
13 struct nv50_context
*nv50
= (struct nv50_context
*)pipe
;
19 nv50_destroy(struct pipe_context
*pipe
)
21 struct nv50_context
*nv50
= (struct nv50_context
*)pipe
;
23 draw_destroy(nv50
->draw
);
29 nv50_set_edgeflags(struct pipe_context
*pipe
, const unsigned *bitfield
)
34 nv50_create(struct pipe_screen
*pscreen
, unsigned pctx_id
)
36 struct pipe_winsys
*pipe_winsys
= pscreen
->winsys
;
37 struct nv50_screen
*screen
= nv50_screen(pscreen
);
38 struct nv50_context
*nv50
;
40 nv50
= CALLOC_STRUCT(nv50_context
);
43 nv50
->screen
= screen
;
44 nv50
->pctx_id
= pctx_id
;
46 nv50
->pipe
.winsys
= pipe_winsys
;
47 nv50
->pipe
.screen
= pscreen
;
49 nv50
->pipe
.destroy
= nv50_destroy
;
51 nv50
->pipe
.set_edgeflags
= nv50_set_edgeflags
;
52 nv50
->pipe
.draw_arrays
= nv50_draw_arrays
;
53 nv50
->pipe
.draw_elements
= nv50_draw_elements
;
54 nv50
->pipe
.clear
= nv50_clear
;
56 nv50
->pipe
.flush
= nv50_flush
;
58 nv50_init_surface_functions(nv50
);
59 nv50_init_state_functions(nv50
);
60 nv50_init_query_functions(nv50
);
62 nv50
->draw
= draw_create();
64 draw_set_rasterize_stage(nv50
->draw
, nv50_draw_render_stage(nv50
));