diff options
| author | Alex Sakhartchouk <alexst@google.com> | 2010-08-11 10:30:44 -0700 |
|---|---|---|
| committer | Alex Sakhartchouk <alexst@google.com> | 2010-08-11 10:30:44 -0700 |
| commit | 2ce0e3ff30daeab43950513fdf12b72c0302d749 (patch) | |
| tree | bad238dca578c1d9ee43aca62d2a2f69767aa0a5 /libs/rs | |
| parent | a919112f4a68c5a929c68b0838011cdd55f8dca7 (diff) | |
| download | frameworks_base-2ce0e3ff30daeab43950513fdf12b72c0302d749.zip frameworks_base-2ce0e3ff30daeab43950513fdf12b72c0302d749.tar.gz frameworks_base-2ce0e3ff30daeab43950513fdf12b72c0302d749.tar.bz2 | |
Adding allocation reference counting to the a3d models.
Change-Id: I225b431d09bfebbebf49df75b7df5e4d5961a564
Diffstat (limited to 'libs/rs')
| -rw-r--r-- | libs/rs/rsAllocation.cpp | 3 | ||||
| -rw-r--r-- | libs/rs/rsElement.cpp | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/libs/rs/rsAllocation.cpp b/libs/rs/rsAllocation.cpp index d62fa55..7d31bd6 100644 --- a/libs/rs/rsAllocation.cpp +++ b/libs/rs/rsAllocation.cpp @@ -391,7 +391,8 @@ Allocation *Allocation::createFromStream(Context *rsc, IStream *stream) alloc->setName(name.string(), name.size()); // Read in all of our allocation data - stream->loadByteArray(alloc->getPtr(), dataSize); + alloc->data(stream->getPtr() + stream->getPos(), dataSize); + stream->reset(stream->getPos() + dataSize); return alloc; } diff --git a/libs/rs/rsElement.cpp b/libs/rs/rsElement.cpp index 05902f9..5dee1fb 100644 --- a/libs/rs/rsElement.cpp +++ b/libs/rs/rsElement.cpp @@ -114,6 +114,7 @@ Element *Element::createFromStream(Context *rsc, IStream *stream) Element *elem = new Element(rsc); elem->mComponent.loadFromStream(stream); elem->mBits = elem->mComponent.getBits(); + elem->mHasReference = elem->mComponent.isReference(); elem->mFieldCount = stream->loadU32(); if(elem->mFieldCount) { @@ -125,6 +126,10 @@ Element *Element::createFromStream(Context *rsc, IStream *stream) elem->mFields[ct].e.set(fieldElem); elem->mFields[ct].offsetBits = offset; offset += fieldElem->getSizeBits(); + // Check if our sub-elements have references + if(fieldElem->mHasReference) { + elem->mHasReference = true; + } } } |
