diff --git a/RenderScript/include/DeviceContextFuncBindings.h b/RenderScript/include/DeviceContextFuncBindings.h index f3bfa98..85fd527 100644 --- a/RenderScript/include/DeviceContextFuncBindings.h +++ b/RenderScript/include/DeviceContextFuncBindings.h @@ -29,7 +29,7 @@ namespace std { - DEFINE_ENUM_HASH( Diligent::COMMIT_SHADER_RESOURCES_FLAG ) + DEFINE_ENUM_HASH( Diligent::COMMIT_SHADER_RESOURCES_FLAGS ) } namespace Diligent @@ -61,7 +61,7 @@ int TransitionShaderResources( lua_State * ); ClassMethodCaller m_TransitionShaderResourcesBinding; - EnumMapping m_CommitShaderResFlagsEnumMapping; + EnumMapping m_CommitShaderResFlagsEnumMapping; String m_TexViewMetatableName; String m_ShaderResBindingMetatableName; diff --git a/RenderScript/include/EnumMappings.h b/RenderScript/include/EnumMappings.h index 5e0231e..db0b699 100644 --- a/RenderScript/include/EnumMappings.h +++ b/RenderScript/include/EnumMappings.h @@ -43,7 +43,7 @@ // Explicit namespace declaraion is necesseary to avoid // name conflicts when building for windows store DEFINE_ENUM_HASH( Diligent::BIND_FLAGS ) - DEFINE_ENUM_HASH( Diligent::CPU_ACCESS_FLAG ) + DEFINE_ENUM_HASH( Diligent::CPU_ACCESS_FLAGS ) DEFINE_ENUM_HASH( Diligent::COMPARISON_FUNCTION ) DEFINE_ENUM_HASH( Diligent::BIND_SHADER_RESOURCES_FLAGS ) DEFINE_ENUM_HASH( Diligent::SHADER_TYPE ) @@ -65,7 +65,7 @@ }; #define DEFINE_ENUM_ELEMENT_MAPPING(EnumMapping, Elem) EnumMapping.AddMapping(#Elem, Elem) - class CpuAccessFlagEnumMapping : public EnumMapping < Diligent::CPU_ACCESS_FLAG > + class CpuAccessFlagEnumMapping : public EnumMapping < Diligent::CPU_ACCESS_FLAGS > { public: CpuAccessFlagEnumMapping(); diff --git a/RenderScript/include/LuaBindings.h b/RenderScript/include/LuaBindings.h index e43b9a3..a09e1d0 100644 --- a/RenderScript/include/LuaBindings.h +++ b/RenderScript/include/LuaBindings.h @@ -461,7 +461,7 @@ BindingsMap.insert( std::make_pair( #Member, std::unique_ptr(pNewBinder) ) ); \ }while(false) - template< typename EnumType, typename FlagsType = Uint32 > + template< typename EnumType, typename FlagsType = std::underlying_type::type > class FlagsLoader : public MemberBinderBase { public: @@ -478,7 +478,7 @@ int ArrayInd = 1; for( auto it = m_EnumMapping.m_Val2StrMap.begin(); it != m_EnumMapping.m_Val2StrMap.end(); ++it ) { - if( static_cast(Flags & it->first) == it->first ) + if( it->first != 0 && static_cast(Flags & it->first) == it->first || Flags == 0 && it->first == 0) { lua_pushnumber( L, ArrayInd ); // -0 | +1 -> +1 PushValue( L, it->second ); // -0 | +1 -> +1 @@ -490,7 +490,7 @@ virtual void SetValue( lua_State *L, int Index, void* pBasePointer ) { - FlagsType Flags = 0; + FlagsType Flags = static_cast(0); if( lua_isnumber( L, Index ) ) { Flags = static_cast( ReadValueFromLua( L, Index ) ); @@ -528,7 +528,7 @@ { String AllowableValues = GetEnumMappingsString( m_EnumMapping ); SCRIPT_PARSING_ERROR( L, "Unknown flag (\"", CurrFlagName, "\") provided for parameter ", m_MemberName, ". Only the following flags are allowed:\n", AllowableValues ); - return 0; + return static_cast(0); } } diff --git a/RenderScript/include/TextureParser.h b/RenderScript/include/TextureParser.h index c35e3dd..0e0e542 100644 --- a/RenderScript/include/TextureParser.h +++ b/RenderScript/include/TextureParser.h @@ -30,7 +30,7 @@ namespace std { - DEFINE_ENUM_HASH( Diligent::MISC_TEXTURE_FLAG ) + DEFINE_ENUM_HASH( Diligent::MISC_TEXTURE_FLAGS ) } namespace Diligent @@ -58,7 +58,7 @@ // Explicit namespace declaraion is necesseary to avoid // name conflicts when building for windows store - EnumMapping m_MiscFlagEnumMapping; + EnumMapping m_MiscFlagEnumMapping; UsageEnumMapping m_UsageEnumMapping; CpuAccessFlagEnumMapping m_CpuAccessFlagEnumMapping; diff --git a/RenderScript/src/BufferParser.cpp b/RenderScript/src/BufferParser.cpp index ebf04d0..5a996a6 100644 --- a/RenderScript/src/BufferParser.cpp +++ b/RenderScript/src/BufferParser.cpp @@ -51,7 +51,7 @@ DEFINE_FLAGS_BINDER( m_Bindings, SBuffDescWrapper, BindFlags, Diligent::BIND_FLAGS, m_BindFlagEnumMapping ); DEFINE_ENUM_BINDER( m_Bindings, SBuffDescWrapper, Usage, m_UsageEnumMapping ); - DEFINE_FLAGS_BINDER( m_Bindings, SBuffDescWrapper, CPUAccessFlags, CPU_ACCESS_FLAG, m_CpuAccessFlagEnumMapping ); + DEFINE_FLAGS_BINDER( m_Bindings, SBuffDescWrapper, CPUAccessFlags, CPU_ACCESS_FLAGS, m_CpuAccessFlagEnumMapping ); DEFINE_ENUM_ELEMENT_MAPPING( m_BuffModeEnumMapping, BUFFER_MODE_UNDEFINED ); DEFINE_ENUM_ELEMENT_MAPPING( m_BuffModeEnumMapping, BUFFER_MODE_FORMATTED ); @@ -66,6 +66,7 @@ DEFINE_BINDER( m_Bindings, SBuffDescWrapper, ElementByteStride ); + DEFINE_ENUM_ELEMENT_MAPPING( m_SetVBFlagEnumMapping, SET_VERTEX_BUFFERS_FLAG_NONE ); DEFINE_ENUM_ELEMENT_MAPPING( m_SetVBFlagEnumMapping, SET_VERTEX_BUFFERS_FLAG_RESET ); }; @@ -139,7 +140,7 @@ } } - Uint32 Flags = 0; + SET_VERTEX_BUFFERS_FLAGS Flags = SET_VERTEX_BUFFERS_FLAG_NONE; Uint32 NumBuffers = 0; IBuffer *pBuffs[MaxBufferSlots] = {}; Uint32 Offsets[MaxBufferSlots] = {}; diff --git a/RenderScript/src/DeviceContextFuncBindings.cpp b/RenderScript/src/DeviceContextFuncBindings.cpp index 3a154d2..f32f350 100644 --- a/RenderScript/src/DeviceContextFuncBindings.cpp +++ b/RenderScript/src/DeviceContextFuncBindings.cpp @@ -46,7 +46,9 @@ m_ShaderResBindingMetatableName( pSRBParser->GetMetatableName() ), m_PSOMetatableName(pPSOParser->GetMetatableName()) { + DEFINE_ENUM_ELEMENT_MAPPING( m_CommitShaderResFlagsEnumMapping, COMMIT_SHADER_RESOURCES_FLAG_NONE ); DEFINE_ENUM_ELEMENT_MAPPING( m_CommitShaderResFlagsEnumMapping, COMMIT_SHADER_RESOURCES_FLAG_TRANSITION_RESOURCES ); + DEFINE_ENUM_ELEMENT_MAPPING( m_CommitShaderResFlagsEnumMapping, COMMIT_SHADER_RESOURCES_FLAG_VERIFY_STATES ); }; int DeviceContextFuncBindings::SetRenderTargets( lua_State *L ) @@ -123,7 +125,7 @@ ITextureView *pView = nullptr; Float32 fDepth = 1.f; Uint8 Stencil = 0; - Uint32 ClearFlags = 0; + CLEAR_DEPTH_STENCIL_FLAGS ClearFlags = CLEAR_DEPTH_FLAG_NONE; int CurrArg = 1; if( CurrArg <= NumArgs ) @@ -199,12 +201,12 @@ } } - Uint32 Flags = 0; + COMMIT_SHADER_RESOURCES_FLAGS Flags = COMMIT_SHADER_RESOURCES_FLAG_NONE; if(NumArgs >= CurrArg && (lua_type( L, CurrArg ) == LUA_TSTRING || lua_type( L, CurrArg ) == LUA_TTABLE ) ) { - FlagsLoader CommitShaderResFlagsLoader(0, "CommitShaderResourcesFlag", m_CommitShaderResFlagsEnumMapping); + FlagsLoader CommitShaderResFlagsLoader(0, "CommitShaderResourcesFlag", m_CommitShaderResFlagsEnumMapping); CommitShaderResFlagsLoader.SetValue( L, CurrArg, &Flags ); ++CurrArg; } diff --git a/RenderScript/src/EnumMappings.cpp b/RenderScript/src/EnumMappings.cpp index bcefd89..84ce7d9 100644 --- a/RenderScript/src/EnumMappings.cpp +++ b/RenderScript/src/EnumMappings.cpp @@ -30,6 +30,7 @@ { CpuAccessFlagEnumMapping::CpuAccessFlagEnumMapping() { + DEFINE_ENUM_ELEMENT_MAPPING( (*this), CPU_ACCESS_NONE ); DEFINE_ENUM_ELEMENT_MAPPING( (*this), CPU_ACCESS_READ ); DEFINE_ENUM_ELEMENT_MAPPING( (*this), CPU_ACCESS_WRITE ); } diff --git a/RenderScript/src/TextureParser.cpp b/RenderScript/src/TextureParser.cpp index 2ccd683..6515ebd 100644 --- a/RenderScript/src/TextureParser.cpp +++ b/RenderScript/src/TextureParser.cpp @@ -145,10 +145,11 @@ DEFINE_FLAGS_BINDER( m_Bindings, STexDescWrapper, BindFlags, Diligent::BIND_FLAGS, m_BindFlagEnumMapping ); DEFINE_ENUM_BINDER( m_Bindings, STexDescWrapper, Usage, m_UsageEnumMapping ); - DEFINE_FLAGS_BINDER( m_Bindings, STexDescWrapper, CPUAccessFlags, CPU_ACCESS_FLAG, m_CpuAccessFlagEnumMapping ); + DEFINE_FLAGS_BINDER( m_Bindings, STexDescWrapper, CPUAccessFlags, CPU_ACCESS_FLAGS, m_CpuAccessFlagEnumMapping ); + DEFINE_ENUM_ELEMENT_MAPPING( m_MiscFlagEnumMapping, MISC_TEXTURE_FLAG_NONE ); DEFINE_ENUM_ELEMENT_MAPPING( m_MiscFlagEnumMapping, MISC_TEXTURE_FLAG_GENERATE_MIPS ); - DEFINE_FLAGS_BINDER( m_Bindings, STexDescWrapper, MiscFlags, Diligent::MISC_TEXTURE_FLAG, m_MiscFlagEnumMapping ); + DEFINE_FLAGS_BINDER( m_Bindings, STexDescWrapper, MiscFlags, Diligent::MISC_TEXTURE_FLAGS, m_MiscFlagEnumMapping ); DEFINE_BINDER_EX( m_Bindings, STexDescWrapper, ClearValue, OptimizedClearValue, 0 ); }; diff --git a/TextureLoader/include/DDSLoader.h b/TextureLoader/include/DDSLoader.h index 242d856..792c97b 100644 --- a/TextureLoader/include/DDSLoader.h +++ b/TextureLoader/include/DDSLoader.h @@ -63,9 +63,9 @@ size_t maxsize, Diligent::USAGE usage, const char* name, - unsigned int bindFlags, - unsigned int cpuAccessFlags, - unsigned int miscFlags, + Diligent::BIND_FLAGS bindFlags, + Diligent::CPU_ACCESS_FLAGS cpuAccessFlags, + Diligent::MISC_TEXTURE_FLAGS miscFlags, bool forceSRGB, Diligent::ITexture** texture/*, D2D1_ALPHA_MODE* alphaMode*/ diff --git a/TextureLoader/interface/TextureLoader.h b/TextureLoader/interface/TextureLoader.h index 3cb1d24..49b01d0 100644 --- a/TextureLoader/interface/TextureLoader.h +++ b/TextureLoader/interface/TextureLoader.h @@ -40,13 +40,13 @@ USAGE Usage; /// Bind flags - Uint32 BindFlags; + BIND_FLAGS BindFlags; /// Number of mip levels Uint32 MipLevels; /// CPU access flags - Uint32 CPUAccessFlags; + CPU_ACCESS_FLAGS CPUAccessFlags; /// Flag indicating if this texture uses sRGB gamma encoding Bool IsSRGB; @@ -62,7 +62,7 @@ Usage( USAGE_STATIC ), BindFlags( BIND_SHADER_RESOURCE ), MipLevels(0), - CPUAccessFlags(0), + CPUAccessFlags(CPU_ACCESS_NONE), IsSRGB(false), GenerateMips(true), Format(TEX_FORMAT_UNKNOWN) diff --git a/TextureLoader/src/DDSLoader.cpp b/TextureLoader/src/DDSLoader.cpp index 4f30fd9..d347433 100644 --- a/TextureLoader/src/DDSLoader.cpp +++ b/TextureLoader/src/DDSLoader.cpp @@ -932,9 +932,9 @@ _In_ DXGI_FORMAT format, _In_ USAGE usage, _In_ const char *name, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, + _In_ BIND_FLAGS bindFlags, + _In_ CPU_ACCESS_FLAGS cpuAccessFlags, + _In_ MISC_TEXTURE_FLAGS miscFlags, _In_ bool forceSRGB, _In_ bool isCubeMap, _In_ TextureSubResData* initData, @@ -1154,9 +1154,9 @@ _In_ size_t maxsize, _In_ USAGE usage, _In_ const char *name, - _In_ unsigned int bindFlags, - _In_ unsigned int cpuAccessFlags, - _In_ unsigned int miscFlags, + _In_ BIND_FLAGS bindFlags, + _In_ CPU_ACCESS_FLAGS cpuAccessFlags, + _In_ MISC_TEXTURE_FLAGS miscFlags, _In_ bool forceSRGB, _Outptr_opt_ ITexture** texture ) @@ -1411,7 +1411,7 @@ /*D2D1_ALPHA_MODE* alphaMode,*/ const char* name) { - return CreateDDSTextureFromMemoryEx(pDevice, ddsData, ddsDataSize, maxsize, USAGE_DEFAULT, name, BIND_SHADER_RESOURCE, 0, 0, false, texture/*, alphaMode*/); + return CreateDDSTextureFromMemoryEx(pDevice, ddsData, ddsDataSize, maxsize, USAGE_DEFAULT, name, BIND_SHADER_RESOURCE, CPU_ACCESS_NONE, MISC_TEXTURE_FLAG_NONE, false, texture/*, alphaMode*/); } @@ -1423,9 +1423,9 @@ size_t maxsize, USAGE usage, const char *name, - unsigned int bindFlags, - unsigned int cpuAccessFlags, - unsigned int miscFlags, + BIND_FLAGS bindFlags, + CPU_ACCESS_FLAGS cpuAccessFlags, + MISC_TEXTURE_FLAGS miscFlags, bool forceSRGB, ITexture** texture/*, D2D1_ALPHA_MODE* alphaMode*/ diff --git a/TextureLoader/src/TextureLoader.cpp b/TextureLoader/src/TextureLoader.cpp index 9a660fd..7fc9a40 100644 --- a/TextureLoader/src/TextureLoader.cpp +++ b/TextureLoader/src/TextureLoader.cpp @@ -249,7 +249,7 @@ TexLoadInfo.Name, TexLoadInfo.BindFlags, TexLoadInfo.CPUAccessFlags, - 0, // miscFlags + MISC_TEXTURE_FLAG_NONE, // miscFlags TexLoadInfo.IsSRGB, // forceSRGB ppTexture ); }