home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / gbmos2pm.zip / gbmv2 / model.h < prev    next >
C/C++ Source or Header  |  1996-12-04  |  3KB  |  141 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. #include "gbm.h"
  11.  
  12. /* These needs to encompass all the GBM errors, plus some extras */
  13. typedef int MOD_ERR;
  14. #define    MOD_ERR_OK    ((MOD_ERR) 0)
  15. #define    MOD_ERR_MEM    ((MOD_ERR) 1)
  16. #define    MOD_ERR_OPEN    ((MOD_ERR) 2)
  17. #define    MOD_ERR_CREATE    ((MOD_ERR) 3)
  18. #define    MOD_ERR_SUPPORT    ((MOD_ERR) 4)
  19. #define    MOD_ERR_HDC    ((MOD_ERR) 5)
  20. #define    MOD_ERR_HPS    ((MOD_ERR) 6)
  21. #define    MOD_ERR_HBITMAP    ((MOD_ERR) 7)
  22. #define    MOD_ERR_HMF    ((MOD_ERR) 8)
  23. #define    MOD_ERR_CLIP    ((MOD_ERR) 9)
  24. #define    MOD_ERR_GBM(rc)    ((MOD_ERR) 0x8000+(rc))
  25.  
  26. typedef struct
  27.     {
  28.     GBM gbm;
  29.     GBMRGB gbmrgb[0x100];
  30.     BYTE *pbData;
  31.     } MOD;
  32.  
  33. extern MOD_ERR ModCreate(
  34.     int w, int h, int bpp, const GBMRGB gbmrgb[],
  35.     MOD *modNew
  36.     );
  37.  
  38. extern MOD_ERR ModDelete(MOD *mod);
  39.  
  40. extern MOD_ERR ModCopy(const MOD *mod, MOD *modNew);
  41.  
  42. extern MOD_ERR ModMove(MOD *mod, MOD *modNew);
  43.  
  44. extern MOD_ERR ModCreateFromFile(
  45.     const CHAR *szFn, const CHAR *szOpt,
  46.     MOD *modNew
  47.     );
  48.  
  49. extern MOD_ERR ModWriteToFile(
  50.     const MOD *mod,
  51.     const CHAR *szFn, const CHAR *szOpt
  52.     );
  53.  
  54. extern MOD_ERR ModExpandTo24Bpp(const MOD *mod, MOD *mod24);
  55.  
  56. extern MOD_ERR ModReflectHorz(const MOD *mod, MOD *modNew);
  57. extern MOD_ERR ModReflectVert(const MOD *mod, MOD *modNew);
  58. extern MOD_ERR ModTranspose  (const MOD *mod, MOD *modNew);
  59. extern MOD_ERR ModRotate90   (const MOD *mod, MOD *modNew);
  60. extern MOD_ERR ModRotate180  (const MOD *mod, MOD *modNew);
  61. extern MOD_ERR ModRotate270  (const MOD *mod, MOD *modNew);
  62.  
  63. extern MOD_ERR ModExtractSubrectangle(
  64.     const MOD *mod,
  65.     int x, int y, int w, int h,
  66.     MOD *modNew
  67.     );
  68.  
  69. extern MOD_ERR ModBlit(
  70.           MOD *modDst, int dx, int dy,
  71.     const MOD *modSrc, int sx, int sy,
  72.     int w, int h
  73.     );
  74.  
  75. /*...scolour adjustment mappings:0:*/
  76. #define    CVT_I_TO_L    0
  77. #define    CVT_I_TO_P    1
  78. #define    CVT_L_TO_I    2
  79. #define    CVT_L_TO_P    3
  80. #define    CVT_P_TO_I    4
  81. #define    CVT_P_TO_L    5
  82. /*...e*/
  83.  
  84. extern MOD_ERR ModColourAdjust(
  85.     const MOD *mod,
  86.     int map, double gama, double shelf,
  87.     MOD *modNew
  88.     );
  89.  
  90. /*...sbpp palette and algorithm mappings:0:*/
  91. #define    CVT_BW        0
  92. #define    CVT_VGA        1
  93. #define    CVT_8        2
  94. #define    CVT_4G        3
  95. #define    CVT_784        4
  96. #define    CVT_666        5
  97. #define    CVT_8G        6
  98. #define    CVT_TRIPEL    7
  99. #define    CVT_RGB        8
  100. #define    CVT_FREQ    9
  101. #define    CVT_MCUT    10
  102.  
  103. #define    CVT_NEAREST    0
  104. #define    CVT_ERRDIFF    1
  105. #define    CVT_HALFTONE    2
  106. /*...e*/
  107.  
  108. extern MOD_ERR ModBppMap(
  109.     const MOD *mod,
  110.     int iPal, int iAlg,
  111.     int iKeepRed, int iKeepGreen, int iKeepBlue, int nCols,
  112.     MOD *modNew
  113.     );
  114.  
  115. extern MOD_ERR ModResize(
  116.     const MOD *mod,
  117.     int nw, int nh,
  118.     MOD *modNew
  119.     );
  120.  
  121. extern MOD_ERR ModCreateFromHPS(
  122.     HPS hps, int w, int h, int bpp,
  123.     MOD *modNew
  124.     );
  125.  
  126. extern MOD_ERR ModMakeHBITMAP(
  127.     const MOD *mod,
  128.     HAB hab,
  129.     HBITMAP *phbm
  130.     );
  131.  
  132. extern MOD_ERR ModMakeHMF(
  133.     HBITMAP hbm,
  134.     HAB hab,
  135.     HMF *phmf
  136.     );
  137.  
  138. extern const CHAR * ModErrorString(MOD_ERR rc);
  139.  
  140. #endif
  141.