summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nv30/nv30_context.h
blob: 2fc148cdedb6ed3149bf3a75e00fad0f193f5985 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef __NV30_CONTEXT_H__
#define __NV30_CONTEXT_H__

#include "nvfx_context.h"

extern void nv30_init_state_functions(struct nvfx_context *nvfx);
extern void nv30_init_surface_functions(struct nvfx_context *nvfx);
extern void nv30_init_query_functions(struct nvfx_context *nvfx);
extern void nv30_init_transfer_functions(struct nvfx_context *nvfx);

extern void nv30_screen_init_miptree_functions(struct pipe_screen *pscreen);

/* nv30_draw.c */
extern struct draw_stage *nv30_draw_render_stage(struct nvfx_context *nvfx);

/* nv30_vertprog.c */
extern void nv30_vertprog_destroy(struct nvfx_context *,
				  struct nvfx_vertex_program *);

/* nv30_fragprog.c */
extern void nv30_fragprog_destroy(struct nvfx_context *,
				  struct nvfx_fragment_program *);

/* nv30_fragtex.c */
extern void nv30_fragtex_bind(struct nvfx_context *);

/* nv30_state.c and friends */
extern boolean nv30_state_validate(struct nvfx_context *nvfx);
extern void nv30_state_emit(struct nvfx_context *nvfx);
extern void nv30_state_flush_notify(struct nouveau_channel *chan);
extern struct nvfx_state_entry nv30_state_rasterizer;
extern struct nvfx_state_entry nv30_state_scissor;
extern struct nvfx_state_entry nv30_state_stipple;
extern struct nvfx_state_entry nv30_state_fragprog;
extern struct nvfx_state_entry nv30_state_vertprog;
extern struct nvfx_state_entry nv30_state_blend;
extern struct nvfx_state_entry nv30_state_blend_colour;
extern struct nvfx_state_entry nv30_state_zsa;
extern struct nvfx_state_entry nv30_state_viewport;
extern struct nvfx_state_entry nv30_state_framebuffer;
extern struct nvfx_state_entry nv30_state_fragtex;
extern struct nvfx_state_entry nv30_state_vbo;
extern struct nvfx_state_entry nv30_state_sr;

/* nv30_vbo.c */
extern void nv30_draw_arrays(struct pipe_context *, unsigned mode,
				unsigned start, unsigned count);
extern void nv30_draw_elements(struct pipe_context *pipe,
				  struct pipe_buffer *indexBuffer,
				  unsigned indexSize,
				  unsigned mode, unsigned start,
				  unsigned count);

/* nv30_clear.c */
extern void nv30_clear(struct pipe_context *pipe, unsigned buffers,
		       const float *rgba, double depth, unsigned stencil);

/* nvfx_context.c */
struct pipe_context *
nv30_create(struct pipe_screen *pscreen, void *priv);

#endif