diff --git a/video/out/gpu/context.h b/video/out/gpu/context.h index 78c0441cdf..a2fcb3711a 100644 --- a/video/out/gpu/context.h +++ b/video/out/gpu/context.h @@ -69,9 +69,6 @@ struct ra_swapchain_fns { // Gets the current framebuffer depth in bits (0 if unknown). Optional. int (*color_depth)(struct ra_swapchain *sw); - // Retrieves a screenshot of the framebuffer. Optional. - struct mp_image *(*screenshot)(struct ra_swapchain *sw); - // Called when rendering starts. Returns NULL on failure. This must be // followed by submit_frame, to submit the rendered frame. This function // can also fail sporadically, and such errors should be ignored unless diff --git a/video/out/opengl/context.c b/video/out/opengl/context.c index 8f44119210..0bf8d7436e 100644 --- a/video/out/opengl/context.c +++ b/video/out/opengl/context.c @@ -173,8 +173,6 @@ bool ra_gl_ctx_init(struct ra_ctx *ctx, GL *gl, struct ra_gl_ctx_params params) if (ext) { if (ext->color_depth) p->fns.color_depth = ext->color_depth; - if (ext->screenshot) - p->fns.screenshot = ext->screenshot; if (ext->start_frame) p->fns.start_frame = ext->start_frame; if (ext->submit_frame) @@ -247,29 +245,6 @@ int ra_gl_ctx_color_depth(struct ra_swapchain *sw) return depth_g; } -struct mp_image *ra_gl_ctx_screenshot(struct ra_swapchain *sw) -{ - struct priv *p = sw->priv; - - struct mp_image *screen = mp_image_alloc(IMGFMT_RGB24, p->wrapped_fb->params.w, - p->wrapped_fb->params.h); - if (!screen) - return NULL; - - int dir = p->params.flipped ? 1 : -1; - - assert(p->wrapped_fb); - if (!gl_read_fbo_contents(p->gl, p->main_fb, dir, GL_RGB, GL_UNSIGNED_BYTE, - p->wrapped_fb->params.w, p->wrapped_fb->params.h, - screen->planes[0], screen->stride[0])) - { - talloc_free(screen); - return NULL; - } - - return screen; -} - bool ra_gl_ctx_start_frame(struct ra_swapchain *sw, struct ra_fbo *out_fbo) { struct priv *p = sw->priv; @@ -353,7 +328,6 @@ void ra_gl_ctx_swap_buffers(struct ra_swapchain *sw) static const struct ra_swapchain_fns ra_gl_swapchain_fns = { .color_depth = ra_gl_ctx_color_depth, - .screenshot = ra_gl_ctx_screenshot, .start_frame = ra_gl_ctx_start_frame, .submit_frame = ra_gl_ctx_submit_frame, .swap_buffers = ra_gl_ctx_swap_buffers, diff --git a/video/out/vo_gpu.c b/video/out/vo_gpu.c index 70c874fc54..61696af0e4 100644 --- a/video/out/vo_gpu.c +++ b/video/out/vo_gpu.c @@ -168,7 +168,6 @@ static void get_and_update_ambient_lighting(struct gpu_priv *p) static int control(struct vo *vo, uint32_t request, void *data) { struct gpu_priv *p = vo->priv; - struct ra_swapchain *sw = p->ctx->swapchain; switch (request) { case VOCTRL_SET_PANSCAN: @@ -177,17 +176,6 @@ static int control(struct vo *vo, uint32_t request, void *data) case VOCTRL_SET_EQUALIZER: vo->want_redraw = true; return VO_TRUE; - case VOCTRL_SCREENSHOT_WIN: { - struct mp_image *screen = NULL; - if (sw->fns->screenshot) - screen = sw->fns->screenshot(sw); - if (!screen) - break; // redirect to backend - // set image parameters according to the display, if possible - screen->params.color = gl_video_get_output_colorspace(p->renderer); - *(struct mp_image **)data = screen; - return true; - } case VOCTRL_SCREENSHOT: { struct vo_frame *frame = vo_get_current_vo_frame(vo); if (frame) { diff --git a/video/out/vulkan/context.c b/video/out/vulkan/context.c index 21ad5c30c7..cbe0911385 100644 --- a/video/out/vulkan/context.c +++ b/video/out/vulkan/context.c @@ -565,7 +565,6 @@ static void swap_buffers(struct ra_swapchain *sw) } static const struct ra_swapchain_fns vulkan_swapchain = { - // .screenshot is not currently supported .color_depth = color_depth, .start_frame = start_frame, .submit_frame = submit_frame,