finish CKBitmapData writer.
- finish spec fmt image writer and raw bitmap writer. - fix a possible fatal issue in ReadBuffer(). return nullptr simply rather than allocate a blank buf. otherwise the process of use nullptr to check result will be broken. - add CanSaveAlpha() method in CKBitmapHandler.
This commit is contained in:
@ -256,6 +256,10 @@ namespace LibCmo::CK2::DataHandlers {
|
||||
});
|
||||
}
|
||||
|
||||
bool CKBitmapBMPHandler::CanSaveAlpha() {
|
||||
return false;
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region CKBitmapTGAHandler
|
||||
@ -293,6 +297,10 @@ namespace LibCmo::CK2::DataHandlers {
|
||||
});
|
||||
}
|
||||
|
||||
bool CKBitmapTGAHandler::CanSaveAlpha() {
|
||||
return true;
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region General Getter Freer
|
||||
|
@ -91,7 +91,11 @@ namespace LibCmo::CK2::DataHandlers {
|
||||
@see SaveFile
|
||||
*/
|
||||
virtual CKDWORD SaveMemory(void* memory, const VxMath::VxImageDescEx* write_image, const CKBitmapProperties& codec_param) = 0;
|
||||
|
||||
/**
|
||||
* @brief Check whether this bitmap handler can save alpha data.
|
||||
* @return True if this bitmap handler can save alpha data.
|
||||
*/
|
||||
virtual bool CanSaveAlpha() = 0;
|
||||
};
|
||||
|
||||
class CKBitmapBMPHandler : public CKBitmapHandler {
|
||||
@ -106,6 +110,7 @@ namespace LibCmo::CK2::DataHandlers {
|
||||
virtual bool ReadMemory(const void* memory, CKDWORD size, VxMath::VxImageDescEx* read_image) override;
|
||||
virtual bool SaveFile(CKSTRING u8filename, const VxMath::VxImageDescEx* write_image, const CKBitmapProperties& codec_param) override;
|
||||
virtual CKDWORD SaveMemory(void* memory, const VxMath::VxImageDescEx* write_image, const CKBitmapProperties& codec_param) override;
|
||||
virtual bool CanSaveAlpha() override;
|
||||
|
||||
};
|
||||
|
||||
@ -121,6 +126,7 @@ namespace LibCmo::CK2::DataHandlers {
|
||||
virtual bool ReadMemory(const void* memory, CKDWORD size, VxMath::VxImageDescEx* read_image) override;
|
||||
virtual bool SaveFile(CKSTRING u8filename, const VxMath::VxImageDescEx* write_image, const CKBitmapProperties& codec_param) override;
|
||||
virtual CKDWORD SaveMemory(void* memory, const VxMath::VxImageDescEx* write_image, const CKBitmapProperties& codec_param) override;
|
||||
virtual bool CanSaveAlpha() override;
|
||||
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user