Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
6.1 KiB

  1. //***************************************************************************************************
  2. // N4DIZ.H
  3. //
  4. // C Header (Functions of dither and color matching (For N4 printer))
  5. //---------------------------------------------------------------------------------------------------
  6. // copyright(C) 1997-1999 CASIO COMPUTER CO.,LTD. / CASIO ELECTRONICS MANUFACTURING CO.,LTD.
  7. //***************************************************************************************************
  8. //***************************************************************************************************
  9. // data define
  10. //***************************************************************************************************
  11. //---------------------------------------------------------------------------------------------------
  12. // Color or Monochrome
  13. //---------------------------------------------------------------------------------------------------
  14. #define N4_COL 0
  15. #define N4_MON 1
  16. //---------------------------------------------------------------------------------------------------
  17. // Dithering
  18. //---------------------------------------------------------------------------------------------------
  19. #define N4_DIZ_SML 0
  20. #define N4_DIZ_MID 1
  21. #define N4_DIZ_RUG 2
  22. #define N4_DIZ_GOS 3
  23. //---------------------------------------------------------------------------------------------------
  24. // Dither pattern
  25. //---------------------------------------------------------------------------------------------------
  26. #define N4_ALLDIZNUM 64
  27. #define N4_DIZSPC 4
  28. //---------------------------------------------------------------------------------------------------
  29. // Size of each table
  30. //---------------------------------------------------------------------------------------------------
  31. #define N4_DIZSIZ_CM (17 * 17) // Dither table size(CM)
  32. #define N4_DIZSIZ_YK (16 * 16) // Dither table size(YK)
  33. #define N4_TNRTBLSIZ 256 // Toner density
  34. #define N4_GLDNUM 32 // LUT table grid
  35. #define N4_GLDSPC 8 // LUT table grid interval
  36. // LUT table size
  37. #define N4_LUTTBLSIZ ((DWORD)N4_GLDNUM * N4_GLDNUM * N4_GLDNUM * sizeof(CMYK))
  38. #define N4_CCHNUM 256 // Number of Table
  39. #define N4_CCHRGBSIZ (N4_CCHNUM * sizeof(RGBS)) // Table size(RGB)
  40. #define N4_CCHCMYSIZ (N4_CCHNUM * sizeof(CMYK)) // Table size(CMYK)
  41. //---------------------------------------------------------------------------------------------------
  42. // Structure for control dithering and color-matching
  43. //---------------------------------------------------------------------------------------------------
  44. typedef SHORT *LPSHORT;
  45. typedef struct {
  46. DWORD ColMon; // Color/Monochrome
  47. struct { // Structure for dither pattern
  48. DWORD Num; // Table current number(0-2)
  49. LPBYTE Tbl[3][4]; // Data table
  50. } Diz;
  51. struct { // Structure for toner density
  52. LPBYTE Tbl; // Data table
  53. } Tnr;
  54. struct { // Structure for LUT table
  55. LPCMYK Tbl; // Data table
  56. LPRGB CchRgb; // Cache table(RGB)
  57. LPCMYK CchCmy; // Cache table(CMYK)
  58. } Lut;
  59. struct { // Structure for GOSA-Dispersion(RGB) table
  60. DWORD Num; // Table current number(0-1)
  61. DWORD Siz; // Data table size
  62. DWORD Yax; // Y coordinates
  63. LPSHORT Tbl[2]; // Data table
  64. } GosRGB;
  65. struct { // Structure for GOSA-Dispersion(CMYK) table
  66. DWORD Num; // Table current number(0-1)
  67. DWORD Siz; // Data table size
  68. DWORD Yax; // Y coordinates
  69. LPSHORT Tbl[2]; // Data table
  70. } GosCMYK;
  71. } N4DIZINF, *LPN4DIZINF;
  72. //***************************************************************************************************
  73. // Functions
  74. //***************************************************************************************************
  75. VOID WINAPI N4DizPtnMak(LPN4DIZINF, DWORD, DWORD);
  76. VOID WINAPI N4DizPtnPrn(LPN4DIZINF, DWORD, DWORD, DWORD, LPBYTE);
  77. VOID WINAPI N4TnrTblMak(LPN4DIZINF, LONG);
  78. DWORD WINAPI N4Diz001(LPN4DIZINF, DWORD, DWORD, DWORD, LPBYTE, LPBYTE, LPBYTE, LPBYTE, LPBYTE);
  79. DWORD WINAPI N4Diz00n(LPN4DIZINF, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPBYTE, LPBYTE, LPBYTE, LPBYTE, LPBYTE);
  80. DWORD WINAPI N4Gos001(LPN4DIZINF, DWORD, DWORD, DWORD, LPBYTE, LPBYTE, LPBYTE, LPBYTE, LPBYTE);
  81. DWORD WINAPI N4Gos00n(LPN4DIZINF, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPBYTE, LPBYTE, LPBYTE, LPBYTE, LPBYTE);
  82. VOID WINAPI N4RgbGos(LPN4DIZINF, DWORD, DWORD, DWORD, LPBYTE);
  83. VOID WINAPI N4ColMch000(LPN4DIZINF, LPRGB, LPCMYK, DWORD, DWORD);
  84. VOID WINAPI N4ColMch001(LPN4DIZINF, LPRGB, LPCMYK, DWORD, DWORD);
  85. VOID WINAPI N4ColCnvSld(LPN4DIZINF, LPRGB, LPCMYK, DWORD);
  86. VOID WINAPI N4ColCnvLin(LPN4DIZINF, LPRGB, LPCMYK, DWORD);
  87. VOID WINAPI N4ColCnvMon(LPN4DIZINF, DWORD, LPRGB, LPCMYK, DWORD);
  88. VOID WINAPI N4ColCtr(LPN4DIZINF, LONG, LONG, LONG, LONG, LONG, DWORD, LPRGB);
  89. // End of N4DIZ.H
  90.