Skip to content

Commit

Permalink
#5532: Rename ShaderLayer.h to ishaderlayer.h
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Mar 13, 2021
1 parent 59f6e2f commit dd315a2
Show file tree
Hide file tree
Showing 16 changed files with 67 additions and 77 deletions.
13 changes: 6 additions & 7 deletions include/iglrender.h
Expand Up @@ -3,8 +3,7 @@
#include "igl.h"
#include "imodule.h"
#include "ishaders.h"

#include "ShaderLayer.h"
#include "ishaderlayer.h"

#include "math/Vector4.h"

Expand Down Expand Up @@ -173,11 +172,11 @@ class OpenGLState
* which hold the actual values of many parameters, some of them
* time-dependent or depending on entity parameters.
*/
ShaderLayerPtr stage0;
ShaderLayerPtr stage1;
ShaderLayerPtr stage2;
ShaderLayerPtr stage3;
ShaderLayerPtr stage4;
ShaderLayer::Ptr stage0;
ShaderLayer::Ptr stage1;
ShaderLayer::Ptr stage2;
ShaderLayer::Ptr stage3;
ShaderLayer::Ptr stage4;

/**
* \brief
Expand Down
2 changes: 1 addition & 1 deletion include/irender.h
Expand Up @@ -6,7 +6,7 @@
#include "math/Vector3.h"
#include "math/AABB.h"

#include "ShaderLayer.h"
#include "ishaderlayer.h"
#include <sigc++/signal.h>

/**
Expand Down
9 changes: 2 additions & 7 deletions include/ShaderLayer.h → include/ishaderlayer.h
Expand Up @@ -54,6 +54,7 @@ class BlendFunc
class ShaderLayer
{
public:
using Ptr = std::shared_ptr<ShaderLayer>;

/// Enumeration of layer types.
enum Type
Expand Down Expand Up @@ -371,15 +372,9 @@ class ShaderLayer
virtual int getParseFlags() const = 0;
};

/**
* \brief
* Shader pointer for ShaderLayer,
*/
typedef std::shared_ptr<ShaderLayer> ShaderLayerPtr;

/**
* \brief
* Vector of ShaderLayer pointers.
*/
typedef std::vector<ShaderLayerPtr> ShaderLayerVector;
typedef std::vector<ShaderLayer::Ptr> ShaderLayerVector;

2 changes: 1 addition & 1 deletion include/ishaders.h
Expand Up @@ -12,7 +12,7 @@
#include <vector>

#include "Texture.h"
#include "ShaderLayer.h"
#include "ishaderlayer.h"
#include "ishaderexpression.h"

class Image;
Expand Down
2 changes: 1 addition & 1 deletion include/precompiled_interfaces.h
Expand Up @@ -95,7 +95,7 @@
#include "mapfile.h"
#include "modelskin.h"
#include "ModResource.h"
#include "ShaderLayer.h"
#include "ishaderlayer.h"
#include "StringSerialisable.h"
#include "Texture.h"
#include "VolumeIntersectionValue.h"
Expand Down
2 changes: 1 addition & 1 deletion libs/materials/ParseLib.h
Expand Up @@ -2,7 +2,7 @@

#include <map>
#include "ishaders.h"
#include "ShaderLayer.h"
#include "ishaderlayer.h"

namespace shaders
{
Expand Down
68 changes: 34 additions & 34 deletions radiant/ui/materials/MaterialEditor.cpp
Expand Up @@ -355,8 +355,8 @@ void MaterialEditor::setupMaterialStageView()

void MaterialEditor::setupStageFlag(const std::string& controlName, int flags)
{
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayerPtr>>(getControl<wxCheckBox>(controlName),
[=](const ShaderLayerPtr& layer)
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayer::Ptr>>(getControl<wxCheckBox>(controlName),
[=](const ShaderLayer::Ptr& layer)
{
return (layer->getStageFlags() & flags) == flags;
}));
Expand All @@ -368,10 +368,10 @@ void MaterialEditor::prepareMaterialForSave()
}

void MaterialEditor::createExpressionBinding(const std::string& textCtrlName,
const std::function<shaders::IShaderExpressionPtr(const ShaderLayerPtr&)>& loadFunc,
const std::function<void(const ShaderLayerPtr&, const std::string&)>& saveFunc)
const std::function<shaders::IShaderExpressionPtr(const ShaderLayer::Ptr&)>& loadFunc,
const std::function<void(const ShaderLayer::Ptr&, const std::string&)>& saveFunc)
{
_stageBindings.emplace(std::make_shared<ExpressionBinding<ShaderLayerPtr>>(
_stageBindings.emplace(std::make_shared<ExpressionBinding<ShaderLayer::Ptr>>(
getControl<wxTextCtrl>(textCtrlName),
loadFunc,
std::bind(&MaterialEditor::prepareMaterialForSave, this),
Expand All @@ -388,8 +388,8 @@ void MaterialEditor::setupMaterialStageProperties()
setupStageFlag("MaterialStageFlagMaskDepth", ShaderLayer::FLAG_MASK_DEPTH);
setupStageFlag("MaterialStageIgnoreAlphaTest", ShaderLayer::FLAG_IGNORE_ALPHATEST);

_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayerPtr>>(getControl<wxCheckBox>("MaterialStageHasAlphaTest"),
[](const ShaderLayerPtr& layer)
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayer::Ptr>>(getControl<wxCheckBox>("MaterialStageHasAlphaTest"),
[](const ShaderLayer::Ptr& layer)
{
return layer->hasAlphaTest();
}));
Expand Down Expand Up @@ -423,17 +423,17 @@ void MaterialEditor::setupMaterialStageProperties()
}

// Texture
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayerPtr>>(getControl<wxCheckBox>("MaterialStageClamp"),
[](const ShaderLayerPtr& layer) { return layer->getClampType() == CLAMP_NOREPEAT; }));
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayerPtr>>(getControl<wxCheckBox>("MaterialStageNoclamp"),
[](const ShaderLayerPtr& layer)
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayer::Ptr>>(getControl<wxCheckBox>("MaterialStageClamp"),
[](const ShaderLayer::Ptr& layer) { return layer->getClampType() == CLAMP_NOREPEAT; }));
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayer::Ptr>>(getControl<wxCheckBox>("MaterialStageNoclamp"),
[](const ShaderLayer::Ptr& layer)
{
return layer->getClampType() == CLAMP_REPEAT && (layer->getParseFlags() & ShaderLayer::PF_HasNoclampKeyword) != 0;
}));
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayerPtr>>(getControl<wxCheckBox>("MaterialStageZeroClamp"),
[](const ShaderLayerPtr& layer) { return layer->getClampType() == CLAMP_ZEROCLAMP; }));
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayerPtr>>(getControl<wxCheckBox>("MaterialStageAlphaZeroClamp"),
[](const ShaderLayerPtr& layer) { return layer->getClampType() == CLAMP_ALPHAZEROCLAMP; }));
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayer::Ptr>>(getControl<wxCheckBox>("MaterialStageZeroClamp"),
[](const ShaderLayer::Ptr& layer) { return layer->getClampType() == CLAMP_ZEROCLAMP; }));
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayer::Ptr>>(getControl<wxCheckBox>("MaterialStageAlphaZeroClamp"),
[](const ShaderLayer::Ptr& layer) { return layer->getClampType() == CLAMP_ALPHAZEROCLAMP; }));

setupStageFlag("MaterialStageFilterNearest", ShaderLayer::FLAG_FILTER_NEAREST);
setupStageFlag("MaterialStageFilterLinear", ShaderLayer::FLAG_FILTER_LINEAR);
Expand All @@ -451,42 +451,42 @@ void MaterialEditor::setupMaterialStageProperties()
}

createExpressionBinding("MaterialStageTranslateX",
[](const ShaderLayerPtr& layer) { return layer->getTranslationExpression(0); });
[](const ShaderLayer::Ptr& layer) { return layer->getTranslationExpression(0); });
createExpressionBinding("MaterialStageTranslateY",
[](const ShaderLayerPtr& layer) { return layer->getTranslationExpression(1); });
[](const ShaderLayer::Ptr& layer) { return layer->getTranslationExpression(1); });

createExpressionBinding("MaterialStageScaleX",
[](const ShaderLayerPtr& layer) { return layer->getScaleExpression(0); });
[](const ShaderLayer::Ptr& layer) { return layer->getScaleExpression(0); });
createExpressionBinding("MaterialStageScaleY",
[](const ShaderLayerPtr& layer) { return layer->getScaleExpression(1); });
[](const ShaderLayer::Ptr& layer) { return layer->getScaleExpression(1); });

createExpressionBinding("MaterialStageCenterScaleX",
[](const ShaderLayerPtr& layer) { return layer->getCenterScaleExpression(0); });
[](const ShaderLayer::Ptr& layer) { return layer->getCenterScaleExpression(0); });
createExpressionBinding("MaterialStageCenterScaleY",
[](const ShaderLayerPtr& layer) { return layer->getCenterScaleExpression(1); });
[](const ShaderLayer::Ptr& layer) { return layer->getCenterScaleExpression(1); });

createExpressionBinding("MaterialStageShearX",
[](const ShaderLayerPtr& layer) { return layer->getShearExpression(0); });
[](const ShaderLayer::Ptr& layer) { return layer->getShearExpression(0); });
createExpressionBinding("MaterialStageShearY",
[](const ShaderLayerPtr& layer) { return layer->getShearExpression(1); });
[](const ShaderLayer::Ptr& layer) { return layer->getShearExpression(1); });

createExpressionBinding("MaterialStageRotate",
[](const ShaderLayerPtr& layer) { return layer->getRotationExpression(); });
[](const ShaderLayer::Ptr& layer) { return layer->getRotationExpression(); });

createExpressionBinding("MaterialStageCondition",
[](const ShaderLayerPtr& layer) { return layer->getConditionExpression(); });
[](const ShaderLayer::Ptr& layer) { return layer->getConditionExpression(); });

_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayerPtr>>(getControl<wxCheckBox>("MaterialStageColored"),
[](const ShaderLayerPtr& layer) { return (layer->getParseFlags() & ShaderLayer::PF_HasColoredKeyword) != 0; }));
_stageBindings.emplace(std::make_shared<CheckBoxBinding<ShaderLayer::Ptr>>(getControl<wxCheckBox>("MaterialStageColored"),
[](const ShaderLayer::Ptr& layer) { return (layer->getParseFlags() & ShaderLayer::PF_HasColoredKeyword) != 0; }));

createExpressionBinding("MaterialStageRed",
[](const ShaderLayerPtr& layer) { return layer->getColourExpression(ShaderLayer::COMP_RED); });
[](const ShaderLayer::Ptr& layer) { return layer->getColourExpression(ShaderLayer::COMP_RED); });
createExpressionBinding("MaterialStageGreen",
[](const ShaderLayerPtr& layer) { return layer->getColourExpression(ShaderLayer::COMP_GREEN); });
[](const ShaderLayer::Ptr& layer) { return layer->getColourExpression(ShaderLayer::COMP_GREEN); });
createExpressionBinding("MaterialStageBlue",
[](const ShaderLayerPtr& layer) { return layer->getColourExpression(ShaderLayer::COMP_BLUE); });
[](const ShaderLayer::Ptr& layer) { return layer->getColourExpression(ShaderLayer::COMP_BLUE); });
createExpressionBinding("MaterialStageAlpha",
[](const ShaderLayerPtr& layer) { return layer->getColourExpression(ShaderLayer::COMP_ALPHA); });
[](const ShaderLayer::Ptr& layer) { return layer->getColourExpression(ShaderLayer::COMP_ALPHA); });

auto parameterPanel = getControl<wxPanel>("MaterialStageProgramParameters");
_stageProgramParameters = wxutil::TreeModel::Ptr(new wxutil::TreeModel(_stageProgramColumns, true));
Expand Down Expand Up @@ -801,11 +801,11 @@ void MaterialEditor::selectStageByIndex(std::size_t index)
updateStageControls();
}

ShaderLayerPtr MaterialEditor::getSelectedStage()
ShaderLayer::Ptr MaterialEditor::getSelectedStage()
{
auto selectedStageItem = _stageView->GetSelection();

if (!selectedStageItem.IsOk() || !_material) return ShaderLayerPtr();
if (!selectedStageItem.IsOk() || !_material) return ShaderLayer::Ptr();

const auto& layers = _material->getAllLayers();
wxutil::TreeModel::Row stageRow(selectedStageItem, *_stageList);
Expand All @@ -816,7 +816,7 @@ ShaderLayerPtr MaterialEditor::getSelectedStage()
return layers[stageIndex];
}

return ShaderLayerPtr();
return ShaderLayer::Ptr();
}

void MaterialEditor::updateStageBlendControls()
Expand Down
8 changes: 4 additions & 4 deletions radiant/ui/materials/MaterialEditor.h
Expand Up @@ -35,7 +35,7 @@ class MaterialEditor :
MaterialPtr _material;

std::set<std::shared_ptr<Binding<MaterialPtr>>> _materialBindings;
std::set<std::shared_ptr<Binding<ShaderLayerPtr>>> _stageBindings;
std::set<std::shared_ptr<Binding<ShaderLayer::Ptr>>> _stageBindings;
std::map<Material::DeformType, wxPanel*> _deformPanels;

struct StageProgramParmsColumns :
Expand Down Expand Up @@ -78,16 +78,16 @@ class MaterialEditor :
void setupStageFlag(const std::string& controlName, int flags);

void createExpressionBinding(const std::string& textCtrlName,
const std::function<shaders::IShaderExpressionPtr(const ShaderLayerPtr&)>& loadFunc,
const std::function<void(const ShaderLayerPtr&, const std::string&)>& saveFunc = std::function<void(const ShaderLayerPtr&, const std::string&)>());
const std::function<shaders::IShaderExpressionPtr(const ShaderLayer::Ptr&)>& loadFunc,
const std::function<void(const ShaderLayer::Ptr&, const std::string&)>& saveFunc = std::function<void(const ShaderLayer::Ptr&, const std::string&)>());

void updateControlsFromMaterial();
void updateDeformControlsFromMaterial();
void updateStageListFromMaterial();
void updateMaterialPropertiesFromMaterial();

void selectStageByIndex(std::size_t index);
ShaderLayerPtr getSelectedStage();
ShaderLayer::Ptr getSelectedStage();

void prepareMaterialForSave();

Expand Down
10 changes: 5 additions & 5 deletions radiantcore/rendersystem/backend/OpenGLShader.cpp
Expand Up @@ -18,9 +18,9 @@ namespace render
struct OpenGLShader::DBSTriplet
{
// DBS layers
ShaderLayerPtr diffuse;
ShaderLayerPtr bump;
ShaderLayerPtr specular;
ShaderLayer::Ptr diffuse;
ShaderLayer::Ptr bump;
ShaderLayer::Ptr specular;

// Need-depth-fill flag
bool needDepthFill;
Expand Down Expand Up @@ -446,7 +446,7 @@ void OpenGLShader::determineBlendModeForEditorPass(OpenGLState& pass)
i != allLayers.end();
++i)
{
const ShaderLayerPtr& layer = *i;
const ShaderLayer::Ptr& layer = *i;

if (layer->getType() == ShaderLayer::DIFFUSE)
{
Expand Down Expand Up @@ -522,7 +522,7 @@ void OpenGLShader::constructEditorPreviewPassFromMaterial()
}

// Append a blend (non-interaction) layer
void OpenGLShader::appendBlendLayer(const ShaderLayerPtr& layer)
void OpenGLShader::appendBlendLayer(const ShaderLayer::Ptr& layer)
{
TexturePtr layerTex = layer->getTexture();

Expand Down
2 changes: 1 addition & 1 deletion radiantcore/rendersystem/backend/OpenGLShader.h
Expand Up @@ -48,7 +48,7 @@ class OpenGLShader :
void constructNormalShader(const std::string& name);

// Shader pass construction helpers
void appendBlendLayer(const ShaderLayerPtr& layer);
void appendBlendLayer(const ShaderLayer::Ptr& layer);

struct DBSTriplet;
void appendInteractionLayer(const DBSTriplet& triplet);
Expand Down
4 changes: 2 additions & 2 deletions radiantcore/rendersystem/backend/OpenGLShaderPass.cpp
Expand Up @@ -65,7 +65,7 @@ inline void setState(unsigned int state,
}
}

inline void evaluateStage(const ShaderLayerPtr& stage, std::size_t time, const IRenderEntity* entity)
inline void evaluateStage(const ShaderLayer::Ptr& stage, std::size_t time, const IRenderEntity* entity)
{
if (stage)
{
Expand Down Expand Up @@ -147,7 +147,7 @@ void OpenGLShaderPass::disableRenderBlend()
debug::assertNoGlErrors();
}

void OpenGLShaderPass::setupTextureMatrix(GLenum textureUnit, const ShaderLayerPtr& stage)
void OpenGLShaderPass::setupTextureMatrix(GLenum textureUnit, const ShaderLayer::Ptr& stage)
{
// Set the texture matrix for the given unit
glActiveTexture(textureUnit);
Expand Down
2 changes: 1 addition & 1 deletion radiantcore/rendersystem/backend/OpenGLShaderPass.h
Expand Up @@ -82,7 +82,7 @@ class OpenGLShaderPass
// Returns true if the stage associated to this pass is active and should be rendered
bool stateIsActive();

void setupTextureMatrix(GLenum textureUnit, const ShaderLayerPtr& stage);
void setupTextureMatrix(GLenum textureUnit, const ShaderLayer::Ptr& stage);

// Render all of the given TransformedRenderables
void renderAllContained(const Renderables& renderables,
Expand Down
8 changes: 2 additions & 6 deletions radiantcore/shaders/Doom3ShaderLayer.h
Expand Up @@ -115,6 +115,8 @@ class Doom3ShaderLayer :
int _parseFlags;

public:
using Ptr = std::shared_ptr<Doom3ShaderLayer>;

Doom3ShaderLayer(ShaderTemplate& material,
ShaderLayer::Type type = ShaderLayer::BLEND,
const NamedBindablePtr& btex = NamedBindablePtr());
Expand Down Expand Up @@ -539,11 +541,5 @@ class Doom3ShaderLayer :
void setParseFlag(ParseFlags flag);
};

/**
* \brief
* Pointer typedef for Doom3ShaderLayer.
*/
typedef std::shared_ptr<Doom3ShaderLayer> Doom3ShaderLayerPtr;

}

2 changes: 1 addition & 1 deletion radiantcore/shaders/ShaderTemplate.cpp
Expand Up @@ -1374,7 +1374,7 @@ void ShaderTemplate::parseDefinition()
}
}

void ShaderTemplate::addLayer(const Doom3ShaderLayerPtr& layer)
void ShaderTemplate::addLayer(const Doom3ShaderLayer::Ptr& layer)
{
// Add the layer
_layers.emplace_back(layer);
Expand Down
8 changes: 4 additions & 4 deletions radiantcore/shaders/ShaderTemplate.h
Expand Up @@ -29,12 +29,12 @@ class ShaderTemplate final
std::string _name;

// Temporary current layer (used by the parsing functions)
Doom3ShaderLayerPtr _currentLayer;
Doom3ShaderLayer::Ptr _currentLayer;

public:

// Vector of LayerTemplates representing each stage in the material
std::vector<Doom3ShaderLayerPtr> _layers;
std::vector<Doom3ShaderLayer::Ptr> _layers;

// Editorimage texture
NamedBindablePtr _editorTex;
Expand Down Expand Up @@ -251,7 +251,7 @@ class ShaderTemplate final
return _coverage;
}

const std::vector<Doom3ShaderLayerPtr>& getLayers()
const std::vector<Doom3ShaderLayer::Ptr>& getLayers()
{
if (!_parsed) parseDefinition();
return _layers;
Expand Down Expand Up @@ -347,7 +347,7 @@ class ShaderTemplate final
private:

// Add the given layer and assigns editor preview layer if applicable
void addLayer(const Doom3ShaderLayerPtr& layer);
void addLayer(const Doom3ShaderLayer::Ptr& layer);

/**
* Parse a Doom 3 material decl. This is the master parse function, it
Expand Down

0 comments on commit dd315a2

Please sign in to comment.