BsBansheeLitTexRenderableHandler.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #include "BsBansheeRendererPrerequisites.h"
  3. #include "BsRenderableHandler.h"
  4. #include "BsMaterialProxy.h"
  5. #include "BsGpuParamDesc.h"
  6. #include "BsGpuParam.h"
  7. namespace BansheeEngine
  8. {
  9. // TODO UNDOCUMENTED
  10. class BS_BSRND_EXPORT LitTexRenderableHandler : public RenderableHandler
  11. {
  12. public:
  13. struct PerObjectData
  14. {
  15. GpuParamBlockBufferPtr perObjectParamBuffer;
  16. bool hasWVPParam = false;
  17. GpuParamMat4 wvpParam;
  18. Vector<MaterialProxy::BufferBindInfo> perObjectBuffers;
  19. };
  20. LitTexRenderableHandler();
  21. void initializeRenderElem(RenderableElement* element);
  22. void bindPerObjectBuffers(const RenderableElement* element);
  23. void updateGlobalBuffers(float time);
  24. void updatePerObjectBuffers(RenderableElement* element, const Matrix4& wvpMatrix);
  25. protected:
  26. ShaderPtr createDefaultShader();
  27. ShaderPtr defaultShader;
  28. GpuParamBlockDesc staticParamBlockDesc;
  29. GpuParamBlockDesc perFrameParamBlockDesc;
  30. GpuParamBlockDesc perObjectParamBlockDesc;
  31. GpuParamDataDesc timeParamDesc;
  32. GpuParamDataDesc lightDirParamDesc;
  33. GpuParamDataDesc wvpParamDesc;
  34. GpuParamBlockBufferPtr staticParamBuffer;
  35. GpuParamBlockBufferPtr perFrameParamBuffer;
  36. GpuParamsPtr staticParams;
  37. GpuParamsPtr perFrameParams;
  38. GpuParamVec4 lightDirParam;
  39. GpuParamFloat timeParam;
  40. };
  41. }