camera: Reworked to operate with a driver interface, like other subsystems.
This commit is contained in:
@@ -332,6 +332,7 @@ set_option(SDL_KMSDRM "Use KMS DRM video driver" ${UNIX_SYS})
|
||||
dep_option(SDL_KMSDRM_SHARED "Dynamically load KMS DRM support" ON "SDL_KMSDRM" OFF)
|
||||
set_option(SDL_OFFSCREEN "Use offscreen video driver" ON)
|
||||
dep_option(SDL_CAMERA "Enable camera support" ON SDL_VIDEO OFF)
|
||||
set_option(SDL_DUMMYCAMERA "Support the dummy camera driver" ON)
|
||||
option_string(SDL_BACKGROUNDING_SIGNAL "number to use for magic backgrounding signal or 'OFF'" OFF)
|
||||
option_string(SDL_FOREGROUNDING_SIGNAL "number to use for magic foregrounding signal or 'OFF'" OFF)
|
||||
dep_option(SDL_HIDAPI "Enable the HIDAPI subsystem" ON "NOT VISIONOS" OFF)
|
||||
@@ -1172,6 +1173,23 @@ if(SDL_AUDIO)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(SDL_CAMERA)
|
||||
# CheckDummyCamera/CheckDiskCamera - valid for all platforms
|
||||
if(SDL_DUMMYCAMERA)
|
||||
set(SDL_CAMERA_DRIVER_DUMMY 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/camera/dummy/*.c")
|
||||
set(HAVE_DUMMYCAMERA TRUE)
|
||||
set(HAVE_SDL_CAMERA TRUE)
|
||||
endif()
|
||||
# !!! FIXME: for later.
|
||||
#if(SDL_DISKCAMERA)
|
||||
# set(SDL_CAMERA_DRIVER_DISK 1)
|
||||
# sdl_glob_sources("${SDL3_SOURCE_DIR}/src/camera/disk/*.c")
|
||||
# set(HAVE_DISKCAMERA TRUE)
|
||||
# set(HAVE_SDL_CAMERA TRUE)
|
||||
#endif()
|
||||
endif()
|
||||
|
||||
if(UNIX OR APPLE)
|
||||
# Relevant for Unix/Darwin only
|
||||
set(DYNAPI_NEEDS_DLOPEN 1)
|
||||
@@ -1290,7 +1308,7 @@ if(ANDROID)
|
||||
endif()
|
||||
|
||||
if(SDL_CAMERA)
|
||||
set(SDL_CAMERA_ANDROID 1)
|
||||
set(SDL_CAMERA_DRIVER_ANDROID 1)
|
||||
set(HAVE_CAMERA TRUE)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/camera/android/*.c")
|
||||
endif()
|
||||
@@ -1531,7 +1549,7 @@ elseif(UNIX AND NOT APPLE AND NOT RISCOS AND NOT HAIKU)
|
||||
endif()
|
||||
|
||||
if(SDL_CAMERA AND HAVE_LINUX_VIDEODEV2_H)
|
||||
set(SDL_CAMERA_V4L2 1)
|
||||
set(SDL_CAMERA_DRIVER_V4L2 1)
|
||||
set(HAVE_CAMERA TRUE)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/camera/v4l2/*.c")
|
||||
endif()
|
||||
@@ -2035,9 +2053,9 @@ elseif(APPLE)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/file/cocoa/*.m")
|
||||
|
||||
if(IOS OR TVOS OR MACOSX OR DARWIN)
|
||||
set(SDL_CAMERA_APPLE TRUE)
|
||||
set(SDL_CAMERA_DRIVER_COREMEDIA 1)
|
||||
set(HAVE_CAMERA TRUE)
|
||||
sdl_sources("${SDL3_SOURCE_DIR}/src/camera/apple/SDL_camera_apple.m")
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/camera/coremedia/*.m")
|
||||
endif()
|
||||
|
||||
if(IOS OR TVOS OR VISIONOS)
|
||||
@@ -2739,7 +2757,7 @@ if(NOT HAVE_SDL_MISC)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/misc/dummy/*.c")
|
||||
endif()
|
||||
if(NOT HAVE_CAMERA)
|
||||
set(SDL_CAMERA_DUMMY 1)
|
||||
set(SDL_CAMERA_DRIVER_DUMMY 1)
|
||||
sdl_glob_sources("${SDL3_SOURCE_DIR}/src/camera/dummy/*.c")
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user