#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "ui/base/x/x11_software_bitmap_presenter.h"
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <cstring>
#include <memory>
#include <utility>
#include "base/functional/bind.h"
#include "base/logging.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted_memory.h"
#include "skia/ext/legacy_display_globals.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkImageInfo.h"
#include "third_party/skia/include/core/SkSurface.h"
#include "ui/base/x/x11_shm_image_pool.h"
#include "ui/base/x/x11_util.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/gfx/x/atom_cache.h"
#include "ui/gfx/x/connection.h"
#include "ui/gfx/x/xproto.h"
#include "ui/gfx/x/xproto_types.h"
namespace ui {
namespace {
constexpr int kMaxFramesPending = …;
class ScopedPixmap { … };
}
bool X11SoftwareBitmapPresenter::CompositeBitmap(x11::Connection* connection,
x11::Drawable widget,
int x,
int y,
int width,
int height,
int depth,
x11::GraphicsContext gc,
const void* data) { … }
X11SoftwareBitmapPresenter::X11SoftwareBitmapPresenter(
x11::Connection& connection,
gfx::AcceleratedWidget widget,
bool enable_multibuffering)
: … { … }
X11SoftwareBitmapPresenter::~X11SoftwareBitmapPresenter() { … }
bool X11SoftwareBitmapPresenter::ShmPoolReady() const { … }
void X11SoftwareBitmapPresenter::Resize(const gfx::Size& pixel_size) { … }
SkCanvas* X11SoftwareBitmapPresenter::GetSkCanvas() { … }
void X11SoftwareBitmapPresenter::EndPaint(const gfx::Rect& damage_rect) { … }
void X11SoftwareBitmapPresenter::OnSwapBuffers(
SwapBuffersCallback swap_ack_callback) { … }
int X11SoftwareBitmapPresenter::MaxFramesPending() const { … }
}