Skip to content

Commit 15259f6

Browse files
committed
GameViewportClient::Draw的调用事件和帧率不同步,改用tick来控制录像帧率
1 parent 5539cfc commit 15259f6

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

Source/InVideo/Private/InRecordGameViewportClient.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,25 @@ void UInRecordGameViewportClient::StopRecord()
1414
{
1515
m_CanRecord = false;
1616
}
17-
17+
void UInRecordGameViewportClient::Tick(float DeltaTime)
18+
{
19+
Super::Tick(DeltaTime);
20+
if (false == m_CanRecord)
21+
{
22+
return;
23+
}
24+
m_TickRecord = true;
25+
}
1826

1927
void UInRecordGameViewportClient::Draw(FViewport* InViewport, FCanvas* SceneCanvas)
2028
{
2129
Super::Draw(InViewport, SceneCanvas);
2230

23-
if (false == m_CanRecord)
31+
if (false == m_TickRecord)
2432
{
2533
return;
2634
}
35+
m_TickRecord = false;
2736

2837
auto SceneViewport = GetGameViewport();
2938

Source/InVideo/Public/InRecordGameViewportClient.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ class INVIDEO_API UInRecordGameViewportClient : public UGameViewportClient
2121
FFrameDelegate OnFrameData;
2222

2323
virtual void Draw(FViewport* InViewport, FCanvas* SceneCanvas) override;
24+
virtual void Tick(float DeltaTime) override;
2425
private:
2526
bool m_CanRecord = false;
27+
bool m_TickRecord = false;
2628
};

0 commit comments

Comments
 (0)