25 Stream(
const char* externalData, uint32_t externalSize);
29 uint32_t GetSize()
const;
31 void SetPos(uint32_t pos);
33 void Resize(uint32_t size);
35 void SetExternalData(
const char* externalData, uint32_t externalSize);
37 bool ReadFile(
const char* path,
bool isAsset, int32_t maxSize = 0);
38 bool WriteFile(
const char* path);
41 void SetAssetVersion(uint32_t version);
42 uint32_t GetAssetVersion()
const;
45 void WriteAsset(
const AssetRef& asset);
47 void ReadString(std::string& dst);
48 void WriteString(
const std::string& src);
50 void ReadBytes(uint8_t* dst, uint32_t length);
51 void WriteBytes(
const uint8_t* src, uint32_t length);
53 uint32_t ReadBytesMax(uint8_t* dst, uint32_t length);
56 uint32_t ReadUint32();
58 uint64_t ReadUint64();
60 uint16_t ReadUint16();
69 glm::mat4 ReadMatrix();
71 void WriteInt32(
const int32_t& src);
72 void WriteUint32(
const uint32_t& src);
73 void WriteInt64(
const int64_t& src);
74 void WriteUint64(
const uint64_t& src);
75 void WriteInt16(
const int16_t& src);
76 void WriteUint16(
const uint16_t& src);
77 void WriteInt8(
const int8_t& src);
78 void WriteUint8(
const uint8_t& src);
79 void WriteFloat(
const float& src);
80 void WriteBool(
const bool& src);
81 void WriteVec2(
const glm::vec2& src);
82 void WriteVec3(
const glm::vec3& src);
83 void WriteVec4(
const glm::vec4& src);
84 void WriteQuat(
const glm::quat& src);
85 void WriteMatrix(
const glm::mat4& src);
87 std::string GetLine();
88 int32_t Scan(
const char* format, ...);
92 void Grow(uint32_t newSize);
93 void Reserve(uint32_t capacity);
98 OCT_ASSERT(
sizeof(T) == 1 ||
sizeof(T) == 2 ||
sizeof(T) == 4);
100 memcpy(&dst, &mData[mPos],
sizeof(T));
108 else if (
sizeof(T) == 2)
116 void Write(
const T& src)
118 OCT_ASSERT(
sizeof(T) == 1 ||
sizeof(T) == 2 ||
sizeof(T) == 4);
127 else if (
sizeof(T) == 2)
133 uint32_t deltaSize = uint32_t(
sizeof(T));
134 if (mPos + deltaSize > mSize)
136 Grow(mPos + deltaSize);
138 memcpy(&mData[mPos], &srcSwapped,
sizeof(T));
148 uint32_t mAssetVersion;