imagehl.cpp 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /*
  2. Copyright (C) 2001-2006, William Joseph.
  3. All Rights Reserved.
  4. This file is part of GtkRadiant.
  5. GtkRadiant is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 2 of the License, or
  8. (at your option) any later version.
  9. GtkRadiant is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with GtkRadiant; if not, write to the Free Software
  15. Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  16. */
  17. #include "imagehl.h"
  18. #include "debugging/debugging.h"
  19. #include "ifilesystem.h"
  20. #include "iimage.h"
  21. #include "hlw.h"
  22. #include "mip.h"
  23. #include "sprite.h"
  24. #include "modulesystem/singletonmodule.h"
  25. class ImageDependencies : public GlobalFileSystemModuleRef
  26. {
  27. };
  28. class ImageHLWAPI
  29. {
  30. _QERPlugImageTable m_imagehlw;
  31. public:
  32. typedef _QERPlugImageTable Type;
  33. STRING_CONSTANT(Name, "hlw");
  34. ImageHLWAPI()
  35. {
  36. m_imagehlw.loadImage = LoadHLW;
  37. }
  38. _QERPlugImageTable* getTable()
  39. {
  40. return &m_imagehlw;
  41. }
  42. };
  43. typedef SingletonModule<ImageHLWAPI, ImageDependencies> ImageHLWModule;
  44. ImageHLWModule g_ImageHLWModule;
  45. class ImageMipAPI
  46. {
  47. _QERPlugImageTable m_imagemip;
  48. public:
  49. typedef _QERPlugImageTable Type;
  50. STRING_CONSTANT(Name, "mip");
  51. ImageMipAPI()
  52. {
  53. m_imagemip.loadImage = LoadMIP;
  54. }
  55. _QERPlugImageTable* getTable()
  56. {
  57. return &m_imagemip;
  58. }
  59. };
  60. typedef SingletonModule<ImageMipAPI, ImageDependencies> ImageMipModule;
  61. ImageMipModule g_ImageMipModule;
  62. class ImageSpriteAPI
  63. {
  64. _QERPlugImageTable m_imagesprite;
  65. public:
  66. typedef _QERPlugImageTable Type;
  67. STRING_CONSTANT(Name, "spr");
  68. ImageSpriteAPI()
  69. {
  70. m_imagesprite.loadImage = LoadIDSP;
  71. }
  72. _QERPlugImageTable* getTable()
  73. {
  74. return &m_imagesprite;
  75. }
  76. };
  77. typedef SingletonModule<ImageSpriteAPI, ImageDependencies> ImageSpriteModule;
  78. ImageSpriteModule g_ImageSpriteModule;
  79. extern "C" void RADIANT_DLLEXPORT Radiant_RegisterModules(ModuleServer& server)
  80. {
  81. GlobalErrorStream::instance().setOutputStream(server.getErrorStream());
  82. GlobalOutputStream::instance().setOutputStream(server.getOutputStream());
  83. GlobalDebugMessageHandler::instance().setHandler(server.getDebugMessageHandler());
  84. GlobalModuleServer::instance().set(server);
  85. g_ImageHLWModule.selfRegister();
  86. g_ImageMipModule.selfRegister();
  87. g_ImageSpriteModule.selfRegister();
  88. }