mirror of
https://github.com/digarok/gsplus.git
synced 2024-11-24 06:34:02 +00:00
Merge pull request #45 from digarok/sdl2_performance_profile
fix sdl frame rendering vsync method to simply present the buffer once per frame
This commit is contained in:
commit
712c0792bf
@ -416,17 +416,9 @@ void sdl_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int src
|
|||||||
pitch = BORDER_WIDTH+72;
|
pitch = BORDER_WIDTH+72;
|
||||||
}
|
}
|
||||||
SDL_UpdateTexture(texture, &dstrect, src_ptr, pitch*4 );
|
SDL_UpdateTexture(texture, &dstrect, src_ptr, pitch*4 );
|
||||||
SDL_RenderClear(renderer);
|
|
||||||
SDL_RenderCopy(renderer, texture, NULL, NULL);
|
|
||||||
if (g_scanline_simulator) {
|
|
||||||
SDL_RenderCopy(renderer, overlay_texture, NULL, NULL);
|
|
||||||
}
|
|
||||||
SDL_RenderPresent(renderer);
|
|
||||||
|
|
||||||
if (g_screenshot_requested) {
|
// We now call the render step seperately in sdl_present_buffer once per frame
|
||||||
x_take_screenshot();
|
// SDL picks up the buffer and waits for VBLANK to send it
|
||||||
g_screenshot_requested = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -806,6 +798,19 @@ void debuginfo_renderer(SDL_Renderer *r) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sdl_present_buffer() {
|
||||||
|
SDL_RenderClear(renderer);
|
||||||
|
SDL_RenderCopy(renderer, texture, NULL, NULL);
|
||||||
|
if (g_scanline_simulator) {
|
||||||
|
SDL_RenderCopy(renderer, overlay_texture, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_RenderPresent(renderer);
|
||||||
|
if (g_screenshot_requested) {
|
||||||
|
x_take_screenshot();
|
||||||
|
g_screenshot_requested = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// BELOW ARE FUNCTIONS THAT ARE EITHER UNIMPLEMENTED, OR AR NOT RELEVANT TO
|
// BELOW ARE FUNCTIONS THAT ARE EITHER UNIMPLEMENTED, OR AR NOT RELEVANT TO
|
||||||
// THIS DRIVER.
|
// THIS DRIVER.
|
||||||
|
12
src/video.c
12
src/video.c
@ -640,7 +640,10 @@ void video_update() {
|
|||||||
video_update_through_line(0);
|
video_update_through_line(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(HAVE_SDL)
|
||||||
|
extern void sdl_present_buffer();
|
||||||
|
sdl_present_buffer();
|
||||||
|
#endif
|
||||||
// OG Notify host that video has been uodated
|
// OG Notify host that video has been uodated
|
||||||
#if defined(ACTIVEGSPLUGIN) && defined(MAC)
|
#if defined(ACTIVEGSPLUGIN) && defined(MAC)
|
||||||
{
|
{
|
||||||
@ -3474,13 +3477,6 @@ void video_update_color_array(int col_num, int a2_color) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
if(g_screen_depth != 8) {
|
|
||||||
/* redraw whole superhires for now */
|
|
||||||
g_full_refresh_needed = -1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
video_update_color_raw(col_num, a2_color);
|
video_update_color_raw(col_num, a2_color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user