|
Sleeping Wombat GUI
0.100
swGUI
|
Implementacja vertex shadera w DirectX 11. More...
#include <DX11VertexShader.h>
Public Member Functions | |
| DX11VertexShader (ID3D11VertexShader *shader) | |
| ID3D11VertexShader * | Get () |
| virtual bool | ReloadFromFile () override |
| virtual bool | ReloadFromBinFile () override |
| virtual void | SaveShaderBinFile (const std::wstring &fileName) override |
| void | SetFileName (const std::wstring &fileName) |
| void | SetShaderName (const std::string &shaderName) |
Public Member Functions inherited from VertexShader | |
| VertexShader ()=default | |
| 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. More... | |
Public Member Functions inherited from IShader | |
| const std::wstring & | GetShaderFile () const |
| const std::string & | GetShaderEntry () const |
Public Member Functions inherited from ResourceObject | |
| ResourceObject (int id) | |
| void | SetID (unsigned int id) |
| Ustawia identyfikator obiektu. More... | |
| 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. More... | |
| void | DeleteAssetReference () |
| Kasuje odwołanie plikowe do assetu. More... | |
| void | DeleteObjectReference () |
| Kasuje odwołanie bezpośrednie obiektu do assetu. More... | |
| unsigned int | GetID () |
| Zwraca identyfikator nadany assetowi. More... | |
Public Member Functions inherited from EngineObject | |
| TypeID | GetType () const |
| std::string | GetTypeName () const |
| virtual void | Serialize (ISerializer *ser) const |
| Implements default serialization. Serializes only declared properties. More... | |
| virtual void | Deserialize (IDeserializer *deser) |
| Implements default deserialization. More... | |
| virtual Size | MemorySize () |
| template<typename TargetType > | |
| TargetType * | DynamicCast () |
Static Public Member Functions | |
| static DX11VertexShader * | CreateFromFile (const std::wstring &fileName, const std::string &shaderName, const char *shaderModel="vs_4_0") |
| Tworzy obiekt DX11VertexShader na podstawie pliku. More... | |
| static DX11VertexShader * | CreateFromFile (const std::wstring &fileName, const std::string &shaderName, ShaderInputLayout **layout, InputLayoutDescriptor *layout_desc, const char *shaderModel="vs_4_0") |
| Tworzy obiekt DX11VertexShader oraz DX11InputLayout 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... | |
| static DX11VertexShader * | CreateFromBinFile (const std::wstring &fileName, const std::string &shaderName, const char *shaderModel="vs_4_0") |
Protected Member Functions | |
| ~DX11VertexShader () | |
Protected Member Functions inherited from VertexShader | |
| ~VertexShader ()=default | |
Protected Member Functions inherited from IShader | |
| IShader () | |
| virtual | ~IShader ()=default |
Protected Member Functions inherited from ResourceObject | |
| virtual | ~ResourceObject ()=default |
| Nie każdy może skasować obiekt. 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... | |
| virtual void | release_DirectX () |
| Zwalnia wszystkie stworzone obiekty 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 () |
Private Member Functions | |
| RTTR_ENABLE (VertexShader) | |
Private Attributes | |
| ID3D11VertexShader * | m_vertexShader |
Additional Inherited Members | |
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 IShader | |
| std::string | m_shaderEntry |
| Nazwa głownej funkcji shadera. More... | |
| std::wstring | m_shaderFile |
| Ścieżka do pliku z shaderem. More... | |
Static Protected Attributes inherited from DX11APIObjects | |
| static DX11APIObjects * | this_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... | |
Implementacja vertex shadera w DirectX 11.
|
protected |
| DX11VertexShader::DX11VertexShader | ( | ID3D11VertexShader * | shader | ) |
|
static |
|
static |
Tworzy obiekt DX11VertexShader na podstawie pliku.
W przypadku błędów kompilacji w trybie debug są one przekierowane do okna Output.
Na razie obsługuje tylko nieskompilowane pliki.
| [in] | fileName | Nazwa pliku, z którego zostanie wczytany shader |
| [in] | shaderName | Nazwa funkcji, która jest punktem poczatkowym wykonania shadera |
| [in] | shaderModel | Łańcuch znaków opisujący shader model. |
|
static |
Tworzy obiekt DX11VertexShader oraz DX11InputLayout 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.
W przypadku błędów kompilacji w trybie debug są one przekierowane do okna Output.
Na razie obsługuje tylko nieskompilowane pliki.
| [in] | fileName | Nazwa pliku, z którego zostanie wczytany shader |
| [in] | shaderName | Nazwa funkcji, która jest punktem poczatkowym wykonania shadera |
| [out] | layout | W zmiennej umieszczany jest wskaźnik na layout wierzchołka. Należy pamiętać o zwolnieniu go kiedy będzie niepotrzebny. |
| [in] | layoutDesc | Deskryptor opisujacy tworzony layout. |
| [in] | shaderModel | Łańcuch znaków opisujący shader model. |
|
inline |
|
overridevirtual |
Implements IShader.
|
overridevirtual |
Implements IShader.
|
private |
|
overridevirtual |
Implements IShader.
|
inline |
|
inline |
|
private |
1.8.9.1