+++ /dev/null
-//
-// main.c
-// Super Polarity
-//
-// Created by Ruben Beltran del Rio on 8/13/13.
-// Copyright (c) 2013 Abuguet. All rights reserved.
-//
-
-#include <stdio.h>
-#include <time.h>
-#include <math.h>
-
-#include "SDL2/SDL.h"
-#include "SDL2_image/SDL_image.h"
-
-#include "actor.h"
-#include "actor_manager.h"
-
-// TODO: Move these guys to a config header file
-#define SCREEN_WIDTH 640
-#define SCREEN_HEIGHT 480
-#define FPS 30
-
-SDL_Window *window;
-SDL_Renderer *renderer;
-SDL_Texture *benHead;
-SDL_Rect benRect;
-bool focus;
-
-ActorManager *actorManager;
-
-void init () {
- if (SDL_Init(SDL_INIT_VIDEO) < 0) {
- printf("Could not initialize SDL");
- exit(1);
- }
-
- // Load the window and renderer
- window = SDL_CreateWindow("Super Polarity", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 0, 0, SDL_WINDOW_OPENGL | SDL_WINDOW_FULLSCREEN_DESKTOP);
-
- renderer = SDL_CreateRenderer(window, -1, 0);
-
- // Set linear quality for scaling, and the "logical" window size.
- SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear");
- SDL_RenderSetLogicalSize(renderer, SCREEN_WIDTH, SCREEN_HEIGHT);
-}
-
-void close () {
- SDL_DestroyTexture(benHead);
- SDL_DestroyRenderer(renderer);
- SDL_DestroyWindow(window);
- SDL_Quit();
-}
-
-
-void initActorManager () {
- Actor *actor;
- Actor *otherActor;
-
- //test the Actor Manager.
- actorManager = createActorManager();
-
- actor = createActor();
- actor->pos.x = 55;
- actor->pos.y = 24;
- actorManager->addActor(actorManager, actor);
-
- otherActor = createActor();
- otherActor->pos.x=100;
- otherActor->pos.y=100;
- actorManager->addActor(actorManager, otherActor);
-
-}
-
-void loadAssets() {
- initActorManager();
-}
-
-void draw (SDL_Renderer *renderer) {
- SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
- SDL_RenderClear(renderer);
-
- actorManager->draw(actorManager);
-
- SDL_RenderPresent(renderer);
-}
-
-void update (Uint32 dt) {
- actorManager->update(actorManager, dt);
-}
-
-int main(int argc, const char * argv[])
-{
-
- // SDL Initialization. TODO: Should have an initializer.
- Uint32 startFrame = 0;
- Uint32 endFrame = 0;
- Uint32 lastTime = 0;
- Uint32 dt;
- Uint32 delay;
- int done;
-
- init();
- loadAssets();
-
-
- done = 0;
- focus = true;
-
- // Event Loop.
- while (!done) {
- startFrame = SDL_GetTicks();
- dt = startFrame - lastTime;
- lastTime = startFrame;
-
- SDL_Event event;
- while (SDL_PollEvent(&event)) {
- if (event.type == SDL_QUIT) {
- done = 1;
- }
- if (event.type == SDL_WINDOWEVENT) {
- if (event.window.event == SDL_WINDOWEVENT_FOCUS_LOST) {
- focus = false;
- }
- if (event.window.event == SDL_WINDOWEVENT_FOCUS_GAINED) {
- focus = true;
- }
- }
- }
-
- if (focus) {
- update(dt);
- draw(renderer);
- }
-
- endFrame = SDL_GetTicks();
-
- /* see if we have time to sleep */
- delay = 1000 / FPS - (endFrame - startFrame);
- if (delay > 1000 / FPS) {
- delay = 1000 / FPS;
- }
- SDL_Delay(delay);
- }
-
- close();
-
- return 0;
-}
-