Add initConstResources

This commit is contained in:
Tyler Perkins 2021-09-17 23:39:14 -04:00
parent abd67fe8b7
commit 14f7effb2c
5 changed files with 99 additions and 12 deletions

View File

@ -11,7 +11,7 @@ FLAGS = -pipe
CFLAGS = -Wall
CFLAGS += -Ofast
CFLAGS += -std=c++17
#CFLAGS += -g
CFLAGS += -g
#CFLAGS += -pg
#required for rss-cli
@ -34,9 +34,9 @@ TARGET = dashboard.out
MAKEFLAGS += --jobs=4
DEFINITIONS = -DDATA='"$(DATA)"'
DEFINITIONS += -DDATA_IMG='"$(DATA_IMG)"'
DEFINITIONS += -DDATA_FONT='"$(DATA_FONT)"'
DEFINITIONS = -DDATA_='"$(DATA)"'
DEFINITIONS += -DDATA_IMG_='"$(DATA_IMG)"'
DEFINITIONS += -DDATA_FONT_='"$(DATA_FONT)"'
all : $(OBJ)
@echo LD $@

View File

@ -255,6 +255,10 @@ board::~board(){
SDL_Quit();
}
///////////////////////////////////////////////////////////////////////////////
// Board init functions ///////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
int board::init(){
SDL_Log("Init SDL...\n");
@ -315,13 +319,68 @@ int board::init(){
// This is called to start the main loop.
// This is where most of the logic lives
void board::start(){
initConstResources();
SDL_Log("Starting main loop...\n");
for(;;){
}
}
///////////////////////////////////////
// Grab all constant resources from
// the configuration file, as well as
// all panel's configurations
void board::initConstResources(){
//load all resrouces declared in config.hpp
std::string fullPath = DATA_DIR;
SDL_Log("Base path: %s", fullPath.c_str());
//load images into memory
fullPath = DATA_IMG;
fullPath += "/";
SDL_Log("Static images directory prefix: %s\n", fullPath.c_str());
SDL_Log("Loading static images into working memory...\n");
for(unsigned int i = 0;
i < (sizeof(IMAGE_LOCATIONS)/sizeof(IMAGE_LOCATIONS[0])); ++i){
SDL_Log("Loaded image %s at memory location %p\n",
IMAGE_LOCATIONS[i],
setImage(fullPath + IMAGE_LOCATIONS[0]));
}
SDL_Log("Loaded static images into working memory\n");
//load fonts into memory
fullPath = DATA_FONT;
fullPath += "/";
SDL_Log("Loading fonts into working memory...\n");
for(unsigned int i = 0;
i < (sizeof(FONT_LOCATIONS)/sizeof(FONT_LOCATIONS[0])); ++i){
SDL_Log("Loaded font %s %lu at memory location %p\n",
FONT_LOCATIONS[i]._name,
FONT_LOCATIONS[i]._size,
setFont({FONT_LOCATIONS[i]._name, FONT_LOCATIONS[i]._size}));
}
SDL_Log("Loaded fonts into working memory\n");
SDL_Log("Loading static strings into working memory...\n");
for(unsigned int i = 0;
i < (sizeof(CONST_STRINGS)/sizeof(CONST_STRINGS[0])); ++i){
SDL_Log("Loaded string (\"%s\") with font %s %lu at memory location %p\n",
CONST_STRINGS[i]._text,
CONST_STRINGS[i]._font_size._name,
CONST_STRINGS[i]._font_size._size,
setString(CONST_STRINGS[i]._text,
{ CONST_STRINGS[i]._font_size._name,
CONST_STRINGS[i]._font_size._size }));
}
SDL_Log("Loaded static strings into working memory\n");
}
///////////////////////////////////////////////////////////////////////////////
// Memory Functions ///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
@ -350,7 +409,7 @@ TTF_Font* board::getFont(const font_and_size& fs){
if(_fonts.find(fs) != _fonts.end())
return _fonts.find(fs)->second.font();
//Dynamic Fonts? Is the needed?
//TODO: Dynamic Fonts? Is the needed?
//not found, return null
return nullptr;
}

View File

@ -127,6 +127,7 @@ namespace dashboard {
SDL_Texture_Wrapper, string_and_font_hash> _dynamic_strings;
//TODO: Dynamic images?
//TODO: Dynamic Fonts?
//local pointers to the globals
SDL_Window* _window;

View File

@ -74,7 +74,15 @@ constexpr int IMG_FLAGS = 0
// DATA_DIR
// Where all resources will be
// Keep this as DATA to use the install dir set in the makefile
constexpr char DATA_DIR[] = DATA;
constexpr char DATA_DIR[] = DATA_ ;
// IMG_DIR
// Where all images are
// Keep this a DATA_IMG_ to use the DATA_IMG dir defined in the makefile
constexpr char DATA_IMG[] = DATA_IMG_;
//TODO: Add directory prefix for each of these, and change it so it doesnt use
//that whole path as the key for the file
// IMAGE_LOCATIONS
// Locations of all static images used
@ -82,14 +90,27 @@ static const char* IMAGE_LOCATIONS[] = {
"img/bmp_24.png",
};
// FONT_DIR
// Where all fonts are kept
// Keep this as FONT_DIR_ to use the DATA_FONT dir defined in the makefile
constexpr char DATA_FONT[] = DATA_FONT_;
// FONT_LOCATIONS
// Locations of all fonts used
static const char* FONT_LOCATIONS[] = {
"font/ielianto-normal.ttf",
struct FONT_SIZE {
const char* _name;
const size_t _size;
};
static const FONT_SIZE FONT_LOCATIONS[] = {
{ "elianto-normal.ttf", 24 },
};
// CONST_STRINGS
// All constant strings
static const char* CONST_STRINGS[] = {
struct FONT_SIZE_STRING {
const char* _text;
const FONT_SIZE _font_size;
};
static const FONT_SIZE_STRING CONST_STRINGS[] = {
{ "Test string 12345", FONT_LOCATIONS[1] },
};

View File

@ -8,13 +8,19 @@
#include "handler/handler.hpp"
#include "board.hpp"
#include <iostream>
int main(int argc, char** argv){
dashboard::handlers::setHandlers();
dashboard::board _board;
dashboard::board _board(false);
if(_board.init() != 0){
std::cerr << "Due to errors, " << argv[0]
<< " was unable to start, quitting!" << std::endl;
}
_board.start();
return 0;
}