-// Copyright 2017 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CC_TILES_CHECKER_IMAGE_TRACKER_H_
#define CC_TILES_CHECKER_IMAGE_TRACKER_H_
+#include <memory>
#include <unordered_map>
#include <vector>
-#include "base/optional.h"
+#include "base/memory/raw_ptr.h"
#include "cc/cc_export.h"
#include "cc/paint/image_id.h"
#include "cc/tiles/image_controller.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
#include "third_party/skia/include/core/SkImage.h"
namespace cc {
CheckerImageTrackerClient* client,
bool enable_checker_imaging,
size_t min_image_bytes_to_checker);
+ CheckerImageTracker(const CheckerImageTracker&) = delete;
~CheckerImageTracker();
+ CheckerImageTracker& operator=(const CheckerImageTracker&) = delete;
+
// Returns true if the decode for |image| will be deferred to the image decode
// service and it should be be skipped during raster.
bool ShouldCheckerImage(const DrawImage& image, WhichTree tree);
// queuing the image decode.
struct DecodeState {
DecodePolicy policy = DecodePolicy::SYNC;
- SkFilterQuality filter_quality = kNone_SkFilterQuality;
+ bool use_dark_mode = false;
+ PaintFlags::FilterQuality filter_quality = PaintFlags::FilterQuality::kNone;
SkSize scale = SkSize::MakeEmpty();
+ TargetColorParams target_color_params;
size_t frame_index = PaintImage::kDefaultFrameIndex;
};
ScopedDecodeHolder(ImageController* controller,
ImageController::ImageDecodeRequestId request_id)
: controller_(controller), request_id_(request_id) {}
+ ScopedDecodeHolder(const ScopedDecodeHolder&) = delete;
~ScopedDecodeHolder() { controller_->UnlockImageDecode(request_id_); }
+ ScopedDecodeHolder& operator=(const ScopedDecodeHolder&) = delete;
+
private:
- ImageController* controller_;
+ raw_ptr<ImageController> controller_;
ImageController::ImageDecodeRequestId request_id_;
-
- DISALLOW_COPY_AND_ASSIGN(ScopedDecodeHolder);
};
void DidFinishImageDecode(PaintImage::Id image_id,
PaintImage::Id paint_image_id,
DecodeState* decode_state);
- ImageController* image_controller_;
- CheckerImageTrackerClient* client_;
+ raw_ptr<ImageController> image_controller_;
+ raw_ptr<CheckerImageTrackerClient> client_;
const bool enable_checker_imaging_;
const size_t min_image_bytes_to_checker_;
// The currently outstanding image decode that has been scheduled with the
// decode service. There can be only one outstanding decode at a time.
- base::Optional<PaintImage> outstanding_image_decode_;
+ absl::optional<PaintImage> outstanding_image_decode_;
// A map of ImageId to its DecodePolicy.
std::unordered_map<PaintImage::Id, DecodeState> image_async_decode_state_;
base::flat_map<PaintImage::Id, PaintImage::DecodingMode> decoding_mode_map_;
- base::WeakPtrFactory<CheckerImageTracker> weak_factory_;
-
- DISALLOW_COPY_AND_ASSIGN(CheckerImageTracker);
+ base::WeakPtrFactory<CheckerImageTracker> weak_factory_{this};
};
} // namespace cc