#include "components/viz/service/display_embedder/skia_output_device_x11.h"
#include <utility>
#include <vector>
#include "base/logging.h"
#include "base/memory/ref_counted_memory.h"
#include "third_party/libyuv/include/libyuv/planar_functions.h"
#include "third_party/skia/include/core/SkImageInfo.h"
#include "third_party/skia/include/gpu/graphite/Context.h"
#include "ui/base/x/x11_util.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/x/xproto.h"
namespace viz {
namespace {
x11::GraphicsContext CreateGC(x11::Connection* connection, x11::Window window) { … }
struct ReadPixelsContext { … };
void OnReadPixelsDone(
void* raw_ctx,
std::unique_ptr<const SkImage::AsyncReadResult> async_result) { … }
}
std::unique_ptr<SkiaOutputDeviceX11> SkiaOutputDeviceX11::Create(
scoped_refptr<gpu::SharedContextState> context_state,
gfx::AcceleratedWidget widget,
gpu::MemoryTracker* memory_tracker,
DidSwapBufferCompleteCallback did_swap_buffer_complete_callback) { … }
SkiaOutputDeviceX11::SkiaOutputDeviceX11(
base::PassKey<SkiaOutputDeviceX11> pass_key,
scoped_refptr<gpu::SharedContextState> context_state,
x11::Window window,
x11::VisualId visual,
gpu::MemoryTracker* memory_tracker,
DidSwapBufferCompleteCallback did_swap_buffer_complete_callback)
: … { … }
SkiaOutputDeviceX11::~SkiaOutputDeviceX11() { … }
bool SkiaOutputDeviceX11::Reshape(const ReshapeParams& params) { … }
void SkiaOutputDeviceX11::Present(const std::optional<gfx::Rect>& update_rect,
BufferPresentedCallback feedback,
OutputSurfaceFrame frame) { … }
}