BMPLOAD.H
上传用户:hjbgzhh
上传日期:2013-03-07
资源大小:295k
文件大小:2k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. // BMPLoad.h: interface for the CBMPLoad class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_BMPLOAD_H__A7A2B09D_8283_4DA1_8A5C_C023D4DDB6D0__INCLUDED_)
  5. #define AFX_BMPLOAD_H__A7A2B09D_8283_4DA1_8A5C_C023D4DDB6D0__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #define INDEX_TEXTURE_NAME(x, z) ((x) + ((z)*8))
  10. #ifndef PI
  11. #define PI 3.1415926535
  12. #endif PI
  13. #ifndef f4 
  14. #define f4(a, b, c, d) ((a) + (b) + (c) + (d)) / 4
  15. #endif
  16. #define IX(x, z) (((x)&255) + (((z)&255) << 8)) // 将2D坐标转换为1D坐标
  17. #define M_SIZE 256 
  18. typedef unsigned char BYTE;
  19. typedef short int SHORT;
  20. typedef long int LONG;
  21. typedef unsigned short int WORD;
  22. typedef unsigned long int DWORD;
  23. typedef struct TEXTURE{
  24. int w, h;
  25. unsigned char *data;
  26. } TEXTURE;
  27. typedef struct _Win3xBitmapHeader
  28. {
  29. WORD ImageFileType;
  30. DWORD FileSize;
  31. WORD Reserved1;
  32. WORD Reserved2;
  33. DWORD ImageDataOffset;
  34. } WIN3XHEAD;
  35. typedef struct _Win3xBitmapInfoHeader
  36. {
  37. DWORD HeaderSize;
  38. LONG ImageWidth;
  39. LONG ImageHeight;
  40. WORD NumberOfImagePlanes;
  41. WORD BitsPerPixel;
  42. DWORD CompressionMethod;
  43. DWORD SizeOfBitmap;
  44. LONG HorzResolution;
  45. LONG VertResolution;
  46. DWORD NumColorsUsed;
  47. DWORD NumSignificantColors;
  48. } WIN3XINFOHEAD;
  49. typedef struct _Win3xPixelData
  50. {
  51. BYTE r;
  52. BYTE g;
  53. BYTE b;
  54. } PAL;
  55. class CBMPLoad  
  56. {
  57. public:
  58. CBMPLoad();
  59. virtual ~CBMPLoad();
  60. TEXTURE *load_bitmap(char *); 
  61. void destroy_bmp(TEXTURE *);
  62. void texture_terrain(TEXTURE *t, int *hf);
  63. int IX_MAP(int x, int z);
  64. float texture_factor(int h1, int h2);
  65. int limit255(int a);
  66. TEXTURE *new_bitmap(int x, int y);
  67. void SET_COLOR(TEXTURE *tex, int x, int y, BYTE r, BYTE g, BYTE b);
  68. void GET_COLOR(TEXTURE *tex, int x, int y, BYTE *r, BYTE *g, BYTE *b);
  69. };
  70. #endif // !defined(AFX_BMPLOAD_H__A7A2B09D_8283_4DA1_8A5C_C023D4DDB6D0__INCLUDED_)