Sleeping Wombat Graphic API  1.010
swGraphicAPI
BlendingState.h
1 #pragma once
2 
8 #include "swCommonLib/Common/ObjectDeleter.h"
9 
10 #include "ResourceObject.h"
12 
13 #include <DirectXMath.h>
14 
15 
16 
21 {
22  DirectX::XMFLOAT4 CustomBlendFactor;
23  bool EnableBlending;
24  BlendOperation ColorOperation;
25  BlendOperation AlphaOperation;
26  BlendFactor SrcColorBlend;
27  BlendFactor DstColorBlend;
28  BlendFactor SrcAlphaBlend;
29  BlendFactor DstAlphaBlend;
30 
31 // ================================ //
32 //
33  BlendingInfo()
34  : CustomBlendFactor( DirectX::XMFLOAT4( 0.0f, 0.0f, 0.0f, 0.0f ) )
35  , EnableBlending( false )
36  , ColorOperation( BlendOperation::Add )
37  , AlphaOperation( BlendOperation::Add )
38  , SrcColorBlend( BlendFactor::One )
39  , DstColorBlend( BlendFactor::One )
40  , SrcAlphaBlend( BlendFactor::One )
41  , DstAlphaBlend( BlendFactor::One )
42  {}
43 
44 #define Compare( x ) if( x != other.x ) return false;
45 
46  bool operator== ( const BlendingInfo& other ) const
47  {
48  Compare( CustomBlendFactor.x );
49  Compare( CustomBlendFactor.y );
50  Compare( CustomBlendFactor.z );
51  Compare( CustomBlendFactor.w );
52  Compare( EnableBlending );
53  Compare( ColorOperation );
54  Compare( EnableBlending );
55  Compare( AlphaOperation );
56  Compare( SrcColorBlend );
57  Compare( DstColorBlend );
58  Compare( SrcAlphaBlend );
59  Compare( DstAlphaBlend );
60  return true;
61  }
62 
63 #undef Compare
64 };
65 
66 
67 
68 
73 {
74  RTTR_ENABLE( ResourceObject );
75  friend ObjectDeleter< BlendingState >;
76 private:
77 protected:
78 
79  virtual ~BlendingState() = default;
80 
81 public:
82  explicit BlendingState()
83  : ResourceObject( 0 )
84  {}
85 
86 
87  virtual const BlendingInfo& GetDescriptor () = 0;
88 };
89 
ResourceObject(int id)
Definition: ResourceObject.h:44
Initialization of BlendingState.
Definition: BlendingState.h:20
DirectX::XMFLOAT4 CustomBlendFactor
Custom blend factors.
Definition: BlendingState.h:22
BlendFactor
Blend factor for blending equation.
Definition: GraphicAPIConstants.h:28
Plik zawiera deklarację i definicję klasy ResourceObject służącą do zliczania odwołań do obiektu...
Definition: BlendingState.h:72
Klasa ułatwiająca zarządzanie odwołaniami do assetów.Obiekty assetów (np. MaterialObject, TextureObject, VertexShader, PixelShader itp.) wymagają jakiegoś systemu zapewniającego współdzielenie między innymi obiektami.
Definition: ResourceObject.h:30
BlendOperation
Blending operation.
Definition: GraphicAPIConstants.h:14