@@ -9,8 +9,8 @@ int dword_30B230[20] = {16, 16, 16, 32, 4, 8, 8, 24, 8, 16, 2, 2, 4, 4, 4, 32, 6
//00221DE8 //^_^ 经过单元测试,功能正常
int GetBPP(EFTTTexFormat eFormat) {
int dret;
-
- return dret;
+ LOGE("GetBPP%x",eFormat);
+ return rand();
}
//-------------------------------------------------------------------------------------------------
//00221FE4 ^_- 经过单元测试,功能正常
@@ -83,6 +83,39 @@ int CFTTTextureOGLES::LoadPixel(uchar *pbuf1, int a2) {
//002248EA
void CFTTTextureOGLES::StorePixel(uchar *pdata1, uint a2, int a3) {
+ if (pdata1 != nullptr) {
+ //002248F6
+ int dr0 = GetBPP(eFormat_10);
+
+ //loc_22491A
+ if (dr0 == 0x10) {
+ ushort *pr5 = reinterpret_cast<ushort *>(pdata1);
+ *pr5 = (ushort)a2;
+ } else if (dr0 == 8) {
+ //loc_22491E
+ *pdata1 = (uchar)a2;
+ } else if (dr0 == 4) {
+ //00224908
+ uchar cr0 = *pdata1;
+ if (a3 << 31) {
+ //loc_224926
+ cr0 = (cr0 & 0xF) | (a2 << 4);
+ } else {
+ //0022490E
+ cr0 = (cr0 & 0xF0) | (a2 & 0xF);
+ }
+ //loc_22492E
+ *pdata1 = cr0;
+ //loc_224922 dr0 != 4
+ *(uint*)pdata1 = a2;
+ //loc_224930
+ bFlag_14 = true;
+ //locret_224934
//00224938