Files
XCEngine/engine/include/XCEngine/RHI/RHIDescriptorSet.h
ssdfasd 04a80d10e7 refactor: Clean up RHI interface and implement descriptor set pooling
- 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
2026-03-25 20:50:40 +08:00

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