Graphics v0.0.0
A simple abstraction layer for the modern graphics APIs.
载入中...
搜索中...
未找到
IndexBuffer.h
1// Copyright 2022 ShenMian
2// License(Apache-2.0)
3
4#pragma once
5
6#include "Buffer.h"
7#include <cstdint>
8#include <memory>
9#include <span>
10#include <vector>
11
16{
17public:
24 [[nodiscard]] static std::shared_ptr<IndexBuffer> create(std::span<const uint32_t> data,
25 Buffer::Usage usage = Buffer::Usage::Static);
26
35 [[nodiscard]] static std::shared_ptr<IndexBuffer> create(const uint32_t* data, size_t size,
36 Buffer::Usage usage = Buffer::Usage::Static);
37
41 [[nodiscard]] size_t get_size() const;
42
46 [[nodiscard]] uint32_t get_count() const;
47
48 virtual Buffer& get_buffer() = 0;
49
50protected:
51 IndexBuffer(const void* data, size_t size);
52
53private:
54 size_t size_;
55 uint32_t count_;
56};
缓冲区.
Definition: Buffer.h:13
Usage
缓冲区使用方式.
Definition: Buffer.h:29
索引缓冲区.
Definition: IndexBuffer.h:16
uint32_t get_count() const
获取索引数.
Definition: IndexBuffer.cpp:36
static std::shared_ptr< IndexBuffer > create(std::span< const uint32_t > data, Buffer::Usage usage=Buffer::Usage::Static)
创建 IndexBuffer.
Definition: IndexBuffer.cpp:11
size_t get_size() const
获取缓冲区大小, 单位: 字节.
Definition: IndexBuffer.cpp:31