source: trunk/deushax/deushax.cpp @ 664

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

Do not use SDL's SDLmain wrapper on Win32. It's never proved useful so far.

  • 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
27#if defined _WIN32
28#   undef main
29#endif
30
31static float const FPS = 30.0f;
32
33int main(int argc, char **argv)
34{
35    /* Initialise SDL */
36    if (SDL_Init(SDL_INIT_VIDEO) < 0)
37    {
38        fprintf(stderr, "Cannot initialise SDL: %s\n", SDL_GetError());
39        return EXIT_FAILURE;
40    }
41
42    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
43    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
44    SDL_Surface *video = SDL_SetVideoMode(640, 480, 0, SDL_OPENGL);
45    if (!video)
46    {
47        fprintf(stderr, "Cannot create OpenGL screen: %s\n", SDL_GetError());
48        SDL_Quit();
49        return EXIT_FAILURE;
50    }
51
52    SDL_WM_SetCaption("Map Test (SDL)", NULL);
53    SDL_ShowCursor(0);
54    //SDL_WM_GrabInput(SDL_GRAB_ON);
55
56    Ticker::Setup(FPS);
57
58    /* Initialise OpenGL */
59    Video::Setup(video->w, video->h);
60
61    /* Create a game */
62#if defined _WIN32
63    _chdir(".."); /* Temporary Win32 hack */
64#endif
65    Game *game = new Game("maps/testmap.tmx");
66    game->SetMouse(160, 96);
67
68    /* Register an input driver and some debug stuff */
69    new SdlInput();
70    new DebugFps(10, 10);
71    new DebugSprite(game);
72    new DebugSphere();
73    //new DebugRecord("lolengine.ogm", FPS);
74    new DebugStats("stats.txt");
75
76    while (!Ticker::Finished())
77    {
78        /* Tick the game */
79        Ticker::TickGame();
80
81        /* Tick the renderer, show the frame and clamp to desired framerate. */
82        Ticker::TickDraw();
83        SDL_GL_SwapBuffers();
84        Ticker::ClampFps();
85    }
86
87    SDL_Quit();
88
89    return EXIT_SUCCESS;
90}
91
Note: See TracBrowser for help on using the repository browser.