Renderer and entity class

This commit is contained in:
Ben
2018-09-28 16:56:36 +01:00
parent 4c8c6e1f88
commit 08a93a0901
4 changed files with 103 additions and 0 deletions

26
crumpet-engine/entity.cpp Normal file
View File

@@ -0,0 +1,26 @@
#include "entity.h"
Entity::Entity(std::string name, SDL_Renderer* SDLRenderer) {
this->m_name = name;
this->m_SDLRenderer = SDLRenderer;
}
bool Entity::LoadTexture(std::string path) {
SDL_Surface* loadedSurface; // TODO: IMG_Load(path.c_str());
if (loadedSurface == NULL) {
std::cout << "Unable to load image from:" << path << " IMG ERROR: "; // TODO: << IMG_GetError() << std::endl;
return false;
}
m_texture = SDL_CreateTextureFromSurface(m_SDLRenderer, loadedSurface);
if (m_texture == NULL) {
std::cout << "Unable to create texture from:" << path << " SDL ERROR: " << SDL_GetError() << std::endl;
return false;
}
SDL_FreeSurface(loadedSurface);
return true;
}
Entity::~Entity() {
}

19
crumpet-engine/entity.h Normal file
View File

@@ -0,0 +1,19 @@
#pragma once
#include "game.h"
class Entity {
public:
Entity(std::string name, SDL_Renderer* SDLRenderer); // Texture overload
// Entity(); // Polygon overload
bool LoadTexture(std::string path);
virtual ~Entity();
private:
std::string m_name;
SDL_Renderer* m_SDLRenderer;
SDL_Texture* m_texture;
};

View File

@@ -0,0 +1,32 @@
#include "renderer.h"
Renderer::Renderer(std::string title, int width, int height) {
if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
std::cout << "SDL could not initialize, SDL ERROR: " << SDL_GetError() << std::endl;
}
m_window = SDL_CreateWindow(title.c_str(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, SDL_WINDOW_SHOWN);
SDLRenderer = SDL_CreateRenderer(m_window, -1, SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_ACCELERATED);
SDL_SetRenderDrawColor(SDLRenderer, 66, 134, 244, 255);
isClosed = false;
}
void Renderer::Update() {
SDL_RenderClear(SDLRenderer);
SDL_RenderPresent(SDLRenderer);
}
bool Renderer::IsClosed() {
return isClosed;
}
void Renderer::Close() {
isClosed = true;
}
Renderer::~Renderer() {
isClosed = true;
SDL_DestroyWindow(m_window);
SDL_Quit();
}

26
crumpet-engine/renderer.h Normal file
View File

@@ -0,0 +1,26 @@
#pragma once
#include <iostream>
#include <string>
#include <SDL.h>
#include "entity.h"
#define PATH "C:/Users/Ben/Desktop/crumpet-engine"
class Renderer {
public:
Renderer(std::string title, int width, int height);
SDL_Renderer *SDLRenderer;
void RenderEntity(Entity* entity);
void Update();
bool IsClosed();
void Close();
virtual ~Renderer();
private:
SDL_Window *m_window;
bool isClosed;
};