aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/CMakeLists.txt2
-rw-r--r--examples/resources/colourshader.frag10
-rw-r--r--examples/resources/colourshader.vert15
-rw-r--r--examples/resources/learnopenglshader.frag12
-rw-r--r--examples/resources/learnopenglshader.vert14
-rw-r--r--examples/resources/textureshader.frag8
-rw-r--r--examples/resources/textureshader.vert7
-rw-r--r--examples/resources/wall.jpgbin0 -> 256989 bytes
-rw-r--r--examples/resources/wall.pngbin0 -> 607366 bytes
-rw-r--r--examples/shooter/main.cpp15
-rw-r--r--examples/simplegame/main.cpp28
11 files changed, 75 insertions, 36 deletions
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index a75f6528..156b6a34 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -4,7 +4,7 @@ function(make_example name)
add_executable(${name} ${SOURCES})
target_link_libraries(${name} yage)
-endfunction(make_test)
+endfunction(make_example)
make_example(simplegame)
make_example(shooter)
diff --git a/examples/resources/colourshader.frag b/examples/resources/colourshader.frag
new file mode 100644
index 00000000..e49d1ebb
--- /dev/null
+++ b/examples/resources/colourshader.frag
@@ -0,0 +1,10 @@
+#version 450
+
+layout(location = 0) in vec4 fragment_colour;
+
+layout(location = 0) out vec4 colour;
+
+void main()
+{
+ colour = fragment_colour;
+}
diff --git a/examples/resources/colourshader.vert b/examples/resources/colourshader.vert
new file mode 100644
index 00000000..e5c10d77
--- /dev/null
+++ b/examples/resources/colourshader.vert
@@ -0,0 +1,15 @@
+#version 450
+
+layout(location = 0) in vec2 vertex_position;
+layout(location = 1) in vec4 vertex_colour;
+
+layout(location = 0) out vec4 fragment_colour;
+
+uniform mat4 P;
+
+void main()
+{
+ gl_Position = vec4(vertex_position, 0.f, 1.f);
+
+ fragment_colour = vertex_colour;
+}
diff --git a/examples/resources/learnopenglshader.frag b/examples/resources/learnopenglshader.frag
new file mode 100644
index 00000000..ae3ba3ce
--- /dev/null
+++ b/examples/resources/learnopenglshader.frag
@@ -0,0 +1,12 @@
+#version 450 core
+out vec4 FragColor;
+
+in vec4 ourColor;
+in vec2 TexCoord;
+
+uniform sampler2D ourTexture;
+
+void main()
+{
+ FragColor = texture(ourTexture, TexCoord);
+}
diff --git a/examples/resources/learnopenglshader.vert b/examples/resources/learnopenglshader.vert
new file mode 100644
index 00000000..7b24b5d7
--- /dev/null
+++ b/examples/resources/learnopenglshader.vert
@@ -0,0 +1,14 @@
+#version 450 core
+layout (location = 0) in vec2 aPos;
+layout (location = 1) in vec4 aColor;
+layout (location = 2) in vec2 aTexCoord;
+
+out vec4 ourColor;
+out vec2 TexCoord;
+
+void main()
+{
+ gl_Position = vec4(aPos, 0.0, 1.0);
+ ourColor = aColor;
+ TexCoord = aTexCoord;
+}
diff --git a/examples/resources/textureshader.frag b/examples/resources/textureshader.frag
index ef728b04..8d916be6 100644
--- a/examples/resources/textureshader.frag
+++ b/examples/resources/textureshader.frag
@@ -4,13 +4,15 @@ layout(location = 0) in vec2 fragment_position;
layout(location = 1) in vec4 fragment_colour;
layout(location = 2) in vec2 fragment_uv;
-out vec4 colour;
+layout(location = 0) out vec4 colour;
+layout(location = 1) out vec4 colour2;
uniform sampler2D texture_sampler;
void main()
{
- vec4 texture_color = texture(texture_sampler, fragment_uv);
+ vec4 texture_colour = texture(texture_sampler, fragment_uv);
- colour = texture_color * fragment_colour;
+ colour2 = vec4(1.f, 0.f, 0.f, 1.f);
+ colour = texture_colour;
}
diff --git a/examples/resources/textureshader.vert b/examples/resources/textureshader.vert
index 3277d8b0..b0c11a6c 100644
--- a/examples/resources/textureshader.vert
+++ b/examples/resources/textureshader.vert
@@ -12,12 +12,9 @@ uniform mat4 P;
void main()
{
- gl_Position.xy = (P*vec4(vertex_position, 0.0, 1.0)).xy;
- gl_Position.z = 0.0;
- gl_Position.w = 1.0;
+ gl_Position = vec4((P*vec4(vertex_position, 0.f, 1.f)).xy, 0.f, 1.f);
fragment_position = vertex_position;
fragment_colour = vertex_colour;
- fragment_uv = vec2(vertex_uv.x, 1-vertex_uv.y);
-
+ fragment_uv = vec2(vertex_uv.x, 1-vertex_uv.y);
}
diff --git a/examples/resources/wall.jpg b/examples/resources/wall.jpg
new file mode 100644
index 00000000..49631987
--- /dev/null
+++ b/examples/resources/wall.jpg
Binary files differ
diff --git a/examples/resources/wall.png b/examples/resources/wall.png
new file mode 100644
index 00000000..3eb2cd6e
--- /dev/null
+++ b/examples/resources/wall.png
Binary files differ
diff --git a/examples/shooter/main.cpp b/examples/shooter/main.cpp
index d28af83e..12cf218d 100644
--- a/examples/shooter/main.cpp
+++ b/examples/shooter/main.cpp
@@ -1,22 +1,21 @@
#include <yage/yage.h>
-#include <iostream>
+#include "glad/glad.h"
using std::cout;
-int main(int argc, char** argv)
+int main(int argc, char **argv)
{
- cout << "Starting Shooter example...\n";
-
yage::Window window;
- window.create("Shooter example", 1920, 1080);
+ window.create("Shooter example", 800, 600);
+
+ yage::Shader shader("examples/resources/textureshader.vert",
+ "examples/resources/textureshader.frag");
- while(!window.shouldClose()) {
+ while (!window.shouldClose()) {
window.pollEvents();
window.clearBuffer();
-
-
window.swapBuffer();
}
}
diff --git a/examples/simplegame/main.cpp b/examples/simplegame/main.cpp
index 06200661..895fce51 100644
--- a/examples/simplegame/main.cpp
+++ b/examples/simplegame/main.cpp
@@ -17,23 +17,24 @@ using namespace yage;
int main()
{
Window window;
- GlslProgram textureProgram;
-
window.create("Simple Game", 800, 640);
- SpriteBatch sp;
- textureProgram.compileShadersFromFile("examples/resources/textureshader.vert",
- "examples/resources/textureshader.frag");
- textureProgram.linkShaders();
+ Shader textureProgram("examples/resources/learnopenglshader.vert",
+ "examples/resources/learnopenglshader.frag");
+ SpriteBatch sp;
Texture fountain = ResourceManager::getTexture(
"examples/resources/dngn_blood_fountain.png");
Texture breast_plate =
ResourceManager::getTexture("examples/resources/breast_black.png");
- cout << "texture: " << fountain.width << ", " << fountain.height << '\n';
+ Texture brick = ResourceManager::getTexture("examples/resources/wall.png");
+
+ cout << "texture: " << brick.width << ", " << brick.height << '\n';
Camera camera(800, 640);
+ textureProgram.use();
+ textureProgram.setUniform("ourTexture", 0);
while (!window.shouldClose()) {
window.clearBuffer();
@@ -47,21 +48,10 @@ int main()
texture = breast_plate;
}
- textureProgram.use();
- camera.update(textureProgram);
+ sp.draw({-0.5, -0.5, 1, 1}, {0, 0, 1, 1}, brick.id, Colour(255, 255, 255, 255), 0);
- glActiveTexture(GL_TEXTURE0);
-
- GLint texture_location = textureProgram.getUniformLocation("texture_sampler");
- glUniform1i(texture_location, 0);
-
- sp.draw({0.f, 0.f, 64.f, 64.f}, {0, 0, 1, 1}, texture.id,
- Colour(255, 0, 255, 255), 0);
sp.render();
- glBindTexture(GL_TEXTURE_2D, 0);
- textureProgram.unuse();
-
window.swapBuffer();
}
}