//********************************** Banshee Engine (www.banshee3d.com) **************************************************// //**************** Copyright (c) 2016 Marko Pintera (marko.pintera@gmail.com). All rights reserved. **********************// #pragma once #include "BsRenderBeastPrerequisites.h" #include "RenderAPI/BsGpuParamDesc.h" #include "RenderAPI/BsGpuParam.h" #include "Renderer/BsRenderableElement.h" #include "Renderer/BsRendererMaterial.h" #include "Renderer/BsParamBlocks.h" #include "BsRendererObject.h" namespace bs { struct RendererAnimationData; namespace ct { /** @addtogroup RenderBeast * @{ */ BS_PARAM_BLOCK_BEGIN(PerFrameParamDef) BS_PARAM_BLOCK_ENTRY(float, gTime) BS_PARAM_BLOCK_END extern PerFrameParamDef gPerFrameParamDef; /** Manages initialization and rendering of individual renderable object, represented as RenderableElement%s. */ class ObjectRenderer { public: ObjectRenderer(); /** Initializes the specified renderable element, making it ready to be used. */ void initElement(RendererObject& owner, BeastRenderableElement& element); /** Updates global per frame parameter buffers with new values. To be called at the start of every frame. */ void setParamFrameParams(float time); protected: SPtr mPerFrameParamBuffer; }; /** Basic shader that is used when no other is available. */ class DefaultMaterial : public RendererMaterial { RMAT_DEF("Default.bsl"); }; /** @} */ }}