Subversion Repositories Games.Descent

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * Portions of this file are copyright Rebirth contributors and licensed as
  3.  * described in COPYING.txt.
  4.  * Portions of this file are copyright Parallax Software and licensed
  5.  * according to the Parallax license below.
  6.  * See COPYING.txt for license details.
  7.  
  8. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  9. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  10. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  11. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  12. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  13. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  14. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  15. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  16. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
  17. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  18. */
  19. /*
  20.  *
  21.  * Routines to read/write pcx images.
  22.  *
  23.  */
  24.  
  25. #pragma once
  26.  
  27. #include "pstypes.h"
  28. #include "dxxsconf.h"
  29. #include "dsx-ns.h"
  30. #include "fwd-gr.h"
  31. #if !DXX_USE_OGL && DXX_USE_SCREENSHOT_FORMAT_LEGACY
  32. #include <physfs.h>
  33. #endif
  34.  
  35. namespace dcx {
  36. struct palette_array_t;
  37.  
  38. enum class pcx_result
  39. {
  40.         SUCCESS = 0,
  41.         ERROR_OPENING = 1,
  42.         ERROR_NO_HEADER = 2,
  43.         ERROR_WRONG_VERSION = 3,
  44.         ERROR_READING = 4,
  45.         ERROR_NO_PALETTE = 5,
  46.         ERROR_WRITING = 6,
  47.         ERROR_MEMORY = 7
  48. };
  49.  
  50. // Reads filename into bitmap bmp, and fills in palette.  If bmp->bm_data==NULL,
  51. // then bmp->bm_data is allocated and the w,h are filled.
  52. // If palette==NULL the palette isn't read in.  Returns error code.
  53.  
  54. pcx_result pcx_read_bitmap(const char * filename, grs_main_bitmap &bmp, palette_array_t &palette);
  55.  
  56. // Writes the bitmap bmp to filename, using palette. Returns error code.
  57.  
  58. #if !DXX_USE_OGL && DXX_USE_SCREENSHOT_FORMAT_LEGACY
  59. pcx_result pcx_write_bitmap(PHYSFS_File *, const grs_bitmap *bmp, palette_array_t &palette);
  60. #endif
  61.  
  62. const char *pcx_errormsg(pcx_result error_number);
  63.  
  64. }
  65.  
  66. #if defined(DXX_BUILD_DESCENT_I)
  67. namespace dsx {
  68. // Load bitmap for little-known 'baldguy' cheat.
  69. pcx_result bald_guy_load(const char *filename, grs_main_bitmap &bmp, palette_array_t &palette);
  70. }
  71. #endif
  72.