VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
indexBuffer.h
Go to the documentation of this file.
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2025-2026 Arnis Lektauers
3//
4// Created by Arnis Lektauers on 13.09.2025.
5//
6#pragma once
7
8#include <cstdint>
9#include <vector>
10
11namespace visutwin::canvas
12{
18
19 class GraphicsDevice;
20
28 {
29 public:
31 virtual ~IndexBuffer() = default;
32
33 IndexFormat format() const { return _format; }
34
35 int numIndices() const { return _numIndices; }
36
37 virtual void* nativeBuffer() const { return nullptr; }
38
39 virtual bool setData(const std::vector<uint8_t>& data) { (void)data; return false; }
40
42 const std::vector<uint8_t>& storage() const { return _storage; }
43
44 private:
45 static int _nextId;
46
47 protected:
49 std::vector<uint8_t> _storage;
50
51 private:
52 IndexFormat _format;
53
54 int _numIndices;
55 };
56}
Abstract GPU interface for resource creation, state management, and draw submission.
virtual ~IndexBuffer()=default
const std::vector< uint8_t > & storage() const
Definition indexBuffer.h:42
IndexFormat format() const
Definition indexBuffer.h:33
IndexBuffer(GraphicsDevice *graphicsDevice, IndexFormat format, int numIndices)
virtual void * nativeBuffer() const
Definition indexBuffer.h:37
virtual bool setData(const std::vector< uint8_t > &data)
Definition indexBuffer.h:39
std::vector< uint8_t > _storage
Definition indexBuffer.h:49