Material.pkg 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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 SetShaderParameter(const String name, const Variant& value);
  11. void SetShaderParameterAnimation(const String name, ValueAnimation* animation, WrapMode wrapMode = WM_LOOP, float speed = 1.0f);
  12. void SetShaderParameterAnimationWrapMode(const String name, WrapMode wrapMode);
  13. void SetShaderParameterAnimationSpeed(const String name, float speed);
  14. void SetTexture(TextureUnit unit, Texture* texture);
  15. void SetUVTransform(const Vector2& offset, float rotation, const Vector2& repeat);
  16. void SetUVTransform(const Vector2& offset, float rotation, float repeat);
  17. void SetCullMode(CullMode mode);
  18. void SetShadowCullMode(CullMode mode);
  19. void SetFillMode(FillMode mode);
  20. void SetDepthBias(const BiasParameters& parameters);
  21. void SetRenderOrder(unsigned char renderOrder);
  22. void SetScene(Scene* scene);
  23. void RemoveShaderParameter(const String name);
  24. void ReleaseShaders();
  25. // SharedPtr<Material> Clone(const String cloneName = String::EMPTY) const;
  26. tolua_outside Material* MaterialClone @ Clone(const String cloneName = String::EMPTY) const;
  27. void SortTechniques();
  28. void MarkForAuxView(unsigned frameNumber);
  29. unsigned GetNumTechniques() const;
  30. Technique* GetTechnique(unsigned index) const;
  31. Pass* GetPass(unsigned index, const String passName) const;
  32. Texture* GetTexture(TextureUnit unit) const;
  33. ValueAnimation* GetShaderParameterAnimation(const String name) const;
  34. WrapMode GetShaderParameterAnimationWrapMode(const String name) const;
  35. float GetShaderParameterAnimationSpeed(const String name) const;
  36. CullMode GetCullMode() const;
  37. CullMode GetShadowCullMode() const;
  38. FillMode GetFillMode() const;
  39. const BiasParameters& GetDepthBias() const;
  40. unsigned char GetRenderOrder() const;
  41. bool GetOcclusion() const;
  42. bool GetSpecular() const;
  43. Scene* GetScene() const;
  44. tolua_property__get_set CullMode cullMode;
  45. tolua_property__get_set CullMode shadowCullMode;
  46. tolua_property__get_set FillMode fillMode;
  47. tolua_property__get_set BiasParameters depthBias;
  48. tolua_property__get_set unsigned char renderOrder;
  49. tolua_readonly tolua_property__get_set bool occlusion;
  50. tolua_readonly tolua_property__get_set bool specular;
  51. tolua_property__get_set Scene* scene;
  52. };
  53. ${
  54. #define TOLUA_DISABLE_tolua_GraphicsLuaAPI_Material_new00
  55. static int tolua_GraphicsLuaAPI_Material_new00(lua_State* tolua_S)
  56. {
  57. return ToluaNewObject<Material>(tolua_S);
  58. }
  59. #define TOLUA_DISABLE_tolua_GraphicsLuaAPI_Material_new00_local
  60. static int tolua_GraphicsLuaAPI_Material_new00_local(lua_State* tolua_S)
  61. {
  62. return ToluaNewObjectGC<Material>(tolua_S);
  63. }
  64. static Material* MaterialClone(const Material* material, const String& cloneName = String::EMPTY)
  65. {
  66. if (!material)
  67. return 0;
  68. SharedPtr<Material> clonedMaterialPtr = material->Clone(cloneName);
  69. Material* clonedMaterial = clonedMaterialPtr.Get();
  70. clonedMaterialPtr.Detach();
  71. return clonedMaterial;
  72. }
  73. $}