diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-12-27 21:24:48 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-12-27 21:24:48 +0000 |
commit | d2ed94a517066da4f4ec53045f9c69bfc355eab6 (patch) | |
tree | 4aba7b767826ddd05279c12b5b0c5da592c200cb | |
parent | 354d7df4d2779ed7391701d1ef4344e959b64582 (diff) | |
download | YAGE-d2ed94a517066da4f4ec53045f9c69bfc355eab6.tar.gz YAGE-d2ed94a517066da4f4ec53045f9c69bfc355eab6.zip |
[Code] Examples working again.
-rw-r--r-- | examples/resources/learnopenglshader.frag | 12 | ||||
-rw-r--r-- | examples/resources/learnopenglshader.vert | 14 | ||||
-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/simplegame/main.cpp | 15 | ||||
-rw-r--r-- | yage/data/renderbatch.h | 2 | ||||
-rw-r--r-- | yage/render/spritebatch.cpp | 5 |
7 files changed, 37 insertions, 11 deletions
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/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/simplegame/main.cpp b/examples/simplegame/main.cpp index f5547e53..895fce51 100644 --- a/examples/simplegame/main.cpp +++ b/examples/simplegame/main.cpp @@ -19,8 +19,8 @@ int main() Window window; window.create("Simple Game", 800, 640); - Shader textureProgram("examples/resources/textureshader.vert", - "examples/resources/textureshader.frag"); + Shader textureProgram("examples/resources/learnopenglshader.vert", + "examples/resources/learnopenglshader.frag"); SpriteBatch sp; Texture fountain = ResourceManager::getTexture( @@ -28,12 +28,13 @@ int main() 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"); - Camera camera(800, 640); + cout << "texture: " << brick.width << ", " << brick.height << '\n'; + Camera camera(800, 640); textureProgram.use(); - textureProgram.setUniform("texture_sampler", 0); + textureProgram.setUniform("ourTexture", 0); while (!window.shouldClose()) { window.clearBuffer(); @@ -47,10 +48,8 @@ int main() texture = breast_plate; } - camera.update(textureProgram); + sp.draw({-0.5, -0.5, 1, 1}, {0, 0, 1, 1}, brick.id, Colour(255, 255, 255, 255), 0); - sp.draw({0.f, 0.f, 64.f, 64.f}, {0, 0, 1, 1}, fountain.id, - Colour(255, 0, 255, 255), 0); sp.render(); window.swapBuffer(); diff --git a/yage/data/renderbatch.h b/yage/data/renderbatch.h index 0d034035..51521ec5 100644 --- a/yage/data/renderbatch.h +++ b/yage/data/renderbatch.h @@ -9,7 +9,7 @@ struct RenderBatch { GLuint texture; RenderBatch(GLint offset_i, GLsizei num_vertices_i, GLuint texture_i) - : offset(offset_i), num_vertices(num_vertices_i), texture(texture_i = 0) + : offset(offset_i), num_vertices(num_vertices_i), texture(texture_i) { } }; diff --git a/yage/render/spritebatch.cpp b/yage/render/spritebatch.cpp index fb6c3d78..c1bf4a28 100644 --- a/yage/render/spritebatch.cpp +++ b/yage/render/spritebatch.cpp @@ -9,6 +9,7 @@ #include "spritebatch.h" #include <algorithm> +#include <iostream> #include <stdexcept> namespace yage @@ -88,10 +89,9 @@ void SpriteBatch::draw(const glm::vec4 &destination_rect, void SpriteBatch::render() { // sort and create render batches - glBindVertexArray(vao_); sortGlyphs(); createRenderBatches(); - + glBindVertexArray(vao_); for (auto &&batch : render_batches_) { glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, batch.texture); @@ -155,6 +155,7 @@ void SpriteBatch::createRenderBatches() glyph_ptrs_[i - 1]->texture()))) { render_batches_.emplace_back(i * NUM_VERTICES, NUM_VERTICES, glyph_ptrs_[i]->texture()); + } else { render_batches_.back().num_vertices += NUM_VERTICES; } |