1 #ifndef __NV40_CONTEXT_H__
2 #define __NV40_CONTEXT_H__
4 #include "nvfx_context.h"
6 extern void nv40_init_state_functions(struct nvfx_context
*nvfx
);
7 extern void nv40_init_surface_functions(struct nvfx_context
*nvfx
);
8 extern void nv40_init_query_functions(struct nvfx_context
*nvfx
);
9 extern void nv40_init_transfer_functions(struct nvfx_context
*nvfx
);
11 extern void nv40_screen_init_miptree_functions(struct pipe_screen
*pscreen
);
14 extern struct draw_stage
*nv40_draw_render_stage(struct nvfx_context
*nvfx
);
15 extern void nv40_draw_elements_swtnl(struct pipe_context
*pipe
,
16 struct pipe_buffer
*idxbuf
,
17 unsigned ib_size
, unsigned mode
,
18 unsigned start
, unsigned count
);
21 extern void nv40_vertprog_destroy(struct nvfx_context
*,
22 struct nvfx_vertex_program
*);
25 extern void nv40_fragprog_destroy(struct nvfx_context
*,
26 struct nvfx_fragment_program
*);
29 extern void nv40_fragtex_bind(struct nvfx_context
*);
31 /* nv40_state.c and friends */
32 extern boolean
nv40_state_validate(struct nvfx_context
*nvfx
);
33 extern boolean
nv40_state_validate_swtnl(struct nvfx_context
*nvfx
);
34 extern void nv40_state_emit(struct nvfx_context
*nvfx
);
35 extern void nv40_state_flush_notify(struct nouveau_channel
*chan
);
36 extern struct nvfx_state_entry nv40_state_rasterizer
;
37 extern struct nvfx_state_entry nv40_state_scissor
;
38 extern struct nvfx_state_entry nv40_state_stipple
;
39 extern struct nvfx_state_entry nv40_state_fragprog
;
40 extern struct nvfx_state_entry nv40_state_vertprog
;
41 extern struct nvfx_state_entry nv40_state_blend
;
42 extern struct nvfx_state_entry nv40_state_blend_colour
;
43 extern struct nvfx_state_entry nv40_state_zsa
;
44 extern struct nvfx_state_entry nv40_state_viewport
;
45 extern struct nvfx_state_entry nv40_state_framebuffer
;
46 extern struct nvfx_state_entry nv40_state_fragtex
;
47 extern struct nvfx_state_entry nv40_state_vbo
;
48 extern struct nvfx_state_entry nv40_state_vtxfmt
;
49 extern struct nvfx_state_entry nv40_state_sr
;
52 extern void nv40_draw_arrays(struct pipe_context
*, unsigned mode
,
53 unsigned start
, unsigned count
);
54 extern void nv40_draw_elements(struct pipe_context
*pipe
,
55 struct pipe_buffer
*indexBuffer
,
57 unsigned mode
, unsigned start
,
61 extern void nv40_clear(struct pipe_context
*pipe
, unsigned buffers
,
62 const float *rgba
, double depth
, unsigned stencil
);
66 nv40_create(struct pipe_screen
*pscreen
, void *priv
);