Asset* AssetManager::LoadSubShaders(const std::string& subshaderFile) { std::string fullPath = GetAbsolutePathOfFile(subshaderFile); std::wstring filepath = std::wstring(fullPath.begin(),fullPath.end()); SUBSHADERTYPE sstype = GetSubShaderTypeFromFile(fullPath); Asset* pSubShader = 0;; switch (sstype) { case VERTEX_SHADER: pSubShader = new SubShader<ID3D11VertexShader>(filepath, sstype); break; case PIXEL_SHADER: pSubShader = new SubShader<ID3D11PixelShader>(filepath, sstype); break; case COMPUTE_SHADER: pSubShader = new SubShader<ID3D11ComputeShader>(filepath, sstype); break; case GEOMETRY_SHADER: pSubShader = new SubShader<ID3D11GeometryShader>(filepath, sstype); break; } pSubShader->SetAutoUnload(false); pSubShader->AddUseCounter(); return pSubShader; }