From c09883fbe3951cd77543003ae1c6fdf6e5a11517 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Sat, 14 Apr 2018 11:29:09 -0700 Subject: Moved primitive topology from draw attribs to pipeline desc; fixed multiple issue with mismatching types used by Lua parsers --- RenderScript/src/TextureViewParser.cpp | 55 +++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 14 deletions(-) (limited to 'RenderScript/src/TextureViewParser.cpp') diff --git a/RenderScript/src/TextureViewParser.cpp b/RenderScript/src/TextureViewParser.cpp index 1abc373..c80fcc4 100644 --- a/RenderScript/src/TextureViewParser.cpp +++ b/RenderScript/src/TextureViewParser.cpp @@ -52,21 +52,48 @@ namespace Diligent "Unexpected map size. Did you update TEXTURE_VIEW_TYPE enum?" ); VERIFY( m_ViewTypeEnumMapping.m_Val2StrMap.size() == TEXTURE_VIEW_NUM_VIEWS - 1, "Unexpected map size. Did you update TEXTURE_VIEW_TYPE enum?" ); - DEFINE_ENUM_BINDER( m_Bindings, STexViewDescWrapper, ViewType, TEXTURE_VIEW_TYPE, m_ViewTypeEnumMapping ); + DEFINE_ENUM_BINDER( m_Bindings, STexViewDescWrapper, ViewType, m_ViewTypeEnumMapping ); - DEFINE_ENUM_BINDER( m_Bindings, STexViewDescWrapper, TextureDim, RESOURCE_DIMENSION, m_TexTypeEnumMapping ); - DEFINE_ENUM_BINDER( m_Bindings, STexViewDescWrapper, Format, TEXTURE_FORMAT, m_TexFormatEnumMapping ); - - DEFINE_BINDER( m_Bindings, STexViewDescWrapper, MostDetailedMip, Uint32, Validator( "MostDetailedMip", 0, 16384 ) ); - DEFINE_BINDER( m_Bindings, STexViewDescWrapper, NumMipLevels, Uint32, Validator( "NumMipLevels", 1, 16384 ) ); - - // The following two members are in enum - DEFINE_BINDER( m_Bindings, STexViewDescWrapper, FirstArraySlice, Uint32, Validator( "FirstArraySlice", 0, 16384 ) ); - DEFINE_BINDER( m_Bindings, STexViewDescWrapper, FirstDepthSlice, Uint32, Validator( "FirstDepthSlice", 0, 16384 ) ); - - // The following two members are in enum - DEFINE_BINDER( m_Bindings, STexViewDescWrapper, NumArraySlices, Uint32, Validator( "NumArraySlices", 0, 16384 ) ); - DEFINE_BINDER( m_Bindings, STexViewDescWrapper, NumDepthSlices, Uint32, Validator( "NumDepthSlices", 0, 16384 ) ); + DEFINE_ENUM_BINDER( m_Bindings, STexViewDescWrapper, TextureDim, m_TexTypeEnumMapping ); + DEFINE_ENUM_BINDER( m_Bindings, STexViewDescWrapper, Format, m_TexFormatEnumMapping ); + + { + using MostDetailedMipType = decltype(STexViewDescWrapper::MostDetailedMip); + Validator MostDetailedMipValidator("MostDetailedMip", 0, 16384); + DEFINE_BINDER_EX( m_Bindings, STexViewDescWrapper, MostDetailedMip, MostDetailedMipType, MostDetailedMipValidator); + } + + { + using NumMipLevelsType = decltype(STexViewDescWrapper::NumMipLevels); + Validator NumMipLevelsValidator("NumMipLevels", 1, 16384); + DEFINE_BINDER_EX( m_Bindings, STexViewDescWrapper, NumMipLevels, NumMipLevelsType, NumMipLevelsValidator); + } + + // The following two members are in union + { + using FirstArraySliceType = decltype(STexViewDescWrapper::FirstArraySlice); + Validator FirstArraySliceValidator("FirstArraySlice", 0, 16384); + DEFINE_BINDER_EX( m_Bindings, STexViewDescWrapper, FirstArraySlice, FirstArraySliceType, FirstArraySliceValidator); + } + + { + using FirstDepthSliceType = decltype(STexViewDescWrapper::FirstDepthSlice); + Validator FirstDepthSliceValidator("FirstDepthSlice", 0, 16384); + DEFINE_BINDER_EX( m_Bindings, STexViewDescWrapper, FirstDepthSlice, FirstDepthSliceType, FirstDepthSliceValidator); + } + + // The following two members are in union + { + using NumArraySlicesType = decltype(STexViewDescWrapper::NumArraySlices); + Validator NumArraySlicesValidator("NumArraySlices", 0, 16384); + DEFINE_BINDER_EX( m_Bindings, STexViewDescWrapper, NumArraySlices, NumArraySlicesType, NumArraySlicesValidator); + } + + { + using NumDepthSlicesType = decltype(STexViewDescWrapper::NumDepthSlices); + Validator NumDepthSlicesValidator("NumDepthSlices", 0, 16384); + DEFINE_BINDER_EX( m_Bindings, STexViewDescWrapper, NumDepthSlices, NumDepthSlicesType, NumDepthSlicesValidator); + } DEFINE_ENUM_ELEMENT_MAPPING( m_UAVAccessFlagEnumMapping, UAV_ACCESS_FLAG_READ ); DEFINE_ENUM_ELEMENT_MAPPING( m_UAVAccessFlagEnumMapping, UAV_ACCESS_FLAG_WRITE ); -- cgit v1.2.3