Browse Source

display: Fix ability to copy wdxGraphicsBuffer to RAM on DX9

rdb 1 year ago
parent
commit
bd4dc8a379

+ 6 - 5
panda/src/display/frameBufferProperties.cxx

@@ -305,11 +305,12 @@ int FrameBufferProperties::
 get_buffer_mask() const {
   int mask = 0;
 
-  if (_property[FBP_back_buffers] > 0) {
-    mask = RenderBuffer::T_front | RenderBuffer::T_back;
-  } else {
-    mask = RenderBuffer::T_front;
-  }
+  //XXX rdb: some buffers only have a front buffer, some only a back buffer
+  //if (_property[FBP_back_buffers] > 0) {
+     mask = RenderBuffer::T_front | RenderBuffer::T_back;
+  //} else {
+  //  mask = RenderBuffer::T_front;
+  //}
   if (_property[FBP_depth_bits] > 0) {
     mask |= RenderBuffer::T_depth;
   }

+ 4 - 3
panda/src/dxgsg9/wdxGraphicsBuffer9.cxx

@@ -45,9 +45,10 @@ wdxGraphicsBuffer9(GraphicsEngine *engine, GraphicsPipe *pipe,
   _color_backing_store = nullptr;
   _depth_backing_store = nullptr;
 
-  // is this correct ??? Since the pbuffer never gets flipped, we get
-  // screenshots from the same buffer we draw into.
-  _screenshot_buffer_type = _draw_buffer_type;
+  // Since the pbuffer never gets flipped, we get screenshots from the same
+  // buffer we draw into, which is the back buffer.
+  _draw_buffer_type = RenderBuffer::T_back;
+  _screenshot_buffer_type = RenderBuffer::T_back;
 
   _shared_depth_buffer = 0;
   _debug = 0;