Skip to content

Commit

Permalink
#6052: mirrorRenderMap and RemoteRenderMap are allowed to have map ex…
Browse files Browse the repository at this point in the history
…pressions in their stage block
  • Loading branch information
codereader committed Aug 5, 2022
1 parent 8bc55e4 commit 74c8f3d
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
14 changes: 14 additions & 0 deletions radiantcore/shaders/MaterialSourceGenerator.cpp
Expand Up @@ -316,10 +316,24 @@ void writeBlendMap(std::ostream& stream, Doom3ShaderLayer& layer)
case IShaderLayer::MapType::MirrorRenderMap:
stream << "\t\tmirrorRenderMap " << static_cast<int>(layer.getRenderMapSize().x()) << ", "
<< static_cast<int>(layer.getRenderMapSize().y()) << "\n";

// Mirror render stages are allowed to have map expressions
if (mapExpr)
{
stream << "\t\tmap " << (mapExpr ? mapExpr->getExpressionString() : "") << "\n";
}

break;
case IShaderLayer::MapType::RemoteRenderMap:
stream << "\t\tremoteRenderMap " << static_cast<int>(layer.getRenderMapSize().x()) << ", "
<< static_cast<int>(layer.getRenderMapSize().y()) << "\n";

// Remote render stages are allowed to have map expressions
if (mapExpr)
{
stream << "\t\tmap " << (mapExpr ? mapExpr->getExpressionString() : "") << "\n";
}

break;
case IShaderLayer::MapType::VideoMap:
{
Expand Down
20 changes: 20 additions & 0 deletions test/MaterialExport.cpp
Expand Up @@ -498,10 +498,30 @@ TEST_F(MaterialExportTest, StageMaps)

material->revertModifications();

// Mirror Render Map with extra map expression
layer = material->getEditableLayer(material->addLayer(IShaderLayer::BLEND));
layer->setMapType(IShaderLayer::MapType::MirrorRenderMap);
layer->setMapExpressionFromString("textures/common/mirror.tga");
layer->setRenderMapSize(Vector2(512, 256));
expectDefinitionContains(material, "mirrorRenderMap 512, 256");
expectDefinitionContains(material, "map textures/common/mirror.tga");

material->revertModifications();

layer = material->getEditableLayer(material->addLayer(IShaderLayer::BLEND));
layer->setMapType(IShaderLayer::MapType::RemoteRenderMap);
layer->setRenderMapSize(Vector2(512, 256));
expectDefinitionContains(material, "remoteRenderMap 512, 256");

material->revertModifications();

// Remote Render Map with extra map expression
layer = material->getEditableLayer(material->addLayer(IShaderLayer::BLEND));
layer->setMapType(IShaderLayer::MapType::RemoteRenderMap);
layer->setRenderMapSize(Vector2(512, 256));
layer->setMapExpressionFromString("textures/remoteRender.tga");
expectDefinitionContains(material, "remoteRenderMap 512, 256");
expectDefinitionContains(material, "map textures/remoteRender.tga");

material->revertModifications();

Expand Down

0 comments on commit 74c8f3d

Please sign in to comment.