summaryrefslogtreecommitdiff
path: root/indra/newview/llmeshrepository.cpp
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2011-05-16 12:56:18 -0400
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2011-05-16 12:56:18 -0400
commitdb05176138e6bf3e2011db1b5db4bc1b125d070f (patch)
tree8ff20984744f7091c6bb930ab10523ef113117a1 /indra/newview/llmeshrepository.cpp
parentd6fda15c34896db3b911c3719871ce317edaab1d (diff)
sh-1491 WIP
Diffstat (limited to 'indra/newview/llmeshrepository.cpp')
-rwxr-xr-xindra/newview/llmeshrepository.cpp43
1 files changed, 31 insertions, 12 deletions
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index 2a68fbac8d..653fb46754 100755
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -84,6 +84,8 @@ U32 LLMeshRepository::sPeakKbps = 0;
const U32 MAX_TEXTURE_UPLOAD_RETRIES = 5;
+void dumpLLSDToFile(LLSD& content, std::string filename);
+
std::string header_lod[] =
{
"lowest_lod",
@@ -492,11 +494,18 @@ public:
const LLChannelDescriptors& channels,
const LLIOPipe::buffer_ptr_t& buffer)
{
- assert_main_thread();
+ //assert_main_thread();
llinfos << "completed" << llendl;
mThread->mPendingUploads--;
+
+ LLSD content;
+ LLBufferStream istr(channels, buffer.get());
+ if (!LLSDSerialize::fromXML(content, istr))
+ {
+ llinfos << "Failed to deserialize LLSD. " << " [" << status << "]: " << reason << llendl;
+ }
+ dumpLLSDToFile(content,"whole_model_response.xml");
}
-
};
LLMeshRepoThread::LLMeshRepoThread()
@@ -1362,8 +1371,8 @@ void LLMeshUploadThread::run()
}
}
-#if 0
-void dumpLLSDToFile(LLSD& content, std::string& filename)
+#if 1
+void dumpLLSDToFile(LLSD& content, std::string filename)
{
std::ofstream of(filename);
LLSDSerialize::toPrettyXML(content,of);
@@ -1373,9 +1382,10 @@ void dumpLLSDToFile(LLSD& content, std::string& filename)
void LLMeshUploadThread::wholeModelToLLSD(LLSD& dest, bool include_textures)
{
// TODO where do textures go?
-
+
LLSD result;
+ LLSD res;
result["folder_id"] = gInventory.findCategoryUUIDForType(LLFolderType::FT_OBJECT);
result["asset_type"] = "mesh";
result["inventory_type"] = "object";
@@ -1384,9 +1394,9 @@ void LLMeshUploadThread::wholeModelToLLSD(LLSD& dest, bool include_textures)
// TODO "optional" fields from the spec
- LLSD res;
res["mesh_list"] = LLSD::emptyArray();
- res["texture_list"] = LLSD::emptyArray();
+// TODO Textures
+ //res["texture_list"] = LLSD::emptyArray();
S32 mesh_num = 0;
S32 texture_num = 0;
@@ -1432,10 +1442,15 @@ void LLMeshUploadThread::wholeModelToLLSD(LLSD& dest, bool include_textures)
LLQuaternion rot;
LLMatrix4 transformation = instance.mTransform;
decomposeMeshMatrix(transformation,pos,rot,scale);
-
+
+#if 0
mesh_entry["childpos"] = ll_sd_from_vector3(pos);
mesh_entry["childrot"] = ll_sd_from_quaternion(rot);
mesh_entry["scale"] = ll_sd_from_vector3(scale);
+#endif
+ mesh_entry["position"] = ll_sd_from_vector3(LLVector3());
+ mesh_entry["rotation"] = ll_sd_from_quaternion(rot);
+ mesh_entry["scale"] = ll_sd_from_vector3(scale);
// TODO should be binary.
std::string str = ostr.str();
@@ -1479,9 +1494,8 @@ void LLMeshUploadThread::wholeModelToLLSD(LLSD& dest, bool include_textures)
}
result["asset_resources"] = res;
-#if 0
- std::string name("whole_model.xml");
- dumpLLSDToFile(result,name);
+#if 1
+ dumpLLSDToFile(result,"whole_model.xml");
#endif
dest = result;
@@ -1540,9 +1554,14 @@ void LLMeshUploadThread::doWholeModelUpload()
mPendingUploads++;
LLCurlRequest::headers_t headers;
- mCurlRequest->post(mWholeModelUploadCapability, headers, model_data.asString(),
+ mCurlRequest->post(mWholeModelUploadCapability, headers, model_data,
new LLWholeModelFeeResponder(this));
+ do
+ {
+ mCurlRequest->process();
+ } while (mCurlRequest->getQueued() > 0);
+
// Currently a no-op.
mFinished = true;
}