/* See
Creating a new Image Type - An Example for details */
#if !defined(DIMG_IMAGE_H)
#define DIMG_IMAGE_H
#include <tcl.h>
#include <tk.h>
//#include "tkInt.h"
//#include "tkPort.h"
//#include "tkCanvas.h"
#include "tkWinInt.h"
typedef struct DimgInstance DimgInstance;
typedef struct DimgMaster
{
Tk_ImageMaster tkMaster; // Tk's token for image master.
// NULL means the image is being deleted.
char szName[256]; // Name of image
Tcl_Interp *pInterp; // Interpreter associated with the application using this image.
int nInstance; // Number of instances of image
DimgInstance *pInstance; // First in the list of instances associated with this master.
int nWidth; // Image width
int nHeight; // Image height
int nMaskPitch; // Pitch for mask bitmap
int nImagePitch; // Pitch for mask bitmap
HBITMAP bmImage; // Bitmap for rgb image
HBITMAP bmMask; // Bitmap for mask image
DWORD dwImageMode; // Mode for rgb image
DWORD dwMaskMode; // Mode for mask image
char *pImageData; // Pointer to raw image data
char *pMaskData; // Pointer to raw mask data
RGBQUAD aColorTable[8]; // Color table for mask image
} DimgMaster;
struct DimgInstance
{
Tk_Window tkwin; // Pointer to window
DimgMaster *pMaster; // Pointer to master for image
DimgInstance *pNext; // Pointer to the next instance in the list
};
void vRegisterDimg();
#endif //DIMG_IMAGE_