From 66894a8fdad67f6d871158b88aae4607ab451123 Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Tue, 3 Mar 2015 14:55:26 -0800 Subject: [PATCH] Adding the render library that will provide the base rendering engine and scene description --- interface/CMakeLists.txt | 2 +- libraries/render-utils/CMakeLists.txt | 4 ++-- libraries/render/CMakeLists.txt | 12 ++++++++++++ .../{render-utils => render}/src/render/Scene.cpp | 11 ++++++----- .../{render-utils => render}/src/render/Scene.h | 14 ++++++++------ 5 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 libraries/render/CMakeLists.txt rename libraries/{render-utils => render}/src/render/Scene.cpp (62%) mode change 100755 => 100644 rename libraries/{render-utils => render}/src/render/Scene.h (93%) mode change 100755 => 100644 diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index 9bc4b393c5..b56ede81a9 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -115,7 +115,7 @@ target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${BULLET_INCLUDE_DIRS}) target_link_libraries(${TARGET_NAME} ${BULLET_LIBRARIES}) # link required hifi libraries -link_hifi_libraries(shared octree environment gpu model fbx metavoxels networking entities avatars +link_hifi_libraries(shared octree environment gpu model render fbx metavoxels networking entities avatars audio audio-client animation script-engine physics render-utils entities-renderer) diff --git a/libraries/render-utils/CMakeLists.txt b/libraries/render-utils/CMakeLists.txt index caabff44cf..90ca13c1d4 100644 --- a/libraries/render-utils/CMakeLists.txt +++ b/libraries/render-utils/CMakeLists.txt @@ -1,6 +1,6 @@ set(TARGET_NAME render-utils) -AUTOSCRIBE_SHADER_LIB(gpu model) +AUTOSCRIBE_SHADER_LIB(gpu model render) # pull in the resources.qrc file qt5_add_resources(QT_RESOURCES_FILE "${CMAKE_CURRENT_SOURCE_DIR}/res/fonts/fonts.qrc") @@ -12,4 +12,4 @@ add_dependency_external_projects(glm) find_package(GLM REQUIRED) target_include_directories(${TARGET_NAME} PUBLIC ${GLM_INCLUDE_DIRS}) -link_hifi_libraries(animation fbx shared gpu) \ No newline at end of file +link_hifi_libraries(animation fbx shared gpu model render) \ No newline at end of file diff --git a/libraries/render/CMakeLists.txt b/libraries/render/CMakeLists.txt new file mode 100644 index 0000000000..ee99eb00b9 --- /dev/null +++ b/libraries/render/CMakeLists.txt @@ -0,0 +1,12 @@ +set(TARGET_NAME render) + +AUTOSCRIBE_SHADER_LIB(gpu model) + +# use setup_hifi_library macro to setup our project and link appropriate Qt modules +setup_hifi_library() + +add_dependency_external_projects(glm) +find_package(GLM REQUIRED) +target_include_directories(${TARGET_NAME} PUBLIC ${GLM_INCLUDE_DIRS}) + +link_hifi_libraries(shared gpu model) \ No newline at end of file diff --git a/libraries/render-utils/src/render/Scene.cpp b/libraries/render/src/render/Scene.cpp old mode 100755 new mode 100644 similarity index 62% rename from libraries/render-utils/src/render/Scene.cpp rename to libraries/render/src/render/Scene.cpp index 173ffc3eb8..f1a166c65e --- a/libraries/render-utils/src/render/Scene.cpp +++ b/libraries/render/src/render/Scene.cpp @@ -13,13 +13,14 @@ using namespace render; -Item::ID Scene::addItem(Item::PayloadPtr& payload) { - - return 0; +Item::ID Scene::addItem(ItemDataPointer& itemData) { + ID id = _items.size(); + _items.push_back(Item(itemData)); + return id; } -void removeItem(ID id) { +void Scene::removeItem(ID id) { } -void moveItem(ID id) { +void Scene::moveItem(ID id) { } diff --git a/libraries/render-utils/src/render/Scene.h b/libraries/render/src/render/Scene.h old mode 100755 new mode 100644 similarity index 93% rename from libraries/render-utils/src/render/Scene.h rename to libraries/render/src/render/Scene.h index 09c79b8a82..e130392ee1 --- a/libraries/render-utils/src/render/Scene.h +++ b/libraries/render/src/render/Scene.h @@ -72,10 +72,9 @@ public: protected: }; - typedef std::shared_ptr PayloadPtr; + typedef std::shared_ptr PayloadPointer; - - Item(PayloadPtr& payload): + Item(PayloadPointer& payload): _payload(payload) {} ~Item() {} @@ -105,12 +104,15 @@ public: void render(Context& context) { _payload->render(context); } protected: - PayloadPtr _payload; + PayloadPointer _payload; State _state; friend class Scene; }; +typedef Item::PayloadInterface ItemData; +typedef Item::PayloadPointer ItemDataPointer; + class Scene { public: typedef Item::Vector Items; @@ -142,10 +144,10 @@ public: ~Scene() {} - ID addItem(Item::PayloadPtr& payload); + ID addItem(ItemDataPointer& itemData); void removeItem(ID id); void moveItem(ID id); - + protected: Items _items;