TEXTURE.H
Upload User: nthssl
Upload Date: 2022-04-05
Package Size: 25357k
Code Size: 2k
Category:

OpenCV

Development Platform:

Visual C++

  1. #ifndef __TEXTURE_H
  2. #define __TEXTURE_H
  3. #define WIN32_LEAN_AND_MEAN
  4. #define WIN32_EXTRA_LEAN
  5. #include <windows.h>
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <math.h>
  9. #include <gl/gl.h>
  10. #include <gl/glu.h>
  11. #define BITMAP_ID 0x4D42 // the universal bitmap ID
  12. enum texTypes_t
  13. {
  14. PCX,
  15. BMP,
  16. TGA
  17. };
  18. // only partial pcx file header
  19. typedef struct
  20. {
  21. unsigned char manufacturer;
  22. unsigned char version;
  23. unsigned char encoding;
  24. unsigned char bits;
  25. unsigned char xMin;
  26. unsigned char yMin;
  27. unsigned char xMax;
  28. unsigned char yMax;
  29. unsigned char *palette;
  30. } PCXHEADER;
  31. typedef struct
  32. {
  33. unsigned char imageTypeCode;
  34. short int imageWidth;
  35. short int imageHeight;
  36. unsigned char bitCount;
  37. } TGAHEADER;
  38. class CTexture
  39. {
  40. private:
  41. long int scaledWidth;
  42. long int scaledHeight;
  43. unsigned char *palette;
  44. unsigned char *LoadBitmapFile(char *filename, BITMAPINFOHEADER *bitmapInfoHeader);
  45. unsigned char *LoadBitmapFileWithAlpha(char *filename, BITMAPINFOHEADER *bitmapInfoHeader);
  46. unsigned char *LoadPCXFile(char *filename, PCXHEADER *pcxHeader);
  47. unsigned char *LoadTGAFile(char *filename, TGAHEADER *tgaHeader);
  48. void LoadPCXTexture(char *filename);
  49. void LoadBMPTexture(char *filename);
  50. void LoadTGATexture(char *filename);
  51. public:
  52. texTypes_t textureType;
  53. unsigned char tgaImageCode; // 0 = not TGA image, 2 = color, 3 = greyscale
  54. int width;
  55. int height;
  56. int bitDepth;
  57. unsigned int texID;
  58. unsigned char *data;
  59. CTexture() { data = NULL; palette = NULL; }
  60. ~CTexture() { Unload(); }
  61. void LoadTexture(char *filename);
  62. void Unload()
  63. {
  64. glDeleteTextures(1, &texID);
  65. if (data != NULL)
  66. free(data);
  67. if (palette != NULL)
  68. free(palette);
  69. data = NULL;
  70. palette = NULL;
  71. }
  72. };
  73. #endif