source: trunk/deushax/deushax.cpp @ 617

Last change on this file since 617 was 617, checked in by sam, 10 years ago

Store the requested FPS in the Ticker class.

  • Property svn:keywords set to Id
File size: 1.9 KB
Line 
1//
2// Deus Hax (working title)
3// Copyright (c) 2010-2011 Sam Hocevar <sam@hocevar.net>
4//
5
6#if defined HAVE_CONFIG_H
7#   include "config.h"
8#endif
9
10#include <cstdio>
11#include <cmath>
12#if defined _WIN32
13#   include <direct.h>
14#endif
15
16#include <SDL.h>
17
18#include "core.h"
19#include "game.h"
20#include "sdlinput.h"
21#include "debugfps.h"
22#include "debugsprite.h"
23#include "debugsphere.h"
24#include "debugrecord.h"
25#include "debugstats.h"
26
27static float const FPS = 30.0f;
28
29int main(int argc, char **argv)
30{
31    /* Initialise SDL */
32    if (SDL_Init(SDL_INIT_VIDEO) < 0)
33    {
34        fprintf(stderr, "Cannot initialise SDL: %s\n", SDL_GetError());
35        return EXIT_FAILURE;
36    }
37
38    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
39    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
40    SDL_Surface *video = SDL_SetVideoMode(640, 480, 0, SDL_OPENGL);
41    if (!video)
42    {
43        fprintf(stderr, "Cannot create OpenGL screen: %s\n", SDL_GetError());
44        SDL_Quit();
45        return EXIT_FAILURE;
46    }
47
48    SDL_WM_SetCaption("Map Test (SDL)", NULL);
49    SDL_ShowCursor(0);
50    //SDL_WM_GrabInput(SDL_GRAB_ON);
51
52    Ticker::Setup(FPS);
53
54    /* Initialise OpenGL */
55    Video::Setup(video->w, video->h);
56
57    /* Create a game */
58#if defined _WIN32
59    _chdir(".."); /* Temporary Win32 hack */
60#endif
61    Game *game = new Game("maps/testmap.tmx");
62    game->SetMouse(160, 96);
63
64    /* Register an input driver and some debug stuff */
65    new SdlInput();
66    new DebugFps(10, 10);
67    new DebugSprite(game);
68    new DebugSphere();
69    //new DebugRecord("lolengine.ogm", FPS);
70    new DebugStats("stats.txt");
71
72    while (!Ticker::Finished())
73    {
74        /* Tick the game */
75        Ticker::TickGame();
76
77        /* Tick the renderer, show the frame and clamp to desired framerate. */
78        Ticker::TickDraw();
79        SDL_GL_SwapBuffers();
80        Ticker::ClampFps();
81    }
82
83    SDL_Quit();
84
85    return EXIT_SUCCESS;
86}
87
Note: See TracBrowser for help on using the repository browser.