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

Method write

Engine/source/ts/tsShape.cpp:1866–1925  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1864}
1865
1866void TSShape::write(Stream * s, bool saveOldFormat)
1867{
1868 S32 currentVersion = smVersion;
1869 if (saveOldFormat)
1870 smVersion = 24;
1871
1872 // write version
1873 s->write(smVersion | (mExporterVersion<<16));
1874
1875 tsalloc.setWrite();
1876 disassembleShape();
1877
1878 S32 * buffer32 = tsalloc.getBuffer32();
1879 S16 * buffer16 = tsalloc.getBuffer16();
1880 S8 * buffer8 = tsalloc.getBuffer8();
1881
1882 S32 size32 = tsalloc.getBufferSize32();
1883 S32 size16 = tsalloc.getBufferSize16();
1884 S32 size8 = tsalloc.getBufferSize8();
1885
1886 // convert sizes to dwords...
1887 if (size16 & 1)
1888 size16 += 2;
1889 size16 >>= 1;
1890 if (size8 & 3)
1891 size8 += 4;
1892 size8 >>= 2;
1893
1894 S32 sizeMemBuffer, start16, start8;
1895 sizeMemBuffer = size32 + size16 + size8;
1896 start16 = size32;
1897 start8 = start16+size16;
1898
1899 // in dwords -- write will properly endian-flip.
1900 s->write(sizeMemBuffer);
1901 s->write(start16);
1902 s->write(start8);
1903
1904 // endian-flip the entire write buffers.
1905 fixEndian(buffer32,buffer16,buffer8,size32,size16,size8);
1906
1907 // now write buffers
1908 s->write(size32*4,buffer32);
1909 s->write(size16*4,buffer16);
1910 s->write(size8 *4,buffer8);
1911
1912 // write sequences - write will properly endian-flip.
1913 s->write(sequences.size());
1914 for (S32 i=0; i<sequences.size(); i++)
1915 sequences[i].write(s);
1916
1917 // write material list - write will properly endian-flip.
1918 materialList->write(*s);
1919
1920 delete [] buffer32;
1921 delete [] buffer16;
1922 delete [] buffer8;
1923

Callers 7

_updateMethod · 0.45
loadColladaShapeFunction · 0.45
extractTextureMethod · 0.45
assimpLoadShapeFunction · 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