grcontext_for_webgraphicscontext3d.h revision c5cede9ae108bb15f6b7a8aea21c7e1fefa2834c
1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef WEBKIT_COMMON_GPU_GRCONTEXT_FOR_WEBGRAPHICSCONTEXT3D_H_
6#define WEBKIT_COMMON_GPU_GRCONTEXT_FOR_WEBGRAPHICSCONTEXT3D_H_
7
8#include "base/basictypes.h"
9#include "skia/ext/refptr.h"
10#include "webkit/common/gpu/webkit_gpu_export.h"
11
12class GrContext;
13namespace blink { class WebGraphicsContext3D; }
14
15namespace webkit {
16namespace gpu {
17
18// This class binds an offscreen GrContext to an offscreen context3d. The
19// context3d is used by the GrContext so must be valid as long as this class
20// is alive.
21class WEBKIT_GPU_EXPORT GrContextForWebGraphicsContext3D {
22 public:
23  explicit GrContextForWebGraphicsContext3D(
24      blink::WebGraphicsContext3D* context3d);
25  virtual ~GrContextForWebGraphicsContext3D();
26
27  GrContext* get() { return gr_context_.get(); }
28
29  void OnLostContext();
30  void SetMemoryLimit(bool nonzero_allocation);
31
32 private:
33  skia::RefPtr<class GrContext> gr_context_;
34
35  DISALLOW_COPY_AND_ASSIGN(GrContextForWebGraphicsContext3D);
36};
37
38}  // namespace gpu
39}  // namespace webkit
40
41#endif  // WEBKIT_COMMON_GPU_GRCONTEXT_FOR_WEBGRAPHICSCONTEXT3D_H_
42