BsObjectRendering.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsRenderBeastPrerequisites.h"
  5. #include "BsGpuParamDesc.h"
  6. #include "BsGpuParam.h"
  7. #include "BsRenderableElement.h"
  8. #include "BsRendererMaterial.h"
  9. #include "BsParamBlocks.h"
  10. #include "BsRendererObject.h"
  11. namespace bs
  12. {
  13. struct RendererAnimationData;
  14. /** @addtogroup RenderBeast
  15. * @{
  16. */
  17. BS_PARAM_BLOCK_BEGIN(PerFrameParamBuffer)
  18. BS_PARAM_BLOCK_ENTRY(float, gTime)
  19. BS_PARAM_BLOCK_END
  20. /** Manages initialization and rendering of individual renderable object, represented as RenderableElement%s. */
  21. class BS_BSRND_EXPORT ObjectRenderer
  22. {
  23. public:
  24. ObjectRenderer();
  25. /** Initializes the specified renderable element, making it ready to be used. */
  26. void initElement(RendererObject& owner, BeastRenderableElement& element);
  27. /** Updates global per frame parameter buffers with new values. To be called at the start of every frame. */
  28. void setParamFrameParams(float time);
  29. protected:
  30. PerFrameParamBuffer mPerFrameParams;
  31. };
  32. /** Basic shader that is used when no other is available. */
  33. class DefaultMaterial : public RendererMaterial<DefaultMaterial> { RMAT_DEF("Default.bsl"); };
  34. /** @} */
  35. }