Material.pkg 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. $#include "Graphics/Material.h"
  2. enum CullMode {};
  3. enum WrapMode {};
  4. class Material : public Resource
  5. {
  6. Material();
  7. ~Material();
  8. void SetNumTechniques(unsigned num);
  9. void SetTechnique(unsigned index, Technique* tech, unsigned qualityLevel = 0, float lodDistance = 0.0f);
  10. void SetVertexShaderDefines(const String defines);
  11. void SetPixelShaderDefines(const String defines);
  12. void SetShaderParameter(const String name, const Variant& value);
  13. void SetShaderParameterAnimation(const String name, ValueAnimation* animation, WrapMode wrapMode = WM_LOOP, float speed = 1.0f);
  14. void SetShaderParameterAnimationWrapMode(const String name, WrapMode wrapMode);
  15. void SetShaderParameterAnimationSpeed(const String name, float speed);
  16. void SetTexture(TextureUnit unit, Texture* texture);
  17. void SetUVTransform(const Vector2& offset, float rotation, const Vector2& repeat);
  18. void SetUVTransform(const Vector2& offset, float rotation, float repeat);
  19. void SetCullMode(CullMode mode);
  20. void SetShadowCullMode(CullMode mode);
  21. void SetFillMode(FillMode mode);
  22. void SetDepthBias(const BiasParameters& parameters);
  23. void SetAlphaToCoverage(bool enable);
  24. void SetLineAntiAlias(bool enable);
  25. void SetRenderOrder(unsigned char renderOrder);
  26. void SetOcclusion(bool enable);
  27. void SetScene(Scene* scene);
  28. void RemoveShaderParameter(const String name);
  29. void ReleaseShaders();
  30. // SharedPtr<Material> Clone(const String cloneName = String::EMPTY) const;
  31. tolua_outside Material* MaterialClone @ Clone(const String cloneName = String::EMPTY) const;
  32. void SortTechniques();
  33. void MarkForAuxView(unsigned frameNumber);
  34. unsigned GetNumTechniques() const;
  35. Technique* GetTechnique(unsigned index) const;
  36. Pass* GetPass(unsigned index, const String passName) const;
  37. Texture* GetTexture(TextureUnit unit) const;
  38. const String GetVertexShaderDefines() const;
  39. const String GetPixelShaderDefines() const;
  40. ValueAnimation* GetShaderParameterAnimation(const String name) const;
  41. WrapMode GetShaderParameterAnimationWrapMode(const String name) const;
  42. float GetShaderParameterAnimationSpeed(const String name) const;
  43. CullMode GetCullMode() const;
  44. CullMode GetShadowCullMode() const;
  45. FillMode GetFillMode() const;
  46. const BiasParameters& GetDepthBias() const;
  47. bool GetAlphaToCoverage() const;
  48. bool GetLineAntiAlias() const;
  49. unsigned char GetRenderOrder() const;
  50. bool GetOcclusion() const;
  51. bool GetSpecular() const;
  52. Scene* GetScene() const;
  53. tolua_property__get_set String vertexShaderDefines;
  54. tolua_property__get_set String pixelShaderDefines;
  55. tolua_property__get_set CullMode cullMode;
  56. tolua_property__get_set CullMode shadowCullMode;
  57. tolua_property__get_set FillMode fillMode;
  58. tolua_property__get_set BiasParameters depthBias;
  59. tolua_property__get_set bool alphaToCoverage;
  60. tolua_property__get_set bool lineAntiAlias;
  61. tolua_property__get_set unsigned char renderOrder;
  62. tolua_property__get_set bool occlusion;
  63. tolua_readonly tolua_property__get_set bool specular;
  64. tolua_property__get_set Scene* scene;
  65. };
  66. ${
  67. #define TOLUA_DISABLE_tolua_GraphicsLuaAPI_Material_new00
  68. static int tolua_GraphicsLuaAPI_Material_new00(lua_State* tolua_S)
  69. {
  70. return ToluaNewObject<Material>(tolua_S);
  71. }
  72. #define TOLUA_DISABLE_tolua_GraphicsLuaAPI_Material_new00_local
  73. static int tolua_GraphicsLuaAPI_Material_new00_local(lua_State* tolua_S)
  74. {
  75. return ToluaNewObjectGC<Material>(tolua_S);
  76. }
  77. static Material* MaterialClone(const Material* material, const String& cloneName = String::EMPTY)
  78. {
  79. if (!material)
  80. return 0;
  81. return material->Clone(cloneName).Detach();
  82. }
  83. $}