egl/egltest/endpointtestsuite/automated/tinc/egltest_surface.h
author hgs
Fri, 30 Jul 2010 11:41:40 +0300
changeset 136 62bb7c97884c
parent 98 bf7481649c98
permissions -rw-r--r--
201030_2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
// All rights reserved.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
//
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
// Initial Contributors:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
//
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
// Contributors:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
//
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
// Description:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
//
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
/**
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
 @file
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
 @test
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
 @internalComponent - Internal Symbian test code
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
*/
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#ifndef __EGLTEST_SURFACE_H__
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#define __EGLTEST_SURFACE_H__
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include <e32base.h>
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <w32std.h>
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include <graphics/surface.h>
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include <graphics/surfacemanager.h>
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include <graphics/surfaceupdateclient.h>
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include <graphics/suerror.h>
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include <EGL/egl.h>
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
enum TSurfaceType
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
    {
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
    ESurfTypeRaw,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
    ESurfTypeEglWindow,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
    ESurfTypeRawSingleBuffered,
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
    39
    ESurfTypePBuffer,
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
    ESurfTypeMaxTypes  // Should be the last enum.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    };
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
// Index to Surface Parameters.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
enum TSurfaceIndex
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
    {
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    EStandardSurface,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    EBadAttribSurface,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
    EEmptyAttribSurface,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
    EStandard128sqSurface,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
    EUnusualStrideSurface,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
    EUnalignedPixelSizeSurface,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
    ELargeSurface,
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
    53
    ELargestPossibleSurface,
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
    54
    ESmallSurface,
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
    55
    ETinySurface
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
    };
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
// Notification enums - allows us to use one function to request several notifications.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
enum TNotification
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    60
    {
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
    ENotifyWhenAvailable,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
    ENotifyWhenDisplayed,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
    ENotifyWhenDispXTimes,
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
    };
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
const TInt KNumAttribs = 3;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
// Common between local and remote
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    69
struct TSurfaceParamsCommon
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
    {
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
    TSurfaceIndex iIndex;   // Check that it matches - or we've got the table wrong.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
    TInt iXSize, iYSize;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
    TInt iBuffers;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
    TInt iAlignment;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    75
    TInt iStrideInBytes;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    76
    TInt iOffsetToFirstBuffer;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
    TUidPixelFormat iPixelFormat;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
    TBool iUseAttribList; //when false use NULL in at attribute parameter
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
    EGLint iAttribs[KNumAttribs];
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
    // Window info.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
    TInt iXPos, iYPos;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
    TDisplayMode iDisplayMode;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
    };
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
struct TSurfaceParamsRemote
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
    {
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
    TSurfaceId           iSurfaceId;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
    TSurfaceParamsCommon iCommonParams;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
    TSurfaceType         iSurfaceType;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    90
    };
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
    93
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
//Interface for creating, drawing to and submitting content for a surface
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
//Derived classes can implement different types of surface, that can be
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
//used in the same test code. Ie surface manager surface (raw), egl window
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
//surface, video surface, viewfinder surface.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
class CSurface: public CBase
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
    {
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
public:
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   101
    // This function is kept for compatibility - new code should use offset
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   102
    // form of CreateL... 
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   103
    virtual void CreateL(TInt aIndex);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   104
    // Allow an offset for the top left corner of the surface on screen. 
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   105
    virtual void CreateL(TInt aIndex, const TPoint& aOffset) = 0;
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    virtual void DrawContentL(TInt aImageIndex) = 0;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
    virtual void DrawContentL(const TRgb& aColour) = 0;
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   108
    virtual void DrawComplexL(const TRgb& aColour) = 0;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   109
    virtual TInt SubmitContent(TBool aShouldWaitForDisplay, TInt aRectIndex = 0) = 0;
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
    virtual TSurfaceId SurfaceId() const = 0;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
    virtual void GetSurfaceParamsL(TSurfaceParamsRemote &aParams) = 0;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
    virtual const TText *GetSurfaceTypeStr() const = 0;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
    virtual TInt Notify(TNotification aWhen, TRequestStatus &aStatus, TUint32 aXTimes) = 0;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
    virtual TInt WaitFor(TNotification aWhen, TRequestStatus &aStatus, TInt aTimeoutInMicroseconds, TUint32& aTimeStamp) = 0;
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   115
    virtual TInt SizeInBytes() const;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   116
   
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   117
    
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   118
    TSize Size();
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
public:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
    // Factory function to create a surface of aSurfType.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    static CSurface *SurfaceFactoryL(TSurfaceType aSurfType);
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
protected:
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   124
    TInt  iParamIndex;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   125
    TSize iActualSize;
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    };
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
//Raw surface implements CSurface for basic surface manager surface.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
class CRawSurface : public CSurface
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
    {
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
public:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
    static CRawSurface* NewL();
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
    ~CRawSurface();
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   136
    // From CSurface
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   137
    virtual void CreateL(TInt aIndex, const TPoint& aOffset);
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    void DrawContentL(TInt aIndex);
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
    void DrawContentL(const TRgb& aColour);
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   140
    void DrawComplexL(const TRgb& aColour);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   141
    TInt SubmitContent(TBool aShouldWaitForDisplay, TInt aRectIndex = 0);
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
    TSurfaceId SurfaceId() const;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   143
    void GetSurfaceParamsL(TSurfaceParamsRemote &aParams);
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
    virtual const TText *GetSurfaceTypeStr() const;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
    virtual TInt Notify(TNotification aWhen, TRequestStatus &aStatus, TUint32 aXTimes);
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
    virtual TInt WaitFor(TNotification aWhen, TRequestStatus &aStatus, TInt aTimeoutInMicroseconds, TUint32& aTimeStamp);
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   148
protected:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
    CRawSurface();
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
    void ConstructL();
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
    TUint8* MapSurfaceAndGetInfoLC(RSurfaceManager::TSurfaceInfoV01& aInfo);
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   152
    void GetSurfAttribs(RSurfaceManager::TSurfaceCreationAttributesBuf &aSurfaceAttribs, TInt aIndex, TInt aSizeIndex);
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
private:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
    static TInt PixelSize(TUidPixelFormat aPixelFormat);
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
    static TRequestStatus *GetRequestPtr(TNotification aWhen);
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
private:
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   159
    RSurfaceUpdateSession  iSurfaceUpdate;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   160
    TRequestStatus         iAvailable;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   161
    TRequestStatus         iDisplayed;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   162
    TRequestStatus         iDisplayedXTimes;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   163
    TTimeStamp             iTimeStamp;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   164
    TInt                   iDrawBuffer;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   165
    RChunk                 iSurfaceChunk;
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
protected:
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   168
    TInt                   iBuffers;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   169
    RSurfaceManager        iSurfaceManager;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   170
    TSurfaceId             iSurfaceId;
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
    };
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
// Simple wrapper to enable a list of "singlebuffer" in the list of buffer types.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
class CRawSingleBufferSurface : public CRawSurface
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
    {
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
public:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
    static CRawSingleBufferSurface* NewL();
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
    ~CRawSingleBufferSurface();
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   180
    virtual void CreateL(TInt aIndex, const TPoint& aOffset);
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
    virtual const TText *GetSurfaceTypeStr() const;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    };
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
// Forward declare classes that we do not need to know the content of.
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
class CWindow;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
class CTestVgImage;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   188
class CEglSurfaceBase : public CSurface
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   189
    {
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   190
public:
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   191
    void CreateL(TInt aIndex, const TPoint& aOffset);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   192
    void DrawContentL(TInt aImageIndex);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   193
    void DrawContentL(const TRgb& aColour);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   194
    void DrawComplexL(const TRgb& aColour);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   195
    TInt SubmitContent(TBool aShouldWaitForDisplay, TInt aRectIndex = 0);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   196
    TInt Activate();
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   197
    void ActivateL();
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   198
    void GetSurfaceParamsL(TSurfaceParamsRemote &aParams);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   199
    virtual TInt Notify(TNotification aWhen, TRequestStatus &aStatus, TUint32 aXTimes);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   200
    virtual TInt WaitFor(TNotification aWhen, TRequestStatus &aStatus, TInt aTimeoutInMicroseconds, TUint32& aTimeStamp);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   201
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   202
protected:
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   203
    void BaseCreateL(TInt aIndex, EGLint aSurfaceType);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   204
    virtual void DoCreateL(TInt aIndex, const TPoint& aOffset, TInt aSizeIndex) = 0;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   205
    void Destroy();
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   206
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   207
protected:
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   208
    EGLContext iContext;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   209
    EGLSurface iSurface;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   210
    EGLDisplay iDisplay;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   211
    EGLConfig  iConfig;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   212
    };
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   213
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   214
class CEglWindowSurface : public CEglSurfaceBase
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
    {
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
public:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
    static CEglWindowSurface* NewL();
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
    ~CEglWindowSurface();
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
    TSurfaceId SurfaceId() const;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
    virtual const TText *GetSurfaceTypeStr() const;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
private:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
    CEglWindowSurface();
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   225
    void DoCreateL(TInt aIndex, const TPoint& aOffset, TInt aSizeIndex);
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
    void ConstructL();
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
private:
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
    CWindow*   iWindow;
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
    };
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
136
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   232
class CEglPBufferSurface : public CEglSurfaceBase
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   233
    {
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   234
public:
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   235
    static CEglPBufferSurface* NewL();
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   236
    ~CEglPBufferSurface();
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   237
    TSurfaceId SurfaceId() const;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   238
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   239
    virtual const TText *GetSurfaceTypeStr() const;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   240
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   241
    TInt SizeInBytes() const;
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   242
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   243
private:
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   244
    CEglPBufferSurface();
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   245
    void ConstructL();
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   246
    void DoCreateL(TInt aIndex, const TPoint& aOffset, TInt aSizeIndex);
62bb7c97884c 201030_2
hgs
parents: 98
diff changeset
   247
    };
98
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
bf7481649c98 Revision: 201023
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
#endif