| // Copyright 2023 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef GPU_COMMAND_BUFFER_SERVICE_GRAPHITE_UTILS_H_ | |
| #define GPU_COMMAND_BUFFER_SERVICE_GRAPHITE_UTILS_H_ | |
| #include <cstddef> | |
| #include "gpu/gpu_gles2_export.h" | |
| class SkImage; | |
| struct SkImageInfo; | |
| class SkSurface; | |
| namespace skgpu::graphite { | |
| class Recorder; | |
| } // namespace skgpu::graphite | |
| namespace gpu { | |
| class GraphiteSharedContext; | |
| GPU_GLES2_EXPORT | |
| bool GraphiteFlush(GraphiteSharedContext* context, | |
| skgpu::graphite::Recorder* recorder); | |
| GPU_GLES2_EXPORT | |
| bool GraphiteFlushAndSubmit(GraphiteSharedContext* context, | |
| skgpu::graphite::Recorder* recorder); | |
| // Synchronously read pixels from a graphite image. | |
| // Note this is for single plane image. | |
| // TODO(crbug.com/40924444): Add a function to read multiplanar image. | |
| GPU_GLES2_EXPORT | |
| bool GraphiteReadPixelsSync(GraphiteSharedContext* 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); | |
| GPU_GLES2_EXPORT | |
| bool GraphiteReadPixelsSync(GraphiteSharedContext* 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); | |
| } // namespace gpu | |
| #endif // GPU_COMMAND_BUFFER_SERVICE_GRAPHITE_UTILS_H_ |