mirror of
https://github.com/libretro/RetroArch
synced 2025-04-24 15:02:35 +00:00
Reimplement 'Take Screenshot' - if GPU-accelerated viewport screenshots
are not available, resort to raw screenshots instead
This commit is contained in:
parent
f4346401e2
commit
6aed230930
@ -255,21 +255,6 @@ static void caca_gfx_set_rotation(void *data,
|
|||||||
(void)rotation;
|
(void)rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void caca_gfx_viewport_info(void *data,
|
|
||||||
struct video_viewport *vp)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)vp;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool caca_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void caca_set_texture_frame(void *data,
|
static void caca_set_texture_frame(void *data,
|
||||||
const void *frame, bool rgb32, unsigned width, unsigned height,
|
const void *frame, bool rgb32, unsigned width, unsigned height,
|
||||||
float alpha)
|
float alpha)
|
||||||
@ -353,8 +338,8 @@ video_driver_t video_caca = {
|
|||||||
"caca",
|
"caca",
|
||||||
caca_gfx_set_viewport,
|
caca_gfx_set_viewport,
|
||||||
caca_gfx_set_rotation,
|
caca_gfx_set_rotation,
|
||||||
caca_gfx_viewport_info,
|
NULL, /* viewport_info */
|
||||||
caca_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -1253,13 +1253,6 @@ static void ctr_get_poke_interface(void* data,
|
|||||||
*iface = &ctr_poke_interface;
|
*iface = &ctr_poke_interface;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool ctr_read_viewport(void* data, uint8_t* buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool ctr_set_shader(void* data,
|
static bool ctr_set_shader(void* data,
|
||||||
enum rarch_shader_type type, const char* path)
|
enum rarch_shader_type type, const char* path)
|
||||||
{
|
{
|
||||||
@ -1285,7 +1278,7 @@ video_driver_t video_ctr =
|
|||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
ctr_set_rotation,
|
ctr_set_rotation,
|
||||||
ctr_viewport_info,
|
ctr_viewport_info,
|
||||||
ctr_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -1530,14 +1530,6 @@ static void d3d10_gfx_viewport_info(void* data, struct video_viewport* vp)
|
|||||||
*vp = d3d10->vp;
|
*vp = d3d10->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool d3d10_gfx_read_viewport(void* data, uint8_t* buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void d3d10_set_menu_texture_frame(
|
static void d3d10_set_menu_texture_frame(
|
||||||
void* data, const void* frame, bool rgb32, unsigned width, unsigned height, float alpha)
|
void* data, const void* frame, bool rgb32, unsigned width, unsigned height, float alpha)
|
||||||
{
|
{
|
||||||
@ -1748,7 +1740,7 @@ video_driver_t video_d3d10 = {
|
|||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
d3d10_gfx_set_rotation,
|
d3d10_gfx_set_rotation,
|
||||||
d3d10_gfx_viewport_info,
|
d3d10_gfx_viewport_info,
|
||||||
d3d10_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -1598,14 +1598,6 @@ static void d3d11_gfx_viewport_info(void* data, struct video_viewport* vp)
|
|||||||
*vp = d3d11->vp;
|
*vp = d3d11->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool d3d11_gfx_read_viewport(void* data, uint8_t* buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void d3d11_set_menu_texture_frame(
|
static void d3d11_set_menu_texture_frame(
|
||||||
void* data, const void* frame, bool rgb32, unsigned width, unsigned height, float alpha)
|
void* data, const void* frame, bool rgb32, unsigned width, unsigned height, float alpha)
|
||||||
{
|
{
|
||||||
@ -1810,7 +1802,7 @@ video_driver_t video_d3d11 = {
|
|||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
d3d11_gfx_set_rotation,
|
d3d11_gfx_set_rotation,
|
||||||
d3d11_gfx_viewport_info,
|
d3d11_gfx_viewport_info,
|
||||||
d3d11_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -1632,14 +1632,6 @@ static void d3d12_gfx_viewport_info(void* data, struct video_viewport* vp)
|
|||||||
*vp = d3d12->vp;
|
*vp = d3d12->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool d3d12_gfx_read_viewport(void* data, uint8_t* buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void d3d12_set_menu_texture_frame(
|
static void d3d12_set_menu_texture_frame(
|
||||||
void* data, const void* frame, bool rgb32,
|
void* data, const void* frame, bool rgb32,
|
||||||
unsigned width, unsigned height, float alpha)
|
unsigned width, unsigned height, float alpha)
|
||||||
@ -1858,7 +1850,7 @@ video_driver_t video_d3d12 = {
|
|||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
d3d12_gfx_set_rotation,
|
d3d12_gfx_set_rotation,
|
||||||
d3d12_gfx_viewport_info,
|
d3d12_gfx_viewport_info,
|
||||||
d3d12_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -1631,11 +1631,6 @@ static bool d3d8_frame(void *data, const void *frame,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool d3d8_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool d3d8_set_shader(void *data,
|
static bool d3d8_set_shader(void *data,
|
||||||
enum rarch_shader_type type, const char *path)
|
enum rarch_shader_type type, const char *path)
|
||||||
{
|
{
|
||||||
@ -1900,7 +1895,7 @@ video_driver_t video_d3d8 = {
|
|||||||
d3d8_set_viewport,
|
d3d8_set_viewport,
|
||||||
d3d8_set_rotation,
|
d3d8_set_rotation,
|
||||||
d3d8_viewport_info,
|
d3d8_viewport_info,
|
||||||
d3d8_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
d3d8_get_overlay_interface,
|
d3d8_get_overlay_interface,
|
||||||
|
@ -586,20 +586,6 @@ static bool dispmanx_gfx_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dispmanx_gfx_set_rotation(void *data, unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool dispmanx_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void dispmanx_set_aspect_ratio (void *data, unsigned aspect_ratio_idx)
|
static void dispmanx_set_aspect_ratio (void *data, unsigned aspect_ratio_idx)
|
||||||
{
|
{
|
||||||
/* Due to RetroArch setting the data pointer to NULL internally
|
/* Due to RetroArch setting the data pointer to NULL internally
|
||||||
@ -704,9 +690,9 @@ video_driver_t video_dispmanx = {
|
|||||||
dispmanx_gfx_free,
|
dispmanx_gfx_free,
|
||||||
"dispmanx",
|
"dispmanx",
|
||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
dispmanx_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
dispmanx_gfx_viewport_info,
|
dispmanx_gfx_viewport_info,
|
||||||
dispmanx_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -932,20 +932,6 @@ static bool drm_gfx_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void drm_gfx_set_rotation(void *data, unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool drm_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void drm_set_aspect_ratio (void *data, unsigned aspect_ratio_idx)
|
static void drm_set_aspect_ratio (void *data, unsigned aspect_ratio_idx)
|
||||||
{
|
{
|
||||||
struct drm_video *_drmvars = data;
|
struct drm_video *_drmvars = data;
|
||||||
@ -1029,9 +1015,9 @@ video_driver_t video_drm = {
|
|||||||
drm_gfx_free,
|
drm_gfx_free,
|
||||||
"drm",
|
"drm",
|
||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
drm_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
drm_gfx_viewport_info,
|
drm_gfx_viewport_info,
|
||||||
drm_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -1528,14 +1528,6 @@ static bool exynos_gfx_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool exynos_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
video_driver_t video_exynos = {
|
video_driver_t video_exynos = {
|
||||||
exynos_gfx_init,
|
exynos_gfx_init,
|
||||||
exynos_gfx_frame,
|
exynos_gfx_frame,
|
||||||
@ -1550,7 +1542,7 @@ video_driver_t video_exynos = {
|
|||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
exynos_gfx_set_rotation,
|
exynos_gfx_set_rotation,
|
||||||
exynos_gfx_viewport_info,
|
exynos_gfx_viewport_info,
|
||||||
exynos_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -472,28 +472,6 @@ static bool gdi_gfx_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gdi_gfx_set_rotation(void *data,
|
|
||||||
unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void gdi_gfx_viewport_info(void *data,
|
|
||||||
struct video_viewport *vp)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)vp;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool gdi_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void gdi_set_texture_frame(void *data,
|
static void gdi_set_texture_frame(void *data,
|
||||||
const void *frame, bool rgb32, unsigned width, unsigned height,
|
const void *frame, bool rgb32, unsigned width, unsigned height,
|
||||||
float alpha)
|
float alpha)
|
||||||
@ -689,9 +667,9 @@ video_driver_t video_gdi = {
|
|||||||
gdi_gfx_free,
|
gdi_gfx_free,
|
||||||
"gdi",
|
"gdi",
|
||||||
gdi_gfx_set_viewport,
|
gdi_gfx_set_viewport,
|
||||||
gdi_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
gdi_gfx_viewport_info,
|
NULL, /* viewport_info */
|
||||||
gdi_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -1566,14 +1566,6 @@ static void wiiu_gfx_viewport_info(void *data,
|
|||||||
*vp = wiiu->vp;
|
*vp = wiiu->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool wiiu_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static uintptr_t wiiu_gfx_load_texture(void *video_data, void *data,
|
static uintptr_t wiiu_gfx_load_texture(void *video_data, void *data,
|
||||||
bool threaded, enum texture_filter_type filter_type)
|
bool threaded, enum texture_filter_type filter_type)
|
||||||
{
|
{
|
||||||
@ -1773,7 +1765,7 @@ video_driver_t video_wiiu =
|
|||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
wiiu_gfx_set_rotation,
|
wiiu_gfx_set_rotation,
|
||||||
wiiu_gfx_viewport_info,
|
wiiu_gfx_viewport_info,
|
||||||
wiiu_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
gx2_get_overlay_interface, /* overlay_interface */
|
gx2_get_overlay_interface, /* overlay_interface */
|
||||||
|
@ -1230,13 +1230,6 @@ static void gx_viewport_info(void *data, struct video_viewport *vp)
|
|||||||
*vp = gx->vp;
|
*vp = gx->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool gx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void gx_get_video_output_prev(void *data)
|
static void gx_get_video_output_prev(void *data)
|
||||||
{
|
{
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
@ -1679,7 +1672,7 @@ video_driver_t video_gx = {
|
|||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
gx_set_rotation,
|
gx_set_rotation,
|
||||||
gx_viewport_info,
|
gx_viewport_info,
|
||||||
gx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
gx_get_overlay_interface,
|
gx_get_overlay_interface,
|
||||||
|
@ -1085,20 +1085,6 @@ static bool omap_gfx_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void omap_gfx_set_rotation(void *data, unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool omap_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void omap_gfx_set_texture_frame(void *data, const void *frame, bool rgb32,
|
static void omap_gfx_set_texture_frame(void *data, const void *frame, bool rgb32,
|
||||||
unsigned width, unsigned height, float alpha)
|
unsigned width, unsigned height, float alpha)
|
||||||
{
|
{
|
||||||
@ -1179,9 +1165,9 @@ video_driver_t video_omap = {
|
|||||||
omap_gfx_free,
|
omap_gfx_free,
|
||||||
"omap",
|
"omap",
|
||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
omap_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
omap_gfx_viewport_info,
|
omap_gfx_viewport_info,
|
||||||
omap_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -384,28 +384,6 @@ static bool ps2_gfx_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ps2_gfx_set_rotation(void *data,
|
|
||||||
unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ps2_gfx_viewport_info(void *data,
|
|
||||||
struct video_viewport *vp)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)vp;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool ps2_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ps2_set_filtering(void *data, unsigned index, bool smooth)
|
static void ps2_set_filtering(void *data, unsigned index, bool smooth)
|
||||||
{
|
{
|
||||||
ps2_video_t *ps2 = (ps2_video_t*)data;
|
ps2_video_t *ps2 = (ps2_video_t*)data;
|
||||||
@ -511,9 +489,9 @@ video_driver_t video_ps2 = {
|
|||||||
ps2_gfx_free,
|
ps2_gfx_free,
|
||||||
"ps2",
|
"ps2",
|
||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
ps2_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
ps2_gfx_viewport_info,
|
NULL, /* viewport_info */
|
||||||
ps2_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -429,7 +429,8 @@ static bool sdl_gfx_has_windowed(void *data)
|
|||||||
static void sdl_gfx_viewport_info(void *data, struct video_viewport *vp)
|
static void sdl_gfx_viewport_info(void *data, struct video_viewport *vp)
|
||||||
{
|
{
|
||||||
sdl_video_t *vid = (sdl_video_t*)data;
|
sdl_video_t *vid = (sdl_video_t*)data;
|
||||||
vp->x = vp->y = 0;
|
vp->x = 0;
|
||||||
|
vp->y = 0;
|
||||||
vp->width = vp->full_width = vid->screen->w;
|
vp->width = vp->full_width = vid->screen->w;
|
||||||
vp->height = vp->full_height = vid->screen->h;
|
vp->height = vp->full_height = vid->screen->h;
|
||||||
}
|
}
|
||||||
@ -566,20 +567,6 @@ static bool sdl_gfx_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdl_gfx_set_rotation(void *data, unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool sdl_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
video_driver_t video_sdl = {
|
video_driver_t video_sdl = {
|
||||||
sdl_gfx_init,
|
sdl_gfx_init,
|
||||||
sdl_gfx_frame,
|
sdl_gfx_frame,
|
||||||
@ -592,9 +579,9 @@ video_driver_t video_sdl = {
|
|||||||
sdl_gfx_free,
|
sdl_gfx_free,
|
||||||
"sdl",
|
"sdl",
|
||||||
NULL,
|
NULL,
|
||||||
sdl_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
sdl_gfx_viewport_info,
|
sdl_gfx_viewport_info,
|
||||||
sdl_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -515,21 +515,6 @@ static void sixel_gfx_set_rotation(void *data,
|
|||||||
(void)rotation;
|
(void)rotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sixel_gfx_viewport_info(void *data,
|
|
||||||
struct video_viewport *vp)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)vp;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool sixel_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void sixel_set_texture_frame(void *data,
|
static void sixel_set_texture_frame(void *data,
|
||||||
const void *frame, bool rgb32, unsigned width, unsigned height,
|
const void *frame, bool rgb32, unsigned width, unsigned height,
|
||||||
float alpha)
|
float alpha)
|
||||||
@ -659,8 +644,8 @@ video_driver_t video_sixel = {
|
|||||||
"sixel",
|
"sixel",
|
||||||
sixel_gfx_set_viewport,
|
sixel_gfx_set_viewport,
|
||||||
sixel_gfx_set_rotation,
|
sixel_gfx_set_rotation,
|
||||||
sixel_gfx_viewport_info,
|
NULL, /* viewport_info */
|
||||||
sixel_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
NULL, /* overlay_interface */
|
NULL, /* overlay_interface */
|
||||||
|
@ -824,12 +824,6 @@ static bool sunxi_gfx_focus(void *data)
|
|||||||
return true; /* fb device always has focus */
|
return true; /* fb device always has focus */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sunxi_gfx_set_rotation(void *data, unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool sunxi_gfx_suppress_screensaver(void *data, bool enable)
|
static bool sunxi_gfx_suppress_screensaver(void *data, bool enable)
|
||||||
{
|
{
|
||||||
(void)data;
|
(void)data;
|
||||||
@ -985,7 +979,7 @@ video_driver_t video_sunxi = {
|
|||||||
sunxi_gfx_free,
|
sunxi_gfx_free,
|
||||||
"sunxi",
|
"sunxi",
|
||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
sunxi_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
sunxi_gfx_viewport_info,
|
sunxi_gfx_viewport_info,
|
||||||
NULL, /* read_viewport */
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
@ -327,14 +327,6 @@ static void switch_viewport_info(void *data, struct video_viewport *vp)
|
|||||||
*vp = sw->vp;
|
*vp = sw->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool switch_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void) data;
|
|
||||||
(void) buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void switch_set_texture_frame(
|
static void switch_set_texture_frame(
|
||||||
void *data, const void *frame, bool rgb32,
|
void *data, const void *frame, bool rgb32,
|
||||||
unsigned width, unsigned height, float alpha)
|
unsigned width, unsigned height, float alpha)
|
||||||
@ -449,7 +441,7 @@ video_driver_t video_switch = {
|
|||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
switch_set_rotation,
|
switch_set_rotation,
|
||||||
switch_viewport_info,
|
switch_viewport_info,
|
||||||
switch_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
NULL, /* overlay_interface */
|
NULL, /* overlay_interface */
|
||||||
|
@ -576,14 +576,6 @@ static void switch_viewport_info(void *data, struct video_viewport *vp)
|
|||||||
*vp = sw->vp;
|
*vp = sw->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool switch_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void switch_set_texture_frame(
|
static void switch_set_texture_frame(
|
||||||
void *data, const void *frame, bool rgb32,
|
void *data, const void *frame, bool rgb32,
|
||||||
unsigned width, unsigned height, float alpha)
|
unsigned width, unsigned height, float alpha)
|
||||||
@ -798,7 +790,7 @@ video_driver_t video_switch = {
|
|||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
switch_set_rotation,
|
switch_set_rotation,
|
||||||
switch_viewport_info,
|
switch_viewport_info,
|
||||||
switch_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
switch_overlay_interface, /* switch_overlay_interface */
|
switch_overlay_interface, /* switch_overlay_interface */
|
||||||
|
@ -473,27 +473,6 @@ static bool vg_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vg_set_rotation(void *data, unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void vg_viewport_info(void *data,
|
|
||||||
struct video_viewport *vp)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)vp;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool vg_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void vg_get_poke_interface(void *data,
|
static void vg_get_poke_interface(void *data,
|
||||||
const video_poke_interface_t **iface)
|
const video_poke_interface_t **iface)
|
||||||
{
|
{
|
||||||
@ -513,9 +492,9 @@ video_driver_t video_vg = {
|
|||||||
vg_free,
|
vg_free,
|
||||||
"vg",
|
"vg",
|
||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
vg_set_rotation,
|
NULL, /* set_rotation */
|
||||||
vg_viewport_info,
|
NULL, /* viewport_info */
|
||||||
vg_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
NULL, /* overlay_interface */
|
NULL, /* overlay_interface */
|
||||||
|
@ -303,28 +303,6 @@ static bool vga_gfx_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vga_gfx_set_rotation(void *data,
|
|
||||||
unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void vga_gfx_viewport_info(void *data,
|
|
||||||
struct video_viewport *vp)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)vp;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool vga_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void vga_set_texture_frame(void *data,
|
static void vga_set_texture_frame(void *data,
|
||||||
const void *frame, bool rgb32, unsigned width, unsigned height,
|
const void *frame, bool rgb32, unsigned width, unsigned height,
|
||||||
float alpha)
|
float alpha)
|
||||||
@ -444,9 +422,9 @@ video_driver_t video_vga = {
|
|||||||
vga_gfx_free,
|
vga_gfx_free,
|
||||||
"vga",
|
"vga",
|
||||||
vga_gfx_set_viewport,
|
vga_gfx_set_viewport,
|
||||||
vga_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
vga_gfx_viewport_info,
|
NULL, /* viewport_info */
|
||||||
vga_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -565,14 +565,6 @@ static void vita2d_gfx_viewport_info(void *data,
|
|||||||
*vp = vita->vp;
|
*vp = vita->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool vita2d_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void vita_set_filtering(void *data, unsigned index, bool smooth)
|
static void vita_set_filtering(void *data, unsigned index, bool smooth)
|
||||||
{
|
{
|
||||||
vita_video_t *vita = (vita_video_t *)data;
|
vita_video_t *vita = (vita_video_t *)data;
|
||||||
@ -979,7 +971,7 @@ video_driver_t video_vita2d = {
|
|||||||
vita2d_gfx_set_viewport,
|
vita2d_gfx_set_viewport,
|
||||||
vita2d_gfx_set_rotation,
|
vita2d_gfx_set_rotation,
|
||||||
vita2d_gfx_viewport_info,
|
vita2d_gfx_viewport_info,
|
||||||
vita2d_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
vita2d_get_overlay_interface,
|
vita2d_get_overlay_interface,
|
||||||
|
@ -270,12 +270,6 @@ static bool xenon360_gfx_suppress_screensaver(void *data, bool enable)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xenon360_gfx_set_rotation(void *data, unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool xenon360_gfx_set_shader(void *data,
|
static bool xenon360_gfx_set_shader(void *data,
|
||||||
enum rarch_shader_type type, const char *path)
|
enum rarch_shader_type type, const char *path)
|
||||||
{
|
{
|
||||||
@ -286,20 +280,6 @@ static bool xenon360_gfx_set_shader(void *data,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xenon360_gfx_viewport_info(void *data, struct video_viewport *vp)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)vp;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool xenon360_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void xenon360_gfx_get_poke_interface(void *data,
|
static void xenon360_gfx_get_poke_interface(void *data,
|
||||||
const video_poke_interface_t **iface)
|
const video_poke_interface_t **iface)
|
||||||
{
|
{
|
||||||
@ -319,9 +299,9 @@ video_driver_t video_xenon360 = {
|
|||||||
xenon360_gfx_free,
|
xenon360_gfx_free,
|
||||||
"xenon360",
|
"xenon360",
|
||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
xenon360_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
xenon360_gfx_viewport_info,
|
NULL, /* viewport_info */
|
||||||
xenon360_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
|
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
|
@ -143,21 +143,6 @@ static void xshm_gfx_free(void *data)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xshm_gfx_set_rotation(void *data, unsigned rotation)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static void xshm_gfx_viewport_info(void *data, struct video_viewport *vp)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool xshm_gfx_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void xshm_poke_set_filtering(void *data, unsigned index, bool smooth)
|
static void xshm_poke_set_filtering(void *data, unsigned index, bool smooth)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -256,9 +241,9 @@ video_driver_t video_xshm = {
|
|||||||
"xshm",
|
"xshm",
|
||||||
|
|
||||||
NULL,
|
NULL,
|
||||||
xshm_gfx_set_rotation,
|
NULL, /* set_rotation */
|
||||||
xshm_gfx_viewport_info,
|
NULL, /* viewport_info */
|
||||||
xshm_gfx_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -920,20 +920,6 @@ static void xv_viewport_info(void *data, struct video_viewport *vp)
|
|||||||
*vp = xv->vp;
|
*vp = xv->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xv_set_rotation(void *data, unsigned rotation)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)rotation;
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool xv_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
|
||||||
{
|
|
||||||
(void)data;
|
|
||||||
(void)buffer;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static uint32_t xv_get_flags(void *data)
|
static uint32_t xv_get_flags(void *data)
|
||||||
{
|
{
|
||||||
uint32_t flags = 0;
|
uint32_t flags = 0;
|
||||||
@ -994,9 +980,9 @@ video_driver_t video_xvideo = {
|
|||||||
xv_free,
|
xv_free,
|
||||||
"xvideo",
|
"xvideo",
|
||||||
NULL, /* set_viewport */
|
NULL, /* set_viewport */
|
||||||
xv_set_rotation,
|
NULL, /* set_rotation */
|
||||||
xv_viewport_info,
|
xv_viewport_info,
|
||||||
xv_read_viewport,
|
NULL, /* read_viewport */
|
||||||
NULL, /* read_frame_raw */
|
NULL, /* read_frame_raw */
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
NULL, /* overlay_interface */
|
NULL, /* overlay_interface */
|
||||||
|
@ -1750,9 +1750,6 @@ static int menu_displaylist_parse_load_content_settings(
|
|||||||
|
|
||||||
if (settings->bools.quick_menu_show_take_screenshot)
|
if (settings->bools.quick_menu_show_take_screenshot)
|
||||||
{
|
{
|
||||||
gfx_ctx_flags_t flags;
|
|
||||||
|
|
||||||
if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED))
|
|
||||||
menu_entries_append_enum(info->list,
|
menu_entries_append_enum(info->list,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_TAKE_SCREENSHOT),
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_TAKE_SCREENSHOT),
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_TAKE_SCREENSHOT),
|
msg_hash_to_str(MENU_ENUM_LABEL_TAKE_SCREENSHOT),
|
||||||
|
@ -350,7 +350,6 @@ static bool screenshot_dump(
|
|||||||
return screenshot_dump_direct(state);
|
return screenshot_dump_direct(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(VITA)
|
|
||||||
static bool take_screenshot_viewport(
|
static bool take_screenshot_viewport(
|
||||||
const char *screenshot_dir,
|
const char *screenshot_dir,
|
||||||
const char *name_base,
|
const char *name_base,
|
||||||
@ -400,7 +399,6 @@ static bool take_screenshot_viewport(
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static bool take_screenshot_raw(const char *screenshot_dir,
|
static bool take_screenshot_raw(const char *screenshot_dir,
|
||||||
const char *name_base, void *userbuf,
|
const char *name_base, void *userbuf,
|
||||||
@ -446,7 +444,8 @@ static bool take_screenshot_choice(
|
|||||||
bool use_thread,
|
bool use_thread,
|
||||||
bool supports_viewport_read,
|
bool supports_viewport_read,
|
||||||
bool supports_read_frame_raw,
|
bool supports_read_frame_raw,
|
||||||
unsigned pixel_format_type)
|
unsigned pixel_format_type
|
||||||
|
)
|
||||||
{
|
{
|
||||||
size_t old_pitch;
|
size_t old_pitch;
|
||||||
unsigned old_width, old_height;
|
unsigned old_width, old_height;
|
||||||
@ -459,15 +458,9 @@ static bool take_screenshot_choice(
|
|||||||
video_driver_set_texture_enable(false, false);
|
video_driver_set_texture_enable(false, false);
|
||||||
if (!is_idle)
|
if (!is_idle)
|
||||||
video_driver_cached_frame();
|
video_driver_cached_frame();
|
||||||
#if defined(VITA)
|
|
||||||
return take_screenshot_raw(screenshot_dir,
|
|
||||||
name_base, NULL, savestate, is_idle, is_paused, fullpath, use_thread,
|
|
||||||
pixel_format_type);
|
|
||||||
#else
|
|
||||||
return take_screenshot_viewport(screenshot_dir,
|
return take_screenshot_viewport(screenshot_dir,
|
||||||
name_base, savestate, is_idle, is_paused, fullpath, use_thread,
|
name_base, savestate, is_idle, is_paused, fullpath, use_thread,
|
||||||
pixel_format_type);
|
pixel_format_type);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!has_valid_framebuffer)
|
if (!has_valid_framebuffer)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user