diff --git a/CMakeLists.txt b/CMakeLists.txt index 55b0a94d..1b8446dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -434,48 +434,6 @@ else() set(JSON_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/third-party/nlohmann-json/single_include") endif() -#- NVIDIA Augmented Reality SDK -set(HAVE_NVIDIA_AR_SDK OFF) -if(REQUIRE_NVIDIA_AR_SDK AND D_PLATFORM_WINDOWS) - if(EXISTS "${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/version.h") - set(HAVE_NVIDIA_AR_SDK ON) - endif() - - if(NOT TARGET NVIDIA::AR) - add_library(NVIDIA::AR IMPORTED INTERFACE) - target_include_directories(NVIDIA::AR - INTERFACE - "${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/nvar/include/" - "${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/nvar/src/" - ) - endif() -endif() - -#- NVIDIA Video Effects SDK -set(HAVE_NVIDIA_VFX_SDK OFF) -if(REQUIRE_NVIDIA_VFX_SDK AND D_PLATFORM_WINDOWS) - if(EXISTS "${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/version.h") - set(HAVE_NVIDIA_VFX_SDK ON) - endif() - - if(NOT TARGET NVIDIA::VFX) - add_library(NVIDIA::VFX IMPORTED INTERFACE) - target_include_directories(NVIDIA::VFX - INTERFACE - "${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/nvvfx/include/" - "${PROJECT_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/nvvfx/src/" - ) - endif() - - set(REQUIRE_NVIDIA_CUDA ON) -endif() - -#- NVIDIA CUDA (Windows) -set(HAVE_NVIDIA_CUDA OFF) -if(REQUIRE_NVIDIA_CUDA AND D_PLATFORM_WINDOWS) - set(HAVE_NVIDIA_CUDA ON) -endif() - #- Qt 6 find_package("Qt6" COMPONENTS Core Gui Widgets @@ -570,69 +528,6 @@ if(TRUE) # OpenGL list(APPEND PROJECT_LIBRARIES khronos_glad) endif() -if(HAVE_NVIDIA_VFX_SDK OR HAVE_NVIDIA_AR_SDK) - list(APPEND PROJECT_PRIVATE_SOURCE - "source/nvidia/cv/nvidia-cv.hpp" - "source/nvidia/cv/nvidia-cv.cpp" - "source/nvidia/cv/nvidia-cv-image.hpp" - "source/nvidia/cv/nvidia-cv-image.cpp" - "source/nvidia/cv/nvidia-cv-texture.hpp" - "source/nvidia/cv/nvidia-cv-texture.cpp" - ) -endif() - -if(HAVE_NVIDIA_AR_SDK) - list(APPEND PROJECT_PRIVATE_SOURCE - "source/nvidia/ar/nvidia-ar.hpp" - "source/nvidia/ar/nvidia-ar.cpp" - "source/nvidia/ar/nvidia-ar-feature.hpp" - "source/nvidia/ar/nvidia-ar-feature.cpp" - "source/nvidia/ar/nvidia-ar-facedetection.hpp" - "source/nvidia/ar/nvidia-ar-facedetection.cpp" - ) - list(APPEND PROJECT_LIBRARIES - NVIDIA::AR - ) -endif() - -if(HAVE_NVIDIA_VFX_SDK) - list(APPEND PROJECT_PRIVATE_SOURCE - "source/nvidia/vfx/nvidia-vfx.hpp" - "source/nvidia/vfx/nvidia-vfx.cpp" - "source/nvidia/vfx/nvidia-vfx-denoising.hpp" - "source/nvidia/vfx/nvidia-vfx-denoising.cpp" - "source/nvidia/vfx/nvidia-vfx-effect.hpp" - "source/nvidia/vfx/nvidia-vfx-effect.cpp" - "source/nvidia/vfx/nvidia-vfx-greenscreen.hpp" - "source/nvidia/vfx/nvidia-vfx-greenscreen.cpp" - "source/nvidia/vfx/nvidia-vfx-superresolution.hpp" - "source/nvidia/vfx/nvidia-vfx-superresolution.cpp" - ) - list(APPEND PROJECT_LIBRARIES - NVIDIA::VFX - ) -endif() - -if(HAVE_NVIDIA_CUDA) - list(APPEND PROJECT_PRIVATE_SOURCE - "source/nvidia/cuda/nvidia-cuda.hpp" - "source/nvidia/cuda/nvidia-cuda.cpp" - "source/nvidia/cuda/nvidia-cuda-obs.hpp" - "source/nvidia/cuda/nvidia-cuda-obs.cpp" - "source/nvidia/cuda/nvidia-cuda-context.hpp" - "source/nvidia/cuda/nvidia-cuda-context.cpp" - "source/nvidia/cuda/nvidia-cuda-gs-texture.hpp" - "source/nvidia/cuda/nvidia-cuda-gs-texture.cpp" - "source/nvidia/cuda/nvidia-cuda-memory.hpp" - "source/nvidia/cuda/nvidia-cuda-memory.cpp" - "source/nvidia/cuda/nvidia-cuda-stream.hpp" - "source/nvidia/cuda/nvidia-cuda-stream.cpp" - ) - list(APPEND PROJECT_DEFINITIONS - ENABLE_NVIDIA_CUDA - ) -endif() - list(APPEND PROJECT_LIBRARIES OBS::obs-frontend-api) list(APPEND PROJECT_UI_SOURCE "source/obs/browser/obs-browser-panel.hpp" diff --git a/components/nvidia/CMakeLists.txt b/components/nvidia/CMakeLists.txt new file mode 100644 index 00000000..2dfeb5f0 --- /dev/null +++ b/components/nvidia/CMakeLists.txt @@ -0,0 +1,44 @@ +## AUTOGENERATED COPYRIGHT HEADER START +# Copyright (C) NaN-NaN undefined +# AUTOGENERATED COPYRIGHT HEADER END +cmake_minimum_required(VERSION 3.26) +project("NVIDIA") +list(APPEND CMAKE_MESSAGE_INDENT "[${PROJECT_NAME}] ") + +streamfx_add_component("NVIDIA") + +#- NVIDIA Audio Effects SDK +if(NOT TARGET NVIDIA::AFX) + add_library(NVIDIA::AFX IMPORTED INTERFACE) + target_include_directories(NVIDIA::AFX + INTERFACE + "${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-afx-sdk/nvafx/include/" + ) +endif() + +#- NVIDIA Augmented Reality SDK +if(NOT TARGET NVIDIA::AR) + add_library(NVIDIA::AR IMPORTED INTERFACE) + target_include_directories(NVIDIA::AR + INTERFACE + "${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/nvar/include/" + "${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-ar-sdk/nvar/src/" + ) +endif() + +#- NVIDIA Video Effects SDK +if(NOT TARGET NVIDIA::VFX) + add_library(NVIDIA::VFX IMPORTED INTERFACE) + target_include_directories(NVIDIA::VFX + INTERFACE + "${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/nvvfx/include/" + "${StreamFX_SOURCE_DIR}/third-party/nvidia-maxine-vfx-sdk/nvvfx/src/" + ) +endif() + +target_link_libraries(${COMPONENT_TARGET} + PRIVATE + NVIDIA::AFX + NVIDIA::AR + NVIDIA::VFX +) diff --git a/source/nvidia/ar/nvidia-ar-facedetection.cpp b/components/nvidia/source/nvidia/ar/nvidia-ar-facedetection.cpp similarity index 100% rename from source/nvidia/ar/nvidia-ar-facedetection.cpp rename to components/nvidia/source/nvidia/ar/nvidia-ar-facedetection.cpp diff --git a/source/nvidia/ar/nvidia-ar-facedetection.hpp b/components/nvidia/source/nvidia/ar/nvidia-ar-facedetection.hpp similarity index 100% rename from source/nvidia/ar/nvidia-ar-facedetection.hpp rename to components/nvidia/source/nvidia/ar/nvidia-ar-facedetection.hpp diff --git a/source/nvidia/ar/nvidia-ar-feature.cpp b/components/nvidia/source/nvidia/ar/nvidia-ar-feature.cpp similarity index 100% rename from source/nvidia/ar/nvidia-ar-feature.cpp rename to components/nvidia/source/nvidia/ar/nvidia-ar-feature.cpp diff --git a/source/nvidia/ar/nvidia-ar-feature.hpp b/components/nvidia/source/nvidia/ar/nvidia-ar-feature.hpp similarity index 100% rename from source/nvidia/ar/nvidia-ar-feature.hpp rename to components/nvidia/source/nvidia/ar/nvidia-ar-feature.hpp diff --git a/source/nvidia/ar/nvidia-ar.cpp b/components/nvidia/source/nvidia/ar/nvidia-ar.cpp similarity index 100% rename from source/nvidia/ar/nvidia-ar.cpp rename to components/nvidia/source/nvidia/ar/nvidia-ar.cpp diff --git a/source/nvidia/ar/nvidia-ar.hpp b/components/nvidia/source/nvidia/ar/nvidia-ar.hpp similarity index 100% rename from source/nvidia/ar/nvidia-ar.hpp rename to components/nvidia/source/nvidia/ar/nvidia-ar.hpp diff --git a/source/nvidia/cuda/nvidia-cuda-context.cpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-context.cpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-context.cpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-context.cpp diff --git a/source/nvidia/cuda/nvidia-cuda-context.hpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-context.hpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-context.hpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-context.hpp diff --git a/source/nvidia/cuda/nvidia-cuda-gs-texture.cpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-gs-texture.cpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-gs-texture.cpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-gs-texture.cpp diff --git a/source/nvidia/cuda/nvidia-cuda-gs-texture.hpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-gs-texture.hpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-gs-texture.hpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-gs-texture.hpp diff --git a/source/nvidia/cuda/nvidia-cuda-memory.cpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-memory.cpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-memory.cpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-memory.cpp diff --git a/source/nvidia/cuda/nvidia-cuda-memory.hpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-memory.hpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-memory.hpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-memory.hpp diff --git a/source/nvidia/cuda/nvidia-cuda-obs.cpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-obs.cpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-obs.cpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-obs.cpp diff --git a/source/nvidia/cuda/nvidia-cuda-obs.hpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-obs.hpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-obs.hpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-obs.hpp diff --git a/source/nvidia/cuda/nvidia-cuda-stream.cpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-stream.cpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-stream.cpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-stream.cpp diff --git a/source/nvidia/cuda/nvidia-cuda-stream.hpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda-stream.hpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda-stream.hpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda-stream.hpp diff --git a/source/nvidia/cuda/nvidia-cuda.cpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda.cpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda.cpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda.cpp diff --git a/source/nvidia/cuda/nvidia-cuda.hpp b/components/nvidia/source/nvidia/cuda/nvidia-cuda.hpp similarity index 100% rename from source/nvidia/cuda/nvidia-cuda.hpp rename to components/nvidia/source/nvidia/cuda/nvidia-cuda.hpp diff --git a/source/nvidia/cv/nvidia-cv-image.cpp b/components/nvidia/source/nvidia/cv/nvidia-cv-image.cpp similarity index 100% rename from source/nvidia/cv/nvidia-cv-image.cpp rename to components/nvidia/source/nvidia/cv/nvidia-cv-image.cpp diff --git a/source/nvidia/cv/nvidia-cv-image.hpp b/components/nvidia/source/nvidia/cv/nvidia-cv-image.hpp similarity index 100% rename from source/nvidia/cv/nvidia-cv-image.hpp rename to components/nvidia/source/nvidia/cv/nvidia-cv-image.hpp diff --git a/source/nvidia/cv/nvidia-cv-texture.cpp b/components/nvidia/source/nvidia/cv/nvidia-cv-texture.cpp similarity index 100% rename from source/nvidia/cv/nvidia-cv-texture.cpp rename to components/nvidia/source/nvidia/cv/nvidia-cv-texture.cpp diff --git a/source/nvidia/cv/nvidia-cv-texture.hpp b/components/nvidia/source/nvidia/cv/nvidia-cv-texture.hpp similarity index 100% rename from source/nvidia/cv/nvidia-cv-texture.hpp rename to components/nvidia/source/nvidia/cv/nvidia-cv-texture.hpp diff --git a/source/nvidia/cv/nvidia-cv.cpp b/components/nvidia/source/nvidia/cv/nvidia-cv.cpp similarity index 100% rename from source/nvidia/cv/nvidia-cv.cpp rename to components/nvidia/source/nvidia/cv/nvidia-cv.cpp diff --git a/source/nvidia/cv/nvidia-cv.hpp b/components/nvidia/source/nvidia/cv/nvidia-cv.hpp similarity index 100% rename from source/nvidia/cv/nvidia-cv.hpp rename to components/nvidia/source/nvidia/cv/nvidia-cv.hpp diff --git a/source/nvidia/vfx/nvidia-vfx-denoising.cpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx-denoising.cpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx-denoising.cpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx-denoising.cpp diff --git a/source/nvidia/vfx/nvidia-vfx-denoising.hpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx-denoising.hpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx-denoising.hpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx-denoising.hpp diff --git a/source/nvidia/vfx/nvidia-vfx-effect.cpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx-effect.cpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx-effect.cpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx-effect.cpp diff --git a/source/nvidia/vfx/nvidia-vfx-effect.hpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx-effect.hpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx-effect.hpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx-effect.hpp diff --git a/source/nvidia/vfx/nvidia-vfx-greenscreen.cpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx-greenscreen.cpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx-greenscreen.cpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx-greenscreen.cpp diff --git a/source/nvidia/vfx/nvidia-vfx-greenscreen.hpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx-greenscreen.hpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx-greenscreen.hpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx-greenscreen.hpp diff --git a/source/nvidia/vfx/nvidia-vfx-superresolution.cpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx-superresolution.cpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx-superresolution.cpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx-superresolution.cpp diff --git a/source/nvidia/vfx/nvidia-vfx-superresolution.hpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx-superresolution.hpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx-superresolution.hpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx-superresolution.hpp diff --git a/source/nvidia/vfx/nvidia-vfx.cpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx.cpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx.cpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx.cpp diff --git a/source/nvidia/vfx/nvidia-vfx.hpp b/components/nvidia/source/nvidia/vfx/nvidia-vfx.hpp similarity index 100% rename from source/nvidia/vfx/nvidia-vfx.hpp rename to components/nvidia/source/nvidia/vfx/nvidia-vfx.hpp