Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
DM::GMSrc Class Reference

#include <DMSrcSink.h>

Inheritance diagram for DM::GMSrc:
DM::Src

Public Member Functions

 GMSrc (skiagm::GMFactory)
 
Result draw (SkCanvas *, GraphiteTestContext *) const override
 
SkISize size () const override
 
Name name () const override
 
void modifyGrContextOptions (GrContextOptions *options) const override
 
- Public Member Functions inherited from DM::Src
virtual ~Src ()
 
virtual void modifyGraphiteContextOptions (skgpu::graphite::ContextOptions *) const
 
virtual bool veto (SinkFlags) const
 
virtual int pageCount () const
 
virtual Result draw (int page, SkCanvas *canvas, GraphiteTestContext *graphiteTestContext) const
 
virtual SkISize size (int page) const
 
virtual bool serial () const
 

Additional Inherited Members

- Public Types inherited from DM::Src
using GraphiteTestContext = skiatest::graphite::GraphiteTestContext
 

Detailed Description

Definition at line 136 of file DMSrcSink.h.

Constructor & Destructor Documentation

◆ GMSrc()

DM::GMSrc::GMSrc ( skiagm::GMFactory  factory)
explicit

Definition at line 144 of file DMSrcSink.cpp.

144: fFactory(factory) {}

Member Function Documentation

◆ draw()

Result DM::GMSrc::draw ( SkCanvas canvas,
GraphiteTestContext testContext 
) const
overridevirtual

Implements DM::Src.

Definition at line 146 of file DMSrcSink.cpp.

146 {
147 std::unique_ptr<skiagm::GM> gm(fFactory());
148 if (gm->isBazelOnly()) {
149 // We skip Bazel-only GMs because they might overlap with existing DM functionality. See
150 // comments in the skiagm::GM::isBazelOnly function declaration for context.
151 return Result(Result::Status::Skip, SkString("Bazel-only GM"));
152 }
153 SkString msg;
154
155 skiagm::DrawResult gpuSetupResult = gm->gpuSetup(canvas, &msg, testContext);
156 switch (gpuSetupResult) {
157 case skiagm::DrawResult::kOk : break;
158 case skiagm::DrawResult::kFail: return Result(Result::Status::Fatal, msg);
159 case skiagm::DrawResult::kSkip: return Result(Result::Status::Skip, msg);
160 default: SK_ABORT("");
161 }
162
163 skiagm::DrawResult drawResult = gm->draw(canvas, &msg);
164 switch (drawResult) {
165 case skiagm::DrawResult::kOk : return Result(Result::Status::Ok, msg);
166 case skiagm::DrawResult::kFail: return Result(Result::Status::Fatal, msg);
167 case skiagm::DrawResult::kSkip: return Result(Result::Status::Skip, msg);
168 default: SK_ABORT("");
169 }
170
171 // Note: we don't call "gpuTeardown" here because, when testing DDL recording, we want
172 // the gpu-backed images to live past the lifetime of the GM.
173}
#define SK_ABORT(message,...)
Definition SkAssert.h:70
DrawResult
Definition gm.h:104

◆ modifyGrContextOptions()

void DM::GMSrc::modifyGrContextOptions ( GrContextOptions options) const
overridevirtual

Reimplemented from DM::Src.

Definition at line 185 of file DMSrcSink.cpp.

185 {
186 std::unique_ptr<skiagm::GM> gm(fFactory());
187 gm->modifyGrContextOptions(options);
188}
const char * options

◆ name()

Name DM::GMSrc::name ( ) const
overridevirtual

Implements DM::Src.

Definition at line 180 of file DMSrcSink.cpp.

180 {
181 std::unique_ptr<skiagm::GM> gm(fFactory());
182 return gm->getName();
183}

◆ size()

SkISize DM::GMSrc::size ( ) const
overridevirtual

Implements DM::Src.

Definition at line 175 of file DMSrcSink.cpp.

175 {
176 std::unique_ptr<skiagm::GM> gm(fFactory());
177 return gm->getISize();
178}

The documentation for this class was generated from the following files: