blob: d39753b8ba4481f3c6e29540a1ea86f999a35313 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "services/gfx/compositor/render/render_frame.h"
#include "base/logging.h"
#include "base/trace_event/trace_event.h"
#include "skia/ext/refptr.h"
#include "third_party/skia/include/core/SkCanvas.h"
#include "third_party/skia/include/core/SkPicture.h"
namespace compositor {
RenderFrame::RenderFrame(const Metadata& metadata, const SkIRect& viewport)
: metadata_(metadata), viewport_(viewport) {
DCHECK(!viewport_.isEmpty());
}
RenderFrame::RenderFrame(const Metadata& metadata,
const SkIRect& viewport,
const skia::RefPtr<SkPicture>& picture)
: metadata_(metadata), viewport_(viewport), picture_(picture) {
DCHECK(!viewport_.isEmpty());
}
RenderFrame::~RenderFrame() {}
void RenderFrame::Draw(SkCanvas* canvas) const {
DCHECK(canvas);
TRACE_EVENT0("gfx", "RenderFrame::Draw");
// TODO: Consider using GrDrawContext instead of SkCanvas.
canvas->clear(SK_ColorBLACK);
if (picture_)
canvas->drawPicture(picture_.get());
}
RenderFrame::Metadata::Metadata(
const mojo::gfx::composition::FrameInfo& frame_info,
int64_t composition_time)
: frame_info_(frame_info), composition_time_(composition_time) {}
RenderFrame::Metadata::~Metadata() {}
} // namespace compositor