Fix pow <small> and a very stypid bug with dummy srcs(0 equals to tmp0.x)</small...
[mesa.git] / src / mesa / main / texrender.c
index ae4a2a5527bbe507e7969be17d8f52356236e261..a4efe64038246498e6853390db9231819b533a80 100644 (file)
@@ -124,6 +124,7 @@ texture_put_mono_values(GLcontext *ctx, struct gl_renderbuffer *rb,
 static void
 delete_texture_wrapper(struct gl_renderbuffer *rb)
 {
+   ASSERT(rb->RefCount == 0);
    _mesa_free(rb);
 }
 
@@ -162,9 +163,10 @@ wrap_texture(GLcontext *ctx, struct gl_renderbuffer_attachment *att)
 
    trb->Zoffset = att->Zoffset;
 
+   trb->Base.RefCount = 1;
    trb->Base.Width = trb->TexImage->Width;
    trb->Base.Height = trb->TexImage->Height;
-   trb->Base.InternalFormat = trb->TexImage->IntFormat; /* XXX fix? */
+   trb->Base.InternalFormat = trb->TexImage->InternalFormat; /* XXX fix? */
    trb->Base._BaseFormat = trb->TexImage->TexFormat->BaseFormat;
 #if 0
    /* fix/avoid this assertion someday */
@@ -213,8 +215,8 @@ _mesa_renderbuffer_texture(GLcontext *ctx,
    if (texObj) {
       _mesa_set_texture_attachment(ctx, att, texObj,
                                    texTarget, level, zoffset);
-
-      wrap_texture(ctx, att);
+      if (!att->Renderbuffer)
+         wrap_texture(ctx, att);
    }
    else {
       _mesa_remove_attachment(ctx, att);