BsMaterialProxy.h 992 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include "BsCorePrerequisites.h"
  3. namespace BansheeEngine
  4. {
  5. /**
  6. * @brief Contains data about a single pass in a material used by the
  7. * material proxy.
  8. */
  9. struct BS_CORE_EXPORT MaterialProxyPass
  10. {
  11. HGpuProgram vertexProg;
  12. HGpuProgram fragmentProg;
  13. HGpuProgram geometryProg;
  14. HGpuProgram hullProg;
  15. HGpuProgram domainProg;
  16. HGpuProgram computeProg;
  17. GpuParamsPtr vertexProgParams;
  18. GpuParamsPtr fragmentProgParams;
  19. GpuParamsPtr geometryProgParams;
  20. GpuParamsPtr hullProgParams;
  21. GpuParamsPtr domainProgParams;
  22. GpuParamsPtr computeProgParams;
  23. HBlendState blendState;
  24. HRasterizerState rasterizerState;
  25. HDepthStencilState depthStencilState;
  26. UINT32 stencilRefValue;
  27. };
  28. /**
  29. * @brief Contains material information as seen by the core thread.
  30. * (Used for rendering and such.)
  31. */
  32. struct BS_CORE_EXPORT MaterialProxy
  33. {
  34. Vector<MaterialProxyPass> passes;
  35. bool separablePasses;
  36. UINT32 queuePriority;
  37. QueueSortType queueSortType;
  38. };
  39. }