13 #pragma warning( disable : 4005 )
16 #pragma warning( default : 4005 )
109 void set_vertex_layout ( D3D11_INPUT_ELEMENT_DESC* layout,
unsigned int array_size );
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 );
176 void init_buffers(
unsigned int size_per_frame,
unsigned int size_per_mesh );
void SetDebugName(ID3D11DeviceChild *child, const std::string &name)
Definition: DX11APIObjects.cpp:870
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 D3D11_TEXTURE2D_DESC get_z_buffer_desc()
Definition: DX11APIObjects.h:117
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 DXGI_SWAP_CHAIN_DESC get_swap_chain_desc()
Definition: DX11APIObjects.h:114
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
static std::string _vertex_shader_model
Definition: DX11APIObjects.h:74
void begin_scene()
Czyścimy tylny bufor oraz z-bufor i wywołujemy funcję inicjującą renderowanie.
Definition: DX11APIObjects.cpp:858
static unsigned int _window_width
Definition: DX11APIObjects.h:71
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_DEPTH_STENCIL_VIEW_DESC get_z_buffer_view_desc()
Definition: DX11APIObjects.h:118
static D3D11_SAMPLER_DESC _sampler_desc
Deskryptor samplera.
Definition: DX11APIObjects.h:85
~DX11APIObjects()=default
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 std::string _pixel_shader_model
Definition: DX11APIObjects.h:73
static ID3D11Buffer * const_per_frame
Bufor stałych zmieniających się nie częściej niż co ramkę
Definition: DX11APIObjects.h:171
void set_depth_stencil_format(DXGI_FORMAT depth_stencil_format)
Definition: DX11APIObjects.cpp:311
ID3D11Device Device
Definition: DX11APIObjects.h:20
static D3D11_RASTERIZER_DESC get_rasterizer_desc()
Definition: DX11APIObjects.h:120
Ż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
static D3D11_SAMPLER_DESC get_sampler_desc()
Definition: DX11APIObjects.h:119
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
void init_depth_states()
Definition: DX11APIObjects.cpp:935
DX11_INIT_RESULT
Definition: DX11APIObjects.h:24
DX11_DEFAULT_VERTEX_LAYOUT
Definition: DX11APIObjects.h:41
static D3D11_VIEWPORT get_viewport_desc()
Definition: DX11APIObjects.h:115
static bool m_useDebugLayer
Definition: DX11APIObjects.h:69
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
ID3D11DeviceContext DeviceContext
Definition: DX11APIObjects.h:19
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
bool IsDebugLayerEnabled()
Definition: DX11APIObjects.cpp:880
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
DX11APIObjects()
Definition: DX11APIObjects.cpp:108
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 D3D_FEATURE_LEVEL get_current_feature_level()
Definition: DX11APIObjects.h:116
static unsigned int _window_height
Definition: DX11APIObjects.h:72
void set_window_resolution(unsigned int window_width, unsigned int window_height)
Definition: DX11APIObjects.cpp:292
static ID3D11DepthStencilState * depth_disabled
Do wyłączania z-bufora.
Definition: DX11APIObjects.h:174