tizen beta release
[profile/ivi/webkit-efl.git] / Source / WebCore / platform / graphics / efl / GraphicsContext3DOnscreen.h
1 /*
2     Copyright (C) 2011 Samsung Electronics
3
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13
14     You should have received a copy of the GNU Library General Public License
15     along with this library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17     Boston, MA 02110-1301, USA.
18 */
19
20 #ifndef GraphicsContext3DOnscreen_h
21 #define GraphicsContext3DOnscreen_h
22
23 #if ENABLE(TIZEN_ACCELERATED_COMPOSITING)
24
25 #include "GraphicsContext3DInternal.h"
26
27 namespace WebCore {
28
29 class GraphicsContext3DOnscreen : public GraphicsContext3DInternal {
30 public:
31     static PassOwnPtr<GraphicsContext3DOnscreen> create(GraphicsContext3D::Attributes, HostWindow*);
32     virtual ~GraphicsContext3DOnscreen();
33
34     virtual Platform3DObject platformTexture() const;
35 #if USE(ACCELERATED_COMPOSITING)
36     virtual PlatformLayer* platformLayer() const;
37 #endif
38     virtual void markContextChanged();
39     virtual void markLayerComposited();
40     virtual bool layerComposited() const;
41
42     virtual void paintRenderingResultsToCanvas(CanvasRenderingContext*);
43     virtual bool paintsIntoCanvasBuffer() const;
44
45     virtual void prepareTexture(int width, int height);
46
47     virtual void reshape(int width, int height);
48
49 #if ENABLE(TIZEN_EVAS_GL_DIRECT_RENDERING)
50     virtual void clear(GC3Dbitfield mask);
51 #endif
52
53 private:
54     GraphicsContext3DOnscreen(GraphicsContext3D::Attributes attrs);
55
56     virtual bool initialize(HostWindow* hostWindow);
57     virtual bool createContext(Evas_Object* view);
58     virtual bool createSurface(Evas_Object* view);
59
60     bool setSurface();
61
62     Evas_Object* m_view;
63 };
64
65 } // namespace WebCore
66
67 #endif
68
69 #endif // GraphicsContext3DOnscreen_h