sl@0: // Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: /** sl@0: @file sl@0: @test sl@0: @internalComponent - Internal Symbian test code sl@0: */ sl@0: sl@0: sl@0: #include "tflowwindowopengl.h" sl@0: sl@0: sl@0: CTWindow* CTFlowWindowOpenGL::NewL(RWsSession &aWs, sl@0: const RWindowTreeNode &aParent, sl@0: const TPoint& aStartingPoint, sl@0: const TSize& aWindowSize) sl@0: { sl@0: CTFlowWindowOpenGL* self = new (ELeave)CTFlowWindowOpenGL(aStartingPoint, aWindowSize); sl@0: CleanupStack::PushL(self); sl@0: self->ConstructL(aWs, aParent); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: CTFlowWindowOpenGL::CTFlowWindowOpenGL(const TPoint& aStartingPoint, const TSize& aWindowSize) : sl@0: CTWindow(aStartingPoint, aWindowSize) sl@0: { sl@0: // empty sl@0: } sl@0: sl@0: /** sl@0: * Constructs EGL environment, model and output objects which are used to render sl@0: * OpenGL ES content. sl@0: * sl@0: */ sl@0: void CTFlowWindowOpenGL::ConstructL(RWsSession &aWs, const RWindowTreeNode &aParent) sl@0: { sl@0: CTWindow::ConstructL(aWs, aParent); sl@0: iEglEnvironment = CEglEnvironment::NewL(iWindow); sl@0: iModel = CModel::NewL(iEglEnvironment->Display(), iEglEnvironment->Surface()); sl@0: } sl@0: sl@0: CTFlowWindowOpenGL::~CTFlowWindowOpenGL() sl@0: { sl@0: delete iEglEnvironment; sl@0: delete iModel; sl@0: } sl@0: sl@0: /** sl@0: * Render one OpenGL ES scene and draw it to the screen. sl@0: */ sl@0: void CTFlowWindowOpenGL::RenderL() sl@0: { sl@0: CTWindow::RenderL(); sl@0: iTime++; sl@0: iModel->DrawToBuffer(iTime); sl@0: iEglEnvironment->DrawToWindow(); sl@0: } sl@0: sl@0: void CTFlowWindowOpenGL::SetResolutionL(TInt aResolution) sl@0: { sl@0: iModel->SetResolutionL(aResolution); sl@0: }