//===== Copyright © 1996-2005, Valve Corporation, All rights reserved. ======// // // Byteswapping datadescs for the corresponding worldstructures. These // must stay in sync with the stucts in worldstructures.h. // //===========================================================================// #include "worldstructures.h" //-------------------------------------------------------------------------------------- // Fake-material related //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( MaterialResourceBinding_t ) DEFINE_FIELD( m_cBindStage, FIELD_CHARACTER ), DEFINE_FIELD( m_cBindSlot, FIELD_CHARACTER ), DEFINE_FIELD( m_cBindSampler, FIELD_CHARACTER ), END_BYTESWAP_DATADESC() BEGIN_BYTESWAP_DATADESC( Material_t ) DEFINE_ARRAY( m_szShaderVS, FIELD_CHARACTER, MAX_SHADER_NAME ), DEFINE_ARRAY( m_szShaderPS, FIELD_CHARACTER, MAX_SHADER_NAME ), DEFINE_FIELD( m_nBinds, FIELD_INTEGER ), DEFINE_EMBEDDED_ARRAY( m_Binds, MAX_BINDS ), DEFINE_FIELD( m_bAlphaTest, FIELD_BOOLEAN ), DEFINE_FIELD( m_bInstanced, FIELD_BOOLEAN ), DEFINE_FIELD( m_bUseAtlas, FIELD_BOOLEAN ), DEFINE_FIELD( m_bVertexColor, FIELD_BOOLEAN ), END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // Tiled coordinate //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( IntVector ) DEFINE_FIELD( x, FIELD_INTEGER ), DEFINE_FIELD( y, FIELD_INTEGER ), DEFINE_FIELD( z, FIELD_INTEGER ), END_BYTESWAP_DATADESC() BEGIN_BYTESWAP_DATADESC( TiledPosition_t ) DEFINE_EMBEDDED( m_vTile ), DEFINE_FIELD( m_vLocal, FIELD_VECTOR ), END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // AABB //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( AABB_t ) DEFINE_FIELD( m_vMinBounds, FIELD_VECTOR ), DEFINE_FIELD( m_vMaxBounds, FIELD_VECTOR ), END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // Generic chunk descriptor //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( BVHChunkDescriptor_t ) DEFINE_FIELD( m_nChunkType, FIELD_INTEGER ), DEFINE_FIELD( m_nOffset, FIELD_INTEGER64 ), // TODO: Add int64 to datamap.h DEFINE_FIELD( m_nSize, FIELD_INTEGER64 ), // TODO: Add int64 to datamap.h END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // use this buffer desc instead of BufferDesc_t because BufferDesc_t has pointers // that won't serialized consistently between 32 and 64bits //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( BVHBufferDesc_t ) DEFINE_FIELD( m_nBufferType, FIELD_INTEGER ), DEFINE_FIELD( m_nElementCount, FIELD_INTEGER ), DEFINE_FIELD( m_nElementSizeInBytes, FIELD_INTEGER ), END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // Dictionary related //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( CBVHDictionaryEntry ) DEFINE_EMBEDDED( m_ChunkDesc ), DEFINE_FIELD( m_nRefCount, FIELD_INTEGER ), DEFINE_FIELD( m_nLastFrameUsed, FIELD_INTEGER ), DEFINE_FIELD( m_nResourceType, FIELD_INTEGER ), DEFINE_ARRAY( m_pName, FIELD_CHARACTER, MAX_RESOURCE_NAME ), DEFINE_FIELD( m_Flags, FIELD_CHARACTER ), DEFINE_FIELD( m_bInstanceData, FIELD_BOOLEAN ), DEFINE_ARRAY( m_padding, FIELD_CHARACTER, 2 ), END_BYTESWAP_DATADESC() BEGIN_BYTESWAP_DATADESC( BVHResourceDictionaryHeader_t ) DEFINE_FIELD( m_nInputLayouts, FIELD_INTEGER ), DEFINE_FIELD( m_nResources, FIELD_INTEGER ), DEFINE_ARRAY( m_pPageFile, FIELD_CHARACTER, MAX_PAGE_FILE_NAME ), END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // Input layout //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( BVHInputLayoutDesc_t ) DEFINE_ARRAY( m_pName, FIELD_CHARACTER, RENDER_INPUT_LAYOUT_FIELD_SEMANTIC_NAME_SIZE ), DEFINE_FIELD( m_nFields, FIELD_INTEGER ), DEFINE_FIELD( m_64Bits, FIELD_INTEGER64 ), // TODO: Add int64 to datamap.h END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // Draw-call related //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( BVHResourceBinding_t ) DEFINE_FIELD( m_nResourceIndex, FIELD_INTEGER ), DEFINE_FIELD( m_nBindOffset, FIELD_INTEGER ), DEFINE_FIELD( m_nElementStride, FIELD_INTEGER ), DEFINE_FIELD( m_cBindStage, FIELD_CHARACTER ), DEFINE_FIELD( m_cBindSlot, FIELD_CHARACTER ), DEFINE_ARRAY( m_padding, FIELD_CHARACTER, 2 ), END_BYTESWAP_DATADESC() BEGIN_BYTESWAP_DATADESC( CBVHDrawCall ) DEFINE_FIELD( m_Flags, FIELD_INTEGER ), DEFINE_EMBEDDED( m_Bounds ), DEFINE_FIELD( m_nInputLayout, FIELD_INTEGER ), DEFINE_FIELD( m_nResourceBindings, FIELD_INTEGER ), DEFINE_FIELD( m_nPrimitiveType, FIELD_INTEGER ), DEFINE_FIELD( m_nBaseVertex, FIELD_INTEGER ), DEFINE_FIELD( m_nVertexCount, FIELD_INTEGER ), DEFINE_FIELD( m_nStartIndex, FIELD_INTEGER ), DEFINE_FIELD( m_nIndexCount, FIELD_INTEGER ), DEFINE_FIELD( m_nStartInstance, FIELD_INTEGER ), DEFINE_FIELD( m_nInstanceCount, FIELD_INTEGER ), DEFINE_FIELD( m_64Bits, FIELD_INTEGER64 ), // TODO: Add int64 to datamap.h END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // BVHNode related //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( BVHNodeHeader_t ) DEFINE_FIELD( m_nID, FIELD_INTEGER ), DEFINE_FIELD( m_Flags, FIELD_INTEGER ), DEFINE_FIELD( m_nParent, FIELD_INTEGER ), DEFINE_EMBEDDED( m_Origin ), DEFINE_EMBEDDED( m_Bounds ), DEFINE_FIELD( m_flMinimumDistance, FIELD_FLOAT ), DEFINE_FIELD( m_nChildren, FIELD_INTEGER ), DEFINE_FIELD( m_nResources, FIELD_INTEGER ), DEFINE_FIELD( m_nDrawCalls, FIELD_INTEGER ), END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // World related //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( BVHBuilderParams_t ) DEFINE_FIELD( m_nSizeBytesPerVoxel, FIELD_INTEGER ), DEFINE_FIELD( m_flMinDrawVolumeSize, FIELD_FLOAT ), DEFINE_FIELD( m_flMinDistToCamera, FIELD_FLOAT ), DEFINE_FIELD( m_flMinAtlasDist, FIELD_FLOAT ), DEFINE_FIELD( m_flMinSimplifiedDist, FIELD_FLOAT ), DEFINE_FIELD( m_flHorzFOV, FIELD_FLOAT ), DEFINE_FIELD( m_flHalfScreenWidth, FIELD_FLOAT ), DEFINE_FIELD( m_nAtlasTextureSizeX, FIELD_INTEGER ), DEFINE_FIELD( m_nAtlasTextureSizeY, FIELD_INTEGER ), DEFINE_FIELD( m_nUniqueTextureSizeX, FIELD_INTEGER ), DEFINE_FIELD( m_nUniqueTextureSizeY, FIELD_INTEGER ), DEFINE_FIELD( m_nCompressedAtlasSize, FIELD_INTEGER ), DEFINE_FIELD( m_flGutterSize, FIELD_FLOAT ), DEFINE_FIELD( m_flUVMapThreshold, FIELD_FLOAT ), DEFINE_FIELD( m_vWorldUnitsPerTile, FIELD_VECTOR ), DEFINE_FIELD( m_nMaxTexScaleSlots, FIELD_INTEGER ), DEFINE_FIELD( m_bWrapInAtlas, FIELD_BOOLEAN ), DEFINE_ARRAY( m_padding, FIELD_CHARACTER, 3 ), END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // File header //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( WorldFileHeader_t ) DEFINE_FIELD( m_nFileVersion, FIELD_INTEGER ), DEFINE_FIELD( m_vWorldUnitsPerTile, FIELD_VECTOR ), DEFINE_FIELD( m_nChunks, FIELD_INTEGER ), DEFINE_EMBEDDED( m_BuilderParams ), END_BYTESWAP_DATADESC() //-------------------------------------------------------------------------------------- // Known chunk headers //-------------------------------------------------------------------------------------- BEGIN_BYTESWAP_DATADESC( HierarchyChunkHeader_t ) DEFINE_FIELD( m_nNodes, FIELD_INTEGER ), DEFINE_FIELD( m_nMaxNodeSizeBytes, FIELD_INTEGER ), DEFINE_FIELD( m_nAvgNodeSizeBytes, FIELD_INTEGER ), END_BYTESWAP_DATADESC() BEGIN_BYTESWAP_DATADESC( EntityChunkHeader_t ) DEFINE_FIELD( m_nEntities, FIELD_INTEGER ), END_BYTESWAP_DATADESC() BEGIN_BYTESWAP_DATADESC( VisibilityChunkHeader_t ) DEFINE_FIELD( m_nNodes, FIELD_INTEGER ), DEFINE_FIELD( m_nDWORDS, FIELD_INTEGER ), DEFINE_FIELD( m_nX, FIELD_INTEGER ), DEFINE_FIELD( m_nY, FIELD_INTEGER ), DEFINE_FIELD( m_nZ, FIELD_INTEGER ), DEFINE_FIELD( m_vCellSize, FIELD_VECTOR ), DEFINE_FIELD( m_vStart, FIELD_VECTOR ), END_BYTESWAP_DATADESC() BEGIN_BYTESWAP_DATADESC( RenderInputLayoutFieldProxy_t ) DEFINE_ARRAY( m_pSemanticName, FIELD_CHARACTER, RENDER_INPUT_LAYOUT_FIELD_SEMANTIC_NAME_SIZE ), DEFINE_FIELD( m_nSemanticIndex, FIELD_INTEGER ), DEFINE_FIELD( m_Format, FIELD_INTEGER ), DEFINE_FIELD( m_nOffset, FIELD_INTEGER ), DEFINE_FIELD( m_nSlot, FIELD_INTEGER ), DEFINE_FIELD( m_nSlotType, FIELD_INTEGER ), DEFINE_FIELD( m_nInstanceStepRate, FIELD_INTEGER ), END_BYTESWAP_DATADESC()