488 {
489 if (!fHost || !fInfo || !fNegative || !fDngStream) {
490 if (!this->readDng()) {
491 return nullptr;
492 }
493 }
494
495
497 try {
498
499 std::unique_ptr<dng_host>
host(fHost.release());
500 std::unique_ptr<dng_info>
info(fInfo.release());
501 std::unique_ptr<dng_negative> negative(fNegative.release());
502 std::unique_ptr<dng_stream> dngStream(fDngStream.release());
503
504 host->SetPreferredSize(preferredSize);
505 host->ValidateSizes();
506
507 negative->ReadStage1Image(*
host, *dngStream, *
info);
508
509 if (
info->fMaskIndex != -1) {
510 negative->ReadTransparencyMask(*
host, *dngStream, *
info);
511 }
512
513 negative->ValidateRawImageDigest(*
host);
514 if (negative->IsDamaged()) {
515 return nullptr;
516 }
517
518 const int32 kMosaicPlane = -1;
519 negative->BuildStage2Image(*
host);
520 negative->BuildStage3Image(*
host, kMosaicPlane);
521
524 render.SetFinalPixelType(ttByte);
525
526 dng_point stage3_size = negative->Stage3Image()->Size();
528
530 } catch (...) {
531 return nullptr;
532 }
533 }
static void info(const char *fmt,...) SK_PRINTF_LIKE(1
dng_image * render(int width, int height)
static float max(float r, float g, float b)
const GrXPFactory * Get(SkBlendMode mode)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service host