X-Git-Url: https://git.r.bdr.sh/rbdr/super-polarity/blobdiff_plain/830829dec0596760d0cba38d959ab2646112f61b..0cafec445af0a97d96feb1a1daefa1486142c73f:/src/main.c diff --git a/src/main.c b/src/main.c deleted file mode 100644 index ae73a22..0000000 --- a/src/main.c +++ /dev/null @@ -1,150 +0,0 @@ -// -// main.c -// Super Polarity -// -// Created by Ruben Beltran del Rio on 8/13/13. -// Copyright (c) 2013 Abuguet. All rights reserved. -// - -#include -#include -#include - -#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; -} -