implement per-map shaders
per-class shaders TODO
This commit is contained in:
parent
102a189525
commit
e246639085
12 changed files with 322 additions and 40 deletions
|
|
@ -656,10 +656,20 @@ void VulkanRenderDevice::DownloadLightmap(int arrayIndex, uint16_t* buffer)
|
|||
|
||||
int VulkanRenderDevice::GetBindlessTextureIndex(FMaterial* material, int clampmode, int translation)
|
||||
{
|
||||
GlobalShaderAddr addr;
|
||||
auto globalshader = GetGlobalShader(material->GetShaderIndex(), nullptr, addr);
|
||||
|
||||
FMaterialState materialState;
|
||||
materialState.mMaterial = material;
|
||||
materialState.mClampMode = clampmode;
|
||||
materialState.mTranslation = translation;
|
||||
|
||||
if(addr.type == 1 && *globalshader)
|
||||
{ // handle per-map global shaders
|
||||
materialState.globalShaderAddr = addr;
|
||||
materialState.mOverrideShader = globalshader->shaderindex;
|
||||
}
|
||||
|
||||
return static_cast<VkMaterial*>(material)->GetBindlessIndex(materialState);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue