VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
shaderMaterial.cpp
Go to the documentation of this file.
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright 2025-2026 Arnis Lektauers
3
//
4
// Created by Arnis Lektauers on 10.02.2026.
5
//
6
#include "
shaderMaterial.h
"
7
8
#include "
platform/graphics/graphicsDevice.h
"
9
#include "spdlog/spdlog.h"
10
11
namespace
visutwin::canvas
12
{
13
ShaderMaterial::ShaderMaterial
(
const
std::shared_ptr<GraphicsDevice>& device,
const
std::string& uniqueName,
14
const
std::string& vertexEntry,
const
std::string& fragmentEntry,
const
std::string& sourceCode)
15
{
16
setName
(uniqueName);
17
setTransparent
(
false
);
18
19
if
(device) {
20
if
(sourceCode.empty()) {
21
spdlog::warn(
"ShaderMaterial '{}' created without source code. Shader override was not created."
, uniqueName);
22
return
;
23
}
24
ShaderDefinition
definition;
25
definition.
name
= uniqueName;
26
definition.
vshader
= vertexEntry;
27
definition.
fshader
= fragmentEntry;
28
setShaderOverride
(
createShader
(device.get(), definition, sourceCode));
29
}
30
}
31
}
visutwin::canvas::Material::setShaderOverride
void setShaderOverride(const std::shared_ptr< Shader > &shader)
Definition
material.h:161
visutwin::canvas::Material::setName
void setName(const std::string &name)
Definition
material.h:152
visutwin::canvas::Material::setTransparent
void setTransparent(const bool value)
Definition
material.h:155
visutwin::canvas::ShaderMaterial::ShaderMaterial
ShaderMaterial(const std::shared_ptr< GraphicsDevice > &device, const std::string &uniqueName, const std::string &vertexEntry="vertexShader", const std::string &fragmentEntry="fragmentShader", const std::string &sourceCode="")
Definition
shaderMaterial.cpp:13
graphicsDevice.h
visutwin::canvas
Definition
eventHandler.cpp:9
visutwin::canvas::createShader
std::shared_ptr< Shader > createShader(GraphicsDevice *graphicsDevice, const ShaderDefinition &definition, const std::string &sourceCode)
Definition
shader.cpp:39
shaderMaterial.h
visutwin::canvas::ShaderDefinition
Definition
shader.h:14
visutwin::canvas::ShaderDefinition::fshader
std::string fshader
Definition
shader.h:18
visutwin::canvas::ShaderDefinition::vshader
std::string vshader
Definition
shader.h:17
visutwin::canvas::ShaderDefinition::name
std::string name
Definition
shader.h:15
scene
materials
shaderMaterial.cpp
Generated by
1.16.1