Sleeping Wombat GUI
0.100
swGUI
|
Manager for low level resources. More...
#include <ResourceManager.h>
Public Member Functions | |
ResourceManager () | |
~ResourceManager () | |
RenderTargetObject * | CreateRenderTarget (const std::wstring &name, const RenderTargetDescriptor &renderTargetDescriptor) |
Znajduje Loader pasujący do pliku podanego w parametrze. More... | |
RenderTargetObject * | AddRenderTarget (RenderTargetObject *renderTarget, const std::wstring &name) |
Dodaje renderTarget do ResourceManagera, jeżeli jeszcze nie istniał. More... | |
Geting existing resource | |
Gets resource if exist otherwise returns nullptr. | |
BlendingState * | GetBlendingState (const std::wstring &name) |
RasterizerState * | GetRasterizerState (const std::wstring &name) |
DepthStencilState * | GetDepthStencilState (const std::wstring &name) |
BlendingState * | GetBlendingState (const BlendingInfo &info) |
RasterizerState * | GetRasterizerState (const RasterizerStateInfo &info) |
DepthStencilState * | GetDepthStencilState (const DepthStencilInfo &info) |
RenderTargetObject * | GetRenderTarget (const std::wstring &name) |
Zwraca RenderTarget o podanej nazwie, jeżeli jest wczytany. More... | |
VertexShader * | GetVertexShader (const std::wstring &name) |
Zwraca vertex shader o podanej nazwie, jeżeli jest wczytany. More... | |
PixelShader * | GetPixelShader (const std::wstring &name) |
Zwraca pixel shader o podanej nazwie, jeżeli jest wczytany. More... | |
TextureObject * | GetTexture (const std::wstring &name) |
Zwraca teksturę o podanej nazwie, jeżeli jest wczytany. More... | |
BufferObject * | GetVertexBuffer (const std::wstring &name) |
Zwraca bufor wierzchołków o podanej nazwie, jeżeli jest wczytany. More... | |
BufferObject * | GetConstantBuffer (const std::wstring &name) |
Zwraca bufor stałych o podanej nazwie, jeżeli jest wczytany. More... | |
BufferObject * | GetIndexBuffer (const std::wstring &name) |
Zwraca bufor indeksów o podanej nazwie, jeżeli jest wczytany. More... | |
ShaderInputLayout * | GetLayout (const std::wstring &name) |
Resource loading | |
Load assets from specified file. Functions protect from loading assets multiple times. | |
TextureObject * | LoadTexture (const std::wstring &fileName) |
Dodaje teksturę do ModelManagera, jeżeli jeszcze nie istniała. More... | |
VertexShader * | LoadVertexShader (const std::wstring &fileName, const std::string &shaderEntry) |
Dodaje vertex shader do ResourceManagera. Jeżeli obiekt już istniał, to nie jest tworzony nowy. More... | |
VertexShader * | LoadVertexShader (const std::wstring &fileName, const std::string &shaderEntry, ShaderInputLayout **layout, InputLayoutDescriptor *layout_desc) |
Dodaje vertex shader do ResourceManagera. Jeżeli obiekt już istniał, to nie jest tworzony nowy. Tworzy też layout wierzchołka związany z tym shaderem i zwraca go w zmiennej layout. More... | |
PixelShader * | LoadPixelShader (const std::wstring &fileName, const std::string &shaderEntry) |
Dodaje pixel shader do ResourceManagera. Jeżeli obiekt już istniał, to nie jest tworzony nowy. More... | |
GeometryShader * | LoadGeometryShader (const std::wstring &fileName, const std::string &shaderEntry) |
ControlShader * | LoadControlShader (const std::wstring &fileName, const std::string &shaderEntry) |
EvaluationShader * | LoadEvaluationShader (const std::wstring &fileName, const std::string &shaderEntry) |
Resource creation | |
You can create assets in code using these functions. Remember to give unique names for your assets. Engine uses convention, that all generated resources have :: before name, to distinguish them from assets loaded from files. | |
ResourcePtr< BufferObject > | CreateVertexBuffer (const std::wstring &name, const void *buffer, unsigned int element_size, unsigned int vert_count) |
Dodaje do ResourceManagera bufor wierzchołków. Jeżeli pod taką nazwą istnieje jakiś bufor, to zostanie zwrócony wskaźnik na niego. More... | |
ResourcePtr< BufferObject > | CreateVertexBuffer (const std::wstring &name, const VertexBufferInitData &data) |
Creates vetex buffer. More... | |
ResourcePtr< BufferObject > | CreateIndexBuffer (const std::wstring &name, const void *buffer, unsigned int element_size, unsigned int vert_count) |
Dodaje do ResourceManagera bufor indeksów. Jeżeli pod taką nazwą istnieje jakiś bufor, to zostanie zwrócony wskaźnik na niego. More... | |
ResourcePtr< BufferObject > | CreateIndexBuffer (const std::wstring &name, const IndexBufferInitData &data) |
Vreates index buffer. More... | |
ResourcePtr< BufferObject > | CreateConstantsBuffer (const std::wstring &name, const void *buffer, unsigned int size) |
Dodaje do ResourceManagera bufor stałch dla shadera. Jeżeli pod taką nazwą istnieje jakiś bufor, to zostanie zwrócony wskaźnik na niego. More... | |
ResourcePtr< BufferObject > | CreateConstantsBuffer (const std::wstring &name, const ConstantBufferInitData &data) |
Creates constant buffer. More... | |
ResourcePtr< BlendingState > | CreateBlendingState (const std::wstring &name, const BlendingInfo &info) |
Created BlendingState object. More... | |
ResourcePtr< RasterizerState > | CreateRasterizerState (const std::wstring &name, const RasterizerStateInfo &info) |
Created RasterizerState object. More... | |
ResourcePtr< DepthStencilState > | CreateDepthStencilState (const std::wstring &name, const DepthStencilInfo &info) |
Created DepthStencilState object. More... | |
Listing resources | |
std::vector< ResourcePtr< BufferObject > > | ListVertexBuffers () |
Listowanie buforów wierzchołków. More... | |
std::vector< ResourcePtr< BufferObject > > | ListIndexBuffers () |
Listowanie buforów indeksów. More... | |
std::vector< ResourcePtr< BufferObject > > | ListConstantBuffers () |
Listowanie buforów stałych. More... | |
std::vector< ResourcePtr< ShaderInputLayout > > | ListShaderLayouts () |
Listowanie layoutów wierzchołków. More... | |
std::vector< ResourcePtr< TextureObject > > | ListTextures () |
Listowanie tekstur. More... | |
std::vector< ResourcePtr< VertexShader > > | ListVertexShaders () |
Listowanie vertex shaderów. More... | |
std::vector< ResourcePtr< PixelShader > > | ListPixelShaders () |
Listowanie pixel shaderów. More... | |
std::vector< ResourcePtr< RenderTargetObject > > | ListRenderTargets () |
Listowanie render targetów. More... | |
Private Member Functions | |
virtual MemoryChunk | LoadTextureImpl (const filesystem::Path &filePath, TextureInfo &texInfo) |
Implementation of texture loading. More... | |
Manager for low level resources.
|
explicit |
ResourceManager::~ResourceManager | ( | ) |
RenderTargetObject * ResourceManager::AddRenderTarget | ( | RenderTargetObject * | renderTarget, |
const std::wstring & | name | ||
) |
Dodaje renderTarget do ResourceManagera, jeżeli jeszcze nie istniał.
[in] | renderTarget | renderTarget, który ma zostać dodany. |
[in] | name | Nazwa renderTargetu. Do materiału będzie można się odwołać podając ciąg znaków |
ResourcePtr< BlendingState > ResourceManager::CreateBlendingState | ( | const std::wstring & | name, |
const BlendingInfo & | info | ||
) |
Created BlendingState object.
ResourcePtr< BufferObject > ResourceManager::CreateConstantsBuffer | ( | const std::wstring & | name, |
const void * | buffer, | ||
unsigned int | size | ||
) |
Dodaje do ResourceManagera bufor stałch dla shadera. Jeżeli pod taką nazwą istnieje jakiś bufor, to zostanie zwrócony wskaźnik na niego.
[in] | name | Nazwa bufora, po której można się będzie odwołać. |
[in] | buffer | Wskaźnik na bufor z danym, które mają być przeniesione do bufora DirectXowego. |
[in] | size | Rozmiar bufora. |
ResourcePtr< BufferObject > ResourceManager::CreateConstantsBuffer | ( | const std::wstring & | name, |
const ConstantBufferInitData & | data | ||
) |
Creates constant buffer.
ResourcePtr< DepthStencilState > ResourceManager::CreateDepthStencilState | ( | const std::wstring & | name, |
const DepthStencilInfo & | info | ||
) |
Created DepthStencilState object.
ResourcePtr< BufferObject > ResourceManager::CreateIndexBuffer | ( | const std::wstring & | name, |
const void * | buffer, | ||
unsigned int | elementSize, | ||
unsigned int | vertCount | ||
) |
Dodaje do ResourceManagera bufor indeksów. Jeżeli pod taką nazwą istnieje jakiś bufor, to zostanie zwrócony wskaźnik na niego.
[in] | name | Nazwa bufora, po której można się będzie odwołać. |
[in] | buffer | Wskaźnik na bufor z danym, które mają być przeniesione do bufora DirectXowego. |
[in] | elementSize | Rozmiar pojedynczego elementu w buforze. |
[in] | vertCount | Liczba wierzchołków/indeksów w buforze. |
ResourcePtr< BufferObject > ResourceManager::CreateIndexBuffer | ( | const std::wstring & | name, |
const IndexBufferInitData & | data | ||
) |
Vreates index buffer.
ResourcePtr< RasterizerState > ResourceManager::CreateRasterizerState | ( | const std::wstring & | name, |
const RasterizerStateInfo & | info | ||
) |
Created RasterizerState object.
RenderTargetObject * ResourceManager::CreateRenderTarget | ( | const std::wstring & | name, |
const RenderTargetDescriptor & | renderTargetDescriptor | ||
) |
Znajduje Loader pasujący do pliku podanego w parametrze.
[in] | path | Ścieżka do pliku, dla której szukamy loadera. |
Funkcja dodaje stworzony obiekt do tablicy m_renderTarget. Jeżeli tekstury bufora colorów, głębokości i stencilu nie są nullptrami, to i one są dodawane do tablicy m_texture.
Tekstury te mają nazwy jak render target + dodany jest człon
[in] | name | Nazwa identyfikująca render target. |
[in] | renderTargetDescriptor | Deskryptor opisujący parametry render targetu. |
ResourcePtr< BufferObject > ResourceManager::CreateVertexBuffer | ( | const std::wstring & | name, |
const void * | buffer, | ||
unsigned int | elementSize, | ||
unsigned int | vertCount | ||
) |
Dodaje do ResourceManagera bufor wierzchołków. Jeżeli pod taką nazwą istnieje jakiś bufor, to zostanie zwrócony wskaźnik na niego.
[in] | name | Nazwa bufora, po której można się będzie odwołać. |
[in] | buffer | Wskaźnik na bufor z danym, które mają być przeniesione do bufora DirectXowego. |
[in] | elementSize | Rozmiar pojedynczego elementu w buforze. |
[in] | vertCount | Liczba wierzchołków/indeksów w buforze. |
ResourcePtr< BufferObject > ResourceManager::CreateVertexBuffer | ( | const std::wstring & | name, |
const VertexBufferInitData & | data | ||
) |
Creates vetex buffer.
|
inline |
|
inline |
|
inline |
Zwraca bufor stałych o podanej nazwie, jeżeli jest wczytany.
|
inline |
|
inline |
|
inline |
Zwraca bufor indeksów o podanej nazwie, jeżeli jest wczytany.
|
inline |
Zwraca layout o podanej nazwie.
|
inline |
Zwraca pixel shader o podanej nazwie, jeżeli jest wczytany.
|
inline |
|
inline |
|
inline |
Zwraca RenderTarget o podanej nazwie, jeżeli jest wczytany.
|
inline |
Zwraca teksturę o podanej nazwie, jeżeli jest wczytany.
|
inline |
Zwraca bufor wierzchołków o podanej nazwie, jeżeli jest wczytany.
|
inline |
Zwraca vertex shader o podanej nazwie, jeżeli jest wczytany.
std::vector< ResourcePtr< BufferObject > > ResourceManager::ListConstantBuffers | ( | ) |
Listowanie buforów stałych.
std::vector< ResourcePtr< BufferObject > > ResourceManager::ListIndexBuffers | ( | ) |
Listowanie buforów indeksów.
std::vector< ResourcePtr< PixelShader > > ResourceManager::ListPixelShaders | ( | ) |
Listowanie pixel shaderów.
std::vector< ResourcePtr< RenderTargetObject > > ResourceManager::ListRenderTargets | ( | ) |
Listowanie render targetów.
std::vector< ResourcePtr< ShaderInputLayout > > ResourceManager::ListShaderLayouts | ( | ) |
Listowanie layoutów wierzchołków.
std::vector< ResourcePtr< TextureObject > > ResourceManager::ListTextures | ( | ) |
Listowanie tekstur.
std::vector< ResourcePtr< BufferObject > > ResourceManager::ListVertexBuffers | ( | ) |
Listowanie buforów wierzchołków.
std::vector< ResourcePtr< VertexShader > > ResourceManager::ListVertexShaders | ( | ) |
Listowanie vertex shaderów.
ControlShader * ResourceManager::LoadControlShader | ( | const std::wstring & | fileName, |
const std::string & | shaderEntry | ||
) |
EvaluationShader * ResourceManager::LoadEvaluationShader | ( | const std::wstring & | fileName, |
const std::string & | shaderEntry | ||
) |
GeometryShader * ResourceManager::LoadGeometryShader | ( | const std::wstring & | fileName, |
const std::string & | shaderEntry | ||
) |
PixelShader * ResourceManager::LoadPixelShader | ( | const std::wstring & | fileName, |
const std::string & | shaderEntry | ||
) |
Dodaje pixel shader do ResourceManagera. Jeżeli obiekt już istniał, to nie jest tworzony nowy.
[in] | fileName | Nazwa pliku, w którym znajduje się pixel shader. |
[in] | shaderEntry | Nazwa funkcji od której ma się zacząć wykonywanie shadera. |
TextureObject * ResourceManager::LoadTexture | ( | const std::wstring & | fileName | ) |
Dodaje teksturę do ModelManagera, jeżeli jeszcze nie istniała.
[in] | fileName | Ścieżka do tekstury |
|
privatevirtual |
Implementation of texture loading.
This is hack function. Resource manager have no texture loading function beacause it needs separate library for this. Derived classes will implement it, but in future this must change. ResourceManager must be fully operational class. Otherwise GUI won't load textures.
VertexShader * ResourceManager::LoadVertexShader | ( | const std::wstring & | fileName, |
const std::string & | shaderEntry | ||
) |
Dodaje vertex shader do ResourceManagera. Jeżeli obiekt już istniał, to nie jest tworzony nowy.
[in] | fileName | Nazwa pliku, w którym znajduje się vertex shader. |
[in] | shaderEntry | Nazwa funkcji od której ma się zacząć wykonywanie shadera. |
VertexShader * ResourceManager::LoadVertexShader | ( | const std::wstring & | fileName, |
const std::string & | shaderEntry, | ||
ShaderInputLayout ** | layout, | ||
InputLayoutDescriptor * | layoutDesc | ||
) |
Dodaje vertex shader do ResourceManagera. Jeżeli obiekt już istniał, to nie jest tworzony nowy. Tworzy też layout wierzchołka związany z tym shaderem i zwraca go w zmiennej layout.
Jeżeli vertex shader wcześniej istniał, to stworzenie layoutu wymaga ponownego skompilowania shadera. Shader taki jest potem kasowany i nie zostaje zdublowany w ResourceManagerze, ale niepotrzebna praca zostaje włożona. Jest więc zadaniem programisty, żeby do takich rzeczy dochodziło jak najrzadziej.
[in] | fileName | Nazwa pliku, w którym znajduje się vertex shader. |
[in] | shaderEntry | Nazwa funkcji od której ma się zacząć wykonywanie shadera. |
[out] | layout | W zmiennej umieszczany jest wskaźnik na layout wierzchołka. Nawet jeżeli shader się nie skompilował, to pole może mieć wartość inną niż nullptr. Dzieje się tak wtedy, gdy layout istniał już wcześniej. |
[in] | layoutDesc | Deskryptor opisujacy tworzony layout. |
|
protected |
BlendingState objects.
|
protected |
Shader constant buffers.
|
protected |
Tesselation control shaders.
|
protected |
DepthStencilState objects.
|
protected |
Tesselation evaluation shaders.
|
protected |
Geometry shaders.
|
protected |
Index buffers.
|
protected |
Pixel shaders.
|
protected |
RasterizerState objects.
|
protected |
Obiekty mogące służyć za render target.
|
protected |
Textures.
|
protected |
Vertex buffers.
|
protected |
Vertex layouts.
|
protected |
Vertex shaders.