Sam Lantinga 2 дней назад
Родитель
Сommit
122ad3d6f6

+ 13 - 0
include/SDL3/SDL_system.h

@@ -616,6 +616,19 @@ extern SDL_DECLSPEC bool SDLCALL SDL_SendAndroidMessage(Uint32 command, int para
 
 #endif /* SDL_PLATFORM_ANDROID */
 
+/**
+ * Query if the current device is a phone.
+ *
+ * If SDL can't determine this, it will return false.
+ *
+ * \returns true if the device is a phone, false otherwise.
+ *
+ * \threadsafety It is safe to call this function from any thread.
+ *
+ * \since This function is available since SDL 3.6.0.
+ */
+extern SDL_DECLSPEC bool SDLCALL SDL_IsPhone(void);
+
 /**
  * Query if the current device is a tablet.
  *

+ 11 - 0
src/SDL.c

@@ -828,6 +828,17 @@ const char *SDL_GetPlatform(void)
 #endif
 }
 
+bool SDL_IsPhone(void)
+{
+#if defined(SDL_PLATFORM_ANDROID) || \
+    (defined(SDL_PLATFORM_IOS) && !defined(SDL_PLATFORM_VISIONOS))
+    if (!SDL_IsTablet() && !SDL_IsTV()) {
+        return true;
+    }
+#endif
+    return false;
+}
+
 bool SDL_IsTablet(void)
 {
 #ifdef SDL_PLATFORM_ANDROID

+ 1 - 0
src/dynapi/SDL_dynapi.sym

@@ -1285,6 +1285,7 @@ SDL3_0.0.0 {
     SDL_SetGPURenderStateStorageBuffers;
     SDL_GDKSuspendRenderer;
     SDL_GDKResumeRenderer;
+    SDL_IsPhone;
     # extra symbols go here (don't modify this line)
   local: *;
 };

+ 1 - 0
src/dynapi/SDL_dynapi_overrides.h

@@ -1311,3 +1311,4 @@
 #define SDL_SetGPURenderStateStorageBuffers SDL_SetGPURenderStateStorageBuffers_REAL
 #define SDL_GDKSuspendRenderer SDL_GDKSuspendRenderer_REAL
 #define SDL_GDKResumeRenderer SDL_GDKResumeRenderer_REAL
+#define SDL_IsPhone SDL_IsPhone_REAL

+ 1 - 0
src/dynapi/SDL_dynapi_procs.h

@@ -1319,3 +1319,4 @@ SDL_DYNAPI_PROC(bool,SDL_SetGPURenderStateStorageTextures,(SDL_GPURenderState *a
 SDL_DYNAPI_PROC(bool,SDL_SetGPURenderStateStorageBuffers,(SDL_GPURenderState *a,int b,SDL_GPUBuffer *const*c),(a,b,c),return)
 SDL_DYNAPI_PROC(void,SDL_GDKSuspendRenderer,(SDL_Renderer *a),(a),)
 SDL_DYNAPI_PROC(void,SDL_GDKResumeRenderer,(SDL_Renderer *a),(a),)
+SDL_DYNAPI_PROC(bool,SDL_IsPhone,(void),(),return)