Sleeping Wombat GUI  0.100
swGUI
Public Member Functions | Private Member Functions | Private Attributes | List of all members
DX11Initializer Class Reference

Klasa implementująca IGraphicAPIInitializer w DirectX 11.Jako klasa pomocnicza do inicjalizacji jest używana klasa DX11AuxiliaryObjects (dziedziczy po DX11APIObjects). More...

#include <DX11Initializer.h>

Inheritance diagram for DX11Initializer:
IGraphicAPIInitializer DX11AuxiliaryObjects DX11APIObjects

Public Member Functions

 DX11Initializer ()
 
 ~DX11Initializer ()=default
 
virtual IRendererCreateRenderer (RendererUsage usage) override
 Tworzy renderer zgodny z używanym API graficznym. More...
 
virtual SwapChainCreateSwapChain (SwapChainInitData &swapChainData) override
 Tworzy nowy swap chain. More...
 
virtual bool InitAPI (GraphicAPIInitData &initData) override
 Inicjalizuje API graficzne. More...
 
virtual void ReleaseAPI () override
 Zwalnia stworzone obiekty DirectX 11. More...
 
virtual void * GetRenderTargetHandle (RenderTargetObject *renderTarget) override
 Zwraca wskaźnik na bufor koloru render targetu. More...
 
- Public Member Functions inherited from IGraphicAPIInitializer
virtual ~IGraphicAPIInitializer ()=default
 

Private Member Functions

Nullable< bool > InitDevices (GraphicAPIInitData &initData)
 Creates only device and device context. More...
 

Private Attributes

ID3D11RasterizerState * m_rasterizer
 
ID3D11DepthStencilState * m_depthState
 

Additional Inherited Members

- Protected Member Functions inherited from DX11AuxiliaryObjects
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 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 ()
 
- Static Protected Attributes inherited from DX11AuxiliaryObjects
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...
 

Detailed Description

Klasa implementująca IGraphicAPIInitializer w DirectX 11.

Jako klasa pomocnicza do inicjalizacji jest używana klasa DX11AuxiliaryObjects (dziedziczy po DX11APIObjects).

Constructor & Destructor Documentation

DX11Initializer::DX11Initializer ( )
DX11Initializer::~DX11Initializer ( )
default

Member Function Documentation

IRenderer * DX11Initializer::CreateRenderer ( RendererUsage  usage)
overridevirtual

Tworzy renderer zgodny z używanym API graficznym.

Parameters
[in]usageSpecyfikuje czy użyć opóźnionego kontekstu renderowania czy natychmiastowego.
Note
Wszystkie renderery stworzone w aplikacji powinny być tego samego typu.

Implements IGraphicAPIInitializer.

SwapChain * DX11Initializer::CreateSwapChain ( SwapChainInitData swapChainData)
overridevirtual

Tworzy nowy swap chain.

Implements IGraphicAPIInitializer.

void * DX11Initializer::GetRenderTargetHandle ( RenderTargetObject renderTarget)
overridevirtual

Zwraca wskaźnik na bufor koloru render targetu.

Ta funkcja jest używana do współpracy z zewnętrznymi aplikacjami, które potrzebują bezpośredniego wskaźnika na zasoby DirectXowe. Nie ma żadnego powodu, żeby jej używać w innych przypadkach.

Parameters
[in]renderTargetRenderTarget, z którego ma zostać wziętu wskaźnik.
Returns
Zwraca wskaźnik na widok na bufor koloru render targetu lub nullptr, jezeli podano niepoprawny render target.

Implements IGraphicAPIInitializer.

bool DX11Initializer::InitAPI ( GraphicAPIInitData initData)
overridevirtual

Inicjalizuje API graficzne.

Parameters
[in]initDataDane używane do inicjalizacji.
Returns
Zwraca true, jeżeli inicjalizacja się uda.

Implements IGraphicAPIInitializer.

Nullable< bool > DX11Initializer::InitDevices ( GraphicAPIInitData initData)
private

Creates only device and device context.

void DX11Initializer::ReleaseAPI ( )
overridevirtual

Zwalnia stworzone obiekty DirectX 11.

Implements IGraphicAPIInitializer.

Member Data Documentation

ID3D11DepthStencilState* DX11Initializer::m_depthState
private
ID3D11RasterizerState* DX11Initializer::m_rasterizer
private

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