Use video_driver_read_viewport
This commit is contained in:
parent
e3eb9fe9f0
commit
5538e2db1d
|
@ -753,3 +753,18 @@ bool video_driver_viewport_info(struct video_viewport *vp)
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool video_driver_read_viewport(uint8_t *buffer)
|
||||||
|
{
|
||||||
|
driver_t *driver = driver_get_ptr();
|
||||||
|
|
||||||
|
if (!driver)
|
||||||
|
return false;
|
||||||
|
if (!driver->video)
|
||||||
|
return false;
|
||||||
|
if (!driver->video->read_viewport)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return driver->video->read_viewport(driver->video_data,
|
||||||
|
buffer);
|
||||||
|
}
|
||||||
|
|
|
@ -298,6 +298,8 @@ void video_driver_set_texture_frame(const void *frame, bool rgb32,
|
||||||
|
|
||||||
bool video_driver_viewport_info(struct video_viewport *vp);
|
bool video_driver_viewport_info(struct video_viewport *vp);
|
||||||
|
|
||||||
|
bool video_driver_read_viewport(uint8_t *buffer);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
#include "../retroarch.h"
|
#include "../retroarch.h"
|
||||||
#include "../runloop.h"
|
#include "../runloop.h"
|
||||||
#include "../intl/intl.h"
|
#include "../intl/intl.h"
|
||||||
|
#include "../gfx/video_driver.h"
|
||||||
#include "../gfx/video_viewport.h"
|
#include "../gfx/video_viewport.h"
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
|
@ -133,9 +134,7 @@ void recording_dump_frame(const void *data, unsigned width,
|
||||||
/* Big bottleneck.
|
/* Big bottleneck.
|
||||||
* Since we might need to do read-backs asynchronously,
|
* Since we might need to do read-backs asynchronously,
|
||||||
* it might take 3-4 times before this returns true. */
|
* it might take 3-4 times before this returns true. */
|
||||||
if (driver->video && driver->video->read_viewport)
|
if (!video_driver_read_viewport(global->record.gpu_buffer))
|
||||||
if (!driver->video->read_viewport(driver->video_data,
|
|
||||||
global->record.gpu_buffer))
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ffemu_data.pitch = global->record.gpu_width * 3;
|
ffemu_data.pitch = global->record.gpu_width * 3;
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "runloop.h"
|
#include "runloop.h"
|
||||||
#include "retroarch_logger.h"
|
#include "retroarch_logger.h"
|
||||||
#include "screenshot.h"
|
#include "screenshot.h"
|
||||||
|
#include "gfx/video_driver.h"
|
||||||
#include "gfx/video_viewport.h"
|
#include "gfx/video_viewport.h"
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
|
@ -179,7 +180,6 @@ static bool take_screenshot_viewport(void)
|
||||||
uint8_t *buffer = NULL;
|
uint8_t *buffer = NULL;
|
||||||
bool retval = false;
|
bool retval = false;
|
||||||
struct video_viewport vp = {0};
|
struct video_viewport vp = {0};
|
||||||
driver_t *driver = driver_get_ptr();
|
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
|
|
||||||
|
@ -191,9 +191,8 @@ static bool take_screenshot_viewport(void)
|
||||||
if (!(buffer = (uint8_t*)malloc(vp.width * vp.height * 3)))
|
if (!(buffer = (uint8_t*)malloc(vp.width * vp.height * 3)))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (driver->video && driver->video->read_viewport)
|
if (!video_driver_read_viewport(buffer))
|
||||||
if (!driver->video->read_viewport(driver->video_data, buffer))
|
goto done;
|
||||||
goto done;
|
|
||||||
|
|
||||||
screenshot_dir = settings->screenshot_directory;
|
screenshot_dir = settings->screenshot_directory;
|
||||||
|
|
||||||
|
|
|
@ -516,3 +516,8 @@ bool video_driver_viewport_info(struct video_viewport *vp)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool video_driver_read_viewport(uint8_t *buffer)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue