浏览代码

softpipe: Implement texture blankets.

tags/mesa_20090313
José Fonseca 17 年前
父节点
当前提交
1942e29bf7
共有 1 个文件被更改,包括 34 次插入0 次删除
  1. 34
    0
      src/gallium/drivers/softpipe/sp_texture.c

+ 34
- 0
src/gallium/drivers/softpipe/sp_texture.c 查看文件

} }




static struct pipe_texture *
softpipe_texture_blanket(struct pipe_screen * screen,
const struct pipe_texture *base,
const unsigned *stride,
struct pipe_buffer *buffer)
{
struct softpipe_texture *spt;
assert(screen);

/* Only supports one type */
if (base->target != PIPE_TEXTURE_2D ||
base->last_level != 0 ||
base->depth[0] != 1) {
return NULL;
}

spt = CALLOC_STRUCT(softpipe_texture);
if (!spt)
return NULL;

spt->base = *base;
spt->base.refcount = 1;
spt->base.screen = screen;
spt->base.nblocksx[0] = pf_get_nblocksx(&spt->base.block, spt->base.width[0]);
spt->base.nblocksy[0] = pf_get_nblocksy(&spt->base.block, spt->base.height[0]);
spt->stride[0] = stride[0];

pipe_buffer_reference(screen->winsys, &spt->buffer, buffer);

return &spt->base;
}


static void static void
softpipe_texture_release(struct pipe_screen *screen, softpipe_texture_release(struct pipe_screen *screen,
struct pipe_texture **pt) struct pipe_texture **pt)
softpipe_init_screen_texture_funcs(struct pipe_screen *screen) softpipe_init_screen_texture_funcs(struct pipe_screen *screen)
{ {
screen->texture_create = softpipe_texture_create; screen->texture_create = softpipe_texture_create;
screen->texture_blanket = softpipe_texture_blanket;
screen->texture_release = softpipe_texture_release; screen->texture_release = softpipe_texture_release;


screen->get_tex_surface = softpipe_get_tex_surface; screen->get_tex_surface = softpipe_get_tex_surface;

正在加载...
取消
保存