summaryrefslogtreecommitdiffstats
path: root/src/game/client/world/chunk_vbo.hh
blob: e9061d83bc536f0dcf4dc5df17fdc2d60c73dc9c (plain)
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
// SPDX-License-Identifier: BSD-2-Clause
// Copyright (c) 2025 Kirill Dmitrievich
// File: chunk_vbo.hh
// Description: Utility wrapper for OpenGL VBOs

#ifndef CLIENT_WORLD_CHUNK_VBO_HH
#define CLIENT_WORLD_CHUNK_VBO_HH
#pragma once

class ChunkVBO final {
public:
    std::size_t size;
    GLuint handle;

public:
    inline ~ChunkVBO(void)
    {
        // The ChunkVBO structure is meant to be a part
        // of the ChunkMesh component within the EnTT registry;
        // When the registry is cleaned or a chunk is removed, components
        // are expected to be safely disposed of so we need a destructor;
        if(handle) {
            glDeleteBuffers(1, &handle);
        }
    }
};

#endif