From f2997c0997d137d85b958208cc7377dd072c31ed Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 29 Aug 2017 16:40:43 -0700 Subject: [PATCH 1/7] refuse to perform mapping operations in /.baked/ --- assignment-client/src/assets/AssetServer.cpp | 35 ++++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/assignment-client/src/assets/AssetServer.cpp b/assignment-client/src/assets/AssetServer.cpp index 10aadc33cc..f7a8ecf453 100644 --- a/assignment-client/src/assets/AssetServer.cpp +++ b/assignment-client/src/assets/AssetServer.cpp @@ -533,11 +533,18 @@ void AssetServer::handleSetMappingOperation(ReceivedMessage& message, SharedNode auto assetHash = message.read(SHA256_HASH_LENGTH).toHex(); - if (setMapping(assetPath, assetHash)) { - replyPacket.writePrimitive(AssetServerError::NoError); + // don't process a set mapping operation that is inside the hidden baked folder + if (assetPath.startsWith(HIDDEN_BAKED_CONTENT_FOLDER)) { + qCDebug(asset_server) << "Refusing to process a set mapping operation inside" << HIDDEN_BAKED_CONTENT_FOLDER; + replyPacket.writePrimitive(AssetServerError::PermissionDenied); } else { - replyPacket.writePrimitive(AssetServerError::MappingOperationFailed); + if (setMapping(assetPath, assetHash)) { + replyPacket.writePrimitive(AssetServerError::NoError); + } else { + replyPacket.writePrimitive(AssetServerError::MappingOperationFailed); + } } + } else { replyPacket.writePrimitive(AssetServerError::PermissionDenied); } @@ -551,7 +558,14 @@ void AssetServer::handleDeleteMappingsOperation(ReceivedMessage& message, Shared QStringList mappingsToDelete; for (int i = 0; i < numberOfDeletedMappings; ++i) { - mappingsToDelete << message.readString(); + auto mapping = message.readString(); + + if (!mapping.startsWith(HIDDEN_BAKED_CONTENT_FOLDER)) { + mappingsToDelete << mapping; + } else { + qCDebug(asset_server) << "Refusing to delete mapping" << mapping + << "that is inside" << HIDDEN_BAKED_CONTENT_FOLDER; + } } if (deleteMappings(mappingsToDelete)) { @@ -569,11 +583,18 @@ void AssetServer::handleRenameMappingOperation(ReceivedMessage& message, SharedN QString oldPath = message.readString(); QString newPath = message.readString(); - if (renameMapping(oldPath, newPath)) { - replyPacket.writePrimitive(AssetServerError::NoError); + if (oldPath.startsWith(HIDDEN_BAKED_CONTENT_FOLDER) || newPath.startsWith(HIDDEN_BAKED_CONTENT_FOLDER)) { + qCDebug(asset_server) << "Cannot rename" << oldPath << "to" << newPath + << "since one of the paths is inside" << HIDDEN_BAKED_CONTENT_FOLDER; + replyPacket.writePrimitive(AssetServerError::PermissionDenied); } else { - replyPacket.writePrimitive(AssetServerError::MappingOperationFailed); + if (renameMapping(oldPath, newPath)) { + replyPacket.writePrimitive(AssetServerError::NoError); + } else { + replyPacket.writePrimitive(AssetServerError::MappingOperationFailed); + } } + } else { replyPacket.writePrimitive(AssetServerError::PermissionDenied); } From 3abca67f1a48426162e3c56e5e29743d4bea0522 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Tue, 29 Aug 2017 16:41:02 -0700 Subject: [PATCH 2/7] remove use of auto in TextureBaker for OS X compile --- libraries/baking/src/TextureBaker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/baking/src/TextureBaker.cpp b/libraries/baking/src/TextureBaker.cpp index f80af66aa2..548e3921e4 100644 --- a/libraries/baking/src/TextureBaker.cpp +++ b/libraries/baking/src/TextureBaker.cpp @@ -47,7 +47,7 @@ const QStringList TextureBaker::getSupportedFormats() { auto formats = QImageReader::supportedImageFormats(); QStringList stringFormats; std::transform(formats.begin(), formats.end(), std::back_inserter(stringFormats), - [](auto& format) -> QString { return format; }); + [](QByteArray& format) -> QString { return format; }); return stringFormats; } From ed21ad11d27f60eacb8f94b34addca4031259ef5 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 30 Aug 2017 15:14:53 -0700 Subject: [PATCH 3/7] add baking to default build, add default to baking status --- libraries/baking/CMakeLists.txt | 2 -- libraries/networking/src/AssetUtils.cpp | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/libraries/baking/CMakeLists.txt b/libraries/baking/CMakeLists.txt index 44c52ae0d8..ee2d861539 100644 --- a/libraries/baking/CMakeLists.txt +++ b/libraries/baking/CMakeLists.txt @@ -11,7 +11,5 @@ if (FBX_FOUND) target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${FBX_INCLUDE_DIR}) endif () -set_target_properties(${TARGET_NAME} PROPERTIES EXCLUDE_FROM_ALL TRUE EXCLUDE_FROM_DEFAULT_BUILD TRUE) - link_hifi_libraries(shared model networking ktx image) include_hifi_library_headers(gpu) diff --git a/libraries/networking/src/AssetUtils.cpp b/libraries/networking/src/AssetUtils.cpp index af085d6463..df3aa7ad0b 100644 --- a/libraries/networking/src/AssetUtils.cpp +++ b/libraries/networking/src/AssetUtils.cpp @@ -87,8 +87,6 @@ bool isValidHash(const AssetHash& hash) { QString bakingStatusToString(BakingStatus status) { switch (status) { - case Unrelevant: - return "--"; case NotBaked: return "Not Baked"; case Pending: @@ -99,5 +97,8 @@ QString bakingStatusToString(BakingStatus status) { return "Baked"; case Error: return "Error"; + default: + case Unrelevant: + return "--"; } } From 81fdc27ca871afacbff9e60c5b9f2c4ac5f611b8 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 30 Aug 2017 15:34:20 -0700 Subject: [PATCH 4/7] use 2017.1 FBX SDK on all platforms, change linux location --- cmake/modules/FindFBX.cmake | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/cmake/modules/FindFBX.cmake b/cmake/modules/FindFBX.cmake index 6eb6d11f9d..3963f4d2e6 100644 --- a/cmake/modules/FindFBX.cmake +++ b/cmake/modules/FindFBX.cmake @@ -17,11 +17,7 @@ # which uses the MIT license (https://github.com/ufz-vislab/VtkFbxConverter/blob/master/LICENSE.txt) if (NOT FBX_VERSION) - if (WIN32) - set(FBX_VERSION 2017.1) - else() - set(FBX_VERSION 2017.0.1) - endif() + set(FBX_VERSION 2017.1) endif() string(REGEX REPLACE "^([0-9]+).*$" "\\1" FBX_VERSION_MAJOR "${FBX_VERSION}") @@ -29,7 +25,7 @@ string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*$" "\\1" FBX_VERSION_MINOR "${FBX_VER string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" FBX_VERSION_PATCH "${FBX_VERSION}") set(FBX_MAC_LOCATIONS "/Applications/Autodesk/FBX\ SDK/${FBX_VERSION}") -set(FBX_LINUX_LOCATIONS "/usr/local/lib/gcc4/x64/debug/") +set(FBX_LINUX_LOCATIONS "/usr/local/fbxsdk") if (WIN32) string(REGEX REPLACE "\\\\" "/" WIN_PROGRAM_FILES_X64_DIRECTORY $ENV{ProgramW6432}) @@ -73,7 +69,7 @@ function(_fbx_find_library _name _lib _suffix) find_library(${_name} NAMES ${_lib} HINTS ${FBX_SEARCH_LOCATIONS} - PATH_SUFFIXES lib/${fbx_compiler}/${_suffix} lib/${fbx_compiler}/ub/${_suffix} lib/${VS_PREFIX}/x64/${_suffix} + PATH_SUFFIXES lib/${fbx_compiler}/${_suffix} lib/${fbx_compiler}/x64/${_suffix} lib/${fbx_compiler}/ub/${_suffix} lib/${VS_PREFIX}/x64/${_suffix} ) mark_as_advanced(${_name}) From 4e1e483e27a9f87b83f5bdaf989f1cf773dcaf30 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 30 Aug 2017 16:50:20 -0700 Subject: [PATCH 5/7] link DL libs with FBX SDK for baking --- libraries/baking/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/baking/CMakeLists.txt b/libraries/baking/CMakeLists.txt index ee2d861539..806220ec30 100644 --- a/libraries/baking/CMakeLists.txt +++ b/libraries/baking/CMakeLists.txt @@ -9,6 +9,10 @@ if (FBX_FOUND) target_link_libraries(${TARGET_NAME} ${FBX_LIBRARIES}) endif () target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${FBX_INCLUDE_DIR}) + + if (UNIX) + target_link_libraries(${TARGET_NAME} ${CMAKE_DL_LIBS}) + endif (UNIX) endif () link_hifi_libraries(shared model networking ktx image) From 84b5afaa4dd7244efb93a423ff8559e25977bd3c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 30 Aug 2017 17:28:17 -0700 Subject: [PATCH 6/7] mark task dispatcher as override --- libraries/image/src/image/Image.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/image/src/image/Image.cpp b/libraries/image/src/image/Image.cpp index eaa55d0315..c6baee56c9 100644 --- a/libraries/image/src/image/Image.cpp +++ b/libraries/image/src/image/Image.cpp @@ -449,7 +449,7 @@ void generateMips(gpu::Texture* texture, QImage& image, int face = -1) { class SequentialTaskDispatcher : public nvtt::TaskDispatcher { public: - virtual void dispatch(nvtt::Task* task, void* context, int count) { + virtual void dispatch(nvtt::Task* task, void* context, int count) override { for (int i = 0; i < count; i++) { task(context, i); } From da8ae237565abe0bf21496ef25bdff09d2b5ce90 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 31 Aug 2017 11:52:42 -0700 Subject: [PATCH 7/7] move default to the bottom of bakingStatusToString --- libraries/networking/src/AssetUtils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/networking/src/AssetUtils.cpp b/libraries/networking/src/AssetUtils.cpp index df3aa7ad0b..4c26d2d633 100644 --- a/libraries/networking/src/AssetUtils.cpp +++ b/libraries/networking/src/AssetUtils.cpp @@ -97,8 +97,8 @@ QString bakingStatusToString(BakingStatus status) { return "Baked"; case Error: return "Error"; - default: case Unrelevant: + default: return "--"; } }