365 const auto& gl = reactor.GetProcTable();
369 if (!gl.BlitFramebuffer.IsAvailable()) {
371 VALIDATION_LOG <<
"Texture blit fallback not implemented yet for GLES2.";
375 GLuint read_fbo = GL_NONE;
376 GLuint draw_fbo = GL_NONE;
377 fml::ScopedCleanupClosure delete_fbos([&gl, &read_fbo, &draw_fbo]() {
378 DeleteFBO(gl, read_fbo, GL_READ_FRAMEBUFFER);
379 DeleteFBO(gl, draw_fbo, GL_DRAW_FRAMEBUFFER);
384 if (!read.has_value()) {
387 read_fbo = read.value();
392 if (!draw.has_value()) {
395 draw_fbo = draw.value();
398 gl.Disable(GL_SCISSOR_TEST);
399 gl.Disable(GL_DEPTH_TEST);
400 gl.Disable(GL_STENCIL_TEST);
405 gl.BlitFramebuffer(source_region.GetX(),
406 source_region.GetY(),
407 source_region.GetWidth(),
408 source_region.GetHeight(),
409 destination_region.GetX(),
410 destination_region.GetY(),
411 destination_region.GetWidth(),
412 destination_region.GetHeight(),