- backend upate from GZDoom

* Vulkan SDK and dependencies updated.
* better interface for buffers in the render backend.
This commit is contained in:
Christoph Oelckers 2021-10-30 09:34:38 +02:00
parent 509124c1dd
commit 9071949a46
65 changed files with 19806 additions and 5422 deletions

View file

@ -46,6 +46,14 @@ struct FVertexBufferAttribute
int offset;
};
enum class BufferUsageType
{
Static, // initial data is not null, staticdata is true
Stream, // initial data is not null, staticdata is false
Persistent, // initial data is null, staticdata is false
Mappable // initial data is null, staticdata is true
};
class IBuffer
{
protected:
@ -57,7 +65,7 @@ public:
IBuffer &operator=(const IBuffer &) = delete;
virtual ~IBuffer() = default;
virtual void SetData(size_t size, const void *data, bool staticdata = true) = 0;
virtual void SetData(size_t size, const void *data, BufferUsageType type) = 0;
virtual void SetSubData(size_t offset, size_t size, const void *data) = 0;
virtual void *Lock(unsigned int size) = 0;
virtual void Unlock() = 0;