Botcraft 1.21.4
Loading...
Searching...
No Matches
Chunk.cpp
Go to the documentation of this file.
1#include <glad/glad.h>
2
4
5namespace Botcraft
6{
7 namespace Renderer
8 {
10 {
11
12 }
13
15 {
16
17 }
18
20 {
21 std::lock_guard<std::mutex> lock_faces(mutex_faces);
22 switch (buffer_status)
23 {
25 {
27 std::vector<Face> faces_data(faces.begin(), faces.end());
28 face_number = static_cast<unsigned int>(faces_data.size());
29 glBindBuffer(GL_ARRAY_BUFFER, data_VBO);
30 glBufferData(GL_ARRAY_BUFFER, sizeof(Face) * face_number, faces_data.data(), GL_DYNAMIC_DRAW);
31 glBindBuffer(GL_ARRAY_BUFFER, 0);
33 break;
34 }
36 {
37 std::vector<Face> faces_data(faces.begin(), faces.end());
38 face_number = static_cast<unsigned int>(faces_data.size());
39 glBindBuffer(GL_ARRAY_BUFFER, data_VBO);
40 glBufferData(GL_ARRAY_BUFFER, sizeof(Face) * face_number, faces_data.data(), GL_DYNAMIC_DRAW);
41 glBindBuffer(GL_ARRAY_BUFFER, 0);
42 if (face_number == 0)
43 {
46 }
47 else
48 {
50 }
51 break;
52 }
54 break;
55 default:
56 break;
57 }
58 }
59
60 void Chunk::AddFace(const Face& f, const std::array<unsigned int, 2>& texture_multipliers,
61 const float offset_x, const float offset_y, const float offset_z)
62 {
63 std::lock_guard<std::mutex> lock_faces(mutex_faces);
65 {
67 }
68
69 Face local_face(f);
70
71 local_face.GetMatrix()[12] += offset_x;
72 local_face.GetMatrix()[13] += offset_y;
73 local_face.GetMatrix()[14] += offset_z;
74
75 local_face.SetTextureMultipliers(texture_multipliers);
76
77 faces.push_back(std::move(local_face));
78 }
79 } // Renderer
80} // Botcraft
void AddFace(const Face &f, const std::array< unsigned int, 2 > &texture_multipliers, const float offset_x, const float offset_y, const float offset_z)
Definition Chunk.cpp:60
const std::array< float, 16 > & GetMatrix() const
Definition Face.cpp:169
void SetTextureMultipliers(const std::array< unsigned int, 2 > &mult)
Definition Face.cpp:179