Sleeping Wombat Graphic API
1.010
swGraphicAPI
|
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>
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ą. | |
![]() | |
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. | |
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. | |
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... | |
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. | |
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ę | |
static ID3D11Buffer * | const_per_mesh = nullptr |
Bufor stałych zmieniający się dla każdej części mesha. | |
static ID3D11DepthStencilState * | depth_enabled = nullptr |
Do włączania z-bufora. | |
static ID3D11DepthStencilState * | depth_disabled = nullptr |
Do wyłączania z-bufora. More... | |
![]() | |
static DX11APIObjects * | this_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. | |
static D3D11_VIEWPORT | _view_port_desc |
Domyślny deskryptor viewportu. Jeżeli użytkownik poda własny to zostanie on nadpisany. | |
static D3D_FEATURE_LEVEL * | _feature_levels = nullptr |
Tablica z preferowanymi poziomami DirectX. Domyślnie nullptr, uzytkownik może zdefiniować. | |
static unsigned int | _num_feature_levels = 0 |
Liczba elementów powyższej tablicy. | |
static D3D_FEATURE_LEVEL | _current_feature_level |
Przechowuje poziom DirectXa. | |
static D3D11_TEXTURE2D_DESC | _z_buffer_desc |
Deskryptor z i stencil bufora. | |
static D3D11_DEPTH_STENCIL_VIEW_DESC | _z_buffer_view_desc |
Deskryptor widoku z i stencil bufora. | |
static D3D11_INPUT_ELEMENT_DESC * | _vertex_layout_desc = nullptr |
Aktualny deskryptor layoutu wierzchołka. | |
static unsigned int | _layout_elements_count = 0 |
Liczba elementów w talicy deskryptora layoutu. | |
static D3D11_SAMPLER_DESC | _sampler_desc |
Deskryptor samplera. | |
static D3D11_RASTERIZER_DESC | _rasterizer_desc |
Deskryptor rasteryzatora. | |
static ID3D11Debug * | debug_interface = nullptr |
Pozwala na pobranie bardziej szczegółowych informacji debugowych. | |
static ID3D11Device * | device = nullptr |
Zmienna służy do tworzenia obiektów, buforów tekstur i zasobów. | |
static ID3D11DeviceContext * | device_context = nullptr |
Zmienna używana do renderowania sceny, ustawiania buforów, shaderów itp. | |
static IDXGISwapChain * | swap_chain = nullptr |
Służy do prezentowania ramki na ekranie. | |
static ID3D11RenderTargetView * | render_target = nullptr |
Widok bufora docelowego renderowania, czyli bufora tylnego. | |
static ID3D11DepthStencilView * | z_buffer_view = nullptr |
Widok z-buffora. | |
static ID3D11Texture2D * | back_buffer = nullptr |
Tekstura bufora tylnego. | |
static ID3D11Texture2D * | z_buffer = nullptr |
Tekstura z-bufora. | |
static ID3D11SamplerState * | default_sampler = nullptr |
Obiekt domyślnego samplera. | |
static ID3D11InputLayout * | default_vertex_layout = nullptr |
Layout formatu wierzchołka używanego dla meshy. | |
static ID3D11VertexShader * | default_vertex_shader = nullptr |
Obiekt domyślnego vertex shadera. | |
static ID3D11PixelShader * | default_pixel_shader = nullptr |
Obiekt domyślnego piksel shadera. | |
Additional Inherited Members | |
![]() | |
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 () |
Klasa zawiera wskaźniki na bufory stałych zawierające podstawowe zestawy elementów przekazywanych do shaderów. Są to miedzy innymi macierze transformacji.
|
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.
[in] | size_per_frame | Rozmiar bufora const_per_frame. |
[in] | size_per_mesh | Rozmiar bufora const_per_mesh. |
|
staticprotected |
Do wyłączania z-bufora.
D0 wyłączania z-bufora.