#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "ui/ozone/demo/surfaceless_gl_renderer.h"
#include <stddef.h>
#include <algorithm>
#include <memory>
#include <utility>
#include "base/command_line.h"
#include "base/functional/bind.h"
#include "base/functional/callback_helpers.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/single_thread_task_runner.h"
#include "base/trace_event/trace_event.h"
#include "ui/display/types/display_snapshot.h"
#include "ui/gfx/frame_data.h"
#include "ui/gfx/geometry/rect_conversions.h"
#include "ui/gfx/gpu_fence.h"
#include "ui/gfx/overlay_plane_data.h"
#include "ui/gl/gl_bindings.h"
#include "ui/gl/gl_context.h"
#include "ui/gl/gl_fence.h"
#include "ui/gl/gl_surface.h"
#include "ui/gl/init/gl_factory.h"
#include "ui/gl/presenter.h"
#include "ui/ozone/public/native_pixmap_gl_binding.h"
#include "ui/ozone/public/overlay_candidates_ozone.h"
#include "ui/ozone/public/overlay_manager_ozone.h"
#include "ui/ozone/public/ozone_platform.h"
#include "ui/ozone/public/platform_window_surface.h"
#include "ui/ozone/public/surface_factory_ozone.h"
namespace ui {
namespace {
OverlaySurfaceCandidate MakeOverlayCandidate(int z_order,
gfx::Rect bounds_rect,
gfx::RectF crop_rect) { … }
}
SurfacelessGlRenderer::BufferWrapper::BufferWrapper() { … }
SurfacelessGlRenderer::BufferWrapper::~BufferWrapper() { … }
scoped_refptr<gfx::NativePixmap> SurfacelessGlRenderer::BufferWrapper::image()
const { … }
bool SurfacelessGlRenderer::BufferWrapper::Initialize(
gfx::AcceleratedWidget widget,
const gfx::Size& size) { … }
void SurfacelessGlRenderer::BufferWrapper::BindFramebuffer() { … }
SurfacelessGlRenderer::SurfacelessGlRenderer(
gfx::AcceleratedWidget widget,
std::unique_ptr<PlatformWindowSurface> window_surface,
const scoped_refptr<gl::GLSurface>& offscreen_surface,
const scoped_refptr<gl::Presenter>& presenter,
const gfx::Size& size)
: … { … }
SurfacelessGlRenderer::~SurfacelessGlRenderer() { … }
bool SurfacelessGlRenderer::Initialize() { … }
void SurfacelessGlRenderer::RenderFrame() { … }
void SurfacelessGlRenderer::PostRenderFrameTask(
gfx::SwapCompletionResult result) { … }
void SurfacelessGlRenderer::OnPresentation(
const gfx::PresentationFeedback& feedback) { … }
}