Sleeping Wombat GUI  0.100
swGUI
Protected Member Functions | Static Protected Attributes | List of all members
DX11AuxiliaryObjects Class Reference

Klasa zawiera wskaźniki na bufory stałych zawierające podstawowe zestawy elementów przekazywanych do shaderów. Są to miedzy innymi macierze transformacji. More...

#include <DX11APIObjects.h>

Inheritance diagram for DX11AuxiliaryObjects:
DX11APIObjects DX11Initializer DX11Renderer

Protected Member Functions

void init_buffers (unsigned int size_per_frame, unsigned int size_per_mesh)
 Tworzy bufory stałych dla shadera. More...
 
void init_depth_states ()
 
void release_DirectX () override
 Zwalania obiekty DirectXa. Funkcja wywołuje tę samą funkcję z obiektu potomnego, żeby zwolnić wszystkie obiekty, które istnieją. More...
 
- Protected Member Functions inherited from DX11APIObjects
void set_swapchain_desc (const DXGI_SWAP_CHAIN_DESC &swap_chain_desc)
 Funkcja ustawia deskryptor dla obiektów Device, DeviceContext i SwapChain DirectXa. More...
 
void set_viewport_desc (const D3D11_VIEWPORT &view_port_desc)
 Funkcja ustawia deskryptor dla Viewportu. Nie jest on ustawiany jako aktywny w DirectX, trzeba wywołać funkcję init_viewport. More...
 
void set_feature_levels (D3D_FEATURE_LEVEL *feature_levels, unsigned int elements)
 ustawia podaną w parametrze tablicę z levelami. Tablica nie powinna zostać usunięta, ponieważ nie jest kopiowana. More...
 
void set_window_resolution (unsigned int window_width, unsigned int window_height)
 
void set_depth_stencil_format (DXGI_FORMAT depth_stencil_format)
 
void set_vertex_layout (DX11_DEFAULT_VERTEX_LAYOUT layout)
 Ustawia jeden z domyślnych deskryptorów layoutów zdefiniowanych w klasie. Funkcja nie ustawia żadnego layoutu w directX. More...
 
void set_vertex_layout (D3D11_INPUT_ELEMENT_DESC *layout, unsigned int array_size)
 Ustawia podany deskryptor layoutu. Funkcja nie ustawia żadnego layoutu w directX. More...
 
void set_sampler_desc (D3D11_SAMPLER_DESC sampler_desc)
 
void set_rasterizer_desc (const D3D11_RASTERIZER_DESC &rasterizer_desc)
 Ustawia podany w parametrze deskrytptor rasteryzatora. More...
 
ID3D11VertexShader * load_vertex_shader (const std::wstring &file_name, const std::string &shader_name, const char *shader_model)
 Tworzy obiekt VertexShader na podstawie pliku. More...
 
ID3D11VertexShader * load_vertex_shader (const std::wstring &file_name, const std::string &shader_name, ID3D11InputLayout **layout, D3D11_INPUT_ELEMENT_DESC *layout_desc, unsigned int array_size, const char *shader_model)
 Tworzy obiekt vertex shadera na podstawie pliku. Zwraca również layout dla podanej struktury wierzchołka. Nie należy używać tej funkcji, jeżeli layout nie jest rzeczywiście potrzebny. Trzeba pamietać o zwolnieniu go, kiedy przestanie być potrzebny. More...
 
ID3D11PixelShader * load_pixel_shader (const std::wstring &file_name, const std::string &shader_name, const char *shader_model)
 
DX11_INIT_RESULT InitDevicesAndSwapChain (HWND window, bool fullscreen, bool single_thread=true)
 Tworzy obiekty swap_chain, device i device_context. More...
 
DX11_INIT_RESULT init_viewport ()
 Ustawia viewport zgodny z aktualnie ustawionym deskryptorem. More...
 
DX11_INIT_RESULT init_z_buffer_and_render_target ()
 Funkcja tworzy z-bufffer oraz pobiera tylny bufor i tworzy z niego render target. Następnie widok z bufora i widok tylnego bufora są ustawione jako cel dla funkcji renderujących renderowania. More...
 
DX11_INIT_RESULT init_vertex_shader (const std::wstring &file_name, const std::string &shader_name)
 Funkcja tworzy shader na podstawie podanego pliku, kompiluje go, a potem obudowuje klasą będącą interfejsem shadera. Parametr shader_name oznacza nazwę funkcji, od której zaczyna się wykonanie kodu shadera. More...
 
DX11_INIT_RESULT init_pixel_shader (const std::wstring &file_name, const std::string &shader_name)
 Funkcja tworzy shader na podstawie podanego pliku, kompiluje go, a potem obudowuje klasą będącą interfejsem shadera. Parametr shader_name oznacza nazwę funkcji, od której zaczyna się wykonanie kodu shadera. More...
 
DX11_INIT_RESULT init_sampler ()
 Tworzy domyślny smapler. More...
 
 DX11APIObjects ()
 
 ~DX11APIObjects ()=default
 
DX11_INIT_RESULT init_DX11 (int width, int height, HWND window, bool fullscreen, const std::wstring &pix_shader_file, const std::string &pix_shader_name, const std::wstring &vert_shader_file, const std::string &vert_shader_name, bool single_thread=true)
 Funkcja do pełnej inicjalizacji DirectXa. More...
 
DX11_INIT_RESULT init_DX11 (int width, int height, HWND window, bool fullscreen, bool single_thread=true)
 Funkcja do pełnej inicjalizacji DirectXa. More...
 
void begin_scene ()
 Czyścimy tylny bufor oraz z-bufor i wywołujemy funcję inicjującą renderowanie. More...
 
void end_scene_and_present ()
 Wywołuje funkcję swap_chain->Present w celu wyświetlenia narysowanej sceny na monitorze. More...
 
void SetDebugName (ID3D11DeviceChild *child, const std::string &name)
 
bool IsDebugLayerEnabled ()
 

Static Protected Attributes

static ID3D11Buffer * const_per_frame = nullptr
 Bufor stałych zmieniających się nie częściej niż co ramkę More...
 
static ID3D11Buffer * const_per_mesh = nullptr
 Bufor stałych zmieniający się dla każdej części mesha. More...
 
static ID3D11DepthStencilState * depth_enabled = nullptr
 Do włączania z-bufora. More...
 
static ID3D11DepthStencilState * depth_disabled = nullptr
 Do wyłączania z-bufora. More...
 
- Static Protected Attributes inherited from DX11APIObjects
static DX11APIObjectsthis_ptr = nullptr
 Ważne, żeby nie zainicjowac obiektu wielokrotnie. More...
 
static bool m_useDebugLayer = false
 
static unsigned int _window_width = 1024
 
static unsigned int _window_height = 768
 
static std::string _pixel_shader_model = "ps_4_0"
 
static std::string _vertex_shader_model = "vs_4_0"
 
static DXGI_SWAP_CHAIN_DESC _swap_chain_desc
 Domyślny deskryptor głównych obiektów DirectX11. More...
 
static D3D11_VIEWPORT _view_port_desc
 Domyślny deskryptor viewportu. Jeżeli użytkownik poda własny to zostanie on nadpisany. More...
 
static D3D_FEATURE_LEVEL * _feature_levels = nullptr
 Tablica z preferowanymi poziomami DirectX. Domyślnie nullptr, uzytkownik może zdefiniować. More...
 
static unsigned int _num_feature_levels = 0
 Liczba elementów powyższej tablicy. More...
 
static D3D_FEATURE_LEVEL _current_feature_level
 Przechowuje poziom DirectXa. More...
 
static D3D11_TEXTURE2D_DESC _z_buffer_desc
 Deskryptor z i stencil bufora. More...
 
static D3D11_DEPTH_STENCIL_VIEW_DESC _z_buffer_view_desc
 Deskryptor widoku z i stencil bufora. More...
 
static D3D11_INPUT_ELEMENT_DESC * _vertex_layout_desc = nullptr
 Aktualny deskryptor layoutu wierzchołka. More...
 
static unsigned int _layout_elements_count = 0
 Liczba elementów w talicy deskryptora layoutu. More...
 
static D3D11_SAMPLER_DESC _sampler_desc
 Deskryptor samplera. More...
 
static D3D11_RASTERIZER_DESC _rasterizer_desc
 Deskryptor rasteryzatora. More...
 
static ID3D11Debug * debug_interface = nullptr
 Pozwala na pobranie bardziej szczegółowych informacji debugowych. More...
 
static ID3D11Device * device = nullptr
 Zmienna służy do tworzenia obiektów, buforów tekstur i zasobów. More...
 
static ID3D11DeviceContext * device_context = nullptr
 Zmienna używana do renderowania sceny, ustawiania buforów, shaderów itp. More...
 
static IDXGISwapChain * swap_chain = nullptr
 Służy do prezentowania ramki na ekranie. More...
 
static ID3D11RenderTargetView * render_target = nullptr
 Widok bufora docelowego renderowania, czyli bufora tylnego. More...
 
static ID3D11DepthStencilView * z_buffer_view = nullptr
 Widok z-buffora. More...
 
static ID3D11Texture2D * back_buffer = nullptr
 Tekstura bufora tylnego. More...
 
static ID3D11Texture2D * z_buffer = nullptr
 Tekstura z-bufora. More...
 
static ID3D11SamplerState * default_sampler = nullptr
 Obiekt domyślnego samplera. More...
 
static ID3D11InputLayout * default_vertex_layout = nullptr
 Layout formatu wierzchołka używanego dla meshy. More...
 
static ID3D11VertexShader * default_vertex_shader = nullptr
 Obiekt domyślnego vertex shadera. More...
 
static ID3D11PixelShader * default_pixel_shader = nullptr
 Obiekt domyślnego piksel shadera. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from DX11APIObjects
static DXGI_SWAP_CHAIN_DESC get_swap_chain_desc ()
 
static D3D11_VIEWPORT get_viewport_desc ()
 
static D3D_FEATURE_LEVEL get_current_feature_level ()
 
static D3D11_TEXTURE2D_DESC get_z_buffer_desc ()
 
static D3D11_DEPTH_STENCIL_VIEW_DESC get_z_buffer_view_desc ()
 
static D3D11_SAMPLER_DESC get_sampler_desc ()
 
static D3D11_RASTERIZER_DESC get_rasterizer_desc ()
 

Detailed Description

Klasa zawiera wskaźniki na bufory stałych zawierające podstawowe zestawy elementów przekazywanych do shaderów. Są to miedzy innymi macierze transformacji.

Note
Jeżeli w jakimkolwiek miejscu są używane obiekty z tej klasy (DX11AuxiliaryObjects), a nie tylko z klasy bazowej, to przy zwalnianiu należy koniecznie wywołać funkcję release_DirectX tego obiektu, a nie klasy bazowej. Czyli innymi słowy klasa odpowiedzialna za zwalnianie musi odziedziczyć po tym obiekcie nawet, jeżeli nie używa jego zmiennych. W przeciwnym razie zostanie wywołany funkcja wirtualna dla klasy bazowej.

Member Function Documentation

void DX11AuxiliaryObjects::init_buffers ( unsigned int  size_per_frame,
unsigned int  size_per_mesh 
)
protected

Tworzy bufory stałych dla shadera.

Bufory muszą mieć rozmiar będący wielokrotnością 16 bajtów ze względu na rozmiar rejestrów GPU. Jeżeli podane wartości takie nie są, to są rozszerzane do tej wielokrotności, ale taka sytuacja może to oznaczać, że jest jakiś błąd w programie.

Parameters
[in]size_per_frameRozmiar bufora const_per_frame.
[in]size_per_meshRozmiar bufora const_per_mesh.
void DX11AuxiliaryObjects::init_depth_states ( )
protected
void DX11AuxiliaryObjects::release_DirectX ( )
overrideprotectedvirtual

Zwalania obiekty DirectXa. Funkcja wywołuje tę samą funkcję z obiektu potomnego, żeby zwolnić wszystkie obiekty, które istnieją.

Reimplemented from DX11APIObjects.

Member Data Documentation

ID3D11Buffer * DX11AuxiliaryObjects::const_per_frame = nullptr
staticprotected

Bufor stałych zmieniających się nie częściej niż co ramkę

ID3D11Buffer * DX11AuxiliaryObjects::const_per_mesh = nullptr
staticprotected

Bufor stałych zmieniający się dla każdej części mesha.

ID3D11DepthStencilState * DX11AuxiliaryObjects::depth_disabled = nullptr
staticprotected

Do wyłączania z-bufora.

D0 wyłączania z-bufora.

ID3D11DepthStencilState * DX11AuxiliaryObjects::depth_enabled = nullptr
staticprotected

Do włączania z-bufora.


The documentation for this class was generated from the following files: