summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
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;
}