diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/CMakeLists.txt | 2 | ||||
-rw-r--r-- | examples/resources/colourshader.frag | 10 | ||||
-rw-r--r-- | examples/resources/colourshader.vert | 15 | ||||
-rw-r--r-- | examples/resources/learnopenglshader.frag | 12 | ||||
-rw-r--r-- | examples/resources/learnopenglshader.vert | 14 | ||||
-rw-r--r-- | examples/resources/textureshader.frag | 8 | ||||
-rw-r--r-- | examples/resources/textureshader.vert | 7 | ||||
-rw-r--r-- | examples/resources/wall.jpg | bin | 0 -> 256989 bytes | |||
-rw-r--r-- | examples/resources/wall.png | bin | 0 -> 607366 bytes | |||
-rw-r--r-- | examples/shooter/main.cpp | 15 | ||||
-rw-r--r-- | examples/simplegame/main.cpp | 28 |
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 Binary files differnew file mode 100644 index 00000000..49631987 --- /dev/null +++ b/examples/resources/wall.jpg diff --git a/examples/resources/wall.png b/examples/resources/wall.png Binary files differnew file mode 100644 index 00000000..3eb2cd6e --- /dev/null +++ b/examples/resources/wall.png 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(); } } |