BsObjectRendering.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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(PerFrameParamDef)
  18. BS_PARAM_BLOCK_ENTRY(float, gTime)
  19. BS_PARAM_BLOCK_END
  20. extern PerFrameParamDef gPerFrameParamDef;
  21. /** Manages initialization and rendering of individual renderable object, represented as RenderableElement%s. */
  22. class BS_BSRND_EXPORT ObjectRenderer
  23. {
  24. public:
  25. ObjectRenderer();
  26. /** Initializes the specified renderable element, making it ready to be used. */
  27. void initElement(RendererObject& owner, BeastRenderableElement& element);
  28. /** Updates global per frame parameter buffers with new values. To be called at the start of every frame. */
  29. void setParamFrameParams(float time);
  30. protected:
  31. SPtr<GpuParamBlockBufferCore> mPerFrameParamBuffer;
  32. };
  33. /** Basic shader that is used when no other is available. */
  34. class DefaultMaterial : public RendererMaterial<DefaultMaterial> { RMAT_DEF("Default.bsl"); };
  35. /** @} */
  36. }