about summary refs log tree commit diff stats
path: root/src/libtools
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-09-30 17:41:47 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-09-30 17:41:47 +0200
commit2b0c8d45faa03b31802b797df2094add702dc20c (patch)
tree1eb0d67ee6782a0e02a2f9d36d290894d8ef0d6f /src/libtools
parentc88cf6359e4968bd5449c85f2ca7890f2b0c473f (diff)
downloadbox64-2b0c8d45faa03b31802b797df2094add702dc20c.tar.gz
box64-2b0c8d45faa03b31802b797df2094add702dc20c.zip
[BOX32][WRAPPER] Added 32bits wrapping for SDL2_image
Diffstat (limited to 'src/libtools')
-rw-r--r--src/libtools/sdl2rwops.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/libtools/sdl2rwops.c b/src/libtools/sdl2rwops.c
index 54d1ee1a..41d7b2e8 100644
--- a/src/libtools/sdl2rwops.c
+++ b/src/libtools/sdl2rwops.c
@@ -322,6 +322,26 @@ int isRWops(SDL2_RWops_t* ops)
         return 0;
     return 1;
 }
+#ifdef BOX32
+int isRWops32(my_SDL2_RWops_32_t* ops)
+{
+    if(!ops)
+        return 0;
+    #define GO(A, W)      \
+    if(!ops->A || (uintptr_t)ops->A < 0x1000) return 0;
+
+    SUPER()
+
+    #undef GO
+    // check if all then hidden content is just full of 0
+    if(ops->hidden[0]==0 && ops->hidden[1]==0 && ops->hidden[2]==0)
+        return 0;
+    // check the type (not sure it's a good check here)
+    if (ops->type>5 && ops->type!=BOX64RW)
+        return 0;
+    return 1;
+}
+#endif
 
 int64_t RWNativeSeek2(SDL2_RWops_t *ops, int64_t offset, int32_t whence)
 {