Browse Source

dont fill textures w/o ram images

cxgeorge 23 years ago
parent
commit
d0197351ab
1 changed files with 11 additions and 3 deletions
  1. 11 3
      panda/src/dxgsg8/dxTextureContext8.cxx

+ 11 - 3
panda/src/dxgsg8/dxTextureContext8.cxx

@@ -1425,9 +1425,11 @@ IDirect3DTexture8 *DXTextureContext::CreateTexture(DXScreenData &scrn) {
 #endif
 #endif
 #endif
 #endif
 
 
-    hr = FillDDSurfTexturePixels();
-    if(FAILED(hr)) {
-        goto error_exit;
+    if(_texture->has_ram_image()) {
+        hr = FillDDSurfTexturePixels();
+        if(FAILED(hr)) {
+           goto error_exit;
+        }
     }
     }
 
 
     // Return the newly created texture
     // Return the newly created texture
@@ -1443,6 +1445,12 @@ HRESULT DXTextureContext::
 FillDDSurfTexturePixels(void) {
 FillDDSurfTexturePixels(void) {
     HRESULT hr=E_FAIL;
     HRESULT hr=E_FAIL;
     assert(IS_VALID_PTR(_texture));
     assert(IS_VALID_PTR(_texture));
+
+    if(!_texture->has_ram_image()) {
+      dxgsg_cat.warning() << "CreateTexture: tried to fill surface that has no ram image!\n";
+      return S_OK;
+    }
+
     PixelBuffer *pbuf = _texture->get_ram_image();
     PixelBuffer *pbuf = _texture->get_ram_image();
     if (pbuf == (PixelBuffer *)NULL) {
     if (pbuf == (PixelBuffer *)NULL) {
       dxgsg_cat.fatal() << "CreateTexture: get_ram_image() failed\n";
       dxgsg_cat.fatal() << "CreateTexture: get_ram_image() failed\n";