Projeto IDJ - Towers Of Madness
TowerDefenseLovecraftnianoZombicida
|
Classe estática responsável por gestão dos recursos em memória. Mais...
#include <Resources.h>
Métodos Públicos Estáticos | |
static std::shared_ptr < SDL_Texture > | GetImage (string file) |
Obtém o ponteiro para a imagem. Mais... | |
static std::shared_ptr< Mix_Music > | GetMusic (string file) |
Obtém o ponteiro para a música. Mais... | |
static std::shared_ptr< Mix_Chunk > | GetSound (string file) |
Obtém o ponteiro para o áudio. Mais... | |
static std::shared_ptr< TTF_Font > | GetFont (string file, int fontSize) |
Obtém o ponteiro para a fonte. Mais... | |
static void | ClearResources (void) |
Desaloca da memória os recursos que não estão em uso. Mais... | |
static void | ChangeMusicVolume (int deltaVolume) |
Altera volume das músicas. Mais... | |
static void | ChangeSoundVolume (int deltaVolume) |
Altera volume dos sons. Mais... | |
static void | ForceMusicVolume (int volume) |
Altera volume das músicas. Mais... | |
static void | ForceSoundVolume (int volume) |
Altera volume dos sons. Mais... | |
Métodos Privados | |
Resources () | |
Constutor privado que não deve ser implementado. Mais... | |
Métodos Privados Estáticos | |
static void | ClearImages (void) |
Destrói as imagens não usadas da memória. Mais... | |
static void | ClearMusic (void) |
Destrói as músicas não usadas da memória. Mais... | |
static void | ClearSound (void) |
Destrói os sons não usadas da memória. Mais... | |
static void | ClearFonts (void) |
Destrói as fontes não usadas da memória. Mais... | |
Atributos Privados Estáticos | |
static std::unordered_map < string, std::shared_ptr < SDL_Texture > > | imageTable |
static std::unordered_map < string, std::shared_ptr < Mix_Music > > | musicTable |
static std::unordered_map < string, std::shared_ptr < Mix_Chunk > > | soundTable |
static std::unordered_map < string, std::shared_ptr < TTF_Font > > | fontTable |
static int | musicVolume = 64 |
static int | soundVolume = 16 |
Classe estática responsável por gestão dos recursos em memória.
Esta classe gerencia o uso de memória, em especial implementa o reuso de imagens, músicas sons e fontes já carregadas. poupando tempo de carregameto e evita ter em memória recursos repetidos. Isso é feito mantendo fazendo o uso de tabelas de hash, onde cada elemento mapeado é um ponteiro compartilhado(shared_ptr).
|
private |
Constutor privado que não deve ser implementado.
Isso garante que qualquer tentativa de instanciar esse classe dará erro de ligação. Essa classe é totalmente estática.
|
static |
Altera volume das músicas.
volume | Variação no nolume que deve ser setado para as músicas. |
Altera o volume das músicas do jogo. Como só pode ter uma música de cada vez, não é necessário percorres a tabela hash de músicas. É feito checagem de limite desse valor para que esteja entre 0 e 128
|
static |
Altera volume dos sons.
volume | Variação no volume único que deve ser setado para cada som. |
A tabela de hash dos sons(soundTable) é percorrida alterando o volume de cada som. É feito checagem de limite desse valor para que esteja entre 0 e 128
|
staticprivate |
Destrói as fontes não usadas da memória.
A tabela de hash das fontes(fontTable) é percorrida e, se não houver nenhuma outra referência para essa fonte no programa,, a fonte é destruída, chamando indiretamente a função lambda enviada na criação do shared_ptr.
|
staticprivate |
Destrói as imagens não usadas da memória.
A tabela de hash das imagens(imageTable) é percorrida e, se não houver nenhuma outra referência para essa imagem no programa, a imagem é destruída, chamando indiretamente a função lambda enviada na criação do shared_ptr.
|
staticprivate |
Destrói as músicas não usadas da memória.
A tabela de hash das músicas(musicTable) é percorrida e, se não houver nenhuma outra referência para essa imagem no programa, a música é destruída, chamando indiretamente a função lambda enviada na criação do shared_ptr.
|
static |
Desaloca da memória os recursos que não estão em uso.
Internamente chama o ClearImages, ClearMusic, ClearSound e o ClearFonts. Veja a documentação de cada um desses métodos para mais informações.
|
staticprivate |
Destrói os sons não usadas da memória.
A tabela de hash dos sons(soundTable) é percorrida e, se não houver nenhuma outra referência para esse som no programa,, o som é destruída, chamando indiretamente a função lambda enviada na criação do shared_ptr.
|
static |
Altera volume das músicas.
volume | Volume que deve ser setado para as músicas. |
Força um valor para o volume das músicas do jogo. Como só pode ter uma música de cada vez, não é necessário percorres a tabela hash de músicas. É feito checagem de limite desse valor para que esteja entre 0 e 128
|
static |
Altera volume dos sons.
volume | Volume único que deve ser setado para cada som. |
Força um valor para o volume dos sons. A tabela de hash dos sons(soundTable) é percorrida alterando o volume de cada som. É feito checagem de limite desse valor para que esteja entre 0 e 128
|
static |
Obtém o ponteiro para a fonte.
file | Nome do arquivo de fonte que se deseja abrir. |
fontsize | O tamanho requerido para a fonte. |
Se a fonte em questão já estiver em memória no tamanho requerido, um ponteiro para ela é enviado. Caso contrário ela é carregada, colocada no hash e então retornada. Ao se colocar a fonte no hash, criando o shared_ptr, um destrutor desse ponteiro é enviado como uma função lambda. Esse destrutor desaloca a fonte da memória.
|
static |
Obtém o ponteiro para a imagem.
file | Nome do arquivo da imagem que se deseja abrir. |
Se a imagem em questão já estiver em memória, um ponteiro para ela é enviado. Caso contrário ela é carregada, colocada no hash e então retornada. Ao se colocar a imagem no hash, criando o shared_ptr, um destrutor desse ponteiro é enviado como uma função lambda. Esse destrutor desaloca a imagem da memória.
|
static |
Obtém o ponteiro para a música.
file | Nome do arquivo de música que se deseja abrir. |
Se a música em questão já estiver em memória, um ponteiro para ela é enviado. Caso contrário ela é carregada, colocada no hash e então retornada. Ao se colocar a música no hash, criando o shared_ptr, um destrutor desse ponteiro é enviado como uma função lambda. Esse destrutor desaloca a música da memória.
|
static |
Obtém o ponteiro para o áudio.
file | Nome do arquivo de áudio que se deseja abrir. |
Se o áudio em questão já estiver em memória, um ponteiro para ele é enviado. Caso contrário ele é carregada, colocado no hash e então retornado. Ao se colocar o áudio no hash, criando o shared_ptr, um destrutor desse ponteiro é enviado como uma função lambda. Esse destrutor desaloca o áudio da memória.
|
staticprivate |
Tabela de hash com as fontes carregadas. Cada combinação fonte-tamanho é uma entrada diferente no hash. Isso pe feito concatenando o tamanho da fonte ao nome do arquivo da mesma.
|
staticprivate |
Tabela de hash com as texturas carregadas.
|
staticprivate |
Tabela de hash com as músicas carregadas.
|
staticprivate |
Armazena volume da música. Esse valor pode ser de 0 a 128.
|
staticprivate |
Tabela de hash com os sons carregados.
|
staticprivate |
Armazena volume dos sons. Esse valor pode ser de 0 a 128.