20 {
24 {
26
27 float triangleVertices[3 * 7] = {
28 -0.5f, -0.5f, 0.0f, 0.8f, 0.2f, 0.8f, 1.0f, 0.5f, -0.5f, 0.0f, 0.2f,
29 0.3f, 0.8f, 1.0f, 0.0f, 0.5f, 0.0f, 0.8f, 0.8f, 0.2f, 1.0f,
30 };
31
34 sizeof(triangleVertices)));
37
38 };
39 vertexBuffer->SetLayout(layout);
41 uint32_t indices[3] = { 0, 1, 2 };
44 sizeof(uint32_t)));
46
47 std::string triangleVertexSrc = R"(
48 #version 330 core
49
50 layout(location = 0) in vec3 a_Position;
51 layout(location = 1) in vec4 a_Color;
52
53 uniform mat4 u_ViewProjection;
54 uniform mat4 u_Transform;
55
56 out vec3 v_Position;
57 out vec4 v_Color;
58
59 void main()
60 {
61 v_Position = a_Position;
62 v_Color = a_Color;
63 gl_Position = u_ViewProjection * u_Transform * vec4(a_Position, 1.0);
64 }
65 )";
66
67 std::string triangleFragmentSrc = R"(
68 #version 330 core
69
70 layout(location = 0) out vec4 color;
71
72 in vec3 v_Position;
73 in vec4 v_Color;
74
75 void main()
76 {
77 color = vec4(v_Position * 0.5 + 0.5, 1.0);
78 color = v_Color;
79 }
80 )";
81
83 triangleFragmentSrc);
84 }
85
87 float squareVertices[5 * 4] = { -0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 0.5f, -0.5f,
88 0.0f, 1.0f, 0.0f, 0.5f, 0.5f, 0.0f, 1.0f,
89 1.0f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f };
90
92 squareVB =
97
98 uint32_t squareIndices[6] = { 0, 1, 2, 2, 3, 0 };
101 sizeof(uint32_t)));
103
104 std::string blueShaderVertexSrc = R"(
105 #version 330 core
106
107 layout(location = 0) in vec3 a_Position;
108
109 uniform mat4 u_ViewProjection;
110 uniform mat4 u_Transform;
111
112 out vec3 v_Position;
113
114 void main()
115 {
116 v_Position = a_Position;
117 gl_Position = u_ViewProjection * u_Transform * vec4(a_Position, 1.0);
118 }
119 )";
120
121 std::string flatColorShaderFragmentSrc = R"(
122 #version 330 core
123
124 layout(location = 0) out vec4 color;
125
126 in vec3 v_Position;
127
128 uniform vec3 u_Color;
129
130 void main()
131 {
132 color = vec4(u_Color, 1.0);
133 }
134 )";
Muto::Ref< Muto::Shader > m_Shader
Definition SandboxApp.cpp:170
Muto::Ref< Muto::VertexArray > m_TriangleVertexArray
Definition SandboxApp.cpp:171
Muto::OrthographicCameraController m_CameraController
Definition SandboxApp.cpp:174
Muto::Ref< Muto::VertexArray > m_SquareVA
Definition SandboxApp.cpp:173
Represents the layout of a buffer, consisting of multiple BufferElements.
Definition Buffer.h:87
static Ref< IndexBuffer > Create(uint32_t *indices, uint32_t count)
Definition Buffer.cpp:33
Layer(const std::string &name="Layer")
Constructs a Layer with an optional name for debugging purposes.
Definition Layer.cpp:6
static Ref< Shader > Create(const std::string &name, const std::string &vertexSrc, const std::string &fragmentSrc)
Creates a new shader from vertex and fragment shader source code.
Definition Shader.cpp:20
static Ref< VertexArray > Create()
Definition VertexArray.cpp:7
static Ref< VertexBuffer > Create(uint32_t size)
Definition Buffer.cpp:11
std::shared_ptr< T > Ref
A smart pointer type representing shared ownership of an object.
Definition Defines_Macros.h:62