Renamed functions in effect generator and use cached effects instead of uncached

This commit is contained in:
Magne Sjaastad 2015-08-13 14:35:30 +02:00
parent b9b7d77fc6
commit fa622acb72
9 changed files with 34 additions and 34 deletions

View File

@ -124,7 +124,7 @@ void RivFemPartPartMgr::generatePartGeometry(RivFemPartGeometryGenerator& geoBui
// Set default effect
caf::SurfaceEffectGenerator geometryEffgen(cvf::Color4f(cvf::Color3f::WHITE), caf::PO_1);
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateEffect();
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateCachedEffect();
part->setEffect(geometryOnlyEffect.p());
part->setEnableMask(surfaceBit);
m_surfaceFaces = part;
@ -154,7 +154,7 @@ void RivFemPartPartMgr::generatePartGeometry(RivFemPartGeometryGenerator& geoBui
cvf::ref<cvf::Effect> eff;
caf::MeshEffectGenerator effGen(prefs->defaultGridLineColors());
eff = effGen.generateEffect();
eff = effGen.generateCachedEffect();
// Set priority to make sure fault lines are rendered first
part->setPriority(10);
@ -186,7 +186,7 @@ void RivFemPartPartMgr::updateCellColor(cvf::Color4f color)
// Set default effect
caf::SurfaceEffectGenerator geometryEffgen(color, caf::PO_1);
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateEffect();
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateCachedEffect();
if (m_surfaceFaces.notNull()) m_surfaceFaces->setEffect(geometryOnlyEffect.p());
@ -206,7 +206,7 @@ void RivFemPartPartMgr::updateCellColor(cvf::Color4f color)
if (m_surfaceFaces.notNull())
{
caf::MeshEffectGenerator effGen(prefs->defaultGridLineColors());
eff = effGen.generateEffect();
eff = effGen.generateCachedEffect();
m_surfaceGridLines->setEffect(eff.p());
}
}

View File

@ -368,7 +368,7 @@ void RivFaultPartMgr::updatePartEffect()
caf::SurfaceEffectGenerator geometryEffgen(m_defaultColor, caf::PO_1);
geometryEffgen.setCullBackfaces(faceCullingMode());
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateEffect();
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateCachedEffect();
if (m_nativeFaultFaces.notNull())
{
@ -387,7 +387,7 @@ void RivFaultPartMgr::updatePartEffect()
cvf::ref<cvf::Effect> eff;
caf::MeshEffectGenerator faultEffGen(prefs->defaultFaultGridLineColors());
eff = faultEffGen.generateEffect();
eff = faultEffGen.generateCachedEffect();
if (m_nativeFaultGridLines.notNull())
{
@ -513,7 +513,7 @@ void RivFaultPartMgr::createLabelWithAnchorLine(const cvf::Part* part)
m_faultLabelLinePart->updateBoundingBox();
caf::MeshEffectGenerator gen(m_rimFault->faultColor());
cvf::ref<cvf::Effect> eff = gen.generateEffect();
cvf::ref<cvf::Effect> eff = gen.generateCachedEffect();
m_faultLabelLinePart->setEffect(eff.p());
}
@ -676,13 +676,13 @@ void RivFaultPartMgr::updateNNCColors(RimEclipseCellColors* cellResultColors)
{
// Move NNC closer to camera to avoid z-fighting with grid surface
caf::ScalarMapperEffectGenerator nncEffgen(mapper, caf::PO_NEG_LARGE);
nncEffect = nncEffgen.generateEffect();
nncEffect = nncEffgen.generateCachedEffect();
}
else
{
// If no grid is present, use same offset as grid geometry to be able to see mesh lines
caf::ScalarMapperEffectGenerator nncEffgen(mapper, caf::PO_1);
nncEffect = nncEffgen.generateEffect();
nncEffect = nncEffgen.generateCachedEffect();
}
cvf::DrawableGeo* dg = dynamic_cast<cvf::DrawableGeo*>(m_NNCFaces->drawable());
@ -704,13 +704,13 @@ void RivFaultPartMgr::updateNNCColors(RimEclipseCellColors* cellResultColors)
{
// Move NNC closer to camera to avoid z-fighting with grid surface
caf::SurfaceEffectGenerator nncEffgen(nncColor, caf::PO_NEG_LARGE);
nncEffect = nncEffgen.generateEffect();
nncEffect = nncEffgen.generateCachedEffect();
}
else
{
// If no grid is present, use same offset as grid geometry to be able to see mesh lines
caf::SurfaceEffectGenerator nncEffgen(nncColor, caf::PO_1);
nncEffect = nncEffgen.generateEffect();
nncEffect = nncEffgen.generateCachedEffect();
}
m_NNCFaces->setEffect(nncEffect.p());

View File

@ -133,7 +133,7 @@ void RivGridPartMgr::generatePartGeometry(cvf::StructGridGeometryGenerator& geoB
// Set default effect
caf::SurfaceEffectGenerator geometryEffgen(cvf::Color4f(cvf::Color3f::WHITE), caf::PO_1);
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateEffect();
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateCachedEffect();
part->setEffect(geometryOnlyEffect.p());
part->setEnableMask(surfaceBit);
m_surfaceFaces = part;
@ -161,7 +161,7 @@ void RivGridPartMgr::generatePartGeometry(cvf::StructGridGeometryGenerator& geoB
cvf::ref<cvf::Effect> eff;
caf::MeshEffectGenerator effGen(prefs->defaultGridLineColors());
eff = effGen.generateEffect();
eff = effGen.generateCachedEffect();
// Set priority to make sure fault lines are rendered first
part->setPriority(10);
@ -193,7 +193,7 @@ void RivGridPartMgr::updateCellColor(cvf::Color4f color)
// Set default effect
caf::SurfaceEffectGenerator geometryEffgen(color, caf::PO_1);
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateEffect();
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateCachedEffect();
if (m_surfaceFaces.notNull()) m_surfaceFaces->setEffect(geometryOnlyEffect.p());
@ -213,7 +213,7 @@ void RivGridPartMgr::updateCellColor(cvf::Color4f color)
if (m_surfaceFaces.notNull())
{
caf::MeshEffectGenerator effGen(prefs->defaultGridLineColors());
eff = effGen.generateEffect();
eff = effGen.generateCachedEffect();
m_surfaceGridLines->setEffect(eff.p());
}
}

View File

@ -102,7 +102,7 @@ cvf::ref<cvf::Effect> RivScalarMapperUtils::createCellEdgeEffect(cvf::DrawableGe
cellFaceEffectGen.setFaceCulling(faceCulling);
cellFaceEffectGen.disableLighting(disableLighting);
cvf::ref<cvf::Effect> eff = cellFaceEffectGen.generateEffect();
cvf::ref<cvf::Effect> eff = cellFaceEffectGen.generateCachedEffect();
return eff;
}
@ -119,7 +119,7 @@ cvf::ref<cvf::Effect> RivScalarMapperUtils::createScalarMapperEffect(const cvf::
scalarEffgen.setFaceCulling(faceCulling);
scalarEffgen.disableLighting(disableLighting);
cvf::ref<cvf::Effect> scalarEffect = scalarEffgen.generateEffect();
cvf::ref<cvf::Effect> scalarEffect = scalarEffgen.generateCachedEffect();
return scalarEffect;
}
@ -136,7 +136,7 @@ cvf::ref<cvf::Effect> RivScalarMapperUtils::createTernaryScalarMapperEffect(cons
scalarEffgen.setOpacityLevel(opacityLevel);
scalarEffgen.setFaceCulling(faceCulling);
scalarEffgen.disableLighting(disableLighting);
cvf::ref<cvf::Effect> scalarEffect = scalarEffgen.generateEffect();
cvf::ref<cvf::Effect> scalarEffect = scalarEffgen.generateCachedEffect();
return scalarEffect;
}

View File

@ -180,7 +180,7 @@ void RivWellHeadPartMgr::buildWellHeadParts(size_t frameIndex)
part->setDrawable(pipeSurface.p());
caf::SurfaceEffectGenerator surfaceGen(cvf::Color4f(well->wellPipeColor()), caf::PO_1);
cvf::ref<cvf::Effect> eff = surfaceGen.generateEffect();
cvf::ref<cvf::Effect> eff = surfaceGen.generateCachedEffect();
part->setEffect(eff.p());
@ -194,7 +194,7 @@ void RivWellHeadPartMgr::buildWellHeadParts(size_t frameIndex)
part->setDrawable(centerLineDrawable.p());
caf::MeshEffectGenerator meshGen(well->wellPipeColor());
cvf::ref<cvf::Effect> eff = meshGen.generateEffect();
cvf::ref<cvf::Effect> eff = meshGen.generateCachedEffect();
part->setEffect(eff.p());
@ -276,7 +276,7 @@ void RivWellHeadPartMgr::buildWellHeadParts(size_t frameIndex)
}
caf::SurfaceEffectGenerator surfaceGen(headColor, caf::PO_1);
cvf::ref<cvf::Effect> eff = surfaceGen.generateEffect();
cvf::ref<cvf::Effect> eff = surfaceGen.generateCachedEffect();
part->setEffect(eff.p());
m_wellHeadParts.push_back(part.p());

View File

@ -78,10 +78,10 @@ RivWellPathPartMgr::RivWellPathPartMgr(RimWellPathCollection* wellPathCollection
m_scalarMapper = scalarMapper;
caf::ScalarMapperEffectGenerator surfEffGen(scalarMapper.p(), caf::PO_1);
m_scalarMapperSurfaceEffect = surfEffGen.generateEffect();
m_scalarMapperSurfaceEffect = surfEffGen.generateCachedEffect();
caf::ScalarMapperMeshEffectGenerator meshEffGen(scalarMapper.p());
m_scalarMapperMeshEffect = meshEffGen.generateEffect();
m_scalarMapperMeshEffect = meshEffGen.generateCachedEffect();
}
//--------------------------------------------------------------------------------------------------
@ -160,7 +160,7 @@ void RivWellPathPartMgr::buildWellPathParts(cvf::Vec3d displayModelOffset, doubl
pbd.m_surfacePart->setDrawable(pbd.m_surfaceDrawable.p());
caf::SurfaceEffectGenerator surfaceGen(cvf::Color4f(m_rimWellPath->wellPathColor()), caf::PO_1);
cvf::ref<cvf::Effect> eff = surfaceGen.generateEffect();
cvf::ref<cvf::Effect> eff = surfaceGen.generateCachedEffect();
pbd.m_surfacePart->setEffect(eff.p());
}
@ -171,7 +171,7 @@ void RivWellPathPartMgr::buildWellPathParts(cvf::Vec3d displayModelOffset, doubl
pbd.m_centerLinePart->setDrawable(pbd.m_centerLineDrawable.p());
caf::MeshEffectGenerator gen(m_rimWellPath->wellPathColor());
cvf::ref<cvf::Effect> eff = gen.generateEffect();
cvf::ref<cvf::Effect> eff = gen.generateCachedEffect();
pbd.m_centerLinePart->setEffect(eff.p());
}

View File

@ -74,10 +74,10 @@ RivWellPipesPartMgr::RivWellPipesPartMgr(RimEclipseView* reservoirView, RimEclip
m_scalarMapper = scalarMapper;
caf::ScalarMapperEffectGenerator surfEffGen(scalarMapper.p(), caf::PO_1);
m_scalarMapperSurfaceEffect = surfEffGen.generateEffect();
m_scalarMapperSurfaceEffect = surfEffGen.generateCachedEffect();
caf::ScalarMapperMeshEffectGenerator meshEffGen(scalarMapper.p());
m_scalarMapperMeshEffect = meshEffGen.generateEffect();
m_scalarMapperMeshEffect = meshEffGen.generateCachedEffect();
}
//--------------------------------------------------------------------------------------------------
@ -143,7 +143,7 @@ void RivWellPipesPartMgr::buildWellPipeParts()
pbd.m_surfacePart->setDrawable(pbd.m_surfaceDrawable.p());
caf::SurfaceEffectGenerator surfaceGen(cvf::Color4f(m_rimWell->wellPipeColor()), caf::PO_1);
cvf::ref<cvf::Effect> eff = surfaceGen.generateEffect();
cvf::ref<cvf::Effect> eff = surfaceGen.generateCachedEffect();
pbd.m_surfacePart->setEffect(eff.p());
}
@ -154,7 +154,7 @@ void RivWellPipesPartMgr::buildWellPipeParts()
pbd.m_centerLinePart->setDrawable(pbd.m_centerLineDrawable.p());
caf::MeshEffectGenerator gen(m_rimWell->wellPipeColor());
cvf::ref<cvf::Effect> eff = gen.generateEffect();
cvf::ref<cvf::Effect> eff = gen.generateCachedEffect();
pbd.m_centerLinePart->setEffect(eff.p());
}

View File

@ -157,13 +157,13 @@ EffectGenerator::RenderingModeType EffectGenerator::renderingMode()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::ref<cvf::Effect> EffectGenerator::generateEffectFromCache() const
cvf::ref<cvf::Effect> EffectGenerator::generateCachedEffect() const
{
cvf::ref<cvf::Effect> eff = caf::EffectCache::instance()->findEffect(this);
if (eff.notNull()) return eff.p();
eff = generateEffect();
eff = generateUnCachedEffect();
caf::EffectCache::instance()->addEffect(this, eff.p());
return eff;
@ -173,7 +173,7 @@ cvf::ref<cvf::Effect> EffectGenerator::generateEffectFromCache() const
/// Creates a new effect using the settings in the inherited generator.
/// Creates a new effect and calls the correct update-Effect method dep. on the effect type (software/shader)
//--------------------------------------------------------------------------------------------------
cvf::ref<cvf::Effect> EffectGenerator::generateEffect() const
cvf::ref<cvf::Effect> EffectGenerator::generateUnCachedEffect() const
{
cvf::ref<cvf::Effect> eff = new cvf::Effect;

View File

@ -93,8 +93,8 @@ public:
EffectGenerator() {}
virtual ~EffectGenerator() {}
cvf::ref<cvf::Effect> generateEffect() const;
cvf::ref<cvf::Effect> generateEffectFromCache() const;
cvf::ref<cvf::Effect> generateUnCachedEffect() const;
cvf::ref<cvf::Effect> generateCachedEffect() const;
void updateEffect(cvf::Effect* effect) const;
static void setRenderingMode(RenderingModeType effectType);