void FreeBitmap(DisplaySystem displaySystem, Bitmap bitmap)
{
- glDeleteTextures(1, (int *)&bitmap.driverData);
- bitmap.driverData = 0;
-
+ if(bitmap.driverData)
+ {
+ glDeleteTextures(1, (int *)&bitmap.driverData);
+ bitmap.driverData = 0;
+ }
bitmap.driver = ((subclass(DisplayDriver))class(LFBDisplayDriver));
}
void FreeBitmap(DisplaySystem displaySystem, Bitmap bitmap)
{
XBitmap xBitmap = bitmap.driverData;
-
- if(xBitmap.pixmap)
- XFreePixmap(xGlobalDisplay, xBitmap.pixmap);
- if(xBitmap.mask)
- XFreePixmap(xGlobalDisplay, xBitmap.mask);
- if(xBitmap.picture)
- XRenderFreePicture(xGlobalDisplay, xBitmap.picture);
- if(xBitmap.maskPicture)
- XRenderFreePicture(xGlobalDisplay, xBitmap.maskPicture);
- delete xBitmap;
+ if(xBitmap)
+ {
+ if(xBitmap.pixmap)
+ XFreePixmap(xGlobalDisplay, xBitmap.pixmap);
+ if(xBitmap.mask)
+ XFreePixmap(xGlobalDisplay, xBitmap.mask);
+ if(xBitmap.picture)
+ XRenderFreePicture(xGlobalDisplay, xBitmap.picture);
+ if(xBitmap.maskPicture)
+ XRenderFreePicture(xGlobalDisplay, xBitmap.maskPicture);
+ delete xBitmap;
+ bitmap.driverData = null;
+ }
((subclass(DisplayDriver))class(LFBDisplayDriver)).FreeBitmap(displaySystem, bitmap);
}