Skip to content

Commit 1bcac3c

Browse files
committed
improvement(sdlVideoRender): fix bug that captureScreen return cached frame after clearScreen
1 parent 6075104 commit 1bcac3c

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

framework/render/video/SdlAFVideoRender.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,22 @@ int SdlAFVideoRender::init()
7676

7777
int SdlAFVideoRender::refreshScreen()
7878
{
79+
bool needClearScreen = false;
7980
{
8081
std::unique_lock<std::mutex> lock(mRenderMutex);
8182

8283
if (mLastVideoFrame == nullptr && mBackFrame != nullptr) {
8384
mLastVideoFrame = mBackFrame->clone();
8485
}
86+
if (mLastVideoFrame == nullptr) {
87+
needClearScreen = true;
88+
}
89+
}
90+
if (needClearScreen) {
91+
clearScreen();
92+
} else {
93+
onVSync(-1);
8594
}
86-
onVSync(-1);
8795
return 0;
8896
}
8997

@@ -97,6 +105,7 @@ int SdlAFVideoRender::clearScreen()
97105
SDL_RenderClear(mVideoRender);
98106
SDL_RenderPresent(mVideoRender);
99107
}
108+
mBackFrame = nullptr;
100109

101110
return 0;
102111
}

0 commit comments

Comments
 (0)