Renderer and entity class
This commit is contained in:
26
crumpet-engine/entity.cpp
Normal file
26
crumpet-engine/entity.cpp
Normal 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
19
crumpet-engine/entity.h
Normal 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;
|
||||
};
|
||||
|
||||
32
crumpet-engine/renderer.cpp
Normal file
32
crumpet-engine/renderer.cpp
Normal 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
26
crumpet-engine/renderer.h
Normal 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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user