finish CKMesh writer

- fix some writing issue.
- create a internal object adder in CKFileWriter shared by AddObject and Ctor(copy Reader).
This commit is contained in:
2023-10-02 09:16:45 +08:00
parent 92f4271124
commit 9aa8b2b961
4 changed files with 35 additions and 30 deletions

View File

@ -130,7 +130,7 @@ namespace LibCmo::CK2::ObjImpls {
CKBYTE* rawbuf = static_cast<CKBYTE*>(buf.get());
// reserve length data
CKDWORD* reservedBufSize = reinterpret_cast<CKDWORD*>(rawbuf);
CKDWORD* reservedBufDwordSize = reinterpret_cast<CKDWORD*>(rawbuf);
rawbuf += CKSizeof(CKDWORD);
// write vertex position
@ -188,7 +188,7 @@ namespace LibCmo::CK2::ObjImpls {
CKDWORD realConsumedSize = rawbuf - static_cast<CKBYTE*>(buf.get());
// assign to reserved length field
// length also include length indicator it self
*reservedBufSize = realConsumedSize;
*reservedBufDwordSize = realConsumedSize / CKSizeof(CKDWORD);
// notify buffer real consumed size
buf.get_deleter().SetConsumedSize(realConsumedSize);