예제 #1
0
            public void UnParse(Stream s)
            {
                BinaryWriter bw = new BinaryWriter(s);

                mModelLodIndex.UnParse(s);
                bw.Write((UInt32)mFlags);
                bw.Write((UInt32)mId);
                bw.Write(mMinZValue);
                bw.Write(mMaxZValue);
            }
예제 #2
0
        public override Stream UnParse()
        {
            MemoryStream s  = new MemoryStream();
            BinaryWriter bw = new BinaryWriter(s);

            bw.Write((UInt32)FOURCC(Tag));
            bw.Write(mVersion);
            bw.Write((UInt32)mFlags);
            if (mSwizzleInfo == null)
            {
                mSwizzleInfo = new GenericRCOLResource.ChunkReference(0, handler, 0);
            }
            mSwizzleInfo.UnParse(s);
            if (mBuffer == null)
            {
                mBuffer = new byte[0];
            }
            bw.Write(mBuffer);
            return(s);
        }
예제 #3
0
            public void UnParse(Stream s)
            {
                BinaryWriter bw         = new BinaryWriter(s);
                long         sizeOffset = s.Position;

                bw.Write(0);
                long start = s.Position;

                bw.Write(mName);
                mMaterialIndex.UnParse(s);
                mVertexFormatIndex.UnParse(s);
                mVertexBufferIndex.UnParse(s);
                mIndexBufferIndex.UnParse(s);
                bw.Write((UInt32)mPrimitiveType | ((UInt32)mFlags << 8));
                bw.Write(mStreamOffset);
                bw.Write(mStartVertex);
                bw.Write(mStartIndex);
                bw.Write(mMinVertexIndex);
                bw.Write(mVertexCount);
                bw.Write(mPrimitiveCount);
                mBounds.UnParse(s);
                mSkinControllerIndex.UnParse(s);
                mJointReferences.UnParse(s);
                mScaleOffsetIndex.UnParse(s);
                mGeometryStates.UnParse(s);
                if (mOwner.Version > 0x00000201)
                {
                    bw.Write(mParentName);
                    mMirrorPlane.UnParse(s);
                }
                if (mOwner.Version > 0x00000203)
                {
                    bw.Write(mUnknown1);
                }
                long end  = s.Position;
                long size = end - start;

                s.Seek(sizeOffset, SeekOrigin.Begin);
                bw.Write((uint)size);
                s.Seek(end, SeekOrigin.Begin);
            }