nv-filters.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <obs-module.h>
  2. OBS_DECLARE_MODULE()
  3. OBS_MODULE_USE_DEFAULT_LOCALE("nv-filters", "en-US")
  4. MODULE_EXPORT const char *obs_module_description(void)
  5. {
  6. return "NVIDIA filters";
  7. }
  8. #ifdef LIBNVAFX_ENABLED
  9. extern struct obs_source_info nvidia_audiofx_filter;
  10. extern bool load_nvidia_afx(void);
  11. extern void unload_nvidia_afx(void);
  12. #endif
  13. #ifdef LIBNVVFX_ENABLED
  14. extern struct obs_source_info nvidia_greenscreen_filter_info;
  15. extern struct obs_source_info nvidia_blur_filter_info;
  16. extern struct obs_source_info nvidia_background_blur_filter_info;
  17. extern bool load_nvidia_vfx(void);
  18. extern void unload_nvidia_vfx(void);
  19. #endif
  20. bool obs_module_load(void)
  21. {
  22. #ifdef LIBNVAFX_ENABLED
  23. /* load nvidia audio fx dll */
  24. if (load_nvidia_afx())
  25. obs_register_source(&nvidia_audiofx_filter);
  26. #endif
  27. #ifdef LIBNVVFX_ENABLED
  28. obs_enter_graphics();
  29. const bool direct3d = gs_get_device_type() == GS_DEVICE_DIRECT3D_11;
  30. obs_leave_graphics();
  31. if (direct3d && load_nvidia_vfx()) {
  32. obs_register_source(&nvidia_greenscreen_filter_info);
  33. obs_register_source(&nvidia_blur_filter_info);
  34. obs_register_source(&nvidia_background_blur_filter_info);
  35. }
  36. #endif
  37. return true;
  38. }
  39. void obs_module_unload(void)
  40. {
  41. #ifdef LIBNVAFX_ENABLED
  42. unload_nvidia_afx();
  43. #endif
  44. #ifdef LIBNVVFX_ENABLED
  45. unload_nvidia_vfx();
  46. #endif
  47. }