Projeto IDJ - Towers Of Madness
TowerDefenseLovecraftnianoZombicida
 Todos Classes Arquivos Funções Variáveis Definições de Tipos Enumerações Valores enumerados Definições e Macros Páginas
Métodos Públicos Estáticos | Métodos Privados | Métodos Privados Estáticos | Atributos Privados Estáticos | Lista de todos os Membros
Referência da Classe Resources

Classe estática responsável por gestão dos recursos em memória. Mais...

#include <Resources.h>

Diagrama de colaboração para Resources:
[legenda]

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
 

Descrição Detalhada

Classe estática responsável por gestão dos recursos em memória.

Futuras Atividades:
Ver com a monitora quando/como as músicas e sons devem ser alocados/desalocados.

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).

Construtores & Destrutores

Resources::Resources ( )
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.

Métodos

void Resources::ChangeMusicVolume ( int  deltaVolume)
static

Altera volume das músicas.

Parâmetros
volumeVariaçã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

void Resources::ChangeSoundVolume ( int  deltaVolume)
static

Altera volume dos sons.

Parâmetros
volumeVariaçã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

void Resources::ClearFonts ( void  )
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.

void Resources::ClearImages ( void  )
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.

void Resources::ClearMusic ( void  )
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.

void Resources::ClearResources ( void  )
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.

void Resources::ClearSound ( void  )
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.

void Resources::ForceMusicVolume ( int  volume)
static

Altera volume das músicas.

Parâmetros
volumeVolume 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

void Resources::ForceSoundVolume ( int  volume)
static

Altera volume dos sons.

Parâmetros
volumeVolume ú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

std::shared_ptr< TTF_Font > Resources::GetFont ( string  file,
int  fontSize 
)
static

Obtém o ponteiro para a fonte.

Parâmetros
fileNome do arquivo de fonte que se deseja abrir.
fontsizeO tamanho requerido para a fonte.
Retorna
Fonte carregada em memória

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.

std::shared_ptr< SDL_Texture > Resources::GetImage ( string  file)
static

Obtém o ponteiro para a imagem.

Parâmetros
fileNome do arquivo da imagem que se deseja abrir.
Retorna
Imagem carregada em memória

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.

std::shared_ptr< Mix_Music > Resources::GetMusic ( string  file)
static

Obtém o ponteiro para a música.

Parâmetros
fileNome do arquivo de música que se deseja abrir.
Retorna
Música carregada em memória

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.

std::shared_ptr< Mix_Chunk > Resources::GetSound ( string  file)
static

Obtém o ponteiro para o áudio.

Parâmetros
fileNome do arquivo de áudio que se deseja abrir.
Retorna
Áudio carregado em memória

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.

Atributos

std::unordered_map< string, std::shared_ptr< TTF_Font > > Resources::fontTable
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.

std::unordered_map< string, std::shared_ptr< SDL_Texture > > Resources::imageTable
staticprivate

Tabela de hash com as texturas carregadas.

std::unordered_map< string, std::shared_ptr< Mix_Music > > Resources::musicTable
staticprivate

Tabela de hash com as músicas carregadas.

int Resources::musicVolume = 64
staticprivate

Armazena volume da música. Esse valor pode ser de 0 a 128.

std::unordered_map< string, std::shared_ptr< Mix_Chunk > > Resources::soundTable
staticprivate

Tabela de hash com os sons carregados.

int Resources::soundVolume = 16
staticprivate

Armazena volume dos sons. Esse valor pode ser de 0 a 128.


A documentação para esta classe foi gerada a partir dos seguintes arquivos: