aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-12-27 21:24:48 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-12-27 21:24:48 +0000
commitd2ed94a517066da4f4ec53045f9c69bfc355eab6 (patch)
tree4aba7b767826ddd05279c12b5b0c5da592c200cb
parent354d7df4d2779ed7391701d1ef4344e959b64582 (diff)
downloadYAGE-d2ed94a517066da4f4ec53045f9c69bfc355eab6.tar.gz
YAGE-d2ed94a517066da4f4ec53045f9c69bfc355eab6.zip
[Code] Examples working again.
-rw-r--r--examples/resources/learnopenglshader.frag12
-rw-r--r--examples/resources/learnopenglshader.vert14
-rw-r--r--examples/resources/wall.jpgbin0 -> 256989 bytes
-rw-r--r--examples/resources/wall.pngbin0 -> 607366 bytes
-rw-r--r--examples/simplegame/main.cpp15
-rw-r--r--yage/data/renderbatch.h2
-rw-r--r--yage/render/spritebatch.cpp5
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
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/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;
}