more render to texture work
This commit is contained in:
@@ -283,26 +283,23 @@ st_render_texture(GLcontext *ctx,
|
||||
struct gl_renderbuffer_attachment *att)
|
||||
{
|
||||
struct st_context *st = ctx->st;
|
||||
struct st_renderbuffer *strb = st_renderbuffer(att->Renderbuffer);
|
||||
struct pipe_context *pipe = st->pipe;
|
||||
struct pipe_framebuffer_state framebuffer;
|
||||
struct pipe_surface *texsurface;
|
||||
struct pipe_mipmap_tree *mt;
|
||||
|
||||
mt = st_get_texobj_mipmap_tree(att->Texture);
|
||||
|
||||
texsurface = pipe->get_tex_surface(pipe, mt,
|
||||
att->CubeMapFace,
|
||||
att->TextureLevel,
|
||||
att->Zoffset);
|
||||
/* the renderbuffer's surface is inside the mipmap_tree: */
|
||||
strb->surface = pipe->get_tex_surface(pipe, mt,
|
||||
att->CubeMapFace,
|
||||
att->TextureLevel,
|
||||
att->Zoffset);
|
||||
|
||||
/*
|
||||
* XXX basically like this... set the current color (or depth)
|
||||
* drawing surface to be the given texture renderbuffer.
|
||||
*/
|
||||
/* update pipe's framebuffer state */
|
||||
memset(&framebuffer, 0, sizeof(framebuffer));
|
||||
framebuffer.num_cbufs = 1;
|
||||
framebuffer.cbufs[0] = texsurface;
|
||||
|
||||
framebuffer.cbufs[0] = strb->surface;
|
||||
if (memcmp(&framebuffer, &st->state.framebuffer, sizeof(framebuffer)) != 0) {
|
||||
st->state.framebuffer = framebuffer;
|
||||
st->pipe->set_framebuffer_state( st->pipe, &framebuffer );
|
||||
|
||||
Reference in New Issue
Block a user