Fix def files so that the implementation agnostic interface definition has no non-standards defined entry points, and change the eglrefimpl specific implementation to place its private entry points high up in the ordinal order space in the implementation region, not the standards based entrypoints region.
/*
* Copyright (c) 2009 Symbian Foundation Ltd
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Symbian Foundation Ltd - initial contribution.
*
* Contributors:
*
* Description:
* Tiger app container class
*/
#ifndef TIGERCONTAINER_H
#define TIGERCONTAINER_H
// INCLUDES
#include <coecntrl.h>
#include "tiger.h"
#include <akndef.h>
#include <eglosnativewindowtype.h>
// CLASS DECLARATION
/**
* Container control class that handles the OpenGL ES initialization and deinitializations.
* Also uses the CTiger class to do the actual OpenGL ES rendering.
*/
class CTicker;
class CTigerContainer : public CCoeControl, MCoeControlObserver
{
public: // Constructors and destructor
/**
* EPOC default constructor. Initializes the OpenGL ES for rendering to the window surface.
* @param aRect Screen rectangle for container.
*/
void ConstructL(const TRect& aRect);
/**
* Destructor. Destroys the CPeriodic, CTiger and uninitializes OpenGL ES.
*/
virtual ~CTigerContainer();
private: // Functions from base classes
/**
* Method from CoeControl that gets called when the display size changes.
* If OpenGL has been initialized, notifies the renderer class that the screen
* size has changed.
*/
void SizeChanged();
/**
* Handles a change to the control's resources. This method
* reacts to the KEikDynamicLayoutVariantSwitch event (that notifies of
* screen size change) by calling the SetExtentToWholeScreen() again so that
* this control fills the new screen size. This will then trigger a call to the
* SizeChanged() method.
* @param aType Message UID value, only KEikDynamicLayoutVariantSwitch is handled by this method.
*/
void HandleResourceChange(TInt aType);
/**
* Method from CoeControl. Does nothing in this implementation.
*/
TInt CountComponentControls() const;
/**
* Method from CCoeControl. Does nothing in this implementation.
*/
CCoeControl* ComponentControl(TInt aIndex) const;
/**
* Method from CCoeControl. Does nothing in this implementation.
* All rendering is done in the DrawCallBack() method.
*/
void Draw(const TRect& aRect) const;
/**
* Method from MCoeControlObserver that handles an event from the observed control.
* Does nothing in this implementation.
* @param aControl Control changing its state.
* @param aEventType Type of the control event.
*/
void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
void RenderBitmap(CWindowGc& aGc, CFbsBitmap* aBitmap) const;
void CopyAndRender(CWindowGc& aGc) const;
TInt FlipVertical(CFbsBitmap& aBitmap) const;
private: //data
CTiger* iTiger;
};
#endif
// End of File