ScnLib_EnableGameCaptureMode()

ScnLib_EnableGameCaptureMode()

标准版专业版超级版至尊版
C++ __declspec(dllimport) void __stdcall ScnLib_EnableGameCaptureMode(BOOL bEnable);
C# [DllImport("ScnLib.dll")] public static extern void ScnLib_EnableGameCaptureMode(bool Enable);
Basic Public Declare Sub ScnLib_EnableGameCaptureMode Lib "ScnLib.dll" (ByVal Enable As Boolean)
Delphi procedure ScnLib_EnableGameCaptureMode(Enable: LongBool); stdcall; external 'ScnLib.dll';
  • 描述
    切换游戏屏幕捕获模式。

  • 参数
    • Enable [in]
      TRUE:激活游戏屏幕捕获模式。
      FALSE:停用游戏屏幕捕获模式。
  • 返回值
    无。

  • 备注
    基于Windows的电脑游戏通常使用Direct3D/OpenGL硬件加速来渲染炫酷的实时3D视觉效果。类似的,各种多媒体应用程序(如媒体播放器)也使用Direct3D/OpenGL进行内容渲染。对于标准技术(如GDI屏幕捕获或DXGI桌面复制)而言,捕获通过Direct3D/OpenGL渲染的屏幕内容在性能上可能具有挑战性。然而,本SDK采用专门的API-Hook技术来高效地捕获Direct3D/OpenGL屏幕。它可以自动检测Direct3D/OpenGL渲染屏幕的位置,甚至可以在其上覆盖自定义元素(例如,录制状态、游戏帧率)。

    默认情况下,游戏屏幕捕获模式是非激活状态,此时SDK使用非API-Hook方式捕获指定的屏幕区域。调用此函数激活游戏屏幕捕获模式,则启用基于API-Hook的捕获。在此模式下,SDK根据以下标准检测目标游戏窗口:
    • 如果您调用ScnLib_SetCaptureWnd()设置了特定游戏窗口作为捕获目标,如果SDK在窗口客户区检测到Direct3D/OpenGL渲染,则使用API-Hook进行捕获;如果没有,则恢复使用其他屏幕捕获方法捕获窗口客户区。
    • 如果没有设置特定的游戏窗口,SDK会自动检测当前前台窗口是否正在使用Direct3D/OpenGL进行渲染。如果是,该窗口将被设置为API-Hook捕获的目标游戏窗口;如果不是,则恢复使用其他屏幕捕获方法捕获最近设置的屏幕捕获区域。
    重要注意事项:为了确保在激活游戏屏幕捕获模式的情况下成功进行屏幕录制,建议以管理员权限启动进程。这是因为如果目标游戏进程具有管理员权限,而SDK没有足够的权限,可能无法通过API-Hook捕获Direct3D/OpenGL渲染的屏幕。

    要检验游戏屏幕捕获模式是否处于激活状态,请调用ScnLib_IsGameCaptureModeEnabled()

  • 参见
    ScnLib_IsGameCaptureModeEnabled()
    ScnLib_IsGPUAccelerationEnabled()
    ScnLib_SetCaptureWnd()
    ScnLib_GetGamePath()
    ScnLib_GetGameWnd()
    ScnLib_ShowInGameOverlay()

下载 SDK API 总览