Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Functions
imagemasksubset.cpp File Reference
#include "gm/gm.h"
#include "include/core/SkCanvas.h"
#include "include/core/SkColorSpace.h"
#include "include/core/SkImage.h"
#include "include/core/SkImageGenerator.h"
#include "include/core/SkImageInfo.h"
#include "include/core/SkPaint.h"
#include "include/core/SkRect.h"
#include "include/core/SkRefCnt.h"
#include "include/core/SkSize.h"
#include "include/core/SkSurface.h"
#include "include/core/SkTypes.h"
#include "include/gpu/GrDirectContext.h"
#include "include/gpu/ganesh/SkSurfaceGanesh.h"
#include "tools/GpuToolUtils.h"
#include "tools/ToolUtils.h"

Go to the source code of this file.

Functions

 DEF_SIMPLE_GM (imagemasksubset, canvas, 480, 480)
 

Function Documentation

◆ DEF_SIMPLE_GM()

DEF_SIMPLE_GM ( imagemasksubset  ,
canvas  ,
480  ,
480   
)

Definition at line 89 of file imagemasksubset.cpp.

89 {
91 paint.setColor(0xff00ff00);
92
93 const SkImageInfo info = SkImageInfo::MakeA8(kSize.width(), kSize.height());
94
95 for (size_t i = 0; i < std::size(makers); ++i) {
96 sk_sp<SkImage> image = ToolUtils::MakeTextureImage(canvas, makers[i](canvas, info));
97 if (image) {
98 canvas->drawImageRect(image, SkRect::Make(kSubset), kDest, SkSamplingOptions(),
100 sk_sp<SkImage> subset;
101
102 if (auto direct = GrAsDirectContext(canvas->recordingContext())) {
103 subset = image->makeSubset(direct, kSubset);
104 } else {
105#if defined(SK_GRAPHITE)
106 subset = image->makeSubset(canvas->recorder(), kSubset, {});
107#endif
108 }
109
110 canvas->drawImageRect(subset, kDest.makeOffset(kSize.width() * 1.5f, 0),
112 }
113 canvas->translate(0, kSize.height() * 1.5f);
114 }
115}
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
Definition DM.cpp:213
static GrDirectContext * GrAsDirectContext(GrContext_Base *base)
@ kStrict_SrcRectConstraint
sample only inside bounds; slower
Definition SkCanvas.h:1542
virtual sk_sp< SkImage > makeSubset(GrDirectContext *direct, const SkIRect &subset) const =0
static constexpr int kSize
const Paint & paint
sk_sp< SkImage > image
Definition examples.cpp:29
sk_sp< SkImage > MakeTextureImage(SkCanvas *canvas, sk_sp< SkImage > orig)
static SkImageInfo MakeA8(int width, int height)
static SkRect Make(const SkISize &size)
Definition SkRect.h:669