Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1357)

Unified Diff: serializer/cross/serializer.cc

Issue 149236: Add o3djs.DestinationBuffer to converter.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/o3d/
Patch Set: '' Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: serializer/cross/serializer.cc
===================================================================
--- serializer/cross/serializer.cc (revision 19848)
+++ serializer/cross/serializer.cc (working copy)
@@ -47,6 +47,7 @@
#include "core/cross/skin.h"
#include "core/cross/texture.h"
#include "core/cross/transform.h"
+#include "import/cross/destination_buffer.h"
#include "import/cross/iarchive_generator.h"
#include "import/cross/memory_buffer.h"
#include "import/cross/memory_stream.h"
@@ -345,6 +346,7 @@
BinaryArchiveManager* binary_archive_manager)
: writer_(writer),
binary_archive_manager_(binary_archive_manager) {
+ Enable<DestinationBuffer>(&CustomVisitor::Visit);
Enable<Buffer>(&CustomVisitor::Visit);
Enable<Curve>(&CustomVisitor::Visit);
Enable<Primitive>(&CustomVisitor::Visit);
@@ -356,6 +358,29 @@
}
private:
+ void Visit(DestinationBuffer* buffer) {
+ Visit(static_cast<NamedObject*>(buffer));
apatrick 2009/07/07 00:58:25 Comment why its not the base class.
+ writer_->WritePropertyName("numElements");
+ Serialize(writer_, buffer->num_elements());
+ writer_->WritePropertyName("fields");
+ writer_->OpenArray();
+ const FieldRefArray& fields = buffer->fields();
+ for (size_t ii = 0; ii < fields.size(); ++ii) {
+ Field* field = fields[ii].Get();
+ writer_->BeginCompacting();
+ writer_->OpenObject();
+ writer_->WritePropertyName("id");
+ Serialize(writer_, field->id());
+ writer_->WritePropertyName("type");
+ Serialize(writer_, field->GetClassName());
+ writer_->WritePropertyName("numComponents");
+ Serialize(writer_, field->num_components());
+ writer_->CloseObject();
+ writer_->EndCompacting();
+ }
+ writer_->CloseArray();
+ }
+
void Visit(Buffer* buffer) {
Visit(static_cast<NamedObject*>(buffer));
@@ -585,6 +610,7 @@
: binary_archive_manager_(binary_archive_manager) {
Enable<Curve>(&BinaryVisitor::Visit);
Enable<IndexBuffer>(&BinaryVisitor::Visit);
+ Enable<DestinationBuffer>(&BinaryVisitor::Visit);
Enable<VertexBufferBase>(&BinaryVisitor::Visit);
Enable<Skin>(&BinaryVisitor::Visit);
}
@@ -608,6 +634,11 @@
serialized_data.GetLength());
}
+ void Visit(DestinationBuffer* buffer) {
+ // Destination buffers should NOT have their contents serialized.
+ Visit(static_cast<Buffer*>(buffer));
+ }
+
void Visit(IndexBuffer* buffer) {
Visit(static_cast<Buffer*>(buffer));

Powered by Google App Engine
This is Rietveld 408576698