plugin-main.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <windows.h>
  2. #include <obs-module.h>
  3. #include <util/windows/win-version.h>
  4. OBS_DECLARE_MODULE()
  5. OBS_MODULE_USE_DEFAULT_LOCALE("win-capture", "en-US")
  6. extern struct obs_source_info duplicator_capture_info;
  7. extern struct obs_source_info monitor_capture_info;
  8. extern struct obs_source_info window_capture_info;
  9. extern struct obs_source_info game_capture_info;
  10. extern bool load_graphics_offsets(bool is32bit);
  11. /* temporary, will eventually be erased once we figure out how to create both
  12. * 32bit and 64bit versions of the helpers/hook */
  13. #ifdef _WIN64
  14. #define IS32BIT false
  15. #else
  16. #define IS32BIT true
  17. #endif
  18. bool obs_module_load(void)
  19. {
  20. struct win_version_info ver;
  21. bool win8_or_above = false;
  22. get_win_ver(&ver);
  23. win8_or_above = ver.major > 6 || (ver.major == 6 && ver.minor >= 2);
  24. obs_enter_graphics();
  25. if (win8_or_above && gs_get_device_type() == GS_DEVICE_DIRECT3D_11)
  26. obs_register_source(&duplicator_capture_info);
  27. else
  28. obs_register_source(&monitor_capture_info);
  29. obs_leave_graphics();
  30. obs_register_source(&window_capture_info);
  31. if (load_graphics_offsets(IS32BIT)) {
  32. load_graphics_offsets(!IS32BIT);
  33. obs_register_source(&game_capture_info);
  34. }
  35. return true;
  36. }