浏览代码

nouveau: nv10: add function to clear a buffer

tags/mesa_7_1_rc1
Patrice Mandin 18 年前
父节点
当前提交
a60695ebaf
共有 1 个文件被更改,包括 31 次插入1 次删除
  1. 31
    1
      src/mesa/drivers/dri/nouveau/nv10_state.c

+ 31
- 1
src/mesa/drivers/dri/nouveau/nv10_state.c 查看文件

@@ -111,11 +111,41 @@ static void nv10BlendFuncSeparate(GLcontext *ctx, GLenum sfactorRGB, GLenum dfac
OUT_RING_CACHE(dfactorRGB);
}

static void nv10Clear(GLcontext *ctx, GLbitfield mask)
static void nv10ClearBuffer(GLcontext *ctx, nouveau_renderbuffer_t *buffer, int fill, int mask)
{
nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx);

if (!buffer) {
return;
}

/* TODO */
}

static void nv10Clear(GLcontext *ctx, GLbitfield mask)
{
nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx);

if (mask & (BUFFER_BIT_FRONT_LEFT)) {
nv10ClearBuffer(ctx, nmesa->color_buffer[0],
nmesa->clear_color_value, 0xffffffff);
}
if (mask & (BUFFER_BIT_BACK_LEFT)) {
nv10ClearBuffer(ctx, nmesa->color_buffer[1],
nmesa->clear_color_value, 0xffffffff);
}
/* FIXME: check depth bits */
if (mask & (BUFFER_BIT_DEPTH)) {
nv10ClearBuffer(ctx, nmesa->depth_buffer,
nmesa->clear_value, 0xffffff00);
}
/* FIXME: check about stencil? */
if (mask & (BUFFER_BIT_STENCIL)) {
nv10ClearBuffer(ctx, nmesa->depth_buffer,
nmesa->clear_value, 0x000000ff);
}
}

static void nv10ClearColor(GLcontext *ctx, const GLfloat color[4])
{
nouveauContextPtr nmesa = NOUVEAU_CONTEXT(ctx);

正在加载...
取消
保存