Selaa lähdekoodia

properly uninvert framebuffer-to-texture

David Rose 17 vuotta sitten
vanhempi
sitoutus
990e0883de

+ 2 - 2
panda/src/tinydisplay/tinyGraphicsStateGuardian.cxx

@@ -1392,11 +1392,11 @@ framebuffer_copy_to_texture(Texture *tex, int z, const DisplayRegion *dr,
   GLTexture *gltex = gtc->_gltex;
   setup_gltex(gltex, tex->get_x_size(), tex->get_y_size());
 
-  PIXEL *ip = gltex->pixmap;
+  PIXEL *ip = gltex->pixmap + gltex->xsize * gltex->ysize;
   PIXEL *fo = _c->zb->pbuf + xo + yo * _c->zb->linesize / PSZB;
   for (int y = 0; y < gltex->ysize; ++y) {
+    ip -= gltex->xsize;
     memcpy(ip, fo, gltex->xsize * PSZB);
-    ip += gltex->xsize;
     fo += _c->zb->linesize / PSZB;
   }
 

+ 1 - 1
panda/src/tinydisplay/tinyXGraphicsWindow.cxx

@@ -574,7 +574,7 @@ void TinyXGraphicsWindow::
 close_window() {
   if (_gsg != (GraphicsStateGuardian *)NULL) {
     TinyGraphicsStateGuardian *tinygsg;
-    DCAST_INTO_R(tinygsg, _gsg, false);
+    DCAST_INTO_V(tinygsg, _gsg);
     tinygsg->_current_frame_buffer = NULL;
     _gsg.clear();
     _active = false;