forked from Shell4026/ShellEngine
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathShaderLoader.cpp
More file actions
39 lines (29 loc) · 840 Bytes
/
Copy pathShaderLoader.cpp
File metadata and controls
39 lines (29 loc) · 840 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "PCH.h"
#include "ShaderLoader.h"
#include "ShaderBuilder.h"
#include "Core/FileLoader.h"
#include "render/VulkanImpl/VulkanShader.h"
namespace sh::game
{
ShaderLoader::ShaderLoader(ShaderBuilder* builder) :
builder(builder)
{
}
ShaderLoader::~ShaderLoader()
{
}
auto ShaderLoader::LoadShader(std::string_view vertexShader, std::string_view fragShader) -> render::Shader*
{
if (!builder)
return nullptr;
auto vertData = loader->LoadBinary(vertexShader);
if (!vertData.has_value())
return nullptr;
auto fragData = loader->LoadBinary(fragShader);
if (!fragData.has_value())
return nullptr;
builder->SetData(ShaderBuilder::shaderType::Vertex, std::move(vertData.value()));
builder->SetData(ShaderBuilder::shaderType::Fragment, std::move(fragData.value()));
return builder->Build();
}
}