Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / webkit / common / gpu / grcontext_for_webgraphicscontext3d.h
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
12 class GrContext;
13 namespace blink { class WebGraphicsContext3D; }
14
15 namespace webkit {
16 namespace 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.
21 class 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 FreeGpuResources();
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_