MCPcopy Create free account
hub / github.com/GarageGames/Torque3D / write

Method write

Engine/source/ts/tsShape.cpp:1826–1885  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1824}
1825
1826void TSShape::write(Stream * s, bool saveOldFormat)
1827{
1828 S32 currentVersion = smVersion;
1829 if (saveOldFormat)
1830 smVersion = 24;
1831
1832 // write version
1833 s->write(smVersion | (mExporterVersion<<16));
1834
1835 tsalloc.setWrite();
1836 disassembleShape();
1837
1838 S32 * buffer32 = tsalloc.getBuffer32();
1839 S16 * buffer16 = tsalloc.getBuffer16();
1840 S8 * buffer8 = tsalloc.getBuffer8();
1841
1842 S32 size32 = tsalloc.getBufferSize32();
1843 S32 size16 = tsalloc.getBufferSize16();
1844 S32 size8 = tsalloc.getBufferSize8();
1845
1846 // convert sizes to dwords...
1847 if (size16 & 1)
1848 size16 += 2;
1849 size16 >>= 1;
1850 if (size8 & 3)
1851 size8 += 4;
1852 size8 >>= 2;
1853
1854 S32 sizeMemBuffer, start16, start8;
1855 sizeMemBuffer = size32 + size16 + size8;
1856 start16 = size32;
1857 start8 = start16+size16;
1858
1859 // in dwords -- write will properly endian-flip.
1860 s->write(sizeMemBuffer);
1861 s->write(start16);
1862 s->write(start8);
1863
1864 // endian-flip the entire write buffers.
1865 fixEndian(buffer32,buffer16,buffer8,size32,size16,size8);
1866
1867 // now write buffers
1868 s->write(size32*4,buffer32);
1869 s->write(size16*4,buffer16);
1870 s->write(size8 *4,buffer8);
1871
1872 // write sequences - write will properly endian-flip.
1873 s->write(sequences.size());
1874 for (S32 i=0; i<sequences.size(); i++)
1875 sequences[i].write(s);
1876
1877 // write material list - write will properly endian-flip.
1878 materialList->write(*s);
1879
1880 delete [] buffer32;
1881 delete [] buffer16;
1882 delete [] buffer8;
1883

Callers 5

_updateMethod · 0.45
loadColladaShapeFunction · 0.45
_updateBaseTextureMethod · 0.45
saveMethod · 0.45
packUpdateMethod · 0.45

Calls 2

setWriteMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected