Roll src/third_party/WebKit a3b4a2e:7441784 (svn 202551:202552)
[chromium-blink-merge.git] / ui / ozone / demo / gl_renderer.h
blob2caa85d35c2c1de3e091501d3bef85ba8c2a72b6
1 // Copyright 2014 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.
5 #ifndef UI_OZONE_DEMO_GL_RENDERER_H_
6 #define UI_OZONE_DEMO_GL_RENDERER_H_
8 #include "base/macros.h"
9 #include "base/memory/ref_counted.h"
10 #include "base/memory/weak_ptr.h"
11 #include "ui/gfx/swap_result.h"
12 #include "ui/ozone/demo/renderer_base.h"
14 namespace gfx {
15 class GLContext;
16 class GLSurface;
17 } // namespace gfx
19 namespace ui {
21 class GlRenderer : public RendererBase {
22 public:
23 GlRenderer(gfx::AcceleratedWidget widget,
24 const scoped_refptr<gfx::GLSurface>& surface,
25 const gfx::Size& size);
26 ~GlRenderer() override;
28 void PostRenderFrameTask(gfx::SwapResult result);
30 // Renderer:
31 bool Initialize() override;
33 protected:
34 virtual void RenderFrame();
36 scoped_refptr<gfx::GLSurface> surface_;
37 scoped_refptr<gfx::GLContext> context_;
39 private:
40 base::WeakPtrFactory<GlRenderer> weak_ptr_factory_;
42 DISALLOW_COPY_AND_ASSIGN(GlRenderer);
45 } // namespace ui
47 #endif // UI_OZONE_DEMO_GL_RENDERER_H_