home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / igbmodel.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  3.9 KB  |  147 lines

  1. /*
  2.  
  3. MODEL.C  Work on the model used in GbmV2
  4.  
  5. */
  6.  
  7. #ifndef MODEL_H
  8. #define MODEL_H
  9.  
  10.  
  11. #include "igbmstnd.hpp"
  12. #include "igbm.hpp"
  13.  
  14. #define UNKNOWN_IMAGETYPE -1
  15.  
  16. /* These needs to encompass all the GBM errors, plus some extras */
  17. typedef int MOD_ERR;
  18. #define MOD_ERR_OK      ((MOD_ERR) 0)
  19. #define MOD_ERR_MEM     ((MOD_ERR) 1)
  20. #define MOD_ERR_OPEN    ((MOD_ERR) 2)
  21. #define MOD_ERR_CREATE  ((MOD_ERR) 3)
  22. #define MOD_ERR_SUPPORT ((MOD_ERR) 4)
  23. #define MOD_ERR_HDC     ((MOD_ERR) 5)
  24. #define MOD_ERR_HPS     ((MOD_ERR) 6)
  25. #define MOD_ERR_HBITMAP ((MOD_ERR) 7)
  26. #define MOD_ERR_HMF     ((MOD_ERR) 8)
  27. #define MOD_ERR_CLIP    ((MOD_ERR) 9)
  28. #define MOD_ERR_GBM(rc) ((MOD_ERR) 0x8000+(rc))
  29.  
  30. typedef struct _MOD
  31.         {
  32.         GBM    gbm;
  33.         GBMRGB gbmrgb[0x100];
  34.         BYTE*  pbData;
  35.         long   bufSize;
  36.         } MOD;
  37.  
  38. extern "C" MOD_ERR ModCreate(
  39.         int w, int h, int bpp, GBMRGB gbmrgb[],
  40.         MOD *modNew
  41.         );
  42.  
  43. extern "C" MOD_ERR ModDelete(MOD *mod);
  44.  
  45. extern "C" MOD_ERR ModCopy(MOD *mod, MOD *modNew);
  46.  
  47. extern "C" MOD_ERR ModMove(MOD *mod, MOD *modNew);
  48.  
  49. extern "C" MOD_ERR ModCreateFromFile( CHAR *szFn,
  50.                                       int *ft,
  51.                                       CHAR *szOpt,
  52.                                       MOD *modNew );
  53.  
  54. extern "C" MOD_ERR ModCreateFromHBitmap( MOD     *mod,
  55.                                          HBITMAP  hbm,
  56.                                          HPALETTE hpal );
  57.  
  58. extern "C" MOD_ERR ModWriteToFile( MOD *mod,
  59.                                    int ft,
  60.                                    CHAR *szFn,
  61.                                    CHAR *szOpt );
  62.  
  63. extern "C" MOD_ERR ModExpandTo24Bpp(MOD *mod, MOD *mod24);
  64.  
  65. extern "C" MOD_ERR ModReflectHorz(MOD *mod, MOD *modNew);
  66. extern "C" MOD_ERR ModReflectVert(MOD *mod, MOD *modNew);
  67. extern "C" MOD_ERR ModTranspose  (MOD *mod, MOD *modNew);
  68. extern "C" MOD_ERR ModRotate90   (MOD *mod, MOD *modNew);
  69. extern "C" MOD_ERR ModRotate180  (MOD *mod, MOD *modNew);
  70. extern "C" MOD_ERR ModRotate270  (MOD *mod, MOD *modNew);
  71.  
  72. extern "C" MOD_ERR ModExtractSubrectangle(
  73.         MOD *mod,
  74.         int x, int y, int w, int h,
  75.         MOD *modNew
  76.         );
  77.  
  78. extern MOD_ERR ModBlit(
  79.         MOD *modDst, int dx, int dy,
  80.         MOD *modSrc, int sx, int sy,
  81.         int w, int h
  82.         );
  83.  
  84. /*...scolour adjustment mappings:0:*/
  85. #define CVT_I_TO_L      0
  86. #define CVT_I_TO_P      1
  87. #define CVT_L_TO_I      2
  88. #define CVT_L_TO_P      3
  89. #define CVT_P_TO_I      4
  90. #define CVT_P_TO_L      5
  91. /*...e*/
  92.  
  93. extern "C" MOD_ERR ModColourAdjust(
  94.         MOD *mod,
  95.         int map, double gama, double shelf,
  96.         MOD *modNew
  97.         );
  98.  
  99. /*...sbpp palette and algorithm mappings:0:*/
  100. #define CVT_BW          0
  101. #define CVT_VGA         1
  102. #define CVT_8           2
  103. #define CVT_4G          3
  104. #define CVT_784         4
  105. #define CVT_666         5
  106. #define CVT_8G          6
  107. #define CVT_TRIPEL      7
  108. #define CVT_RGB         8
  109. #define CVT_FREQ        9
  110. #define CVT_MCUT        10
  111.  
  112. #define CVT_NEAREST     0
  113. #define CVT_ERRDIFF     1
  114. #define CVT_HALFTONE    2
  115. /*...e*/
  116.  
  117. extern "C" MOD_ERR ModBppMap(
  118.         MOD *mod,
  119.         int iPal, int iAlg,
  120.         int iKeepRed, int iKeepGreen, int iKeepBlue, int nCols,
  121.         MOD *modNew
  122.         );
  123.  
  124. extern "C" MOD_ERR ModResize(
  125.         MOD *mod,
  126.         int nw, int nh,
  127.         MOD *modNew
  128.         );
  129.  
  130. extern "C" MOD_ERR ModMakeHBITMAP(
  131.         MOD *mod,
  132.         HBITMAP *phbm,
  133.         HPALETTE *phpal
  134.         );
  135.  
  136. extern "C" BOOL ModMapVisual( MOD *mod, int viewOption, HBITMAP *phbm,
  137.         LONG *plColorBg, LONG *plColorFg, HPALETTE *phpal
  138.         );
  139.  
  140. extern "C" unsigned long ModError(MOD_ERR rc);
  141.  
  142. extern "C" HPALETTE CreateDIBPal(LPBITMAPINFO pbmi, BOOL bCoreHdr, int *iNumClr);
  143.  
  144. extern "C" HBITMAP LoadBitmapResource( HINSTANCE hInstance, LPSTR lpString, HPALETTE *lphPalette);
  145.  
  146. #endif
  147.