Authors: Ove Kaaven <ovek@transgaming.com>, Andrew Lewycky <andrew@transgaming.com>, Gavriel State <gav@transgaming.com>
DIB section improvements; UpdateDIBSection has been replaced with
LockDIBSection and UnlockDIBSection, for improved thread safety.
DIB_Status_* is now driver-independent, and there's a new
DIB_Status_AuxMod. Better handling of DIB surfaces with nonstandard
pitch. Slight optimization of DIBsection->display BitBlt.
diff --git a/include/bitmap.h b/include/bitmap.h
index b028bbd..6aa311b 100644
--- a/include/bitmap.h
+++ b/include/bitmap.h
@@ -18,6 +18,9 @@
#define DDB_COPY 4
#define DDB_SETWITHFILLER 8
+/* DIB Section sync state */
+enum { DIB_Status_None, DIB_Status_InSync, DIB_Status_GdiMod, DIB_Status_AppMod, DIB_Status_AuxMod };
+
/* GDI logical bitmap object */
typedef struct tagBITMAPOBJ
{
@@ -37,6 +40,8 @@
VOID (*pDeleteDIBSection)(struct tagBITMAPOBJ *);
UINT (*pSetDIBColorTable)(struct tagBITMAPOBJ *,struct tagDC *,UINT,UINT,const RGBQUAD *);
UINT (*pGetDIBColorTable)(struct tagBITMAPOBJ *,struct tagDC *,UINT,UINT,RGBQUAD *);
+ INT (*pLockDIB)(struct tagBITMAPOBJ *,INT,BOOL);
+ VOID (*pUnlockDIB)(struct tagBITMAPOBJ *,BOOL);
} BITMAP_DRIVER;
extern BITMAP_DRIVER *BITMAP_Driver;