Just™ Game Engine
buffers.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2021-2022 Konstanty Misiak
3 *
4 * SPDX-License-Identifier: MIT
5 */
6
7#pragma once
8#include "jng/core/base.hpp"
10
11namespace jng {
12
13 class VertexBuffer final
14 {
15 public:
16 VertexBuffer(const void* vertices, size_t size);
17 explicit VertexBuffer(size_t size);
19
20 void bind() const;
21 void unbind() const;
22 void setData(const void* data, size_t size) const;
23 private:
24 u32 m_id;
25 };
26
27 class IndexBuffer final
28 {
29 public:
30 IndexBuffer(const void* indices, u32 count, RendererAPI::IndexType type);
32
33 void bind() const;
34 void unbind() const;
35 u32 getCount() const { return m_count; }
36 RendererAPI::IndexType getIndexType() const { return m_indexType; }
37 private:
38 u32 m_id;
39 u32 m_count;
40 RendererAPI::IndexType m_indexType;
41 };
42
43 class UniformBuffer final
44 {
45 public:
46 explicit UniformBuffer(size_t size);
48
49 void bind(u32 slot) const;
50 void unbind(u32 slot) const;
51 void setData(const void* data, size_t size, size_t offset = 0) const;
52 private:
53 u32 m_id;
54 };
55
56} // namespace jng
Definition: buffers.hpp:28
void bind() const
Definition: buffers_ogl.cpp:74
IndexBuffer(const void *indices, u32 count, RendererAPI::IndexType type)
Definition: buffers_ogl.cpp:61
~IndexBuffer()
Definition: buffers_ogl.cpp:69
void unbind() const
Definition: buffers_ogl.cpp:79
RendererAPI::IndexType getIndexType() const
Definition: buffers.hpp:36
u32 getCount() const
Definition: buffers.hpp:35
Definition: buffers.hpp:44
void unbind(u32 slot) const
Definition: buffers_ogl.cpp:102
void bind(u32 slot) const
Definition: buffers_ogl.cpp:97
UniformBuffer(size_t size)
Definition: buffers_ogl.cpp:86
~UniformBuffer()
Definition: buffers_ogl.cpp:92
void setData(const void *data, size_t size, size_t offset=0) const
Definition: buffers_ogl.cpp:107
Definition: buffers.hpp:14
VertexBuffer(const void *vertices, size_t size)
Definition: buffers_ogl.cpp:14
void setData(const void *data, size_t size) const
Definition: buffers_ogl.cpp:41
void bind() const
Definition: buffers_ogl.cpp:31
void unbind() const
Definition: buffers_ogl.cpp:36
~VertexBuffer()
Definition: buffers_ogl.cpp:26
IndexType
Definition: renderer_api.hpp:17
Definition: base.hpp:11
uint32_t u32
Definition: base.hpp:41