1/* 2 Copyright (C) 2012 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 AcceleratedCompositingContextEfl_h 21#define AcceleratedCompositingContextEfl_h 22 23#include <wtf/Noncopyable.h> 24#include <wtf/PassOwnPtr.h> 25 26#if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) 27 28#include "TextureMapperFPSCounter.h" 29#include "ewk_private.h" 30 31namespace WebCore { 32 33class HostWindow; 34class TextureMapper; 35class TextureMapperLayer; 36 37class AcceleratedCompositingContext { 38 WTF_MAKE_NONCOPYABLE(AcceleratedCompositingContext); 39public: 40 static PassOwnPtr<AcceleratedCompositingContext> create(HostWindow*); 41 virtual ~AcceleratedCompositingContext(); 42 43 virtual void syncLayersNow(); 44 virtual void renderLayers(); 45 virtual void attachRootGraphicsLayer(GraphicsLayer* rootLayer); 46 virtual GraphicsContext3D* context(); 47 48private: 49 AcceleratedCompositingContext(); 50 51 virtual bool initialize(HostWindow*); 52 53 Evas_Object* m_view; 54 55 OwnPtr<TextureMapper> m_textureMapper; 56 OwnPtr<GraphicsLayer> m_rootGraphicsLayer; 57 TextureMapperLayer* m_rootTextureMapperLayer; 58 59 RefPtr<GraphicsContext3D> m_context3D; 60 TextureMapperFPSCounter m_fpsCounter; 61}; 62 63} // namespace WebCore 64 65#endif // USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) 66#endif // AcceleratedCompositingContextEfl_h 67