JSBEnum.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #include <Atomic/IO/Log.h>
  2. #include <Atomic/IO/File.h>
  3. #include <Atomic/Resource/JSONFile.h>
  4. #include "JSBind.h"
  5. #include "JSBModule.h"
  6. #include "JSBEnum.h"
  7. namespace ToolCore
  8. {
  9. JSBEnum::JSBEnum(Context* context, JSBModule *module, const String& name) : Object(context),
  10. module_(module), name_(name), header_(0)
  11. {
  12. }
  13. JSBEnum::~JSBEnum()
  14. {
  15. }
  16. void JSBEnum::Preprocess()
  17. {
  18. // TextureUnit is a special case as uses preprocessor for values depending on
  19. // Desktop or Mobile graphics
  20. JSBind* jsbind = GetSubsystem<JSBind>();
  21. if (name_ == "TextureUnit")
  22. {
  23. values_.Clear();
  24. values_.Push("TU_DIFFUSE");
  25. values_.Push("TU_ALBEDOBUFFER");
  26. values_.Push("TU_NORMAL");
  27. values_.Push("TU_NORMALBUFFER");
  28. values_.Push("TU_SPECULAR");
  29. values_.Push("TU_EMISSIVE");
  30. values_.Push("TU_ENVIRONMENT");
  31. String platform = jsbind->GetPlatform();
  32. bool mobile = platform == "WEB" || platform == "ANDROID" || platform == "IOS";
  33. if (mobile)
  34. {
  35. values_.Push("TU_LIGHTRAMP");
  36. values_.Push("TU_LIGHTSHAPE");
  37. values_.Push("TU_SHADOWMAP");
  38. values_.Push("MAX_MATERIAL_TEXTURE_UNITS");
  39. values_.Push("MAX_TEXTURE_UNITS");
  40. }
  41. else
  42. {
  43. values_.Push("TU_VOLUMEMAP");
  44. values_.Push("TU_CUSTOM1");
  45. values_.Push("TU_CUSTOM2");
  46. values_.Push("TU_LIGHTRAMP");
  47. values_.Push("TU_LIGHTSHAPE");
  48. values_.Push("TU_SHADOWMAP");
  49. values_.Push("TU_FACESELECT");
  50. values_.Push("TU_INDIRECTION");
  51. values_.Push("TU_DEPTHBUFFER");
  52. values_.Push("TU_LIGHTBUFFER");
  53. values_.Push("TU_ZONE");
  54. values_.Push("MAX_MATERIAL_TEXTURE_UNITS");
  55. values_.Push("MAX_TEXTURE_UNITS");
  56. }
  57. }
  58. }
  59. }