- Remove unnecessary inline keywords from RHICommandList - Add TextureType enum for proper texture type classification - Update DescriptorSet API to support binding with pipeline layout - Simplify D3D12CommandList implementation - Implement descriptor set binding with pipeline layout for both D3D12 and OpenGL
40 lines
988 B
C++
40 lines
988 B
C++
#pragma once
|
|
|
|
#include "RHIEnums.h"
|
|
#include "RHITypes.h"
|
|
|
|
namespace XCEngine {
|
|
namespace RHI {
|
|
|
|
class RHIDescriptorPool;
|
|
class RHIResourceView;
|
|
class RHISampler;
|
|
|
|
class RHIDescriptorSet {
|
|
public:
|
|
virtual ~RHIDescriptorSet() = default;
|
|
|
|
virtual void Shutdown() = 0;
|
|
virtual void Bind() = 0;
|
|
virtual void Unbind() = 0;
|
|
|
|
virtual void Update(uint32_t offset, RHIResourceView* view) = 0;
|
|
virtual void UpdateSampler(uint32_t offset, RHISampler* sampler) = 0;
|
|
|
|
virtual void WriteConstant(uint32_t binding, const void* data, size_t size, size_t offset = 0) = 0;
|
|
|
|
virtual uint32_t GetBindingCount() const = 0;
|
|
virtual const DescriptorSetLayoutBinding* GetBindings() const = 0;
|
|
|
|
virtual void* GetConstantBufferData() = 0;
|
|
virtual size_t GetConstantBufferSize() const = 0;
|
|
virtual bool IsConstantDirty() const = 0;
|
|
virtual void MarkConstantClean() = 0;
|
|
|
|
protected:
|
|
RHIDescriptorSet() = default;
|
|
};
|
|
|
|
} // namespace RHI
|
|
} // namespace XCEngine
|