mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
39 lines
1.2 KiB
C++
39 lines
1.2 KiB
C++
// 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.
|
|
|
|
#ifndef MOJO_SKIA_GANESH_FRAMEBUFFER_SURFACE_H_
|
|
#define MOJO_SKIA_GANESH_FRAMEBUFFER_SURFACE_H_
|
|
|
|
#include "base/macros.h"
|
|
#include "mojo/skia/ganesh_context.h"
|
|
#include "skia/ext/refptr.h"
|
|
#include "third_party/skia/include/core/SkSurface.h"
|
|
|
|
namespace mojo {
|
|
namespace skia {
|
|
|
|
// This class represents an SkSurface backed by a GL framebuffer, which is
|
|
// appropriate for use with Ganesh. This is useful for rendering Skia
|
|
// commands directly to the display framebuffer.
|
|
class GaneshFramebufferSurface {
|
|
public:
|
|
// Creates a surface that wraps the currently bound GL framebuffer.
|
|
// The size of the surface is determined by querying the current viewport.
|
|
explicit GaneshFramebufferSurface(const GaneshContext::Scope& scope);
|
|
~GaneshFramebufferSurface();
|
|
|
|
SkSurface* surface() const { return surface_.get(); }
|
|
SkCanvas* canvas() const { return surface_->getCanvas(); }
|
|
|
|
private:
|
|
::skia::RefPtr<SkSurface> surface_;
|
|
|
|
DISALLOW_COPY_AND_ASSIGN(GaneshFramebufferSurface);
|
|
};
|
|
|
|
} // namespace skia
|
|
} // namespace mojo
|
|
|
|
#endif // MOJO_SKIA_GANESH_FRAMEBUFFER_SURFACE_H_
|