mirror of https://github.com/bkaradzic/bgfx
Fixed isampler and usampler for metal/spirv (#1903)
This commit is contained in:
parent
72eb05b71e
commit
3a6f9ff5b0
|
@ -564,6 +564,22 @@ namespace bgfx { namespace metal
|
|||
return bgfx::Attrib::Count;
|
||||
}
|
||||
|
||||
static const char* s_samplerTypes[] =
|
||||
{
|
||||
"BgfxSampler2D",
|
||||
"BgfxISampler2D",
|
||||
"BgfxUSampler2D",
|
||||
"BgfxSampler2DArray",
|
||||
"BgfxSampler2DShadow",
|
||||
"BgfxSampler2DArrayShadow",
|
||||
"BgfxSampler3D",
|
||||
"BgfxISampler3D",
|
||||
"BgfxUSampler3D",
|
||||
"BgfxSamplerCube",
|
||||
"BgfxSamplerCubeShadow",
|
||||
"BgfxSampler2DMS",
|
||||
};
|
||||
|
||||
static uint16_t writeUniformArray(bx::WriterI* _writer, const UniformArray& uniforms, bool isFragmentShader)
|
||||
{
|
||||
uint16_t size = 0;
|
||||
|
@ -713,13 +729,17 @@ namespace bgfx { namespace metal
|
|||
if (index != std::string::npos)
|
||||
{
|
||||
bool found = false;
|
||||
|
||||
if (!bx::findIdentifierMatch(strLine.c_str(), "SamplerState").isEmpty() ||
|
||||
!bx::findIdentifierMatch(strLine.c_str(), "SamplerComparisonState").isEmpty())
|
||||
|
||||
for (int32_t ii = 0; ii < BX_COUNTOF(s_samplerTypes); ++ii)
|
||||
{
|
||||
found = true;
|
||||
if (!bx::findIdentifierMatch(strLine.c_str(), s_samplerTypes[ii]).isEmpty())
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
if (!found)
|
||||
{
|
||||
for (int32_t ii = 0, num = program->getNumLiveUniformVariables(); ii < num; ++ii)
|
||||
{
|
||||
|
|
|
@ -613,6 +613,22 @@ namespace bgfx { namespace spirv
|
|||
return bgfx::Attrib::Count;
|
||||
}
|
||||
|
||||
static const char* s_samplerTypes[] =
|
||||
{
|
||||
"BgfxSampler2D",
|
||||
"BgfxISampler2D",
|
||||
"BgfxUSampler2D",
|
||||
"BgfxSampler2DArray",
|
||||
"BgfxSampler2DShadow",
|
||||
"BgfxSampler2DArrayShadow",
|
||||
"BgfxSampler3D",
|
||||
"BgfxISampler3D",
|
||||
"BgfxUSampler3D",
|
||||
"BgfxSamplerCube",
|
||||
"BgfxSamplerCubeShadow",
|
||||
"BgfxSampler2DMS",
|
||||
};
|
||||
|
||||
static uint16_t writeUniformArray(bx::WriterI* _writer, const UniformArray& uniforms, bool isFragmentShader)
|
||||
{
|
||||
uint16_t size = 0;
|
||||
|
@ -767,12 +783,16 @@ namespace bgfx { namespace spirv
|
|||
{
|
||||
bool found = false;
|
||||
|
||||
if (!bx::findIdentifierMatch(strLine.c_str(), "SamplerState").isEmpty() ||
|
||||
!bx::findIdentifierMatch(strLine.c_str(), "SamplerComparisonState").isEmpty())
|
||||
for (int32_t ii = 0; ii < BX_COUNTOF(s_samplerTypes); ++ii)
|
||||
{
|
||||
found = true;
|
||||
if (!bx::findIdentifierMatch(strLine.c_str(), s_samplerTypes[ii]).isEmpty())
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
if (!found)
|
||||
{
|
||||
for (int32_t ii = 0, num = program->getNumLiveUniformVariables(); ii < num; ++ii)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue