mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-30 15:59:37 -05:00
Remove screenspacerenderables and iSWACygnets
This commit is contained in:
+6
-9
@@ -72,15 +72,7 @@ properties::Property* property(const std::string& uri) {
|
||||
const std::string nameUri = uri.substr(0, nameSeparator);
|
||||
const std::string remainingUri = uri.substr(nameSeparator + 1);
|
||||
|
||||
SceneGraphNode* node = sceneGraphNode("iSWA");
|
||||
if(node){
|
||||
std::shared_ptr<ISWACygnet> cygnet = static_cast <ISWAContainer*>(node->renderable())->iSWACygnet(nameUri);
|
||||
if(cygnet){
|
||||
return cygnet->property(remainingUri);
|
||||
}
|
||||
}
|
||||
|
||||
node = sceneGraphNode(nameUri);
|
||||
SceneGraphNode* node = sceneGraphNode(nameUri);
|
||||
if (node) {
|
||||
properties::Property* property = node->property(remainingUri);
|
||||
return property;
|
||||
@@ -91,6 +83,11 @@ properties::Property* property(const std::string& uri) {
|
||||
properties::Property* property = ssr->property(remainingUri);
|
||||
return property;
|
||||
}
|
||||
|
||||
std::shared_ptr<ISWACygnet> cygnet = ISWAManager::ref().iSWACygnet(nameUri);
|
||||
if(cygnet){
|
||||
return cygnet->property(remainingUri);
|
||||
}
|
||||
|
||||
LERROR("Node, iSWACygnet or ScreenSpaceRenderable' " << nameUri << "' did not exist");
|
||||
return nullptr;
|
||||
|
||||
@@ -376,6 +376,9 @@ void RenderEngine::postSynchronizationPreDraw() {
|
||||
}
|
||||
}
|
||||
|
||||
if(!_deletedScreenSpaceRenderables.empty())
|
||||
_deletedScreenSpaceRenderables.clear();
|
||||
|
||||
for (auto screenspacerenderable : _screenSpaceRenderables) {
|
||||
screenspacerenderable->update();
|
||||
}
|
||||
@@ -1146,10 +1149,17 @@ void RenderEngine::unregisterScreenSpaceRenderable(std::shared_ptr<ScreenSpaceRe
|
||||
|
||||
if (it != _screenSpaceRenderables.end()) {
|
||||
s->deinitialize();
|
||||
_deletedScreenSpaceRenderables.push_back(s);
|
||||
_screenSpaceRenderables.erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
void RenderEngine::unregisterScreenSpaceRenderable(std::string name){
|
||||
auto s = screenSpaceRenderable(name);
|
||||
if(s)
|
||||
unregisterScreenSpaceRenderable(s);
|
||||
}
|
||||
|
||||
std::shared_ptr<ScreenSpaceRenderable> RenderEngine::screenSpaceRenderable(std::string name){
|
||||
for(auto s : _screenSpaceRenderables){
|
||||
if(s->name() == name){
|
||||
|
||||
@@ -33,6 +33,7 @@ ScreenSpaceRenderable::ScreenSpaceRenderable()
|
||||
, _depth("depth", "Depth", 0, 0, 1)
|
||||
, _scale("scale", "Scale" , 0.5, 0, 2)
|
||||
, _alpha("alpha", "Alpha" , 1, 0, 1)
|
||||
,_delete("delete", "Delete")
|
||||
, _quad(0)
|
||||
, _vertexPositionBuffer(0)
|
||||
,_rendererPath("${SHADERS}/framebuffer/renderframebuffer.frag")
|
||||
@@ -40,6 +41,7 @@ ScreenSpaceRenderable::ScreenSpaceRenderable()
|
||||
,_fragmentPath("${MODULE_BASE}/shaders/screnspace_fs.glsl")
|
||||
,_texture(nullptr)
|
||||
,_shader(nullptr)
|
||||
,_toDelete(false)
|
||||
{
|
||||
addProperty(_enabled);
|
||||
addProperty(_useFlatScreen);
|
||||
@@ -48,6 +50,7 @@ ScreenSpaceRenderable::ScreenSpaceRenderable()
|
||||
addProperty(_depth);
|
||||
addProperty(_scale);
|
||||
addProperty(_alpha);
|
||||
addProperty(_delete);
|
||||
|
||||
_rendererData = ghoul::Dictionary();
|
||||
_rendererData.setValue("fragmentRendererPath", _rendererPath);
|
||||
@@ -70,11 +73,18 @@ ScreenSpaceRenderable::ScreenSpaceRenderable()
|
||||
_useFlatScreen.onChange([this](){
|
||||
useEuclideanCoordinates(_useFlatScreen.value());
|
||||
});
|
||||
|
||||
_delete.onChange([this](){OsEng.renderEngine().unregisterScreenSpaceRenderable(name());});
|
||||
}
|
||||
|
||||
ScreenSpaceRenderable::~ScreenSpaceRenderable(){}
|
||||
|
||||
|
||||
//deinitialzie(){
|
||||
// unregisterProperies
|
||||
// }
|
||||
|
||||
|
||||
bool ScreenSpaceRenderable::isEnabled() const {
|
||||
return _enabled;
|
||||
}
|
||||
@@ -129,13 +139,18 @@ glm::vec2 ScreenSpaceRenderable::toSpherical(glm::vec2 euclidean){
|
||||
}
|
||||
|
||||
void ScreenSpaceRenderable::registerProperties(){
|
||||
OsEng.gui()._property.registerProperty(&_enabled);
|
||||
OsEng.gui()._property.registerProperty(&_useFlatScreen);
|
||||
OsEng.gui()._property.registerProperty(&_euclideanPosition);
|
||||
OsEng.gui()._property.registerProperty(&_sphericalPosition);
|
||||
OsEng.gui()._property.registerProperty(&_depth);
|
||||
OsEng.gui()._property.registerProperty(&_scale);
|
||||
OsEng.gui()._property.registerProperty(&_alpha);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_enabled);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_useFlatScreen);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_euclideanPosition);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_sphericalPosition);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_depth);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_scale);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_alpha);
|
||||
OsEng.gui()._screenSpaceProperty.registerProperty(&_delete);
|
||||
}
|
||||
|
||||
void ScreenSpaceRenderable::unregisterProperties(){
|
||||
OsEng.gui()._screenSpaceProperty.unregisterProperties(name());
|
||||
}
|
||||
|
||||
void ScreenSpaceRenderable::createShaders(){
|
||||
|
||||
Reference in New Issue
Block a user