CmD3D11GpuProgramManager.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. #include "CmD3D11GpuProgramManager.h"
  2. #include "CmD3D11GpuProgram.h"
  3. namespace CamelotFramework
  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 cm_core_ptr<D3D11GpuVertexProgram, PoolAlloc>(new (cm_alloc<D3D11GpuVertexProgram, PoolAlloc>()) D3D11GpuVertexProgram(language));
  17. case GPT_FRAGMENT_PROGRAM:
  18. return cm_core_ptr<D3D11GpuFragmentProgram, PoolAlloc>(new (cm_alloc<D3D11GpuFragmentProgram, PoolAlloc>()) D3D11GpuFragmentProgram(language));
  19. case GPT_HULL_PROGRAM:
  20. return cm_core_ptr<D3D11GpuHullProgram, PoolAlloc>(new (cm_alloc<D3D11GpuHullProgram, PoolAlloc>()) D3D11GpuHullProgram(language));
  21. case GPT_DOMAIN_PROGRAM:
  22. return cm_core_ptr<D3D11GpuDomainProgram, PoolAlloc>(new (cm_alloc<D3D11GpuDomainProgram, PoolAlloc>()) D3D11GpuDomainProgram(language));
  23. case GPT_GEOMETRY_PROGRAM:
  24. return cm_core_ptr<D3D11GpuGeometryProgram, PoolAlloc>(new (cm_alloc<D3D11GpuGeometryProgram, PoolAlloc>()) D3D11GpuGeometryProgram(language));
  25. }
  26. return nullptr;
  27. }
  28. }