From: Brian Paul Date: Mon, 3 Oct 2005 16:11:21 +0000 (+0000) Subject: finish up some missing code X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b0e7d850d1471fd8e5aa99a67ec7ea9721b692ad;p=mesa.git finish up some missing code --- diff --git a/src/mesa/main/texrender.c b/src/mesa/main/texrender.c index f7f3fdb4b0b..ae4a2a5527b 100644 --- a/src/mesa/main/texrender.c +++ b/src/mesa/main/texrender.c @@ -27,14 +27,29 @@ static void texture_get_row(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, GLint x, GLint y, void *values) { - /* XXX unfinished */ + const struct texture_renderbuffer *trb + = (const struct texture_renderbuffer *) rb; + const GLint z = trb->Zoffset; + GLchan *rgbaOut = (GLchan *) values; + GLuint i; + for (i = 0; i < count; i++) { + trb->TexImage->FetchTexelc(trb->TexImage, x + i, y, z, rgbaOut + 4 * i); + } } static void texture_get_values(GLcontext *ctx, struct gl_renderbuffer *rb, GLuint count, const GLint x[], const GLint y[], void *values) { - /* XXX unfinished */ + const struct texture_renderbuffer *trb + = (const struct texture_renderbuffer *) rb; + const GLint z = trb->Zoffset; + GLchan *rgbaOut = (GLchan *) values; + GLuint i; + for (i = 0; i < count; i++) { + trb->TexImage->FetchTexelc(trb->TexImage, x[i], y[i], z, + rgbaOut + 4 * i); + } } static void @@ -170,6 +185,13 @@ wrap_texture(GLcontext *ctx, struct gl_renderbuffer_attachment *att) trb->Base.Delete = delete_texture_wrapper; trb->Base.AllocStorage = NULL; /* illegal! */ + /* XXX fix these */ + trb->Base.RedBits = trb->TexImage->TexFormat->RedBits; + trb->Base.GreenBits = trb->TexImage->TexFormat->GreenBits; + trb->Base.BlueBits = trb->TexImage->TexFormat->BlueBits; + trb->Base.AlphaBits = trb->TexImage->TexFormat->AlphaBits; + trb->Base.DepthBits = trb->TexImage->TexFormat->DepthBits; + att->Renderbuffer = &(trb->Base); }