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; 13 14namespace webkit { 15namespace gpu { 16class WebGraphicsContext3DImpl; 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 WebGraphicsContext3DImpl* 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_ 42