Cogs.Core
EffectsD3D12.h
1#pragma once
2
3#include "../Base/EffectsCommon.h"
4
5#include "CommonD3D12.h"
6
7namespace Cogs
8{
10 {
12 };
13
15 {
16 void setDevice(const ResourcePointer<ID3D12Device> & device, struct GraphicsDeviceD3D12 * graphicsDevice);
17
18 struct GraphicsDeviceD3D12 * graphicsDevice;
19
20 EffectHandle loadComputeEffect(const StringView & fileName, EffectFlags::EEffectFlags effectFlags) override;
21 EffectHandle loadComputeEffect(const StringView & fileName, const PreprocessorDefinitions & defines, EffectFlags::EEffectFlags effectFlags) override;
22
23 void releaseEffect(EffectHandle handle);
24
25 void releaseResources();
26
27 EffectHandle load(const ProcessedContent & vsSource,
28 const ProcessedContent & hsSource,
29 const ProcessedContent & dsSource,
30 const ProcessedContent & gsSource,
31 const ProcessedContent & psSource,
32 const StringView & vsEntryPoint,
33 const StringView & hsEntryPoint,
34 const StringView & dsEntryPoint,
35 const StringView & gsEntryPoint,
36 const StringView & psEntryPoint,
37 const EffectDescription & desc) override;
38
39 HRESULT compileShader(const std::string & source, const std::vector<D3D_SHADER_MACRO> & macros, const std::string & entryPoint, const std::string & profile, UINT flags, ID3DBlob ** byteCode, EffectFlags::EEffectFlags effectFlags);
40
41 void reflectShader(Shader & shader);
42
43 ResourcePointer<ID3D12RootSignature> createSignature(EffectSignature & signature);
44
46 size_t persistentEffects;
47
49
51 };
52}
Provides a weakly referenced view over the contents of a string.
Definition: StringView.h:24
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
std::vector< PreprocessorDefinition > PreprocessorDefinitions
A set of preprocessor definitions.
Definition: IEffects.h:13
Contains an effect description used to load a single effect.
Definition: IEffects.h:55
EEffectFlags
Effect source flags.
Definition: IEffects.h:20
void releaseResources()
Release all allocated effect resources.
void releaseEffect(EffectHandle handle)
Release the effect with the given handle, freeing all resources generated during program loading.
EffectHandle loadComputeEffect(const StringView &fileName, EffectFlags::EEffectFlags effectFlags) override
Load the compute shader with the given file name and create an effect.