home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / OS / FWGraphx / FWWinDIB.cpp < prev    next >
Encoding:
Text File  |  1996-09-17  |  4.1 KB  |  142 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWWinDIB.cpp
  4. //    Release Version:    $ ODF 2 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #include "FWOS.hpp"
  11.  
  12. #ifdef FW_BUILD_WIN
  13.  
  14. #ifndef FWWINDIB_H
  15. #include "FWWinDIB.h"
  16. #endif
  17.  
  18. #ifndef FWSTRMRW
  19. #include "FWStrmRW.h"
  20. #endif
  21.  
  22. #ifndef FWODEXCE_H
  23. #include "FWODExce.h"
  24. #endif
  25.  
  26. #ifndef FWSOMENV_H
  27. #include "FWSOMEnv.h"
  28. #endif
  29.  
  30.  
  31. //========================================================================================
  32. // DIB utilities
  33. //========================================================================================
  34.  
  35. //----------------------------------------------------------------------------------------
  36. // FW_DIBAcquireColorTable
  37. //----------------------------------------------------------------------------------------
  38.  
  39. unsigned short
  40. SL_API        FW_DIBAcquireColorTable(FW_WinDIB dib, FW_SColor** colors)
  41. {
  42.     unsigned short nColors = FW_PrivDIBAcquireColorTable(dib, colors);
  43.     if (colors == 0 && nColors != 0)
  44.         FW_Failure(FW_xMemoryExhausted);
  45.     return nColors;
  46. }
  47.  
  48. //----------------------------------------------------------------------------------------
  49. // FW_DIBConvertToBitmap
  50. //----------------------------------------------------------------------------------------
  51.  
  52. HBITMAP
  53. SL_API        FW_DIBConvertToBitmap(FW_WinDIB dib, HPALETTE hPal)
  54. {
  55.     HBITMAP hBitmap = FW_PrivDIBConvertToBitmap(dib, hPal);
  56.     if (hBitmap == 0)
  57.         FW_Failure(FW_xMemoryExhausted);
  58.     return hBitmap;
  59. }
  60.  
  61. //----------------------------------------------------------------------------------------
  62. // FW_DIBConvertFromBitmap
  63. //----------------------------------------------------------------------------------------
  64.  
  65. FW_WinDIB
  66. SL_API        FW_DIBConvertFromBitmap(HBITMAP bitmapHandle, short bitDepth, HPALETTE hPal)
  67. {
  68.     FW_WinDIB dib = FW_PrivDIBConvertFromBitmap(bitmapHandle, bitDepth, hPal);
  69.     if (dib == 0)
  70.         FW_Failure(FW_xMemoryExhausted);
  71.     return dib;
  72. }
  73.  
  74. //----------------------------------------------------------------------------------------
  75. // FW_DIBGetPalette
  76. //----------------------------------------------------------------------------------------
  77.  
  78. HPALETTE
  79. SL_API        FW_DIBGetPalette(FW_WinDIB dib)
  80. {
  81.     FW_SOMEnvironment ev;
  82.     HPALETTE hPal = FW_PrivDIBGetPalette(ev, dib);
  83.     FW_FailOnEvError(ev);
  84.     return hPal;
  85. }
  86.  
  87. //----------------------------------------------------------------------------------------
  88. // FW_DIBCreate
  89. //----------------------------------------------------------------------------------------
  90.  
  91. FW_WinDIB
  92. SL_API        FW_DIBCreate(
  93.                 short bitDepth, short width, short height,
  94.                 short nbColors, const FW_SColor* colorTable,
  95.                 const void* pixels)
  96. {
  97.     FW_WinDIB dib = FW_PrivDIBCreate(bitDepth, width, height, nbColors, colorTable, pixels);
  98.     if (dib == 0)
  99.         FW_Failure(FW_xMemoryExhausted);
  100.     return dib;
  101. }
  102.  
  103. //----------------------------------------------------------------------------------------
  104. // FW_DIBCreateCopy
  105. //----------------------------------------------------------------------------------------
  106.  
  107. FW_WinDIB
  108. SL_API        FW_DIBCreateCopy(FW_WinDIB dib)
  109. {
  110.     FW_WinDIB dibCopy = FW_PrivDIBCreateCopy(dib);
  111.     if (dibCopy == 0)
  112.         FW_Failure(FW_xMemoryExhausted);
  113.     return dibCopy;
  114. }
  115.  
  116. //----------------------------------------------------------------------------------------
  117. // FW_DIBLoadFromStream
  118. //----------------------------------------------------------------------------------------
  119.  
  120. FW_WinDIB
  121. SL_API        FW_DIBLoadFromStream(FW_CReadableStream& stream, FW_Boolean bFileHeader)
  122. {
  123.     FW_SOMEnvironment ev;
  124.     FW_WinDIB dib = FW_PrivDIBLoadFromStream(ev, stream, bFileHeader);
  125.     FW_FailOnEvError(ev);
  126.     return dib;
  127. }
  128.  
  129. //----------------------------------------------------------------------------------------
  130. // FW_DIBSaveToStream
  131. //----------------------------------------------------------------------------------------
  132.  
  133. void
  134. SL_API        FW_DIBSaveToStream(FW_CWritableStream& stream, FW_WinDIB dib, FW_Boolean bFileHeader)
  135. {
  136.     FW_SOMEnvironment ev;
  137.     FW_PrivDIBSaveToStream(ev, stream, dib, bFileHeader);
  138.     FW_FailOnEvError(ev);
  139. }
  140.  
  141. #endif // FW_BUILD_WIN
  142.