feat: triangle is perfectly draw

This commit is contained in:
2026-01-07 19:52:30 +01:00
parent 3c7e931a89
commit 8dd67e5ca9
10 changed files with 277 additions and 136 deletions

View File

@@ -0,0 +1,86 @@
#ifndef P_CUBE_HPP
#define P_CUBE_HPP
#include <cstddef>
#include "GLFW/glfw3.h"
namespace mesh
{
// clang-format off
constexpr GLfloat P_CUBE_VERTICE[] = {
// Positions // normales // texture coordinate
// front side
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f,
0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f,
-0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f,
// back side
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f,
0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f,
0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f,
// left side
-0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
-0.5f, -0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
-0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
-0.5f, 0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
// right side
0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
// bottom side
-0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f,
0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f,
0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f,
-0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f,
// up side
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f,
0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f,
-0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
};
// clang-format on
constexpr const std::size_t P_CUBE_VERTICE_LEN =
sizeof(P_CUBE_VERTICE) / sizeof(GLfloat);
constexpr unsigned int P_CUBE_INDICE[] = {
0, 1, 2, // 1
2, 3, 0, // 2
4, 5, 6, // 3
6, 7, 4, // 4
8, 9, 10, // 5
10, 11, 8, // 6
12, 13, 14, // 7
14, 15, 12, // 8
16, 17, 18, // 9
18, 19, 16, // 10
20, 21, 22, // 11
22, 23, 20 // 12
};
constexpr const std::size_t P_CUBE_INDICE_LEN =
sizeof(P_CUBE_VERTICE) / sizeof(unsigned int);
extern "C"
{
extern const unsigned char P_CUBE_VERT[];
extern const unsigned int P_CUBE_VERT_LEN;
extern const unsigned char P_CUBE_FRAG[];
extern const unsigned int P_CUBE_FRAG_LEN;
}
} // namespace mesh
#endif

View File

@@ -0,0 +1,8 @@
#version 330 core
out vec4 color;
void main()
{
color = vec4(1.0f, 0.5f, 0.2f, 1.0f);
}

View File

@@ -0,0 +1,37 @@
#ifndef P_TRIANGLE_HPP
#define P_TRIANGLE_HPP
#include <cstddef>
#include "GLFW/glfw3.h"
namespace mesh
{
// clang-format off
constexpr GLfloat P_TRIANGLE_VERTICE[] = {
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
0.0f, 0.5f, 0.0f
};
// clang-format on
constexpr const std::size_t P_TRIANGLE_VERTICE_LEN =
sizeof(P_TRIANGLE_VERTICE) / sizeof(GLfloat);
constexpr unsigned int P_TRIANGLE_INDICE[] = {
0, 1, 2, // 1
};
constexpr const std::size_t P_TRIANGLE_INDICE_LEN =
sizeof(P_TRIANGLE_VERTICE) / sizeof(unsigned int);
extern "C"
{
extern const unsigned char P_TRIANGLE_VERT[];
extern const unsigned int P_TRIANGLE_VERT_LEN;
extern const unsigned char P_TRIANGLE_FRAG[];
extern const unsigned int P_TRIANGLE_FRAG_LEN;
}
} // namespace mesh
#endif

View File

@@ -0,0 +1,7 @@
#version 330 core
layout (location = 0) in vec3 aPos;
void main()
{
gl_Position = vec4(aPos , 1.0);
}