-
Notifications
You must be signed in to change notification settings - Fork 42
Expand file tree
/
Copy pathbuffer_builder.hpp
More file actions
29 lines (25 loc) · 926 Bytes
/
Copy pathbuffer_builder.hpp
File metadata and controls
29 lines (25 loc) · 926 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#pragma once
#include <limitless/core/buffer/buffer.hpp>
#include <memory>
namespace Limitless {
class ContextState;
class Buffer::Builder {
private:
Buffer::Type target_;
std::variant<Buffer::Usage, Buffer::Storage> usage_;
std::variant<Buffer::MutableAccess, Buffer::ImmutableAccess> access_;
const void* data_ {};
size_t size_ {};
public:
Builder& target(Buffer::Type _target);
Builder& usage(Buffer::Usage _usage);
Builder& usage(Buffer::Storage _storage);
Builder& access(Buffer::MutableAccess _access);
Builder& access(Buffer::ImmutableAccess _access);
Builder& data(const void* _data);
Builder& size(size_t _size);
std::unique_ptr<Buffer> build();
// builds indexed buffer for specified context
std::shared_ptr<Buffer> build(const std::string& name, ContextState& ctx);
};
}