diff options
author | Ben Skeggs <[email protected]> | 2009-02-05 18:19:32 +1000 |
---|---|---|
committer | Ben Skeggs <[email protected]> | 2009-02-05 18:22:41 +1000 |
commit | ff8dff017e537c6db4c86aad43e92b768cb187e4 (patch) | |
tree | 984360ac7447dd5d889628ffef995d821ed8f442 /src/gallium/drivers/nv04/nv04_screen.c | |
parent | 13393736dbab1087589f8dd788bc412d16b431d1 (diff) |
nv04-nv40: move 2d blit/fill code into pipe driver
Diffstat (limited to 'src/gallium/drivers/nv04/nv04_screen.c')
-rw-r--r-- | src/gallium/drivers/nv04/nv04_screen.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/nv04/nv04_screen.c b/src/gallium/drivers/nv04/nv04_screen.c index e5e3d4772aa..9ef38bc244c 100644 --- a/src/gallium/drivers/nv04/nv04_screen.c +++ b/src/gallium/drivers/nv04/nv04_screen.c @@ -149,10 +149,19 @@ nv04_screen_destroy(struct pipe_screen *pscreen) nvws->notifier_free(&screen->sync); nvws->grobj_free(&screen->fahrenheit); + nv04_surface_2d_takedown(&screen->eng2d); FREE(pscreen); } +static struct pipe_buffer * +nv04_surface_buffer(struct pipe_surface *surf) +{ + struct nv04_miptree *mt = (struct nv04_miptree *)surf->texture; + + return mt->buffer; +} + struct pipe_screen * nv04_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws) { @@ -181,6 +190,10 @@ nv04_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws) return NULL; } + /* 2D engine setup */ + screen->eng2d = nv04_surface_2d_init(nvws); + screen->eng2d->buf = nv04_surface_buffer; + /* 3D object */ ret = nvws->grobj_alloc(nvws, fahrenheit_class, &screen->fahrenheit); if (ret) { |