From a41cd245a90b2b87216f43529342395159cf8f2d Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sun, 17 Nov 2013 18:15:20 -0500 Subject: [PATCH] construct logo VAOs --- src/gss.d | 3 ++- src/logo.d | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/gss.d b/src/gss.d index a0378d6..688d450 100644 --- a/src/gss.d +++ b/src/gss.d @@ -5,7 +5,7 @@ import glamour.vao; import glamour.shader; import glamour.vbo; import gl3n.linalg; -import logo; +static import logo; enum int WIDTH = 1920; enum int HEIGHT = 1080; @@ -17,6 +17,7 @@ mat4 view_matrix; void init() { + logo.init(); glClearColor (1.0, 0.7, 0.0, 0.0); glViewport(0, 0, WIDTH, HEIGHT); immutable string shader_src = ` diff --git a/src/logo.d b/src/logo.d index 493c075..05316d7 100644 --- a/src/logo.d +++ b/src/logo.d @@ -9,15 +9,29 @@ immutable enum int GENTEX = 0; immutable enum int CORPORATION = 1; /* Indexed by: face/wire, word, character */ -VAO[][2][2] m_vaos; +VAO[][2][2] object_vaos; void init() { + Buffer vertices_buffer = new Buffer(logoobj.vertices); int[][][][] objects = [logoobj.fg, logoobj.fc, logoobj.lg, logoobj.lc]; + int objects_index; for (int draw_type = FACE; draw_type <= WIRE; draw_type++) { for (int word = GENTEX; word <= CORPORATION; word++) { + object_vaos[draw_type][word].length = objects[objects_index].length; + for (int char_index = 0; + char_index < objects[objects_index].length; + char_index++) + { + VAO vao = new VAO(); + vertices_buffer.bind(); + ElementBuffer ibo = new ElementBuffer(objects[objects_index][char_index]); + ibo.bind(); + object_vaos[draw_type][word][char_index] = vao; + } + objects_index++; } } }