fill info for CKBitmapData
This commit is contained in:
parent
138e47cbdc
commit
e907c18f35
|
@ -119,6 +119,14 @@ public class MainRunner {
|
||||||
GeneralWriter.writeAccVal(fs, single, CommonHelper.CKParts.CK2);
|
GeneralWriter.writeAccVal(fs, single, CommonHelper.CKParts.CK2);
|
||||||
fs.close();
|
fs.close();
|
||||||
|
|
||||||
|
single = organiseDefines("src/CK_BITMAPDATA_FLAGS.txt", "CK_BITMAPDATA_FLAGS");
|
||||||
|
fs = CommonHelper.openOutputFile("dest/CK_BITMAPDATA_FLAGS.hpp");
|
||||||
|
GeneralWriter.writeEnum(fs, single);
|
||||||
|
fs.close();
|
||||||
|
fs = CommonHelper.openOutputFile("dest/CK_BITMAPDATA_FLAGS.AccVal.hpp");
|
||||||
|
GeneralWriter.writeAccVal(fs, single, CommonHelper.CKParts.CK2);
|
||||||
|
fs.close();
|
||||||
|
|
||||||
// print message.
|
// print message.
|
||||||
System.out.println("DONE!");
|
System.out.println("DONE!");
|
||||||
}
|
}
|
||||||
|
|
14
CodeGen/src/CK_BITMAPDATA_FLAGS.txt
Normal file
14
CodeGen/src/CK_BITMAPDATA_FLAGS.txt
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
#define CKBITMAPDATA_INVALID 1
|
||||||
|
|
||||||
|
#define CKBITMAPDATA_TRANSPARENT 2
|
||||||
|
|
||||||
|
#define CKBITMAPDATA_FORCERESTORE 4
|
||||||
|
|
||||||
|
#define CKBITMAPDATA_CLAMPUPTODATE 8
|
||||||
|
|
||||||
|
#define CKBITMAPDATA_CUBEMAP 16
|
||||||
|
|
||||||
|
#define CKBITMAPDATA_FREEVIDEOMEMORY 32
|
||||||
|
|
||||||
|
#define CKBITMAPDATA_DYNAMIC 64
|
|
@ -2,7 +2,32 @@
|
||||||
|
|
||||||
namespace LibCmo::CK2 {
|
namespace LibCmo::CK2 {
|
||||||
|
|
||||||
CKBitmapData::CKBitmapData() {}
|
#pragma region Assist RW Functions
|
||||||
|
|
||||||
|
bool CKBitmapData::ReadSpecificFormatBitmap(CKStateChunk* chk, VxMath::VxImageDescEx* desc) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CKBitmapData::ReadRawBitmap(CKStateChunk* chk, VxMath::VxImageDescEx* desc) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CKBitmapData::ReadOldRawBitmap(CKStateChunk* chk, VxMath::VxImageDescEx* desc) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CKBitmapData::WriteSpecificFormatBitmap(CKStateChunk* chk, const VxMath::VxImageDescEx* desc) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void CKBitmapData::WriteRawBitmap(CKStateChunk* chk, const VxMath::VxImageDescEx* desc) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma endregion
|
||||||
|
|
||||||
|
|
||||||
|
CKBitmapData::CKBitmapData(CKContext* ctx) {}
|
||||||
|
|
||||||
CKBitmapData::~CKBitmapData() {}
|
CKBitmapData::~CKBitmapData() {}
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,142 @@
|
||||||
|
|
||||||
namespace LibCmo::CK2 {
|
namespace LibCmo::CK2 {
|
||||||
|
|
||||||
|
struct CKBitmapDataReadIdentifiers {
|
||||||
|
CKDWORD m_SpecificFormat; /**< CK_STATESAVEFLAGS_TEXTURE::CK_STATESAVE_TEXREADER(0x100000) in default. */
|
||||||
|
CKDWORD m_RawData; /**< CK_STATESAVEFLAGS_TEXTURE::CK_STATESAVE_TEXCOMPRESSED(0x20000) in default. */
|
||||||
|
CKDWORD m_OldRawData; /**< CK_STATESAVEFLAGS_TEXTURE::CK_STATESAVE_TEXBITMAPS(0x4000) in default. */
|
||||||
|
|
||||||
|
CKDWORD m_FileNames; /**< CK_STATESAVEFLAGS_TEXTURE::CK_STATESAVE_TEXFILENAMES(0x10000) in default. */
|
||||||
|
CKDWORD m_MovieFileName; /**< CK_STATESAVEFLAGS_TEXTURE::CK_STATESAVE_TEXAVIFILENAME(0x1000) in default. */
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CKBitmapDataWriteIdentifiers {
|
||||||
|
CKDWORD m_SpecificFormat; /**< CK_STATESAVEFLAGS_TEXTURE::CK_STATESAVE_TEXREADER(0x100000) in default. */
|
||||||
|
CKDWORD m_RawData; /**< CK_STATESAVEFLAGS_TEXTURE::CK_STATESAVE_TEXCOMPRESSED(0x20000) in default. */
|
||||||
|
|
||||||
|
CKDWORD m_FileNames; /**< CK_STATESAVEFLAGS_TEXTURE::CK_STATESAVE_TEXFILENAMES(0x10000) in default. */
|
||||||
|
CKDWORD m_MovieFileName; /**< CK_STATESAVEFLAGS_TEXTURE::CK_STATESAVE_TEXAVIFILENAME(0x1000) in default. */
|
||||||
|
};
|
||||||
|
|
||||||
|
class CKBitmapSlot {
|
||||||
|
public:
|
||||||
|
CKBitmapSlot() :
|
||||||
|
m_ImageData(nullptr), m_FileName() {}
|
||||||
|
~CKBitmapSlot() {
|
||||||
|
FreeImage();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CreateImage(CKDWORD Width, CKDWORD Height) {
|
||||||
|
FreeImage();
|
||||||
|
m_ImageData = new VxMath::VxImageDescEx(Width, Height);
|
||||||
|
}
|
||||||
|
void FreeImage() {
|
||||||
|
if (m_ImageData != nullptr) {
|
||||||
|
delete m_ImageData;
|
||||||
|
m_ImageData = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VxMath::VxImageDescEx* m_ImageData;
|
||||||
|
XContainer::XString m_FileName;
|
||||||
|
};
|
||||||
|
|
||||||
class CKBitmapData {
|
class CKBitmapData {
|
||||||
public:
|
public:
|
||||||
CKBitmapData();
|
CKBitmapData(CKContext* ctx);
|
||||||
~CKBitmapData();
|
~CKBitmapData();
|
||||||
|
LIBCMO_DISABLE_COPY_MOVE(CKBitmapData);
|
||||||
|
|
||||||
|
static bool ReadSpecificFormatBitmap(CKStateChunk* chk, VxMath::VxImageDescEx* desc);
|
||||||
|
static bool ReadRawBitmap(CKStateChunk* chk, VxMath::VxImageDescEx* desc);
|
||||||
|
static bool ReadOldRawBitmap(CKStateChunk* chk, VxMath::VxImageDescEx* desc);
|
||||||
|
static void WriteSpecificFormatBitmap(CKStateChunk* chk, const VxMath::VxImageDescEx* desc);
|
||||||
|
static void WriteRawBitmap(CKStateChunk* chk, const VxMath::VxImageDescEx* desc);
|
||||||
|
|
||||||
|
bool ReadFromChunk(CKStateChunk* chunk, CKFileVisitor* file, const CKBitmapDataReadIdentifiers& identifiers);
|
||||||
|
bool DumpToChunk(CKStateChunk* chunk, CKFileVisitor* file, const CKBitmapDataWriteIdentifiers& identifiers);
|
||||||
|
|
||||||
|
void SetSlotCount(CKDWORD count);
|
||||||
|
CKDWORD GetSlotCount();
|
||||||
|
void SetCurrentSlot(CKDWORD slot);
|
||||||
|
CKDWORD GetCurrentSlot();
|
||||||
|
|
||||||
|
void CreateImage(CKDWORD Width, CKDWORD Height, CKDWORD Slot);
|
||||||
|
bool LoadImage(CKSTRING filename, CKDWORD slot);
|
||||||
|
bool SaveImage(CKSTRING filename, CKDWORD slot);
|
||||||
|
VxMath::VxImageDescEx* GetImageDesc(CKDWORD slot);
|
||||||
|
void ReleaseImage(CKDWORD slot);
|
||||||
|
|
||||||
|
void SetSlotFileName(CKDWORD slot, CKSTRING filename);
|
||||||
|
CKSTRING GetSlotFileName(CKDWORD slot);
|
||||||
|
|
||||||
|
const CKBitmapProperties& GetSaveProperties();
|
||||||
|
void SetSaveProperties(const CKBitmapProperties& props);
|
||||||
|
CK_TEXTURE_SAVEOPTIONS GetSaveOptions();
|
||||||
|
void SetSaveOptions(CK_TEXTURE_SAVEOPTIONS opts);
|
||||||
|
VxMath::VX_PIXELFORMAT GetDesiredVideoFormat();
|
||||||
|
void SetDesiredVideoFormat(VxMath::VX_PIXELFORMAT fmt);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Summary: Enables or disables the color key transparency.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
Transparency: TRUE activates transparency, FALSE disables it.
|
||||||
|
Remarks:
|
||||||
|
+ 0x00000000 (black) is the default transparent color.
|
||||||
|
+ Setting on the transparency and a transparent color automatically
|
||||||
|
updates the alpha channel so that pixel with the transparent color have
|
||||||
|
a 0 alpha value.
|
||||||
|
See also: IsTransparent,SetTranparentColor
|
||||||
|
*/
|
||||||
|
void SetTransparent(bool Transparency);
|
||||||
|
/**
|
||||||
|
Summary: Returns whether color keyed transparency is enabled.
|
||||||
|
|
||||||
|
Return Value:
|
||||||
|
TRUE if successful.
|
||||||
|
Arguments:
|
||||||
|
Transparency: TRUE activates transparency, FALSE disables it.
|
||||||
|
Return Value:
|
||||||
|
TRUE if color keying is enabled.
|
||||||
|
See also: IsTransparent
|
||||||
|
*/
|
||||||
|
bool IsTransparent();
|
||||||
|
/**
|
||||||
|
Summary: Returns the transparent color.
|
||||||
|
Return Value:
|
||||||
|
Color: A 32 bit ARGB transparent color.
|
||||||
|
Remarks:
|
||||||
|
+ 0x00000000 (black) is the default transparent color.
|
||||||
|
|
||||||
|
See also: SetTranparentColor,SetTransparent
|
||||||
|
*/
|
||||||
|
CKDWORD GetTransparentColor();
|
||||||
|
/**
|
||||||
|
Summary: Sets the transparent color.
|
||||||
|
Arguments:
|
||||||
|
Color: A 32 bit ARGB transparent color.
|
||||||
|
Remarks:
|
||||||
|
+ 0x00000000 (black) is the default transparent color.
|
||||||
|
+ Setting on the transparency and a transparent color automatically
|
||||||
|
updates the alpha channel so that pixel with the transparent color have
|
||||||
|
a 0 alpha value.
|
||||||
|
|
||||||
|
See also: GetTranparentColor,SetTransparent
|
||||||
|
*/
|
||||||
|
void SetTransparentColor(CKDWORD col);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
CKContext* m_Context;
|
||||||
|
XContainer::XArray<CKBitmapSlot> m_Slots;
|
||||||
|
CKDWORD m_CurrentSlot;
|
||||||
|
CKINT m_PickThreshold;
|
||||||
|
CKDWORD m_BitmapFlags;
|
||||||
|
CKDWORD m_TransColor;
|
||||||
|
|
||||||
|
CKBitmapProperties m_SaveProperties;
|
||||||
|
CK_TEXTURE_SAVEOPTIONS m_SaveOptions;
|
||||||
|
VxMath::VX_PIXELFORMAT m_DesiredVideoFormat;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -346,4 +346,14 @@ namespace LibCmo::CK2 {
|
||||||
CKSOUND_USEGLOBAL = 2, /**< Use Global settings. This flag is only valid for the CKSound::SetSaveOptions method. */
|
CKSOUND_USEGLOBAL = 2, /**< Use Global settings. This flag is only valid for the CKSound::SetSaveOptions method. */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class CK_BITMAPDATA_FLAGS : uint32_t {
|
||||||
|
CKBITMAPDATA_INVALID = 1,
|
||||||
|
CKBITMAPDATA_TRANSPARENT = 2,
|
||||||
|
CKBITMAPDATA_FORCERESTORE = 4,
|
||||||
|
CKBITMAPDATA_CLAMPUPTODATE = 8,
|
||||||
|
CKBITMAPDATA_CUBEMAP = 16,
|
||||||
|
CKBITMAPDATA_FREEVIDEOMEMORY = 32,
|
||||||
|
CKBITMAPDATA_DYNAMIC = 64,
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,7 +78,7 @@ namespace LibCmo::VxMath {
|
||||||
*/
|
*/
|
||||||
class VxImageDescEx {
|
class VxImageDescEx {
|
||||||
public:
|
public:
|
||||||
VxImageDescEx(CK2::CKDWORD height, CK2::CKDWORD width) :
|
VxImageDescEx(CK2::CKDWORD width, CK2::CKDWORD height) :
|
||||||
m_Width(width), m_Height(height),
|
m_Width(width), m_Height(height),
|
||||||
//m_RedMask(0), m_GreenMask(0), m_BlueMask(0), m_AlphaMask(0),
|
//m_RedMask(0), m_GreenMask(0), m_BlueMask(0), m_AlphaMask(0),
|
||||||
m_Image(nullptr){
|
m_Image(nullptr){
|
||||||
|
|
Loading…
Reference in New Issue
Block a user