diff --git a/src/lorenz.c b/src/lorenz.c index 74e04af..cda2f9c 100644 --- a/src/lorenz.c +++ b/src/lorenz.c @@ -30,13 +30,11 @@ void lorenzStep(float next[3], vec3 prev, float dt) { int main(int argc, char *argv[]) { - GLFWwindow* window; - window = initOpenGL(); + GLFWwindow* window = initOpenGL(); glfwSetKeyCallback(window, &key_pressed); // CreateShader - unsigned int shader1; - shader1 = createShader("assets/shaders/vertex.glsl\0", "assets/shaders/fragment.glsl\0"); + unsigned int shader1 = createShader("assets/shaders/vertex.glsl\0", "assets/shaders/fragment.glsl\0"); // Initialise VBO and VAO unsigned int VAO, VBO; @@ -63,6 +61,9 @@ int main(int argc, char *argv[]) { memset(lorenzPoints, 0, 3000 * sizeof(vec3)); vec3 initial = {0.1f, 0.1f, 0.1f}; memcpy(lorenzPoints, initial, sizeof(vec3)); + vec3 sec = {1.0f, 1.0f, 1.0f}; + memcpy(lorenzPoints, sec, sizeof(vec3)); + int i=1; while(!glfwWindowShouldClose(window)) { @@ -70,17 +71,19 @@ int main(int argc, char *argv[]) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glUseProgram(shader1); - float increment = 0.1* (float)i; - float next[3] = {increment, increment, increment}; - //lorenzStep(next, lorenzPoints[i], 0.01f); - memcpy(lorenzPoints[i++], next, sizeof(vec3)); + if(i<3000){ + float increment = 0.1* (float)i; + float next[3] = {increment, increment, increment}; + //lorenzStep(next, lorenzPoints[i], 0.01f); + memcpy(lorenzPoints[i++], next, sizeof(vec3)); + + + float* buff = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); + memcpy(buff, lorenzPoints, i * sizeof(vec3)); + glUnmapBuffer(GL_ARRAY_BUFFER); + } - - float* buff = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY); - memcpy(buff, lorenzPoints, i * sizeof(vec3)); - glUnmapBuffer(GL_ARRAY_BUFFER); - - glDrawArrays(GL_LINE_STRIP, 0, i); + glDrawArrays(GL_POINTS, 10, 2); glfwSwapBuffers(window); glfwPollEvents(); processInput(); @@ -88,6 +91,7 @@ int main(int argc, char *argv[]) { glDeleteVertexArrays(1, &VAO); glDeleteBuffers(1, &VBO); + free(lorenzPoints); glfwTerminate(); return 0; }