From 092a15ee2fd42ecd7d82fd5b96c330437d0ec504 Mon Sep 17 00:00:00 2001 From: Danilo Date: Tue, 2 Apr 2024 09:27:43 -0300 Subject: [PATCH] Corrige IBlendState e IGraphicsDevice --- framework/graphics/blendstate.hpp | 5 ---- framework/graphics/device.hpp | 37 ++++------------------------ framework/platform/blendstate-dx.hpp | 3 +++ framework/platform/device-dx.hpp | 26 +++++++++++++++++++ 4 files changed, 34 insertions(+), 37 deletions(-) diff --git a/framework/graphics/blendstate.hpp b/framework/graphics/blendstate.hpp index f648b6b..6baa4c9 100644 --- a/framework/graphics/blendstate.hpp +++ b/framework/graphics/blendstate.hpp @@ -31,11 +31,6 @@ namespace xna { static PBlendState NonPremultiplied(); virtual bool Apply(GraphicsDevice* device) = 0; - - public: - bool AlphaToCoverage{ false }; - bool IndependentBlendEnable{ false }; - PBlendRenderTarget RenderTargets[8]; }; } diff --git a/framework/graphics/device.hpp b/framework/graphics/device.hpp index 13d28a4..69fe8e1 100644 --- a/framework/graphics/device.hpp +++ b/framework/graphics/device.hpp @@ -18,38 +18,11 @@ namespace xna { virtual void Clear() = 0; virtual bool Initialize(GameWindow& gameWindow) = 0; virtual bool Present() = 0; - - PGraphicsAdapter Adapter() const { - return _adapter; - } - - void Adapter(PGraphicsAdapter const& adapter) { - _adapter = adapter; - } - - constexpr xna::Viewport Viewport() const { - return _viewport; - } - - constexpr void Viewport(xna::Viewport const& viewport) { - _viewport = viewport; - } - - PSwapChain GetSwapChain() const { - return _swapChain; - } - - constexpr void UseVSync(bool use) { - _usevsync = use; - } - - protected: - PGraphicsAdapter _adapter{ nullptr }; - PSwapChain _swapChain{ nullptr }; - PRenderTarget2D _renderTarget2D{ nullptr }; - xna::Viewport _viewport{}; - PBlendState _blendState{ nullptr }; - bool _usevsync{ false }; + virtual PGraphicsAdapter Adapter() const = 0; + virtual void Adapter(PGraphicsAdapter const& adapter) = 0; + virtual xna::Viewport Viewport() const = 0; + virtual void Viewport(xna::Viewport const& viewport) = 0; + virtual void UseVSync(bool use) = 0; }; } diff --git a/framework/platform/blendstate-dx.hpp b/framework/platform/blendstate-dx.hpp index 6328dac..8a8f5e9 100644 --- a/framework/platform/blendstate-dx.hpp +++ b/framework/platform/blendstate-dx.hpp @@ -22,6 +22,9 @@ namespace xna { public: ID3D11BlendState* _blendState{ nullptr }; GraphicsDevice* _device{ nullptr }; + bool AlphaToCoverage{ false }; + bool IndependentBlendEnable{ false }; + PBlendRenderTarget RenderTargets[8]; }; struct BlendMapper { diff --git a/framework/platform/device-dx.hpp b/framework/platform/device-dx.hpp index 20ef80a..ec2fa6d 100644 --- a/framework/platform/device-dx.hpp +++ b/framework/platform/device-dx.hpp @@ -28,6 +28,26 @@ namespace xna { virtual bool Initialize(GameWindow& gameWindow) override; virtual bool Present() override; + virtual PGraphicsAdapter Adapter() const override { + return _adapter; + } + + virtual void Adapter(PGraphicsAdapter const& adapter) override { + _adapter = adapter; + } + + virtual constexpr xna::Viewport Viewport() const override { + return _viewport; + } + + virtual constexpr void Viewport(xna::Viewport const& viewport) override { + _viewport = viewport; + } + + virtual void UseVSync(bool use) override { + _usevsync = use; + } + constexpr void SetCreateFlags(D3D11_CREATE_DEVICE_FLAG flags) { _createDeviceFlags |= flags; } @@ -47,6 +67,12 @@ namespace xna { D3D_FEATURE_LEVEL _featureLevel{ D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_11_0 }; float _backgroundColor[4] = { 0, 0, 0, 0 }; xna::PresentationParameters _presentParameters; + PGraphicsAdapter _adapter{ nullptr }; + PSwapChain _swapChain{ nullptr }; + PRenderTarget2D _renderTarget2D{ nullptr }; + xna::Viewport _viewport{}; + PBlendState _blendState{ nullptr }; + bool _usevsync{ false }; bool createDevice(); };