diff --git a/data/scene/missions/rosetta/67P/67P.mod b/data/scene/missions/rosetta/67P/67P.mod index 91c3ac13ba..ca06b45f03 100644 --- a/data/scene/missions/rosetta/67P/67P.mod +++ b/data/scene/missions/rosetta/67P/67P.mod @@ -22,10 +22,7 @@ return { GeometryFile = "obj/67P_rotated_5_130.obj", Magnification = 0, }, - Textures = { - Color = "textures/gray.jpg", - -- Color = "textures/may9_map.jpg", - }, + ColorTexture = "textures/gray.jpg", Projection = { Sequence = "rosettaimages", SequenceType = "image-sequence", diff --git a/include/openspace/rendering/renderable.h b/include/openspace/rendering/renderable.h index 623535fc81..9feffdb280 100644 --- a/include/openspace/rendering/renderable.h +++ b/include/openspace/rendering/renderable.h @@ -64,8 +64,8 @@ public: Renderable(const ghoul::Dictionary& dictionary); virtual ~Renderable(); - virtual bool initialize() = 0; - virtual bool deinitialize() = 0; + virtual void initialize(); + virtual void deinitialize(); virtual bool isReady() const = 0; bool isEnabled() const; diff --git a/include/openspace/scene/scenegraphnode.h b/include/openspace/scene/scenegraphnode.h index 7f940aafc7..0c4a95e9fa 100644 --- a/include/openspace/scene/scenegraphnode.h +++ b/include/openspace/scene/scenegraphnode.h @@ -75,8 +75,8 @@ public: static std::unique_ptr createFromDictionary(const ghoul::Dictionary& dictionary); - bool initialize(); - bool deinitialize(); + void initialize(); + void deinitialize(); void traversePreOrder(std::function fn); void traversePostOrder(std::function fn); diff --git a/modules/base/rendering/renderablemodel.cpp b/modules/base/rendering/renderablemodel.cpp index 3fce045e87..f096f547fa 100644 --- a/modules/base/rendering/renderablemodel.cpp +++ b/modules/base/rendering/renderablemodel.cpp @@ -156,7 +156,7 @@ bool RenderableModel::isReady() const { return _programObject && _texture; } -bool RenderableModel::initialize() { +void RenderableModel::initialize() { _programObject = OsEng.renderEngine().buildRenderProgram( "ModelProgram", "${MODULE_BASE}/shaders/model_vs.glsl", @@ -165,13 +165,10 @@ bool RenderableModel::initialize() { loadTexture(); - bool completeSuccess = true; - completeSuccess &= (_texture != nullptr); - completeSuccess &= _geometry->initialize(this); - return completeSuccess; + _geometry->initialize(this); } -bool RenderableModel::deinitialize() { +void RenderableModel::deinitialize() { if (_geometry) { _geometry->deinitialize(); _geometry = nullptr; @@ -182,8 +179,6 @@ bool RenderableModel::deinitialize() { OsEng.renderEngine().removeRenderProgram(_programObject); _programObject = nullptr; } - - return true; } void RenderableModel::render(const RenderData& data, RendererTasks&) { diff --git a/modules/base/rendering/renderablemodel.h b/modules/base/rendering/renderablemodel.h index 57a7f600b8..86b8d1c35f 100644 --- a/modules/base/rendering/renderablemodel.h +++ b/modules/base/rendering/renderablemodel.h @@ -51,8 +51,8 @@ class RenderableModel : public Renderable { public: RenderableModel(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderableplane.cpp b/modules/base/rendering/renderableplane.cpp index 875cf27f4c..432c898e3a 100644 --- a/modules/base/rendering/renderableplane.cpp +++ b/modules/base/rendering/renderableplane.cpp @@ -179,7 +179,7 @@ bool RenderablePlane::isReady() const { return _shader && _texture; } -bool RenderablePlane::initialize() { +void RenderablePlane::initialize() { glGenVertexArrays(1, &_quad); // generate array glGenBuffers(1, &_vertexPositionBuffer); // generate buffer createPlane(); @@ -190,11 +190,9 @@ bool RenderablePlane::initialize() { ); loadTexture(); - - return isReady(); } -bool RenderablePlane::deinitialize() { +void RenderablePlane::deinitialize() { glDeleteVertexArrays(1, &_quad); _quad = 0; @@ -208,8 +206,6 @@ bool RenderablePlane::deinitialize() { renderEngine.removeRenderProgram(_shader); _shader = nullptr; } - - return true; } void RenderablePlane::render(const RenderData& data, RendererTasks&) { diff --git a/modules/base/rendering/renderableplane.h b/modules/base/rendering/renderableplane.h index 143a004cae..a18659d6b1 100644 --- a/modules/base/rendering/renderableplane.h +++ b/modules/base/rendering/renderableplane.h @@ -54,8 +54,8 @@ class RenderablePlane : public Renderable { public: RenderablePlane(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderablesphere.cpp b/modules/base/rendering/renderablesphere.cpp index 3276b08098..9ea2204c79 100644 --- a/modules/base/rendering/renderablesphere.cpp +++ b/modules/base/rendering/renderablesphere.cpp @@ -202,7 +202,7 @@ bool RenderableSphere::isReady() const { return _shader && _texture; } -bool RenderableSphere::initialize() { +void RenderableSphere::initialize() { _sphere = std::make_unique( PowerScaledScalar::CreatePSS(_size), _segments ); @@ -214,19 +214,15 @@ bool RenderableSphere::initialize() { "${MODULE_BASE}/shaders/sphere_fs.glsl"); loadTexture(); - - return isReady(); } -bool RenderableSphere::deinitialize() { +void RenderableSphere::deinitialize() { _texture = nullptr; if (_shader) { OsEng.renderEngine().removeRenderProgram(_shader); _shader = nullptr; } - - return true; } void RenderableSphere::render(const RenderData& data, RendererTasks&) { diff --git a/modules/base/rendering/renderablesphere.h b/modules/base/rendering/renderablesphere.h index 12417125d2..2e7a223b31 100644 --- a/modules/base/rendering/renderablesphere.h +++ b/modules/base/rendering/renderablesphere.h @@ -49,8 +49,8 @@ class RenderableSphere : public Renderable { public: RenderableSphere(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderablesphericalgrid.cpp b/modules/base/rendering/renderablesphericalgrid.cpp index 041ef3a45c..bd6b558a55 100644 --- a/modules/base/rendering/renderablesphericalgrid.cpp +++ b/modules/base/rendering/renderablesphericalgrid.cpp @@ -179,7 +179,7 @@ bool RenderableSphericalGrid::isReady() const { return ready; } -bool RenderableSphericalGrid::deinitialize() { +void RenderableSphericalGrid::deinitialize() { glDeleteVertexArrays(1,&_vaoID); _vaoID = 0; @@ -188,11 +188,9 @@ bool RenderableSphericalGrid::deinitialize() { glDeleteBuffers(1,&_iBufferID); _iBufferID = 0; - - return true; } -bool RenderableSphericalGrid::initialize() { +void RenderableSphericalGrid::initialize() { _gridProgram = OsEng.renderEngine().buildRenderProgram( "GridProgram", "${MODULE_BASE}/shaders/grid_vs.glsl", @@ -208,8 +206,6 @@ bool RenderableSphericalGrid::initialize() { glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _iBufferID); glEnableVertexAttribArray(0); glBindVertexArray(0); - - return true; } void RenderableSphericalGrid::render(const RenderData& data, RendererTasks&){ diff --git a/modules/base/rendering/renderablesphericalgrid.h b/modules/base/rendering/renderablesphericalgrid.h index 9d4c0ef789..7774c8d7d7 100644 --- a/modules/base/rendering/renderablesphericalgrid.h +++ b/modules/base/rendering/renderablesphericalgrid.h @@ -48,8 +48,8 @@ public: RenderableSphericalGrid(const ghoul::Dictionary& dictionary); ~RenderableSphericalGrid(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderabletrail.cpp b/modules/base/rendering/renderabletrail.cpp index 89725e32d3..cd88928123 100644 --- a/modules/base/rendering/renderabletrail.cpp +++ b/modules/base/rendering/renderabletrail.cpp @@ -217,7 +217,7 @@ RenderableTrail::RenderableTrail(const ghoul::Dictionary& dictionary) addProperty(_renderingModes); } -bool RenderableTrail::initialize() { +void RenderableTrail::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _programObject = renderEngine.buildRenderProgram( "EphemerisProgram", @@ -226,17 +226,14 @@ bool RenderableTrail::initialize() { ); setRenderBin(Renderable::RenderBin::Overlay); - - return true; } -bool RenderableTrail::deinitialize() { +void RenderableTrail::deinitialize() { RenderEngine& renderEngine = OsEng.renderEngine(); if (_programObject) { renderEngine.removeRenderProgram(_programObject); _programObject = nullptr; } - return true; } bool RenderableTrail::isReady() const { diff --git a/modules/base/rendering/renderabletrail.h b/modules/base/rendering/renderabletrail.h index 962bdf5245..ed721582a9 100644 --- a/modules/base/rendering/renderabletrail.h +++ b/modules/base/rendering/renderabletrail.h @@ -73,8 +73,8 @@ class RenderableTrail : public Renderable { public: ~RenderableTrail() = default; - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/base/rendering/renderabletrailorbit.cpp b/modules/base/rendering/renderabletrailorbit.cpp index 6bb29dacf3..2877e31777 100644 --- a/modules/base/rendering/renderabletrailorbit.cpp +++ b/modules/base/rendering/renderabletrailorbit.cpp @@ -169,22 +169,20 @@ RenderableTrailOrbit::RenderableTrailOrbit(const ghoul::Dictionary& dictionary) _primaryRenderInformation.sorting = RenderInformation::VertexSorting::NewestFirst; } -bool RenderableTrailOrbit::initialize() { - bool res = RenderableTrail::initialize(); +void RenderableTrailOrbit::initialize() { + RenderableTrail::initialize(); glGenVertexArrays(1, &_primaryRenderInformation._vaoID); glGenBuffers(1, &_primaryRenderInformation._vBufferID); glGenBuffers(1, &_primaryRenderInformation._iBufferID); - - return res; } -bool RenderableTrailOrbit::deinitialize() { +void RenderableTrailOrbit::deinitialize() { glDeleteVertexArrays(1, &_primaryRenderInformation._vaoID); glDeleteBuffers(1, &_primaryRenderInformation._vBufferID); glDeleteBuffers(1, &_primaryRenderInformation._iBufferID); - return RenderableTrail::deinitialize(); + RenderableTrail::deinitialize(); } void RenderableTrailOrbit::update(const UpdateData& data) { diff --git a/modules/base/rendering/renderabletrailorbit.h b/modules/base/rendering/renderabletrailorbit.h index a37ce098ce..325f195f7d 100644 --- a/modules/base/rendering/renderabletrailorbit.h +++ b/modules/base/rendering/renderabletrailorbit.h @@ -48,8 +48,8 @@ class RenderableTrailOrbit : public RenderableTrail { public: explicit RenderableTrailOrbit(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; void update(const UpdateData& data) override; diff --git a/modules/base/rendering/renderabletrailtrajectory.cpp b/modules/base/rendering/renderabletrailtrajectory.cpp index 8129dc8dc9..5aa6f2161e 100644 --- a/modules/base/rendering/renderabletrailtrajectory.cpp +++ b/modules/base/rendering/renderabletrailtrajectory.cpp @@ -189,8 +189,8 @@ RenderableTrailTrajectory::RenderableTrailTrajectory(const ghoul::Dictionary& di _primaryRenderInformation.sorting = RenderInformation::VertexSorting::OldestFirst; } -bool RenderableTrailTrajectory::initialize() { - bool res = RenderableTrail::initialize(); +void RenderableTrailTrajectory::initialize() { + RenderableTrail::initialize(); // We don't need an index buffer, so we keep it at the default value of 0 glGenVertexArrays(1, &_primaryRenderInformation._vaoID); @@ -201,18 +201,16 @@ bool RenderableTrailTrajectory::initialize() { glGenVertexArrays(1, &_floatingRenderInformation._vaoID); glGenBuffers(1, &_floatingRenderInformation._vBufferID); _floatingRenderInformation.sorting = RenderInformation::VertexSorting::OldestFirst; - - return res; } -bool RenderableTrailTrajectory::deinitialize() { +void RenderableTrailTrajectory::deinitialize() { glDeleteVertexArrays(1, &_primaryRenderInformation._vaoID); glDeleteBuffers(1, &_primaryRenderInformation._vBufferID); glDeleteVertexArrays(1, &_floatingRenderInformation._vaoID); glDeleteBuffers(1, &_floatingRenderInformation._vBufferID); - return RenderableTrail::deinitialize(); + RenderableTrail::deinitialize(); } void RenderableTrailTrajectory::update(const UpdateData& data) { diff --git a/modules/base/rendering/renderabletrailtrajectory.h b/modules/base/rendering/renderabletrailtrajectory.h index 62f600d5a4..93d0367c9d 100644 --- a/modules/base/rendering/renderabletrailtrajectory.h +++ b/modules/base/rendering/renderabletrailtrajectory.h @@ -53,8 +53,8 @@ class RenderableTrailTrajectory : public RenderableTrail { public: explicit RenderableTrailTrajectory(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; void update(const UpdateData& data) override; diff --git a/modules/debugging/rendering/renderabledebugplane.cpp b/modules/debugging/rendering/renderabledebugplane.cpp index ce185c2052..1234c3474f 100644 --- a/modules/debugging/rendering/renderabledebugplane.cpp +++ b/modules/debugging/rendering/renderabledebugplane.cpp @@ -190,7 +190,7 @@ bool RenderableDebugPlane::isReady() const { return ready; } -bool RenderableDebugPlane::initialize() { +void RenderableDebugPlane::initialize() { glGenVertexArrays(1, &_quad); // generate array glGenBuffers(1, &_vertexPositionBuffer); // generate buffer createPlane(); @@ -202,11 +202,9 @@ bool RenderableDebugPlane::initialize() { "${MODULE_BASE}/shaders/plane_fs.glsl" ); } - - return isReady(); } -bool RenderableDebugPlane::deinitialize() { +void RenderableDebugPlane::deinitialize() { glDeleteVertexArrays(1, &_quad); _quad = 0; @@ -218,8 +216,6 @@ bool RenderableDebugPlane::deinitialize() { renderEngine.removeRenderProgram(_shader); _shader = nullptr; } - - return true; } void RenderableDebugPlane::render(const RenderData& data, RendererTasks&) { diff --git a/modules/debugging/rendering/renderabledebugplane.h b/modules/debugging/rendering/renderabledebugplane.h index 6ea0db8819..91fa8914b2 100644 --- a/modules/debugging/rendering/renderabledebugplane.h +++ b/modules/debugging/rendering/renderabledebugplane.h @@ -49,8 +49,8 @@ public: RenderableDebugPlane(const ghoul::Dictionary& dictionary); ~RenderableDebugPlane(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/fieldlines/rendering/renderablefieldlines.cpp b/modules/fieldlines/rendering/renderablefieldlines.cpp index 0813f76ae1..24aaba8404 100644 --- a/modules/fieldlines/rendering/renderablefieldlines.cpp +++ b/modules/fieldlines/rendering/renderablefieldlines.cpp @@ -232,12 +232,9 @@ bool RenderableFieldlines::isReady() const { return programReady && vectorFieldReady && fieldlineReady && seedPointsReady; } -bool RenderableFieldlines::initialize() { - if (_vectorFieldInfo.empty() || - _fieldlineInfo.empty() || - _seedPointsInfo.empty()) - { - return false; +void RenderableFieldlines::initialize() { + if (_vectorFieldInfo.empty() || _fieldlineInfo.empty() || _seedPointsInfo.empty()) { + throw ghoul::RuntimeError("Error initializing"); } _program = OsEng.renderEngine().buildRenderProgram( @@ -246,14 +243,9 @@ bool RenderableFieldlines::initialize() { "${MODULE_FIELDLINES}/shaders/fieldline_fs.glsl", "${MODULE_FIELDLINES}/shaders/fieldline_gs.glsl" ); - - if (!_program) - return false; - - return true; } -bool RenderableFieldlines::deinitialize() { +void RenderableFieldlines::deinitialize() { glDeleteVertexArrays(1, &_fieldlineVAO); _fieldlineVAO = 0; glDeleteBuffers(1, &_vertexPositionBuffer); @@ -264,8 +256,6 @@ bool RenderableFieldlines::deinitialize() { renderEngine.removeRenderProgram(_program); _program = nullptr; } - - return true; } void RenderableFieldlines::render(const RenderData& data, RendererTasks&) { diff --git a/modules/fieldlines/rendering/renderablefieldlines.h b/modules/fieldlines/rendering/renderablefieldlines.h index 1827b83353..10d9d92b63 100644 --- a/modules/fieldlines/rendering/renderablefieldlines.h +++ b/modules/fieldlines/rendering/renderablefieldlines.h @@ -45,8 +45,8 @@ class RenderableFieldlines : public Renderable { public: RenderableFieldlines(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/galaxy/rendering/renderablegalaxy.cpp b/modules/galaxy/rendering/renderablegalaxy.cpp index 94b86c6671..f01aff865c 100644 --- a/modules/galaxy/rendering/renderablegalaxy.cpp +++ b/modules/galaxy/rendering/renderablegalaxy.cpp @@ -153,7 +153,7 @@ namespace openspace { RenderableGalaxy::~RenderableGalaxy() {} -bool RenderableGalaxy::initialize() { +void RenderableGalaxy::initialize() { // Aspect is currently hardcoded to cubic voxels. _aspect = static_cast(_volumeDimensions); _aspect = _aspect / std::max(std::max(_aspect.x, _aspect.y), _aspect.z); @@ -178,7 +178,7 @@ bool RenderableGalaxy::initialize() { OsEng.renderEngine().raycasterManager().attachRaycaster(*_raycaster.get()); - std::function onChange = [&](bool enabled) { + auto onChange = [&](bool enabled) { if (enabled) { OsEng.renderEngine().raycasterManager().attachRaycaster(*_raycaster.get()); } @@ -273,16 +273,13 @@ bool RenderableGalaxy::initialize() { glBindBuffer(GL_ARRAY_BUFFER, 0); glBindVertexArray(0); - - return true; } -bool RenderableGalaxy::deinitialize() { +void RenderableGalaxy::deinitialize() { if (_raycaster) { OsEng.renderEngine().raycasterManager().detachRaycaster(*_raycaster.get()); _raycaster = nullptr; } - return true; } bool RenderableGalaxy::isReady() const { diff --git a/modules/galaxy/rendering/renderablegalaxy.h b/modules/galaxy/rendering/renderablegalaxy.h index 77c5608a0a..cb398be19c 100644 --- a/modules/galaxy/rendering/renderablegalaxy.h +++ b/modules/galaxy/rendering/renderablegalaxy.h @@ -41,8 +41,8 @@ public: RenderableGalaxy(const ghoul::Dictionary& dictionary); ~RenderableGalaxy(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& tasks) override; void update(const UpdateData& data) override; diff --git a/modules/globebrowsing/globes/chunkedlodglobe.cpp b/modules/globebrowsing/globes/chunkedlodglobe.cpp index 7317939c2e..0ded2257ea 100644 --- a/modules/globebrowsing/globes/chunkedlodglobe.cpp +++ b/modules/globebrowsing/globes/chunkedlodglobe.cpp @@ -94,14 +94,6 @@ ChunkedLodGlobe::ChunkedLodGlobe(const RenderableGlobe& owner, size_t segmentsPe // with a forward declaration ChunkedLodGlobe::~ChunkedLodGlobe() {} -bool ChunkedLodGlobe::initialize() { - return true; -} - -bool ChunkedLodGlobe::deinitialize() { - return true; -} - bool ChunkedLodGlobe::isReady() const { return true; } diff --git a/modules/globebrowsing/globes/chunkedlodglobe.h b/modules/globebrowsing/globes/chunkedlodglobe.h index 15f9ea3091..530e6470cf 100644 --- a/modules/globebrowsing/globes/chunkedlodglobe.h +++ b/modules/globebrowsing/globes/chunkedlodglobe.h @@ -52,8 +52,6 @@ public: std::shared_ptr layerManager); ~ChunkedLodGlobe(); - bool initialize() override; - bool deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/globebrowsing/globes/pointglobe.cpp b/modules/globebrowsing/globes/pointglobe.cpp index 3514648d18..52e99b35c2 100644 --- a/modules/globebrowsing/globes/pointglobe.cpp +++ b/modules/globebrowsing/globes/pointglobe.cpp @@ -64,7 +64,7 @@ PointGlobe::~PointGlobe() { glDeleteVertexArrays(1, &_vaoID); } -bool PointGlobe::initialize() { +void PointGlobe::initialize() { _programObject = OsEng.renderEngine().buildRenderProgram( "PointGlobe", "${MODULE_GLOBEBROWSING}/shaders/pointglobe_vs.glsl", @@ -98,12 +98,11 @@ bool PointGlobe::initialize() { glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, sizeof(glm::vec2), 0); glBindVertexArray(0); - - return isReady(); } -bool PointGlobe::deinitialize() { - return true; +void PointGlobe::deinitialize() { + glDeleteVertexArrays(1, &_vaoID); + glDeleteBuffers(1, &_vertexBufferID); } bool PointGlobe::isReady() const { diff --git a/modules/globebrowsing/globes/pointglobe.h b/modules/globebrowsing/globes/pointglobe.h index 59cd91fdee..213122efb2 100644 --- a/modules/globebrowsing/globes/pointglobe.h +++ b/modules/globebrowsing/globes/pointglobe.h @@ -41,8 +41,8 @@ public: PointGlobe(const RenderableGlobe& owner); virtual ~PointGlobe(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/globebrowsing/globes/renderableglobe.cpp b/modules/globebrowsing/globes/renderableglobe.cpp index 71e3c0fa57..39d8998de0 100644 --- a/modules/globebrowsing/globes/renderableglobe.cpp +++ b/modules/globebrowsing/globes/renderableglobe.cpp @@ -260,12 +260,12 @@ RenderableGlobe::RenderableGlobe(const ghoul::Dictionary& dictionary) //addPropertySubOwner(_pointGlobe.get()); } -bool RenderableGlobe::initialize() { - return _distanceSwitch.initialize(); +void RenderableGlobe::initialize() { + _distanceSwitch.initialize(); } -bool RenderableGlobe::deinitialize() { - return _distanceSwitch.deinitialize(); +void RenderableGlobe::deinitialize() { + _distanceSwitch.deinitialize(); } bool RenderableGlobe::isReady() const { diff --git a/modules/globebrowsing/globes/renderableglobe.h b/modules/globebrowsing/globes/renderableglobe.h index 54a4ecde10..b43111dfaf 100644 --- a/modules/globebrowsing/globes/renderableglobe.h +++ b/modules/globebrowsing/globes/renderableglobe.h @@ -81,8 +81,8 @@ public: RenderableGlobe(const ghoul::Dictionary& dictionary); ~RenderableGlobe() = default; - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/iswa/rendering/dataplane.cpp b/modules/iswa/rendering/dataplane.cpp index 10823897e0..51848ae93b 100644 --- a/modules/iswa/rendering/dataplane.cpp +++ b/modules/iswa/rendering/dataplane.cpp @@ -43,20 +43,20 @@ DataPlane::DataPlane(const ghoul::Dictionary& dictionary) DataPlane::~DataPlane(){} -bool DataPlane::initialize(){ +void DataPlane::initialize() { IswaCygnet::initialize(); - if(_group){ + if (_group) { _dataProcessor = _group->dataProcessor(); subscribeToGroup(); - }else{ + } else { _dataProcessor = std::make_shared(); //If autofiler is on, background values property should be hidden - _autoFilter.onChange([this](){ + _autoFilter.onChange([this]() { // If autofiler is selected, use _dataProcessor to set backgroundValues // and unregister backgroundvalues property. - if(_autoFilter.value()){ + if (_autoFilter.value()) { _backgroundValues.setValue(_dataProcessor->filterValues()); _backgroundValues.setVisibility(properties::Property::Visibility::Hidden); //_backgroundValues.setVisible(false); @@ -73,8 +73,6 @@ bool DataPlane::initialize(){ setPropertyCallbacks(); _autoFilter.setValue(true); - - return true; } bool DataPlane::createGeometry() { diff --git a/modules/iswa/rendering/dataplane.h b/modules/iswa/rendering/dataplane.h index 149ba8f2d2..960d0db7b4 100644 --- a/modules/iswa/rendering/dataplane.h +++ b/modules/iswa/rendering/dataplane.h @@ -40,7 +40,7 @@ public: DataPlane(const ghoul::Dictionary& dictionary); ~DataPlane(); - bool initialize() override; + void initialize() override; private: diff --git a/modules/iswa/rendering/datasphere.cpp b/modules/iswa/rendering/datasphere.cpp index 652fbfa566..527e191674 100644 --- a/modules/iswa/rendering/datasphere.cpp +++ b/modules/iswa/rendering/datasphere.cpp @@ -54,22 +54,22 @@ DataSphere::DataSphere(const ghoul::Dictionary& dictionary) DataSphere::~DataSphere() {} -bool DataSphere::initialize() { +void DataSphere::initialize() { IswaCygnet::initialize(); //rotate 90 degrees because of the texture coordinates in PowerScaledSphere _rotation = glm::rotate(_rotation, (float)M_PI_2, glm::vec3(1.0, 0.0, 0.0)); - if(_group){ + if (_group) { _dataProcessor = _group->dataProcessor(); subscribeToGroup(); - }else{ + } else { _dataProcessor = std::make_shared(); //If autofiler is on, background values property should be hidden - _autoFilter.onChange([this](){ + _autoFilter.onChange([this]() { // If autofiler is selected, use _dataProcessor to set backgroundValues // and unregister backgroundvalues property. - if(_autoFilter.value()){ + if (_autoFilter.value()) { _backgroundValues.setValue(_dataProcessor->filterValues()); _backgroundValues.setVisibility(properties::Property::Visibility::Hidden); //_backgroundValues.setVisible(false); @@ -86,8 +86,6 @@ bool DataSphere::initialize() { setPropertyCallbacks(); _useHistogram.setValue(true); _autoFilter.setValue(true); - - return true; } bool DataSphere::createGeometry() { diff --git a/modules/iswa/rendering/datasphere.h b/modules/iswa/rendering/datasphere.h index 7387df9d01..dff23ca92e 100644 --- a/modules/iswa/rendering/datasphere.h +++ b/modules/iswa/rendering/datasphere.h @@ -41,7 +41,7 @@ public: DataSphere(const ghoul::Dictionary& dictionary); ~DataSphere(); - bool initialize() override; + void initialize() override; protected: /** diff --git a/modules/iswa/rendering/iswacygnet.cpp b/modules/iswa/rendering/iswacygnet.cpp index 4ad94a72e4..9b31573fd5 100644 --- a/modules/iswa/rendering/iswacygnet.cpp +++ b/modules/iswa/rendering/iswacygnet.cpp @@ -116,13 +116,13 @@ IswaCygnet::IswaCygnet(const ghoul::Dictionary& dictionary) IswaCygnet::~IswaCygnet(){} -bool IswaCygnet::initialize(){ +void IswaCygnet::initialize() { _textures.push_back(nullptr); - if(!_data->groupName.empty()){ + if (!_data->groupName.empty()) { initializeGroup(); - }else{ - _delete.onChange([this](){ + } else { + _delete.onChange([this]() { deinitialize(); OsEng.scriptEngine().queueScript( "openspace.removeSceneGraphNode('" + name() + "')", @@ -135,19 +135,16 @@ bool IswaCygnet::initialize(){ createGeometry(); createShader(); downloadTextureResource(); - - return true; } -bool IswaCygnet::deinitialize(){ - if(!_data->groupName.empty()) +void IswaCygnet::deinitialize() { + if (!_data->groupName.empty()) { _group->groupEvent()->unsubscribe(name()); + } unregisterProperties(); destroyGeometry(); destroyShader(); - - return true; } bool IswaCygnet::isReady() const{ diff --git a/modules/iswa/rendering/iswacygnet.h b/modules/iswa/rendering/iswacygnet.h index edbc4a1b5b..581e50855e 100644 --- a/modules/iswa/rendering/iswacygnet.h +++ b/modules/iswa/rendering/iswacygnet.h @@ -70,8 +70,8 @@ public: IswaCygnet(const ghoul::Dictionary& dictionary); ~IswaCygnet(); - virtual bool initialize(); - virtual bool deinitialize(); + void initialize() override; + void deinitialize() override; virtual bool isReady() const; void render(const RenderData& data, RendererTasks& rendererTask); void update(const UpdateData& data); diff --git a/modules/iswa/rendering/kameleonplane.cpp b/modules/iswa/rendering/kameleonplane.cpp index 03d25aea2b..03e8d4d2dd 100644 --- a/modules/iswa/rendering/kameleonplane.cpp +++ b/modules/iswa/rendering/kameleonplane.cpp @@ -100,15 +100,13 @@ KameleonPlane::KameleonPlane(const ghoul::Dictionary& dictionary) KameleonPlane::~KameleonPlane() {} -bool KameleonPlane::deinitialize() { +void KameleonPlane::deinitialize() { IswaCygnet::deinitialize(); _fieldlines.set(std::vector()); - return true; } -bool KameleonPlane::initialize(){ - - if(!_data->groupName.empty()){ +void KameleonPlane::initialize() { + if (!_data->groupName.empty()) { initializeGroup(); } @@ -174,8 +172,6 @@ bool KameleonPlane::initialize(){ _group->updateGroup(); } updateTextureResource(); - - return true; } bool KameleonPlane::createGeometry() { diff --git a/modules/iswa/rendering/kameleonplane.h b/modules/iswa/rendering/kameleonplane.h index 4b6be6c4c3..30f50f1bba 100644 --- a/modules/iswa/rendering/kameleonplane.h +++ b/modules/iswa/rendering/kameleonplane.h @@ -43,8 +43,8 @@ public: KameleonPlane(const ghoul::Dictionary& dictionary); ~KameleonPlane(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; private: diff --git a/modules/kameleonvolume/rendering/renderablekameleonvolume.cpp b/modules/kameleonvolume/rendering/renderablekameleonvolume.cpp index 9b0a27c389..f5dfc49ae6 100644 --- a/modules/kameleonvolume/rendering/renderablekameleonvolume.cpp +++ b/modules/kameleonvolume/rendering/renderablekameleonvolume.cpp @@ -250,7 +250,7 @@ RenderableKameleonVolume::RenderableKameleonVolume(const ghoul::Dictionary& dict RenderableKameleonVolume::~RenderableKameleonVolume() {} -bool RenderableKameleonVolume::initialize() { +void RenderableKameleonVolume::initialize() { load(); _volumeTexture->uploadTexture(); @@ -305,7 +305,6 @@ bool RenderableKameleonVolume::initialize() { addProperty(_gridType); addProperty(_cache); addPropertySubOwner(_clipPlanes.get()); - return true; } void RenderableKameleonVolume::updateRaycasterModelTransform() { @@ -443,12 +442,11 @@ void RenderableKameleonVolume::storeRaw(const std::string& path) { writer.write(*_rawVolume); } -bool RenderableKameleonVolume::deinitialize() { +void RenderableKameleonVolume::deinitialize() { if (_raycaster) { OsEng.renderEngine().raycasterManager().detachRaycaster(*_raycaster.get()); _raycaster = nullptr; } - return true; } bool RenderableKameleonVolume::isReady() const { diff --git a/modules/kameleonvolume/rendering/renderablekameleonvolume.h b/modules/kameleonvolume/rendering/renderablekameleonvolume.h index bb49de9f6b..35b0f512ec 100644 --- a/modules/kameleonvolume/rendering/renderablekameleonvolume.h +++ b/modules/kameleonvolume/rendering/renderablekameleonvolume.h @@ -49,8 +49,8 @@ public: RenderableKameleonVolume(const ghoul::Dictionary& dictionary); ~RenderableKameleonVolume(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& tasks) override; void update(const UpdateData& data) override; diff --git a/modules/multiresvolume/rendering/renderablemultiresvolume.cpp b/modules/multiresvolume/rendering/renderablemultiresvolume.cpp index 090e5c4b70..98cb29d764 100644 --- a/modules/multiresvolume/rendering/renderablemultiresvolume.cpp +++ b/modules/multiresvolume/rendering/renderablemultiresvolume.cpp @@ -419,8 +419,7 @@ bool RenderableMultiresVolume::setSelectorType(Selector selector) { return false; } -bool RenderableMultiresVolume::initialize() { - +void RenderableMultiresVolume::initialize() { bool success = _tsp && _tsp->load(); unsigned int maxNumBricks = _tsp->header().xNumBricks_ * _tsp->header().yNumBricks_ * _tsp->header().zNumBricks_; @@ -477,20 +476,20 @@ bool RenderableMultiresVolume::initialize() { onEnabledChange(onChange); - return success; + if (!success) { + throw ghoul::RuntimeError("Error during initialization"); + } } -bool RenderableMultiresVolume::deinitialize() { +void RenderableMultiresVolume::deinitialize() { _tsp = nullptr; _transferFunction = nullptr; - return true; } bool RenderableMultiresVolume::isReady() const { return true; } - bool RenderableMultiresVolume::initializeSelector() { int nHistograms = 50; bool success = true; diff --git a/modules/multiresvolume/rendering/renderablemultiresvolume.h b/modules/multiresvolume/rendering/renderablemultiresvolume.h index fc86c139ee..0127002d47 100644 --- a/modules/multiresvolume/rendering/renderablemultiresvolume.h +++ b/modules/multiresvolume/rendering/renderablemultiresvolume.h @@ -68,8 +68,8 @@ public: bool setSelectorType(Selector selector); bool initializeSelector(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderablecrawlingline.cpp b/modules/newhorizons/rendering/renderablecrawlingline.cpp index 21703e96f4..b1767b3c5b 100644 --- a/modules/newhorizons/rendering/renderablecrawlingline.cpp +++ b/modules/newhorizons/rendering/renderablecrawlingline.cpp @@ -135,7 +135,7 @@ bool RenderableCrawlingLine::isReady() const { return (_program != nullptr); } -bool RenderableCrawlingLine::initialize() { +void RenderableCrawlingLine::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _program = renderEngine.buildRenderProgram( "RenderableCrawlingLine", @@ -164,11 +164,9 @@ bool RenderableCrawlingLine::initialize() { ); glBindVertexArray(0); - - return true; } -bool RenderableCrawlingLine::deinitialize(){ +void RenderableCrawlingLine::deinitialize(){ glDeleteVertexArrays(1, &_vao); _vao = 0; glDeleteBuffers(1, &_vbo); @@ -179,8 +177,6 @@ bool RenderableCrawlingLine::deinitialize(){ renderEngine.removeRenderProgram(_program); _program = nullptr; } - - return true; } void RenderableCrawlingLine::render(const RenderData& data, RendererTasks&) { diff --git a/modules/newhorizons/rendering/renderablecrawlingline.h b/modules/newhorizons/rendering/renderablecrawlingline.h index c34129f26a..0700f8098a 100644 --- a/modules/newhorizons/rendering/renderablecrawlingline.h +++ b/modules/newhorizons/rendering/renderablecrawlingline.h @@ -38,8 +38,8 @@ class RenderableCrawlingLine : public Renderable { public: RenderableCrawlingLine(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderablefov.cpp b/modules/newhorizons/rendering/renderablefov.cpp index 6c02e1736c..34f29bd58c 100644 --- a/modules/newhorizons/rendering/renderablefov.cpp +++ b/modules/newhorizons/rendering/renderablefov.cpp @@ -297,7 +297,7 @@ RenderableFov::RenderableFov(const ghoul::Dictionary& dictionary) addProperty(_colors.square); } -bool RenderableFov::initialize() { +void RenderableFov::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _programObject = renderEngine.buildRenderProgram( "FovProgram", @@ -314,8 +314,10 @@ bool RenderableFov::initialize() { res.shape == SpiceManager::FieldOfViewResult::Shape::Polygon || res.shape == SpiceManager::FieldOfViewResult::Shape::Rectangle; if (!supportedShape) { - LWARNINGC("RenderableFov", "'" << _instrument.name << "' has unsupported shape"); - return false; + throw ghoul::RuntimeError( + "'" + _instrument.name + "' has unsupported shape", + "RenderableFov" + ); } _instrument.bounds = std::move(res.bounds); @@ -405,11 +407,9 @@ bool RenderableFov::initialize() { ); glBindVertexArray(0); - - return true; } -bool RenderableFov::deinitialize() { +void RenderableFov::deinitialize() { OsEng.renderEngine().removeRenderProgram(_programObject); _programObject = nullptr; @@ -418,8 +418,6 @@ bool RenderableFov::deinitialize() { glDeleteBuffers(1, &_fieldOfViewBounds.vbo); glDeleteVertexArrays(1, &_fieldOfViewBounds.vao); - - return true; } bool RenderableFov::isReady() const { diff --git a/modules/newhorizons/rendering/renderablefov.h b/modules/newhorizons/rendering/renderablefov.h index 4694f0f7c0..6c09c02deb 100644 --- a/modules/newhorizons/rendering/renderablefov.h +++ b/modules/newhorizons/rendering/renderablefov.h @@ -49,8 +49,8 @@ class RenderableFov : public Renderable { public: RenderableFov(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderablemodelprojection.cpp b/modules/newhorizons/rendering/renderablemodelprojection.cpp index 18b7f76c10..9a36d22876 100644 --- a/modules/newhorizons/rendering/renderablemodelprojection.cpp +++ b/modules/newhorizons/rendering/renderablemodelprojection.cpp @@ -182,9 +182,7 @@ bool RenderableModelProjection::isReady() const { return ready; } -bool RenderableModelProjection::initialize() { - bool completeSuccess = true; - +void RenderableModelProjection::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _programObject = renderEngine.buildRenderProgram("ModelShader", "${MODULE_NEWHORIZONS}/shaders/renderableModel_vs.glsl", @@ -203,17 +201,15 @@ bool RenderableModelProjection::initialize() { "${MODULE_NEWHORIZONS}/shaders/renderableModelDepth_fs.glsl"); - completeSuccess &= loadTextures(); - completeSuccess &= _projectionComponent.initializeGL(); + loadTextures(); + _projectionComponent.initializeGL(); float bs = boundingSphere(); - completeSuccess &= _geometry->initialize(this); + _geometry->initialize(this); setBoundingSphere(bs); // ignore bounding sphere set by geometry. - - return completeSuccess; } -bool RenderableModelProjection::deinitialize() { +void RenderableModelProjection::deinitialize() { if (_geometry) { _geometry->deinitialize(); } @@ -225,8 +221,6 @@ bool RenderableModelProjection::deinitialize() { OsEng.renderEngine().removeRenderProgram(_programObject); _programObject = nullptr; - - return true; } ghoul::opengl::Texture& RenderableModelProjection::baseTexture() const { diff --git a/modules/newhorizons/rendering/renderablemodelprojection.h b/modules/newhorizons/rendering/renderablemodelprojection.h index 42cd0a9fc4..a0bff0abd3 100644 --- a/modules/newhorizons/rendering/renderablemodelprojection.h +++ b/modules/newhorizons/rendering/renderablemodelprojection.h @@ -55,8 +55,8 @@ public: RenderableModelProjection(const ghoul::Dictionary& dictionary); ~RenderableModelProjection(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderableplaneprojection.cpp b/modules/newhorizons/rendering/renderableplaneprojection.cpp index 7ac1dbb430..4a69268517 100644 --- a/modules/newhorizons/rendering/renderableplaneprojection.cpp +++ b/modules/newhorizons/rendering/renderableplaneprojection.cpp @@ -94,27 +94,23 @@ bool RenderablePlaneProjection::isReady() const { return _shader && _texture; } -bool RenderablePlaneProjection::initialize() { +void RenderablePlaneProjection::initialize() { glGenVertexArrays(1, &_quad); // generate array glGenBuffers(1, &_vertexPositionBuffer); // generate buffer - // Plane program - if (_shader == nullptr) { - // Image Plane Program - RenderEngine& renderEngine = OsEng.renderEngine(); - _shader = renderEngine.buildRenderProgram("Image Plane", - "${MODULE_BASE}/shaders/imageplane_vs.glsl", - "${MODULE_BASE}/shaders/imageplane_fs.glsl"); - if (!_shader) - return false; - } + // Image Plane Program + RenderEngine& renderEngine = OsEng.renderEngine(); + _shader = renderEngine.buildRenderProgram( + "Image Plane", + "${MODULE_BASE}/shaders/imageplane_vs.glsl", + "${MODULE_BASE}/shaders/imageplane_fs.glsl" + ); setTarget(_defaultTarget); loadTexture(); - return isReady(); } -bool RenderablePlaneProjection::deinitialize() { +void RenderablePlaneProjection::deinitialize() { RenderEngine& renderEngine = OsEng.renderEngine(); if (_shader) { renderEngine.removeRenderProgram(_shader); @@ -126,7 +122,6 @@ bool RenderablePlaneProjection::deinitialize() { glDeleteBuffers(1, &_vertexPositionBuffer); _vertexPositionBuffer = 0; _texture = nullptr; - return true; } void RenderablePlaneProjection::render(const RenderData& data, RendererTasks&) { diff --git a/modules/newhorizons/rendering/renderableplaneprojection.h b/modules/newhorizons/rendering/renderableplaneprojection.h index c4f7af8557..9cb259e93b 100644 --- a/modules/newhorizons/rendering/renderableplaneprojection.h +++ b/modules/newhorizons/rendering/renderableplaneprojection.h @@ -55,8 +55,8 @@ public: RenderablePlaneProjection(const ghoul::Dictionary& dictionary); ~RenderablePlaneProjection(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/newhorizons/rendering/renderableplanetprojection.cpp b/modules/newhorizons/rendering/renderableplanetprojection.cpp index b3f257db9d..9aab0e6bc9 100644 --- a/modules/newhorizons/rendering/renderableplanetprojection.cpp +++ b/modules/newhorizons/rendering/renderableplanetprojection.cpp @@ -203,9 +203,7 @@ RenderablePlanetProjection::RenderablePlanetProjection(const ghoul::Dictionary& RenderablePlanetProjection::~RenderablePlanetProjection() {} -bool RenderablePlanetProjection::initialize() { - bool completeSuccess = true; - +void RenderablePlanetProjection::initialize() { _programObject = OsEng.renderEngine().buildRenderProgram( "projectiveProgram", "${MODULE_NEWHORIZONS}/shaders/renderablePlanet_vs.glsl", @@ -218,41 +216,37 @@ bool RenderablePlanetProjection::initialize() { "${MODULE_NEWHORIZONS}/shaders/renderablePlanetProjection_fs.glsl" ); - completeSuccess &= loadTextures(); - completeSuccess &= _projectionComponent.initializeGL(); - completeSuccess &= _geometry->initialize(this); + loadTextures(); + _projectionComponent.initializeGL(); + _geometry->initialize(this); - if (completeSuccess) { - //completeSuccess &= auxiliaryRendertarget(); - // SCREEN-QUAD - const GLfloat size = 1.f; - const GLfloat w = 1.f; - const GLfloat vertex_data[] = { - -size, -size, 0.f, w, 0.f, 0.f, - size, size, 0.f, w, 1.f, 1.f, - -size, size, 0.f, w, 0.f, 1.f, - -size, -size, 0.f, w, 0.f, 0.f, - size, -size, 0.f, w, 1.f, 0.f, - size, size, 0.f, w, 1.f, 1.f, - }; + //completeSuccess &= auxiliaryRendertarget(); + // SCREEN-QUAD + const GLfloat size = 1.f; + const GLfloat w = 1.f; + const GLfloat vertex_data[] = { + -size, -size, 0.f, w, 0.f, 0.f, + size, size, 0.f, w, 1.f, 1.f, + -size, size, 0.f, w, 0.f, 1.f, + -size, -size, 0.f, w, 0.f, 0.f, + size, -size, 0.f, w, 1.f, 0.f, + size, size, 0.f, w, 1.f, 1.f, + }; - glGenVertexArrays(1, &_quad); - glBindVertexArray(_quad); - glGenBuffers(1, &_vertexPositionBuffer); - glBindBuffer(GL_ARRAY_BUFFER, _vertexPositionBuffer); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertex_data), vertex_data, GL_STATIC_DRAW); - glEnableVertexAttribArray(0); - glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 6, reinterpret_cast(0)); - glEnableVertexAttribArray(1); - glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 6, reinterpret_cast(sizeof(GLfloat) * 4)); + glGenVertexArrays(1, &_quad); + glBindVertexArray(_quad); + glGenBuffers(1, &_vertexPositionBuffer); + glBindBuffer(GL_ARRAY_BUFFER, _vertexPositionBuffer); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertex_data), vertex_data, GL_STATIC_DRAW); + glEnableVertexAttribArray(0); + glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 6, reinterpret_cast(0)); + glEnableVertexAttribArray(1); + glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(GLfloat) * 6, reinterpret_cast(sizeof(GLfloat) * 4)); - glBindVertexArray(0); - } - - return completeSuccess; + glBindVertexArray(0); } -bool RenderablePlanetProjection::deinitialize() { +void RenderablePlanetProjection::deinitialize() { _projectionComponent.deinitialize(); _baseTexture = nullptr; _geometry = nullptr; @@ -264,9 +258,8 @@ bool RenderablePlanetProjection::deinitialize() { _programObject = nullptr; _fboProgramObject = nullptr; - - return true; } + bool RenderablePlanetProjection::isReady() const { return _geometry && _programObject && _baseTexture && _projectionComponent.isReady(); } diff --git a/modules/newhorizons/rendering/renderableplanetprojection.h b/modules/newhorizons/rendering/renderableplanetprojection.h index 8723a024e0..eaafec317a 100644 --- a/modules/newhorizons/rendering/renderableplanetprojection.h +++ b/modules/newhorizons/rendering/renderableplanetprojection.h @@ -44,8 +44,8 @@ public: RenderablePlanetProjection(const ghoul::Dictionary& dictionary); ~RenderablePlanetProjection(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/newhorizons/rendering/renderableshadowcylinder.cpp b/modules/newhorizons/rendering/renderableshadowcylinder.cpp index b6b5c8fd99..b3568588db 100644 --- a/modules/newhorizons/rendering/renderableshadowcylinder.cpp +++ b/modules/newhorizons/rendering/renderableshadowcylinder.cpp @@ -260,7 +260,7 @@ RenderableShadowCylinder::RenderableShadowCylinder(const ghoul::Dictionary& dict _aberration = static_cast(aberration.type); } -bool RenderableShadowCylinder::initialize() { +void RenderableShadowCylinder::initialize() { glGenVertexArrays(1, &_vao); glGenBuffers(1, &_vbo); @@ -270,11 +270,9 @@ bool RenderableShadowCylinder::initialize() { "${MODULE_NEWHORIZONS}/shaders/terminatorshadow_vs.glsl", "${MODULE_NEWHORIZONS}/shaders/terminatorshadow_fs.glsl" ); - - return true; } -bool RenderableShadowCylinder::deinitialize() { +void RenderableShadowCylinder::deinitialize() { RenderEngine& renderEngine = OsEng.renderEngine(); if (_shader) { renderEngine.removeRenderProgram(_shader); @@ -285,8 +283,6 @@ bool RenderableShadowCylinder::deinitialize() { _vao = 0; glDeleteBuffers(1, &_vbo); _vbo = 0; - - return true; } bool RenderableShadowCylinder::isReady() const { diff --git a/modules/newhorizons/rendering/renderableshadowcylinder.h b/modules/newhorizons/rendering/renderableshadowcylinder.h index 72382b9f6c..fd43474039 100644 --- a/modules/newhorizons/rendering/renderableshadowcylinder.h +++ b/modules/newhorizons/rendering/renderableshadowcylinder.h @@ -50,8 +50,8 @@ class RenderableShadowCylinder : public Renderable { public: RenderableShadowCylinder(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/space/rendering/renderableconstellationbounds.cpp b/modules/space/rendering/renderableconstellationbounds.cpp index dc2f316475..15f5d2d25e 100644 --- a/modules/space/rendering/renderableconstellationbounds.cpp +++ b/modules/space/rendering/renderableconstellationbounds.cpp @@ -164,7 +164,7 @@ RenderableConstellationBounds::RenderableConstellationBounds( ); } -bool RenderableConstellationBounds::initialize() { +void RenderableConstellationBounds::initialize() { _program = OsEng.renderEngine().buildRenderProgram( "ConstellationBounds", "${MODULE_SPACE}/shaders/constellationbounds_vs.glsl", @@ -189,11 +189,9 @@ bool RenderableConstellationBounds::initialize() { glVertexAttribPointer(positionAttrib, 3, GL_FLOAT, GL_FALSE, 0, 0); glBindVertexArray(0); - - return true; } -bool RenderableConstellationBounds::deinitialize() { +void RenderableConstellationBounds::deinitialize() { glDeleteBuffers(1, &_vbo); _vbo = 0; glDeleteVertexArrays(1, &_vao); @@ -203,8 +201,6 @@ bool RenderableConstellationBounds::deinitialize() { OsEng.renderEngine().removeRenderProgram(_program); _program = nullptr; } - - return true; } bool RenderableConstellationBounds::isReady() const { diff --git a/modules/space/rendering/renderableconstellationbounds.h b/modules/space/rendering/renderableconstellationbounds.h index 200e2d8359..b1d7cdc566 100644 --- a/modules/space/rendering/renderableconstellationbounds.h +++ b/modules/space/rendering/renderableconstellationbounds.h @@ -50,8 +50,8 @@ class RenderableConstellationBounds : public Renderable { public: RenderableConstellationBounds(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/space/rendering/renderableplanet.cpp b/modules/space/rendering/renderableplanet.cpp index 7dd725773a..7b75071c89 100644 --- a/modules/space/rendering/renderableplanet.cpp +++ b/modules/space/rendering/renderableplanet.cpp @@ -339,7 +339,7 @@ RenderablePlanet::RenderablePlanet(const ghoul::Dictionary& dictionary) } } -bool RenderablePlanet::initialize() { +void RenderablePlanet::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); if (_programObject == nullptr && _shadowEnabled && _hasNightTexture) { @@ -379,11 +379,9 @@ bool RenderablePlanet::initialize() { _programObject->deactivate(); loadTexture(); - - return isReady(); } -bool RenderablePlanet::deinitialize() { +void RenderablePlanet::deinitialize() { if (_geometry) { _geometry->deinitialize(); _geometry = nullptr; @@ -398,8 +396,6 @@ bool RenderablePlanet::deinitialize() { _geometry = nullptr; _texture = nullptr; _nightTexture = nullptr; - - return true; } bool RenderablePlanet::isReady() const { diff --git a/modules/space/rendering/renderableplanet.h b/modules/space/rendering/renderableplanet.h index bd037b6292..1fb3603f5d 100644 --- a/modules/space/rendering/renderableplanet.h +++ b/modules/space/rendering/renderableplanet.h @@ -68,8 +68,8 @@ public: public: RenderablePlanet(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& rendererTask) override; diff --git a/modules/space/rendering/renderablerings.cpp b/modules/space/rendering/renderablerings.cpp index 9ba7e61b87..3368d051aa 100644 --- a/modules/space/rendering/renderablerings.cpp +++ b/modules/space/rendering/renderablerings.cpp @@ -184,7 +184,7 @@ bool RenderableRings::isReady() const { return _shader && _texture; } -bool RenderableRings::initialize() { +void RenderableRings::initialize() { if (!_shader) { RenderEngine& renderEngine = OsEng.renderEngine(); _shader = renderEngine.buildRenderProgram("RingProgram", @@ -200,11 +200,9 @@ bool RenderableRings::initialize() { glGenBuffers(1, &_vertexPositionBuffer); createPlane(); loadTexture(); - - return isReady(); } -bool RenderableRings::deinitialize() { +void RenderableRings::deinitialize() { glDeleteVertexArrays(1, &_quad); _quad = 0; @@ -216,8 +214,6 @@ bool RenderableRings::deinitialize() { OsEng.renderEngine().removeRenderProgram(_shader); _shader = nullptr; - - return true; } void RenderableRings::render(const RenderData& data, RendererTasks&) { diff --git a/modules/space/rendering/renderablerings.h b/modules/space/rendering/renderablerings.h index 446ec280dd..3d39feb896 100644 --- a/modules/space/rendering/renderablerings.h +++ b/modules/space/rendering/renderablerings.h @@ -46,8 +46,8 @@ class RenderableRings : public Renderable { public: RenderableRings(const ghoul::Dictionary& dictionary); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/space/rendering/renderablestars.cpp b/modules/space/rendering/renderablestars.cpp index c5972a83cf..c0a277f83a 100644 --- a/modules/space/rendering/renderablestars.cpp +++ b/modules/space/rendering/renderablestars.cpp @@ -288,25 +288,20 @@ bool RenderableStars::isReady() const { return (_program != nullptr) && (!_fullData.empty()); } -bool RenderableStars::initialize() { - bool completeSuccess = true; - +void RenderableStars::initialize() { RenderEngine& renderEngine = OsEng.renderEngine(); _program = renderEngine.buildRenderProgram("Star", "${MODULE_SPACE}/shaders/star_vs.glsl", "${MODULE_SPACE}/shaders/star_fs.glsl", "${MODULE_SPACE}/shaders/star_ge.glsl"); - if (!_program) { - return false; + bool success = loadData(); + if (!success) { + throw ghoul::RuntimeError("Error loading data"); } - completeSuccess &= loadData(); - completeSuccess &= (_pointSpreadFunctionTexture != nullptr); - - return completeSuccess; } -bool RenderableStars::deinitialize() { +void RenderableStars::deinitialize() { glDeleteBuffers(1, &_vbo); _vbo = 0; glDeleteVertexArrays(1, &_vao); @@ -320,7 +315,6 @@ bool RenderableStars::deinitialize() { renderEngine.removeRenderProgram(_program); _program = nullptr; } - return true; } void RenderableStars::render(const RenderData& data, RendererTasks&) { diff --git a/modules/space/rendering/renderablestars.h b/modules/space/rendering/renderablestars.h index c346eac3e8..346a4dbd02 100644 --- a/modules/space/rendering/renderablestars.h +++ b/modules/space/rendering/renderablestars.h @@ -48,8 +48,8 @@ public: explicit RenderableStars(const ghoul::Dictionary& dictionary); ~RenderableStars(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; diff --git a/modules/toyvolume/rendering/renderabletoyvolume.cpp b/modules/toyvolume/rendering/renderabletoyvolume.cpp index cf862861a7..5ea3fa67bb 100644 --- a/modules/toyvolume/rendering/renderabletoyvolume.cpp +++ b/modules/toyvolume/rendering/renderabletoyvolume.cpp @@ -70,7 +70,7 @@ RenderableToyVolume::RenderableToyVolume(const ghoul::Dictionary& dictionary) RenderableToyVolume::~RenderableToyVolume() {} -bool RenderableToyVolume::initialize() { +void RenderableToyVolume::initialize() { _raycaster = std::make_unique(_color); _raycaster->initialize(); @@ -93,25 +93,22 @@ bool RenderableToyVolume::initialize() { addProperty(_translation); addProperty(_rotation); addProperty(_color); - - return true; } -bool RenderableToyVolume::deinitialize() { +void RenderableToyVolume::deinitialize() { if (_raycaster) { OsEng.renderEngine().raycasterManager().detachRaycaster(*_raycaster.get()); _raycaster = nullptr; } - return true; } bool RenderableToyVolume::isReady() const { + // @TODO isReady function needs to be filled return true; } void RenderableToyVolume::update(const UpdateData& data) { if (_raycaster) { - glm::mat4 transform = glm::translate(glm::mat4(1.0), static_cast(_translation) * std::pow(10.0f, static_cast(_scalingExponent))); glm::vec3 eulerRotation = static_cast(_rotation); transform = glm::rotate(transform, eulerRotation.x, glm::vec3(1, 0, 0)); diff --git a/modules/toyvolume/rendering/renderabletoyvolume.h b/modules/toyvolume/rendering/renderabletoyvolume.h index b5e1390ffc..5655cbf9c0 100644 --- a/modules/toyvolume/rendering/renderabletoyvolume.h +++ b/modules/toyvolume/rendering/renderabletoyvolume.h @@ -44,8 +44,8 @@ public: RenderableToyVolume(const ghoul::Dictionary& dictionary); ~RenderableToyVolume(); - bool initialize() override; - bool deinitialize() override; + void initialize() override; + void deinitialize() override; bool isReady() const override; void render(const RenderData& data, RendererTasks& tasks) override; void update(const UpdateData& data) override; diff --git a/src/rendering/renderable.cpp b/src/rendering/renderable.cpp index f8fb604e6b..fc5e410b84 100644 --- a/src/rendering/renderable.cpp +++ b/src/rendering/renderable.cpp @@ -139,6 +139,10 @@ Renderable::Renderable(const ghoul::Dictionary& dictionary) Renderable::~Renderable() {} +void Renderable::initialize() {} + +void Renderable::deinitialize() {} + void Renderable::setBoundingSphere(float boundingSphere) { _boundingSphere = boundingSphere; } diff --git a/src/scene/scene.cpp b/src/scene/scene.cpp index 547c1e6627..0321bac716 100644 --- a/src/scene/scene.cpp +++ b/src/scene/scene.cpp @@ -212,13 +212,10 @@ void Scene::sortTopologically() { void Scene::initialize() { for (SceneGraphNode* node : _topologicallySortedNodes) { try { - bool success = node->initialize(); - if (success) - LDEBUG(node->name() << " initialized successfully!"); - else - LWARNING(node->name() << " not initialized."); + node->initialize(); } catch (const ghoul::RuntimeError& e) { + LERROR(node->name() << " not initialized."); LERRORC(std::string(_loggerCat) + "(" + e.component + ")", e.what()); } } diff --git a/src/scene/scenegraphnode.cpp b/src/scene/scenegraphnode.cpp index 4f65fa39fd..0d752411bd 100644 --- a/src/scene/scenegraphnode.cpp +++ b/src/scene/scenegraphnode.cpp @@ -182,7 +182,7 @@ SceneGraphNode::~SceneGraphNode() { deinitialize(); } -bool SceneGraphNode::initialize() { +void SceneGraphNode::initialize() { if (_renderable) { _renderable->initialize(); } @@ -197,11 +197,9 @@ bool SceneGraphNode::initialize() { if (_transform.scale) { _transform.scale->initialize(); } - - return true; } -bool SceneGraphNode::deinitialize() { +void SceneGraphNode::deinitialize() { LDEBUG("Deinitialize: " << name()); if (_renderable) { @@ -210,10 +208,7 @@ bool SceneGraphNode::deinitialize() { } _children.clear(); - // reset variables _parent = nullptr; - - return true; } void SceneGraphNode::traversePreOrder(std::function fn) {