Files
FlaxEngine/Source/Engine/GraphicsDevice/DirectX/DX12/GPUShaderDX12.h
Wojciech Figat a7e428a21c Merge branch 'master' into 1.5
# Conflicts:
#	Content/Shaders/GI/DDGI.flax
#	Content/Shaders/GI/GlobalSurfaceAtlas.flax
#	Content/Shaders/TAA.flax
#	Content/Shaders/VolumetricFog.flax
#	Source/Editor/CustomEditors/Editors/ActorTagEditor.cs
#	Source/Engine/Core/Config/GraphicsSettings.cpp
#	Source/Engine/Engine/PostProcessEffect.cs
#	Source/Engine/Graphics/GPUResourcesCollection.cpp
#	Source/Engine/Graphics/GPUResourcesCollection.h
#	Source/Engine/Graphics/PostProcessBase.h
#	Source/FlaxEngine.Gen.cs
2023-01-10 15:37:55 +01:00

56 lines
1.4 KiB
C++

// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#if GRAPHICS_API_DIRECTX12
#include "Engine/Graphics/Shaders/GPUShader.h"
#include "Engine/Graphics/Shaders/GPUConstantBuffer.h"
#include "GPUDeviceDX12.h"
/// <summary>
/// Constant Buffer for DirectX 12 backend.
/// </summary>
class GPUConstantBufferDX12 : public GPUResourceDX12<GPUConstantBuffer>
{
public:
GPUConstantBufferDX12(GPUDeviceDX12* device, uint32 size, const StringView& name) noexcept
: GPUResourceDX12(device, name)
, GPUAddress(0)
{
_size = size;
}
public:
/// <summary>
/// Last uploaded data address.
/// </summary>
D3D12_GPU_VIRTUAL_ADDRESS GPUAddress;
};
/// <summary>
/// Shader for DirectX 12 backend.
/// </summary>
class GPUShaderDX12 : public GPUResourceDX12<GPUShader>
{
public:
/// <summary>
/// Initializes a new instance of the <see cref="GPUShaderDX12"/> class.
/// </summary>
/// <param name="device">The device.</param>
/// <param name="name">The resource name.</param>
GPUShaderDX12(GPUDeviceDX12* device, const StringView& name)
: GPUResourceDX12<GPUShader>(device, name)
{
}
protected:
// [GPUShader]
GPUShaderProgram* CreateGPUShaderProgram(ShaderStage type, const GPUShaderProgramInitializer& initializer, byte* cacheBytes, uint32 cacheSize, MemoryReadStream& stream) override;
};
#endif