#include "gpu/command_buffer/service/graphite_utils.h"
#include "base/check.h"
#include "third_party/skia/include/core/SkImage.h"
#include "third_party/skia/include/core/SkPixmap.h"
#include "third_party/skia/include/core/SkSurface.h"
#include "third_party/skia/include/gpu/graphite/Context.h"
#include "third_party/skia/include/gpu/graphite/GraphiteTypes.h"
#include "third_party/skia/include/gpu/graphite/Surface.h"
namespace gpu {
namespace {
struct ReadPixelsContext { … };
void OnReadPixelsDone(
void* raw_ctx,
std::unique_ptr<const SkImage::AsyncReadResult> async_result) { … }
template <typename T>
bool GraphiteReadPixelsSyncImpl(skgpu::graphite::Context* context,
skgpu::graphite::Recorder* recorder,
T* imageOrSurface,
const SkImageInfo& dst_info,
void* dst_pointer,
size_t dst_bytes_per_row,
int src_x,
int src_y) { … }
}
void GraphiteFlush(skgpu::graphite::Context* context,
skgpu::graphite::Recorder* recorder) { … }
void GraphiteFlushAndSubmit(skgpu::graphite::Context* context,
skgpu::graphite::Recorder* recorder) { … }
bool GraphiteReadPixelsSync(skgpu::graphite::Context* context,
skgpu::graphite::Recorder* recorder,
SkImage* image,
const SkImageInfo& dst_info,
void* dst_pointer,
size_t dst_bytes_per_row,
int src_x,
int src_y) { … }
bool GraphiteReadPixelsSync(skgpu::graphite::Context* context,
skgpu::graphite::Recorder* recorder,
SkSurface* surface,
const SkImageInfo& dst_info,
void* dst_pointer,
size_t dst_bytes_per_row,
int src_x,
int src_y) { … }
}