From 74c6854fd8dcbaee736ac0421805ff1e03c4a1e2 Mon Sep 17 00:00:00 2001 From: iamn1ck Date: Sun, 19 Feb 2017 07:00:34 -0600 Subject: -quadtree and opengl rendering are now in the master branch ! -using sdl_rect for location and size ended up being not so great due to it not having floats, so we reverted back to using location -much, much refractoring is now needed --- src/main.cpp | 59 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 12 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 5170bf3..e385f9f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,16 +3,36 @@ int main() { srand(time(NULL)); - Window main; - List L(main); - Event e; - Timer fps; - int speed = 60; - bool pause = false; + Window main(WINDOW_X, WINDOW_Y, "natures"); + List L; + Event e; + + //New opengl stuff + Transform transform; + Camera camera(glm::vec3(0,0,70), 70.0f, (float)800/(float)600, 0.01f, 1000.0f); + GeoShader shader("./inc/opengl/theshader"); + GeoShader shader2("./inc/opengl/basicshader"); + Rectdrawer rectrenderer(shader2); + SpriteBatch _spriteBatch(shader); + + _spriteBatch.init(); + shader.Bind(); + + int uniModel = glGetUniformLocation(shader.m_program, "MVP"); + glUniformMatrix4fv(uniModel, 1, false, &transform.GetMVP(camera)[0][0]); + shader2.Bind(); + + int uniModel2 = glGetUniformLocation(shader2.m_program, "MPV"); + glUniformMatrix4fv(uniModel2, 1, false, &transform.GetMVP(camera)[0][0]); + int countedFrames = 0; + + Timer fps; + int speed = 60; + bool pause = false; while(e.gRun()){ - fps.Start(); + //fps.Start(); while(e.Poll()){ if(e.gEventType() == SDL_QUIT) e.off(); @@ -26,19 +46,34 @@ int main() } if(!pause){ - main.Clear(); + main.Clear(0.0f,0.0f,0.0f,1.0f); L.Remove(); L.Behavior(); L.Place(); - main.Render(); + shader.Bind(); + _spriteBatch.begin(); + for(std::list::iterator it = L.C.begin(); it != L.C.end(); it++) + _spriteBatch.draw(it->gfxData);; + + for(std::list::iterator it = L.R.begin(); it != L.R.end(); it++) + _spriteBatch.draw(it->gfxData);; + + _spriteBatch.end(); + _spriteBatch.renderBatch(); + + main.swapBuffers(); } - if(fps.getTicks() < (1000 / speed)) - SDL_Delay((1000 / speed) - fps.getTicks()); + float avgFPS = countedFrames / ( fps.getTicks() / 1000.f ); + if( avgFPS > 200000 ){ + avgFPS = 0; + } + ++countedFrames; + //if(fps.getTicks() < (1000 / speed)) + // SDL_Delay((1000 / speed) - fps.getTicks()); } - main.Destroy(); return 0; } -- cgit v1.2.3