fix some saving result issue

This commit is contained in:
yyc12345 2023-10-02 17:45:59 +08:00
parent db23c9c952
commit b477c468cd
2 changed files with 9 additions and 2 deletions

View File

@ -653,8 +653,10 @@ namespace LibCmo::CK2 {
} }
void CKBitmapData::SetCubeMap(bool is_cube) { void CKBitmapData::SetCubeMap(bool is_cube) {
// MARK: originally we should resize solot to 6 exactly.
// but we decide split the flag settings and slot.
// User should set slot count manually.
if (is_cube) { if (is_cube) {
SetSlotCount(6);
EnumsHelper::Add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP); EnumsHelper::Add(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP);
} else { } else {
EnumsHelper::Rm(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP); EnumsHelper::Rm(m_BitmapFlags, CK_BITMAPDATA_FLAGS::CKBITMAPDATA_CUBEMAP);
@ -694,7 +696,11 @@ namespace LibCmo::CK2 {
} }
void CKBitmapData::SetTransparentColor(CKDWORD col) { void CKBitmapData::SetTransparentColor(CKDWORD col) {
SetTransparent(true); // MARK: originally, we should set CK_BITMAPDATA_FLAGS::CKBITMAPDATA_TRANSPARENT for m_BitmapFlags.
// but in CKTexture::Read(), I don't know why Virtools use this fucking design. Virtools split the enable and color data self,
// and always write Transparent Color no matter whether Transparent enabled.
// so i split transparent enable function and transparent color. User should manually enable transparent if they needed.
// Just set transparent color will not enable transparent automatically.
m_TransColor = col; m_TransColor = col;
} }

View File

@ -154,6 +154,7 @@ namespace Unvirt::Context {
LibCmo::CK2::CKStartUp(); LibCmo::CK2::CKStartUp();
m_Ctx = new LibCmo::CK2::CKContext(); m_Ctx = new LibCmo::CK2::CKContext();
m_Ctx->SetOutputCallback(std::bind(&UnvirtContext::PrintContextMsg, this, std::placeholders::_1)); m_Ctx->SetOutputCallback(std::bind(&UnvirtContext::PrintContextMsg, this, std::placeholders::_1));
m_Ctx->SetGlobalImagesSaveOptions(LibCmo::CK2::CK_TEXTURE_SAVEOPTIONS::CKTEXTURE_EXTERNAL);
} }
UnvirtContext::~UnvirtContext() { UnvirtContext::~UnvirtContext() {