| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- ///////////////////////////////////////////////////////////////////////////////
- // //
- // DxilInterpolationMode.h //
- // Copyright (C) Microsoft Corporation. All rights reserved. //
- // This file is distributed under the University of Illinois Open Source //
- // License. See LICENSE.TXT for details. //
- // //
- // Representation of HLSL interpolation mode. //
- // //
- ///////////////////////////////////////////////////////////////////////////////
- #pragma once
- #include "DxilConstants.h"
- namespace hlsl {
- /// Use this class to represent signature element interpolation mode.
- class InterpolationMode {
- public:
- using Kind = DXIL::InterpolationMode;
- InterpolationMode();
- InterpolationMode(Kind Kind);
- InterpolationMode(unsigned long long Kind);
- InterpolationMode(bool bNoInterpolation, bool bLinear, bool bNoperspective, bool bCentroid, bool bSample);
- InterpolationMode &operator=(const InterpolationMode &o);
- bool operator==(const InterpolationMode &o) const;
- bool IsValid() const { return m_Kind >= Kind::Undefined && m_Kind < Kind::Invalid; }
- bool IsUndefined() const { return m_Kind == Kind::Undefined; }
- bool IsConstant() const { return m_Kind == Kind::Constant; }
- bool IsLinear() const { return m_Kind == Kind::Linear; }
- bool IsLinearCentroid() const { return m_Kind == Kind::LinearCentroid; }
- bool IsLinearNoperspective() const { return m_Kind == Kind::LinearNoperspective; }
- bool IsLinearNoperspectiveCentroid() const { return m_Kind == Kind::LinearNoperspectiveCentroid; }
- bool IsLinearSample() const { return m_Kind == Kind::LinearSample; }
- bool IsLinearNoperspectiveSample() const { return m_Kind == Kind::LinearNoperspectiveSample; }
- bool IsAnyLinear() const;
- bool IsAnyNoPerspective() const;
- bool IsAnyCentroid() const;
- bool IsAnySample() const;
- Kind GetKind() const { return m_Kind; }
- const char *GetName() const;
- private:
- Kind m_Kind;
- };
- } // namespace hlsl
|