Sleeping Wombat Graphic API  1.010
swGraphicAPI
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
DX11SwapChain Class Reference
Inheritance diagram for DX11SwapChain:
SwapChain DX11APIObjects ResourceObject

Public Member Functions

 DX11SwapChain (IDXGISwapChain *chain, DX11RenderTarget *windowRT)
 
virtual void Present (int syncInterval) override
 
virtual void Resize (uint16 newWidth, uint16 newHeight) override
 
- Public Member Functions inherited from SwapChain
ResourcePtr< RenderTargetObjectGetRenderTarget ()
 
virtual std::string GetResourceName () const override
 Zwraca nazwę zasobu. To może być nazwa pliku, na podstawie którego stworzono zasób, ale zasadniczo interpretacja jest dowolna.
 
- Public Member Functions inherited from ResourceObject
 ResourceObject (int id)
 
void SetID (unsigned int id)
 Ustawia identyfikator obiektu.
 
bool CanDelete (unsigned int &objectRef)
 sprawdza czy można zwolnić zmienną More...
 
bool CanDelete ()
 Funkcja informuje czy obiekt są obiektu, które odwołują się do assetu. More...
 
void AddAssetReference ()
 Dodaje odwołanie plikowe do assetu. More...
 
void AddObjectReference ()
 Dodaje odwołanie bezpośrednie obiektu do assetu.
 
void DeleteAssetReference ()
 Kasuje odwołanie plikowe do assetu.
 
void DeleteObjectReference ()
 Kasuje odwołanie bezpośrednie obiektu do assetu.
 
unsigned int GetID ()
 Zwraca identyfikator nadany assetowi.
 

Static Public Member Functions

static DX11SwapChainCreateScreenSwapChain (RenderTargetObject *screenRT)
 Tworzy object DX11SwapChain z głównego render targetu. More...
 

Private Attributes

IDXGISwapChain * m_swapChain
 

Additional Inherited Members

- Protected Member Functions inherited from SwapChain
 SwapChain (RenderTargetObject *windowRT)
 
- Protected Member Functions inherited from ResourceObject
virtual ~ResourceObject ()=default
 Nie każdy może skasować obiekt.
 
- 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...
 
virtual void release_DirectX ()
 Zwalnia wszystkie stworzone obiekty DirectXa.
 
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 ()
 
- Protected Attributes inherited from SwapChain
ResourcePtr< RenderTargetObjectm_renderTarget
 
- 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.
 

Member Function Documentation

DX11SwapChain * DX11SwapChain::CreateScreenSwapChain ( RenderTargetObject screenRT)
static

Tworzy object DX11SwapChain z głównego render targetu.

Todo:
Wersja troszkę niewłaściwa. SwapChain jest już stworzony wcześniej przy zwykłej inicjalizacji DX11APIObjects. Tutaj jest jedynie tworzony obiekt silnikowy, który potrafi to obsłużyć. Trzeba to zmienić, żeby całe tworzenie render targetu odbywało się tutaj.
void DX11SwapChain::Present ( int  syncInterval)
overridevirtual

Implements SwapChain.

void DX11SwapChain::Resize ( uint16  newWidth,
uint16  newHeight 
)
overridevirtual

Implements SwapChain.


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