From dab046b302c2af833acd797f6afc5b45aa4e1333 Mon Sep 17 00:00:00 2001 From: Sebastian Piwell Date: Wed, 9 Mar 2016 10:45:53 -0500 Subject: [PATCH] Create ScrenSpaceImage at runtime for testing purposes --- .../openspace/rendering/screenspacerenderable.h | 3 +++ modules/base/CMakeLists.txt | 2 ++ modules/base/rendering/screenspaceimage.cpp | 8 +++++++- modules/base/rendering/screenspaceimage.h | 14 ++++++++++---- src/CMakeLists.txt | 2 ++ src/rendering/renderengine.cpp | 5 ++++- src/rendering/screenspacerenderable.cpp | 14 +++++++++++++- 7 files changed, 41 insertions(+), 7 deletions(-) diff --git a/include/openspace/rendering/screenspacerenderable.h b/include/openspace/rendering/screenspacerenderable.h index 7a26043277..e25352665e 100644 --- a/include/openspace/rendering/screenspacerenderable.h +++ b/include/openspace/rendering/screenspacerenderable.h @@ -33,6 +33,9 @@ namespace openspace { class ScreenSpaceRenderable : public properties::PropertyOwner { public: + ScreenSpaceRenderable(); + ~ScreenSpaceRenderable(); + virtual void render() = 0; virtual bool initialize() = 0; virtual bool deinitialize() = 0; diff --git a/modules/base/CMakeLists.txt b/modules/base/CMakeLists.txt index 11a45e407c..b961794c0a 100644 --- a/modules/base/CMakeLists.txt +++ b/modules/base/CMakeLists.txt @@ -38,6 +38,7 @@ set(HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderabletrail.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/simplespheregeometry.h ${CMAKE_CURRENT_SOURCE_DIR}/rendering/wavefrontgeometry.h + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/screenspaceimage.h ${CMAKE_CURRENT_SOURCE_DIR}/ephemeris/dynamicephemeris.h ${CMAKE_CURRENT_SOURCE_DIR}/ephemeris/spiceephemeris.h ${CMAKE_CURRENT_SOURCE_DIR}/ephemeris/staticephemeris.h @@ -58,6 +59,7 @@ set(SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderabletrail.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/simplespheregeometry.cpp ${CMAKE_CURRENT_SOURCE_DIR}/rendering/wavefrontgeometry.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/rendering/screenspaceimage.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ephemeris/dynamicephemeris.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ephemeris/spiceephemeris.cpp ${CMAKE_CURRENT_SOURCE_DIR}/ephemeris/staticephemeris.cpp diff --git a/modules/base/rendering/screenspaceimage.cpp b/modules/base/rendering/screenspaceimage.cpp index a93795c88b..666506cc56 100644 --- a/modules/base/rendering/screenspaceimage.cpp +++ b/modules/base/rendering/screenspaceimage.cpp @@ -24,9 +24,15 @@ #include namespace openspace { + ScreenSpaceImage::ScreenSpaceImage() + :ScreenSpaceRenderable() + {} + + ScreenSpaceImage::~ScreenSpaceImage(){} + void ScreenSpaceImage::render(){ - return; + } bool ScreenSpaceImage::initialize(){ diff --git a/modules/base/rendering/screenspaceimage.h b/modules/base/rendering/screenspaceimage.h index 71ad8c35ef..5934e36b0a 100644 --- a/modules/base/rendering/screenspaceimage.h +++ b/modules/base/rendering/screenspaceimage.h @@ -21,13 +21,19 @@ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ - #include - #include +#ifndef __SCREENSPACEIMAGE_H__ +#define __SCREENSPACEIMAGE_H__ + +#include +#include namespace openspace { class ScreenSpaceImage : public ScreenSpaceRenderable { public: + ScreenSpaceImage(); + ~ScreenSpaceImage(); + void render() override; bool initialize() override; bool deinitialize() override; @@ -35,5 +41,5 @@ public: private: std::unique_ptr _imageHandle; // The image to render }; - -} \ No newline at end of file +} //namespace openspace +#endif //__SCREENSPACEIMAGE_H__ \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f57874ac5a..b1bd073159 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -63,6 +63,7 @@ set(OPENSPACE_SOURCE ${OPENSPACE_BASE_DIR}/src/rendering/renderable.cpp ${OPENSPACE_BASE_DIR}/src/rendering/renderengine.cpp ${OPENSPACE_BASE_DIR}/src/rendering/renderengine_lua.inl + ${OPENSPACE_BASE_DIR}/src/rendering/screenspacerenderable.cpp ${OPENSPACE_BASE_DIR}/src/scene/ephemeris.cpp ${OPENSPACE_BASE_DIR}/src/scene/scene.cpp ${OPENSPACE_BASE_DIR}/src/scene/scene_lua.inl @@ -132,6 +133,7 @@ set(OPENSPACE_HEADER ${OPENSPACE_BASE_DIR}/include/openspace/rendering/renderer.h ${OPENSPACE_BASE_DIR}/include/openspace/rendering/renderengine.h ${OPENSPACE_BASE_DIR}/include/openspace/rendering/volume.h + ${OPENSPACE_BASE_DIR}/include/openspace/rendering/screenspacerenderable.h ${OPENSPACE_BASE_DIR}/include/openspace/scene/ephemeris.h ${OPENSPACE_BASE_DIR}/include/openspace/scene/scene.h ${OPENSPACE_BASE_DIR}/include/openspace/scene/scenegraph.h diff --git a/src/rendering/renderengine.cpp b/src/rendering/renderengine.cpp index 718705a6b5..ff2eaaccb3 100644 --- a/src/rendering/renderengine.cpp +++ b/src/rendering/renderengine.cpp @@ -32,6 +32,8 @@ #include #include +#include + #include #include #include @@ -204,7 +206,8 @@ bool RenderEngine::initialize() { ghoul::io::TextureReader::ref().addReader(std::make_shared()); - + std::shared_ptr s = std::make_shared(); + registerScreenSpaceRenderable(s); return true; } diff --git a/src/rendering/screenspacerenderable.cpp b/src/rendering/screenspacerenderable.cpp index f2dfe7f7f6..165deb28e1 100644 --- a/src/rendering/screenspacerenderable.cpp +++ b/src/rendering/screenspacerenderable.cpp @@ -21,6 +21,18 @@ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE * * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * ****************************************************************************************/ - +#include + namespace openspace { + ScreenSpaceRenderable::ScreenSpaceRenderable() + : _enabled("enabled", "Is Enabled", true) + , _position("position", "Position", glm::vec3(0,0,0)) + , _size("size", "Size" , glm::vec2(1,1)) + { + addProperty(_enabled); + addProperty(_position); + addProperty(_size); + } + + ScreenSpaceRenderable::~ScreenSpaceRenderable(){} } \ No newline at end of file