1 #ifndef __NV04_SURFACE_2D_H__
2 #define __NV04_SURFACE_2D_H__
5 struct pipe_surface base
;
7 struct nv04_surface
* backing
;
10 struct nv04_surface_2d
{
11 struct nouveau_notifier
*ntfy
;
12 struct nouveau_grobj
*surf2d
;
13 struct nouveau_grobj
*swzsurf
;
14 struct nouveau_grobj
*m2mf
;
15 struct nouveau_grobj
*rect
;
16 struct nouveau_grobj
*blit
;
17 struct nouveau_grobj
*sifm
;
19 struct pipe_buffer
*(*buf
)(struct pipe_surface
*);
21 void (*copy
)(struct nv04_surface_2d
*, struct pipe_surface
*dst
,
22 int dx
, int dy
, struct pipe_surface
*src
, int sx
, int sy
,
24 void (*fill
)(struct nv04_surface_2d
*, struct pipe_surface
*dst
,
25 int dx
, int dy
, int w
, int h
, unsigned value
);
28 struct nv04_surface_2d
*
29 nv04_surface_2d_init(struct nouveau_screen
*screen
);
32 nv04_surface_2d_takedown(struct nv04_surface_2d
**);
35 nv04_surface_wrap_for_render(struct pipe_screen
*pscreen
, struct nv04_surface_2d
* eng2d
, struct nv04_surface
* ns
);