Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Shader
- {
- public:
- // Vertex Shader ------------------------------------------------------------------
- class Vertex
- {
- private:
- Vertex() { mShader = 0; };
- ~Vertex() {};
- public:
- // Methods
- bool Create(Pointer data, UInt size) { Engine::Get()->mWindow.mDevice->CreateVertexShader(data, size, NULL, &mShader); };
- void Bind() { Engine::Get()->mWindow.mDeviceContext->VSSetShader(mShader, NULL, 0); };
- void Release() { mShader->Release(); };
- private:
- ID3D11VertexShader* mShader;
- //--//
- friend class Engine;
- };
- // Pixel Shader -------------------------------------------------------------------
- class Pixel
- {
- private:
- Pixel() { mShader = 0; };
- ~Pixel() {};
- public:
- // Methods
- bool Create(Pointer data, UInt size) { Engine::Get()->mWindow.mDevice->CreatePixelShader(data, size, NULL, &mShader); };
- void Bind() { Engine::Get()->mWindow.mDeviceContext->PSSetShader(mShader, NULL, 0); };
- void Release() { mShader->Release(); };
- private:
- ID3D11PixelShader* mShader;
- //--//
- friend class Engine;
- };
- // Geometry Shader ----------------------------------------------------------------
- class Geometry
- {
- private:
- Geometry() { mShader = 0; };
- ~Geometry() {};
- public:
- // Methods
- bool Create(Pointer data, UInt size) { Engine::Get()->mWindow.mDevice->CreateGeometryShader(data, size, NULL, &mShader); };
- void Bind() { Engine::Get()->mWindow.mDeviceContext->GSSetShader(mShader, NULL, 0); };
- void Release() { mShader->Release(); };
- private:
- ID3D11GeometryShader* mShader;
- //--//
- friend class Engine;
- };
- // Hull Shader --------------------------------------------------------------------
- class Hull
- {
- private:
- Hull() { mShader = 0; };
- ~Hull() {};
- public:
- // Methods
- bool Create(Pointer data, UInt size) { Engine::Get()->mWindow.mDevice->CreateHullShader(data, size, NULL, &mShader); };
- void Bind() { Engine::Get()->mWindow.mDeviceContext->HSSetShader(mShader, NULL, 0); };
- void Release() { mShader->Release(); };
- private:
- ID3D11HullShader* mShader;
- //--//
- friend class Engine;
- };
- // Domain Shader ------------------------------------------------------------------
- class Domain
- {
- private:
- Domain() { mShader = 0; };
- ~Domain() {};
- public:
- // Methods
- bool Create(Pointer data, UInt size) { Engine::Get()->mWindow.mDevice->CreateDomainShader(data, size, NULL, &mShader); };
- void Bind() { Engine::Get()->mWindow.mDeviceContext->DSSetShader(mShader, NULL, 0); };
- void Release() { mShader->Release(); };
- private:
- ID3D11DomainShader* mShader;
- //--//
- friend class Engine;
- };
- // Compute Shader -----------------------------------------------------------------
- class Compute
- {
- private:
- Compute() { mShader = 0; };
- ~Compute() {};
- public:
- // Methods
- bool Create(Pointer data, UInt size) { Engine::Get()->mWindow.mDevice->CreateComputeShader(data, size, NULL, &mShader); };
- void Bind() { Engine::Get()->mWindow.mDeviceContext->CSSetShader(mShader, NULL, 0); };
- void Release() { mShader->Release(); };
- private:
- ID3D11ComputeShader* mShader;
- //--//
- friend class Engine;
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment