feat(render): Renderer with LOD selection, 3.3 and 4.3+ upload paths, headless smoke test
This commit is contained in:
1 parent
e0cdd95a3b
commit
3555ab63d7
20 files changed
+1544
-25
No files matched your search
@@ -66,6 +66,21 @@ class Buffer final : public Handle<Buffer> {
|
||||
/// Overwrites `bytes` bytes starting at `offset`; the store must already be
|
||||
/// at least `offset + bytes` large.
|
||||
void upload_sub(const void* data, usize bytes, usize offset) const noexcept;
|
||||
/// Replaces the store with `bytes` bytes of immutable storage carrying `flags`
|
||||
/// (`GL_MAP_WRITE_BIT` and friends). GL 4.4 / ARB_buffer_storage: only legal on
|
||||
/// a context whose caps() report `buffer_storage`, and the entry point may be
|
||||
/// null even on such a context (it is resolved best-effort, see api.hpp), so a
|
||||
/// caller checks `glBufferStorage != nullptr` first. The contents start
|
||||
/// undefined.
|
||||
void storage(usize bytes, GLbitfield flags) const noexcept;
|
||||
|
||||
/// Maps `bytes` bytes from `offset` with `access`, returning the pointer or
|
||||
/// null. GL 3.0 core, but a `GL_MAP_PERSISTENT_BIT` map needs the same
|
||||
/// capability as `storage()` above.
|
||||
void* map_range(usize offset, usize bytes, GLbitfield access) const noexcept;
|
||||
|
||||
/// Unmaps the store's data; the pointer from map_range() is invalid after this.
|
||||
bool unmap() const noexcept;
|
||||
|
||||
/// Exposed for the CRTP base. Deleting an unknown name is a GL no-op.
|
||||
static void destroy(GLuint id) noexcept;
|
||||
|
||||
Reference in new issue
Block a user