Merge commit 'origin/gallium-master-merge'
[mesa.git] / src / gallium / drivers / nv04 / nv04_surface_2d.h
1 #ifndef __NV04_SURFACE_2D_H__
2 #define __NV04_SURFACE_2D_H__
3
4 struct nv04_surface_2d {
5 struct nouveau_winsys *nvws;
6 struct nouveau_notifier *ntfy;
7 struct nouveau_grobj *surf2d;
8 struct nouveau_grobj *swzsurf;
9 struct nouveau_grobj *m2mf;
10 struct nouveau_grobj *rect;
11 struct nouveau_grobj *blit;
12 struct nouveau_grobj *sifm;
13
14 struct pipe_buffer *(*buf)(struct pipe_surface *);
15
16 void (*copy)(struct nv04_surface_2d *, struct pipe_surface *dst,
17 int dx, int dy, struct pipe_surface *src, int sx, int sy,
18 int w, int h);
19 void (*fill)(struct nv04_surface_2d *, struct pipe_surface *dst,
20 int dx, int dy, int w, int h, unsigned value);
21 };
22
23 struct nv04_surface_2d *
24 nv04_surface_2d_init(struct nouveau_winsys *nvws);
25
26 void
27 nv04_surface_2d_takedown(struct nv04_surface_2d **);
28
29 #endif