2
0

Manual_Graphics.cpp 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // Copyright (c) 2008-2023 the Urho3D project
  2. // License: MIT
  3. #include "../Precompiled.h"
  4. #include "../AngelScript/APITemplates.h"
  5. #include "../AngelScript/Manual_Graphics.h"
  6. #include "../Scene/Scene.h"
  7. #include "../Graphics/DebugRenderer.h"
  8. namespace Urho3D
  9. {
  10. // This function is called before ASRegisterGenerated()
  11. void ASRegisterManualFirst_Graphics(asIScriptEngine* engine)
  12. {
  13. // enum TextureUnit | File: ../GraphicsAPI/GraphicsDefs.h
  14. engine->RegisterEnum("TextureUnit");
  15. engine->RegisterEnumValue("TextureUnit", "TU_DIFFUSE", TU_DIFFUSE);
  16. engine->RegisterEnumValue("TextureUnit", "TU_ALBEDOBUFFER", TU_ALBEDOBUFFER);
  17. engine->RegisterEnumValue("TextureUnit", "TU_NORMAL", TU_NORMAL);
  18. engine->RegisterEnumValue("TextureUnit", "TU_NORMALBUFFER", TU_NORMALBUFFER);
  19. engine->RegisterEnumValue("TextureUnit", "TU_SPECULAR", TU_SPECULAR);
  20. engine->RegisterEnumValue("TextureUnit", "TU_EMISSIVE", TU_EMISSIVE);
  21. engine->RegisterEnumValue("TextureUnit", "TU_ENVIRONMENT", TU_ENVIRONMENT);
  22. engine->RegisterEnumValue("TextureUnit", "TU_LIGHTRAMP", TU_LIGHTRAMP);
  23. engine->RegisterEnumValue("TextureUnit", "TU_LIGHTSHAPE", TU_LIGHTSHAPE);
  24. engine->RegisterEnumValue("TextureUnit", "TU_SHADOWMAP", TU_SHADOWMAP);
  25. #ifdef DESKTOP_GRAPHICS
  26. engine->RegisterEnumValue("TextureUnit", "TU_VOLUMEMAP", TU_VOLUMEMAP);
  27. engine->RegisterEnumValue("TextureUnit", "TU_CUSTOM1", TU_CUSTOM1);
  28. engine->RegisterEnumValue("TextureUnit", "TU_CUSTOM2", TU_CUSTOM2);
  29. engine->RegisterEnumValue("TextureUnit", "TU_FACESELECT", TU_FACESELECT);
  30. engine->RegisterEnumValue("TextureUnit", "TU_INDIRECTION", TU_INDIRECTION);
  31. engine->RegisterEnumValue("TextureUnit", "TU_DEPTHBUFFER", TU_DEPTHBUFFER);
  32. engine->RegisterEnumValue("TextureUnit", "TU_LIGHTBUFFER", TU_LIGHTBUFFER);
  33. engine->RegisterEnumValue("TextureUnit", "TU_ZONE", TU_ZONE);
  34. #endif
  35. engine->RegisterEnumValue("TextureUnit", "MAX_MATERIAL_TEXTURE_UNITS", MAX_MATERIAL_TEXTURE_UNITS);
  36. engine->RegisterEnumValue("TextureUnit", "MAX_TEXTURE_UNITS", MAX_TEXTURE_UNITS);
  37. }
  38. // ========================================================================================
  39. // template <class T> T* Context::GetSubsystem() const | File: ../Core/Context.h
  40. static Graphics* GetGraphics()
  41. {
  42. return GetScriptContext()->GetSubsystem<Graphics>();
  43. }
  44. // template <class T> T* Context::GetSubsystem() const | File: ../Core/Context.h
  45. static Renderer* GetRenderer()
  46. {
  47. return GetScriptContext()->GetSubsystem<Renderer>();
  48. }
  49. // template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Scene.h
  50. static DebugRenderer* GetDebugRenderer()
  51. {
  52. Scene* scene = GetScriptContextScene();
  53. if (scene)
  54. return scene->GetComponent<DebugRenderer>();
  55. else
  56. return nullptr;
  57. }
  58. // template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Scene.h
  59. static Octree* GetOctree()
  60. {
  61. Scene* scene = GetScriptContextScene();
  62. return scene ? scene->GetComponent<Octree>() : nullptr;
  63. }
  64. // This function is called after ASRegisterGenerated()
  65. void ASRegisterManualLast_Graphics(asIScriptEngine* engine)
  66. {
  67. // template <class T> T* Context::GetSubsystem() const | File: ../Core/Context.h
  68. engine->RegisterGlobalFunction("Graphics@+ get_graphics()", AS_FUNCTION(GetGraphics), AS_CALL_CDECL);
  69. // template <class T> T* Context::GetSubsystem() const | File: ../Core/Context.h
  70. engine->RegisterGlobalFunction("Renderer@+ get_renderer()", AS_FUNCTION(GetRenderer), AS_CALL_CDECL);
  71. // template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Scene.h
  72. engine->RegisterGlobalFunction("DebugRenderer@+ get_debugRenderer()", AS_FUNCTION(GetDebugRenderer), AS_CALL_CDECL);
  73. // template <class T> T* Scene::GetComponent(bool recursive = false) const | File: ../Scene/Scene.h
  74. engine->RegisterGlobalFunction("Octree@+ get_octree()", AS_FUNCTION(GetOctree), AS_CALL_CDECL);
  75. }
  76. // ========================================================================================
  77. TechniqueEntry noTechniqueEntry;
  78. }