13 #pragma warning( disable : 4005 )
16 #pragma warning( default : 4005 )
19 typedef ID3D11DeviceContext DeviceContext;
20 typedef ID3D11Device Device;
69 static bool m_useDebugLayer;
71 static unsigned int _window_width;
72 static unsigned int _window_height;
73 static std::string _pixel_shader_model;
74 static std::string _vertex_shader_model;
106 void set_window_resolution (
unsigned int window_width,
unsigned int window_height );
107 void set_depth_stencil_format ( DXGI_FORMAT depth_stencil_format );
109 void set_vertex_layout ( D3D11_INPUT_ELEMENT_DESC* layout,
unsigned int array_size );
114 static DXGI_SWAP_CHAIN_DESC get_swap_chain_desc() {
return _swap_chain_desc; }
117 static D3D11_TEXTURE2D_DESC get_z_buffer_desc() {
return _z_buffer_desc; }
118 static D3D11_DEPTH_STENCIL_VIEW_DESC get_z_buffer_view_desc() {
return _z_buffer_view_desc; }
119 static D3D11_SAMPLER_DESC get_sampler_desc() {
return _sampler_desc; }
120 static D3D11_RASTERIZER_DESC get_rasterizer_desc() {
return _rasterizer_desc; }
122 ID3D11VertexShader*
load_vertex_shader(
const std::wstring& file_name,
const std::string& shader_name,
const char* shader_model );
123 ID3D11VertexShader*
load_vertex_shader(
const std::wstring& file_name,
const std::string& shader_name,
124 ID3D11InputLayout** layout, D3D11_INPUT_ELEMENT_DESC* layout_desc,
125 unsigned int array_size,
const char* shader_model );
126 ID3D11PixelShader*
load_pixel_shader(
const std::wstring& file_name,
const std::string& shader_name,
const char* shader_model );
142 const std::wstring& pix_shader_file,
const std::string& pix_shader_name,
143 const std::wstring& vert_shader_file,
const std::string& vert_shader_name,
144 bool single_thread =
true );
155 void SetDebugName ( ID3D11DeviceChild* child,
const std::string& name );
156 bool IsDebugLayerEnabled ();
176 void init_buffers(
unsigned int size_per_frame,
unsigned int size_per_mesh );
177 void init_depth_states();
static ID3D11Debug * debug_interface
Pozwala na pobranie bardziej szczegółowych informacji debugowych.
Definition: DX11APIObjects.h:88
static D3D11_RASTERIZER_DESC _rasterizer_desc
Deskryptor rasteryzatora.
Definition: DX11APIObjects.h:86
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ą inter...
Definition: DX11APIObjects.cpp:791
static D3D_FEATURE_LEVEL _current_feature_level
Przechowuje poziom DirectXa.
Definition: DX11APIObjects.h:80
Nie udało się stworzyć widoku na bufor głębokości.
Definition: DX11APIObjects.h:32
Funkcja wykonana poprawnie.
Definition: DX11APIObjects.h:26
static D3D11_DEPTH_STENCIL_VIEW_DESC _z_buffer_view_desc
Deskryptor widoku z i stencil bufora.
Definition: DX11APIObjects.h:82
Pozycja, kolor.
Definition: DX11APIObjects.h:45
static DX11APIObjects * this_ptr
Ważne, żeby nie zainicjowac obiektu wielokrotnie.
Definition: DX11APIObjects.h:67
static D3D11_TEXTURE2D_DESC _z_buffer_desc
Deskryptor z i stencil bufora.
Definition: DX11APIObjects.h:81
Nie udało się utworzyć obieków device, device_context i swap_chain.
Definition: DX11APIObjects.h:28
virtual void release_DirectX()
Zwalnia wszystkie stworzone obiekty DirectXa.
Definition: DX11APIObjects.cpp:196
Klasa przechowuje w zmiennych statycznych najważniejsze interfejsy DirectX11.
Definition: DX11APIObjects.h:64
void release_DirectX() override
Zwalania obiekty DirectXa. Funkcja wywołuje tę samą funkcję z obiektu potomnego, żeby zwolnić wszystk...
Definition: DX11APIObjects.cpp:974
static D3D_FEATURE_LEVEL * _feature_levels
Tablica z preferowanymi poziomami DirectX. Domyślnie nullptr, uzytkownik może zdefiniować.
Definition: DX11APIObjects.h:78
static ID3D11DepthStencilView * z_buffer_view
Widok z-buffora.
Definition: DX11APIObjects.h:93
static ID3D11Buffer * const_per_mesh
Bufor stałych zmieniający się dla każdej części mesha.
Definition: DX11APIObjects.h:172
Nie udało się zainicjować widoku na bufor tylni.
Definition: DX11APIObjects.h:30
void init_buffers(unsigned int size_per_frame, unsigned int size_per_mesh)
Tworzy bufory stałych dla shadera.
Definition: DX11APIObjects.cpp:898
void begin_scene()
Czyścimy tylny bufor oraz z-bufor i wywołujemy funcję inicjującą renderowanie.
Definition: DX11APIObjects.cpp:858
static unsigned int _layout_elements_count
Liczba elementów w talicy deskryptora layoutu.
Definition: DX11APIObjects.h:84
static D3D11_VIEWPORT _view_port_desc
Domyślny deskryptor viewportu. Jeżeli użytkownik poda własny to zostanie on nadpisany.
Definition: DX11APIObjects.h:77
static ID3D11DeviceContext * device_context
Zmienna używana do renderowania sceny, ustawiania buforów, shaderów itp.
Definition: DX11APIObjects.h:90
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.
Definition: DX11APIObjects.cpp:286
static ID3D11SamplerState * default_sampler
Obiekt domyślnego samplera.
Definition: DX11APIObjects.h:97
void set_rasterizer_desc(const D3D11_RASTERIZER_DESC &rasterizer_desc)
Ustawia podany w parametrze deskrytptor rasteryzatora.
Definition: DX11APIObjects.cpp:346
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 b...
Definition: DX11APIObjects.cpp:527
Nie udało się skompilować vertex shadera.
Definition: DX11APIObjects.h:34
void end_scene_and_present()
Wywołuje funkcję swap_chain->Present w celu wyświetlenia narysowanej sceny na monitorze.
Definition: DX11APIObjects.h:151
static D3D11_SAMPLER_DESC _sampler_desc
Deskryptor samplera.
Definition: DX11APIObjects.h:85
static ID3D11VertexShader * default_vertex_shader
Obiekt domyślnego vertex shadera.
Definition: DX11APIObjects.h:99
static DXGI_SWAP_CHAIN_DESC _swap_chain_desc
Domyślny deskryptor głównych obiektów DirectX11.
Definition: DX11APIObjects.h:76
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.
Definition: DX11APIObjects.cpp:263
static D3D11_INPUT_ELEMENT_DESC * _vertex_layout_desc
Aktualny deskryptor layoutu wierzchołka.
Definition: DX11APIObjects.h:83
DX11_INIT_RESULT init_viewport()
Ustawia viewport zgodny z aktualnie ustawionym deskryptorem.
Definition: DX11APIObjects.cpp:514
static ID3D11Buffer * const_per_frame
Bufor stałych zmieniających się nie częściej niż co ramkę
Definition: DX11APIObjects.h:171
Żadna klasa nie odziedziczyła po DX11APIObjects. Zmienne są niezainicjalizowane.
Definition: DX11APIObjects.h:27
static ID3D11DepthStencilState * depth_enabled
Do włączania z-bufora.
Definition: DX11APIObjects.h:173
ID3D11PixelShader * load_pixel_shader(const std::wstring &file_name, const std::string &shader_name, const char *shader_model)
Definition: DX11APIObjects.cpp:730
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ą inter...
Definition: DX11APIObjects.cpp:819
ID3D11VertexShader * load_vertex_shader(const std::wstring &file_name, const std::string &shader_name, const char *shader_model)
Tworzy obiekt VertexShader na podstawie pliku.
Definition: DX11APIObjects.cpp:593
Klasa zawiera wskaźniki na bufory stałych zawierające podstawowe zestawy elementów przekazywanych do ...
Definition: DX11APIObjects.h:168
DX11_INIT_RESULT
Definition: DX11APIObjects.h:24
DX11_DEFAULT_VERTEX_LAYOUT
Definition: DX11APIObjects.h:41
static ID3D11Texture2D * z_buffer
Tekstura z-bufora.
Definition: DX11APIObjects.h:95
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...
Definition: DX11APIObjects.cpp:322
static ID3D11Device * device
Zmienna służy do tworzenia obiektów, buforów tekstur i zasobów.
Definition: DX11APIObjects.h:89
static IDXGISwapChain * swap_chain
Służy do prezentowania ramki na ekranie.
Definition: DX11APIObjects.h:91
static ID3D11InputLayout * default_vertex_layout
Layout formatu wierzchołka używanego dla meshy.
Definition: DX11APIObjects.h:98
Nie ustało się stworzyć bufora głębokości.
Definition: DX11APIObjects.h:31
Pozycja, normalne współrzędne UV.
Definition: DX11APIObjects.h:43
DirectX nie został zainicjowany (obiekt device_context wskazuje na nullptr).
Definition: DX11APIObjects.h:37
void set_sampler_desc(D3D11_SAMPLER_DESC sampler_desc)
Definition: DX11APIObjects.cpp:340
void set_swapchain_desc(const DXGI_SWAP_CHAIN_DESC &swap_chain_desc)
Funkcja ustawia deskryptor dla obiektów Device, DeviceContext i SwapChain DirectXa.
Definition: DX11APIObjects.cpp:248
Pozycja, normalne, kolor.
Definition: DX11APIObjects.h:46
static unsigned int _num_feature_levels
Liczba elementów powyższej tablicy.
Definition: DX11APIObjects.h:79
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.
Definition: DX11APIObjects.cpp:372
DX11_INIT_RESULT init_sampler()
Tworzy domyślny smapler.
Definition: DX11APIObjects.cpp:837
DirectX nie został zainicjowany (obiekt device wskazuje na nullptr).
Definition: DX11APIObjects.h:36
Pozycja, współrzędne UV.
Definition: DX11APIObjects.h:44
Nie udało się utworzyć obiektu samplera.
Definition: DX11APIObjects.h:35
static ID3D11PixelShader * default_pixel_shader
Obiekt domyślnego piksel shadera.
Definition: DX11APIObjects.h:100
DX11_INIT_RESULT InitDevicesAndSwapChain(HWND window, bool fullscreen, bool single_thread=true)
Tworzy obiekty swap_chain, device i device_context.
Definition: DX11APIObjects.cpp:475
Nie udało się skompilować pixel shadera.
Definition: DX11APIObjects.h:33
Nie udało się utworzyć bufora tylnego.
Definition: DX11APIObjects.h:29
static ID3D11RenderTargetView * render_target
Widok bufora docelowego renderowania, czyli bufora tylnego.
Definition: DX11APIObjects.h:92
static ID3D11Texture2D * back_buffer
Tekstura bufora tylnego.
Definition: DX11APIObjects.h:94
static ID3D11DepthStencilState * depth_disabled
Do wyłączania z-bufora.
Definition: DX11APIObjects.h:174