CmD3D11GpuProgramManager.cpp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "CmD3D11GpuProgramManager.h"
  2. #include "CmD3D11GpuProgram.h"
  3. namespace CamelotEngine
  4. {
  5. D3D11GpuProgramManager::D3D11GpuProgramManager(D3D11Device& device)
  6. :mDevice(device)
  7. { }
  8. D3D11GpuProgramManager::~D3D11GpuProgramManager()
  9. { }
  10. GpuProgramPtr D3D11GpuProgramManager::create(const String& source, const String& entryPoint,
  11. const String& language, GpuProgramType gptype, GpuProgramProfile profile)
  12. {
  13. switch(gptype)
  14. {
  15. case GPT_VERTEX_PROGRAM:
  16. return GpuProgramPtr(CM_NEW(D3D11GpuVertexProgram, PoolAlloc) D3D11GpuVertexProgram(language),
  17. &CoreObject::_deleteDelayed<D3D11GpuVertexProgram, PoolAlloc>);
  18. case GPT_FRAGMENT_PROGRAM:
  19. return GpuProgramPtr(CM_NEW(D3D11GpuFragmentProgram, PoolAlloc) D3D11GpuFragmentProgram(language),
  20. &CoreObject::_deleteDelayed<D3D11GpuFragmentProgram, PoolAlloc>);
  21. case GPT_HULL_PROGRAM:
  22. return GpuProgramPtr(CM_NEW(D3D11GpuHullProgram, PoolAlloc) D3D11GpuHullProgram(language),
  23. &CoreObject::_deleteDelayed<D3D11GpuHullProgram, PoolAlloc>);
  24. case GPT_DOMAIN_PROGRAM:
  25. return GpuProgramPtr(CM_NEW(D3D11GpuDomainProgram, PoolAlloc) D3D11GpuDomainProgram(language),
  26. &CoreObject::_deleteDelayed<D3D11GpuDomainProgram, PoolAlloc>);
  27. case GPT_GEOMETRY_PROGRAM:
  28. return GpuProgramPtr(CM_NEW(D3D11GpuGeometryProgram, PoolAlloc) D3D11GpuGeometryProgram(language),
  29. &CoreObject::_deleteDelayed<D3D11GpuGeometryProgram, PoolAlloc>);
  30. }
  31. return nullptr;
  32. }
  33. }