summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authoriamn1ck <iamn1ck@yahoo.com>2017-02-19 07:00:34 -0600
committerTom Barrett <tombarrett@siu.edu>2017-03-07 13:22:46 -0600
commit74c6854fd8dcbaee736ac0421805ff1e03c4a1e2 (patch)
tree4a3ae40bea9b07a2111128e98d9272bdbac2af87 /src/main.cpp
parent03885192b9ff7d3c5e2dcfd98aefd21e9b62f603 (diff)
-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
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp59
1 files changed, 47 insertions, 12 deletions
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<Creature>::iterator it = L.C.begin(); it != L.C.end(); it++)
+ _spriteBatch.draw(it->gfxData);;
+
+ for(std::list<Resource>::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;
}