Sleeping Wombat Graphic API  1.010
swGraphicAPI
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

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

Private Member Functions

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

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ą.
 
- 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.
 
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 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ę
 
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 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.
 
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.
 

Detailed Description

Klasa implementująca IGraphicAPIInitializer w DirectX 11.

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

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.

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.


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