rsFileA3D.h revision fb6b614bcea88a587a7ea4530be45ff0ffa0210e
1a5597fcd411badad50c1345b3eca26453da45bbbJason Sams/* 2a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * Copyright (C) 2009 The Android Open Source Project 3a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * 4a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * you may not use this file except in compliance with the License. 6a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * You may obtain a copy of the License at 7a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * 8a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * http://www.apache.org/licenses/LICENSE-2.0 9a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * 10a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * Unless required by applicable law or agreed to in writing, software 11a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * See the License for the specific language governing permissions and 14a5597fcd411badad50c1345b3eca26453da45bbbJason Sams * limitations under the License. 15a5597fcd411badad50c1345b3eca26453da45bbbJason Sams */ 16a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 17a5597fcd411badad50c1345b3eca26453da45bbbJason Sams#ifndef ANDROID_RS_FILE_A3D_H 18a5597fcd411badad50c1345b3eca26453da45bbbJason Sams#define ANDROID_RS_FILE_A3D_H 19a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 20a5597fcd411badad50c1345b3eca26453da45bbbJason Sams#include "RenderScript.h" 21a5597fcd411badad50c1345b3eca26453da45bbbJason Sams#include "rsFileA3DDecls.h" 22a5597fcd411badad50c1345b3eca26453da45bbbJason Sams#include "rsMesh.h" 23a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 24a5597fcd411badad50c1345b3eca26453da45bbbJason Sams#include <utils/String8.h> 25fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk#include "rsStream.h" 26a5597fcd411badad50c1345b3eca26453da45bbbJason Sams#include <stdio.h> 27a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 28a5597fcd411badad50c1345b3eca26453da45bbbJason Sams// --------------------------------------------------------------------------- 29a5597fcd411badad50c1345b3eca26453da45bbbJason Samsnamespace android { 30a5597fcd411badad50c1345b3eca26453da45bbbJason Samsnamespace renderscript { 31a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 32a5597fcd411badad50c1345b3eca26453da45bbbJason Samsclass FileA3D 33a5597fcd411badad50c1345b3eca26453da45bbbJason Sams{ 34a5597fcd411badad50c1345b3eca26453da45bbbJason Samspublic: 35a5597fcd411badad50c1345b3eca26453da45bbbJason Sams FileA3D(); 36a5597fcd411badad50c1345b3eca26453da45bbbJason Sams ~FileA3D(); 37a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 38a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint32_t mMajorVersion; 39a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint32_t mMinorVersion; 40a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint64_t mIndexOffset; 41a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint64_t mStringTableOffset; 42a5597fcd411badad50c1345b3eca26453da45bbbJason Sams bool mUse64BitOffsets; 43a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 44a5597fcd411badad50c1345b3eca26453da45bbbJason Sams struct A3DIndexEntry { 45a5597fcd411badad50c1345b3eca26453da45bbbJason Sams String8 mID; 46fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk A3DClassID mType; 47a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint64_t mOffset; 48a5597fcd411badad50c1345b3eca26453da45bbbJason Sams void * mRsObj; 49a5597fcd411badad50c1345b3eca26453da45bbbJason Sams }; 50a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 51a5597fcd411badad50c1345b3eca26453da45bbbJason Sams bool load(Context *rsc, FILE *f); 52fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk size_t getNumLoadedEntries() const; 53fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk const A3DIndexEntry* getLoadedEntry(size_t index) const; 54fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk ObjectBase *initializeFromEntry(const A3DIndexEntry *entry); 55a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 56fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk void appendToFile(ObjectBase *obj); 57fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk bool writeFile(const char *filename); 58a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 59fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchoukprotected: 60a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 61a5597fcd411badad50c1345b3eca26453da45bbbJason Sams const uint8_t * mData; 62a5597fcd411badad50c1345b3eca26453da45bbbJason Sams void * mAlloc; 63a5597fcd411badad50c1345b3eca26453da45bbbJason Sams uint64_t mDataSize; 64a5597fcd411badad50c1345b3eca26453da45bbbJason Sams Context * mRsc; 65a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 66fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk OStream *mWriteStream; 67fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk Vector<A3DIndexEntry*> mWriteIndex; 68a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 69fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk IStream *mReadStream; 70fb6b614bcea88a587a7ea4530be45ff0ffa0210eAlex Sakhartchouk Vector<A3DIndexEntry*> mIndex; 71a5597fcd411badad50c1345b3eca26453da45bbbJason Sams}; 72a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 73a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 74a5597fcd411badad50c1345b3eca26453da45bbbJason Sams} 75a5597fcd411badad50c1345b3eca26453da45bbbJason Sams} 76a5597fcd411badad50c1345b3eca26453da45bbbJason Sams#endif //ANDROID_RS_FILE_A3D_H 77a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 78a5597fcd411badad50c1345b3eca26453da45bbbJason Sams 79