Began writing the skeleton for the program.

This commit is contained in:
Aloshi 2012-07-18 20:14:17 -05:00
parent c0e9683f45
commit cf77599950
6 changed files with 112 additions and 0 deletions

18
Makefile Normal file
View file

@ -0,0 +1,18 @@
CC=g++
CFLAGS=-c -Wall
LDFLAGS=-lSDL
SRCSOURCES=main.cpp Renderer.cpp GuiComponent.cpp
SOURCES=$(addprefix src/,$(SRCSOURCES))
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=emulationstation
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
clean:
rm -rf *o $(EXECUTABLE)

12
src/GuiComponent.cpp Normal file
View file

@ -0,0 +1,12 @@
#include "GuiComponent.h"
#include "Renderer.h"
GuiComponent::GuiComponent()
{
Renderer::registerComponent(this);
}
GuiComponent::~GuiComponent()
{
Renderer::unregisterComponent(this);
}

13
src/GuiComponent.h Normal file
View file

@ -0,0 +1,13 @@
#ifndef _GUICOMPONENT_H_
#define _GUICOMPONENT_H_
class GuiComponent
{
public:
GuiComponent();
~GuiComponent();
virtual void render() { };
virtual unsigned int getLayer() { return 0; };
};
#endif

31
src/Renderer.cpp Normal file
View file

@ -0,0 +1,31 @@
#include "Renderer.h"
void Renderer::registerComponent(GuiComponent* comp)
{
renderVector.push_back(comp);
}
void Renderer::unregisterComponent(GuiComponent* comp)
{
for(unsigned int i = 0; i < renderVector.size(); i++)
{
if(renderVector.at(i) == comp)
{
renderVector.erase(renderVector.begin() + i);
break;
}
}
}
void Renderer::render()
{
for(unsigned int layer = 0; layer < LAYER_COUNT; layer++)
{
unsigned int layerBit = BIT(layer);
for(unsigned int i = 0; i < renderVector.size(); i++)
{
if(renderVector.at(i)->getLayer() & layerBit)
renderVector.at(i)->render();
}
}
}

20
src/Renderer.h Normal file
View file

@ -0,0 +1,20 @@
#ifndef _RENDERER_H_
#define _RENDERER_H_
#define LAYER_COUNT 3
#define BIT(x) (1 << (x))
#include "GuiComponent.h"
#include <vector>
namespace Renderer
{
void registerComponent(GuiComponent* comp);
void unregisterComponent(GuiComponent* comp);
void render();
std::vector<GuiComponent*> renderVector;
}
#endif

18
src/main.cpp Normal file
View file

@ -0,0 +1,18 @@
#include <iostream>
#include <SDL/SDL.h>
#include "Renderer.h"
int main()
{
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK) != 0)
{
std::cerr << "Error - could not initialize SDL!\n";
return 1;
}
SDL_Quit();
return 0;
}