egl/egltest/src/egltest_surfacescaling.cpp
author hgs
Tue, 20 Jul 2010 13:27:44 +0300
changeset 121 d72fc2aace31
permissions -rw-r--r--
201027_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
121
d72fc2aace31 201027_1
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
d72fc2aace31 201027_1
hgs
parents:
diff changeset
     2
// All rights reserved.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
d72fc2aace31 201027_1
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
d72fc2aace31 201027_1
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
d72fc2aace31 201027_1
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
d72fc2aace31 201027_1
hgs
parents:
diff changeset
     7
//
d72fc2aace31 201027_1
hgs
parents:
diff changeset
     8
// Initial Contributors:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    10
//
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    11
// Contributors:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    12
//
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    13
// Description:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    14
//
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    15
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    16
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    17
 @file
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    18
 @test
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    19
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    20
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    21
#include "egltest_surfacescaling.h"
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    22
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    23
#include <test/tefunit.h> // for ASSERT macros
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    24
#include <test/egltestcommonutils.h>
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    25
#include "egltestcommoninisettings.h"
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    26
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    27
//We are restricted by the screen comparison utility that requires images to be EColor16MU
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    28
const TDisplayMode KTestSourceDisplayMode = EColor16MU;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    29
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    30
CEglTest_SurfaceScalingBase::~CEglTest_SurfaceScalingBase()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    31
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    32
	CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    33
	delete iImageComparison;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    34
	delete iScreenDevice;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    35
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    36
    CloseWsSession();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    37
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    38
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    39
TVerdict CEglTest_SurfaceScalingBase::doTestStepPreambleL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    40
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    41
    TVerdict verdict = CEglTestStep::doTestStepPreambleL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    42
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    43
    INFO_PRINTF1(_L("doTestStepPreambleL() - Initialise surface scaling test settings..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    44
    if(!CheckForExtensionL(KEGL_NOK_surface_scaling))
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    45
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    46
		ERR_PRINTF1(_L("KEGL_NOK_surface_scaling not supported!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    47
        User::Leave(KErrNotSupported);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    48
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    49
    //retrieve the pointers to the EGL surface scaling extension functions 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    50
    iPfnEglQuerySurfaceScalingCapabilityNOK = reinterpret_cast <TFPtrEglQuerySurfaceScalingCapabilityNok> (eglGetProcAddress("eglQuerySurfaceScalingCapabilityNOK"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    51
    iPfnEglSetSurfaceScalingNOK = reinterpret_cast <TFPtrEglSetSurfaceScalingNok> (eglGetProcAddress("eglSetSurfaceScalingNOK"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    52
	if(!iPfnEglQuerySurfaceScalingCapabilityNOK)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    53
		{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    54
		ERR_PRINTF1(_L("   Cannot retrieve address of the \"eglQuerySurfaceScalingCapabilityNOK\" function"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    55
        User::Leave(KErrNotSupported);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    56
		}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    57
	if(!iPfnEglSetSurfaceScalingNOK)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    58
		{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    59
		ERR_PRINTF1(_L("   Cannot retrieve address of the \"eglSetSurfaceScalingNOK\" function"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    60
        User::Leave(KErrNotSupported);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    61
		}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    62
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    63
    //retrieve surface scaling ini settings
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    64
	CIniData* iniData = CIniData::NewL(KConfigFileName);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    65
    CleanupStack::PushL(iniData);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    66
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    67
    _LIT(KSectionSurfaceScaling, "SurfaceScaling");
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    68
    _LIT(KKeyAllScalable, "AllScalable"); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    69
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    70
    TPtrC scalable;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    71
	if(!iniData->FindVar(KSectionSurfaceScaling,KKeyAllScalable,scalable))
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    72
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    73
		ERR_PRINTF3(_L("   Cannot retrieve section:%S key:%S"), &KSectionSurfaceScaling, &KKeyAllScalable);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    74
		User::Leave(KErrNotSupported);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    75
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    76
	iAllScalable = (scalable.FindF( _L("true"))==KErrNotFound)? EFalse : ETrue;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    77
	INFO_PRINTF1(_L("  ************************************************************************"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    78
	INFO_PRINTF1(_L("  ****   The test will be run in following configuration: "));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    79
	INFO_PRINTF2(_L("  ****   All window surfaces scalable: %S"), &scalable);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    80
	INFO_PRINTF1(_L("  ************************************************************************"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    81
	CleanupStack::PopAndDestroy(iniData);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    82
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    83
    //Initiate a window server session and create a window group
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    84
    OpenWsSessionL(KDefaultWindowGroupId);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    85
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    86
    //Create a Screen Device
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    87
    const TInt screen0 = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    88
    iScreenDevice = new(ELeave) CWsScreenDevice(iWsSession);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    89
    User::LeaveIfError(iScreenDevice->Construct(screen0));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    90
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    91
    // get full screen size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    92
    TPixelsAndRotation sizeAndRotation;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    93
    iScreenDevice->GetDefaultScreenSizeAndRotation(sizeAndRotation);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    94
    iScreenSize = sizeAndRotation.iPixelSize;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    95
    		
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    96
	//Create the image comparison tool from the screen device as required by most tests 		
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    97
    iImageComparison = CTGraphicsScreenComparison::NewL(*iScreenDevice);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    98
d72fc2aace31 201027_1
hgs
parents:
diff changeset
    99
    return verdict;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   100
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   101
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   102
TVerdict CEglTest_SurfaceScalingBase::doTestStepPostambleL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   103
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   104
	INFO_PRINTF1(_L("doTestStepPostambleL() - Cleaning up"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   105
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   106
	// cleanup egltest framework stuff
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   107
	CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   108
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   109
	// cleanup member variables
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   110
	delete iImageComparison;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   111
	iImageComparison = NULL;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   112
	delete iScreenDevice;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   113
	iScreenDevice = NULL;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   114
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   115
	// close window and wserver session
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   116
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   117
    CloseWsSession();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   118
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   119
    return CEglTestStep::doTestStepPostambleL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   120
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   121
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   122
void CEglTest_SurfaceScalingBase::CreateAndActivateWindowL(const TSize& aWindowSize)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   123
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   124
    ConstructWindowL(iWindow, aWindowSize);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   125
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   126
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   127
void CEglTest_SurfaceScalingBase::CloseWindow()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   128
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   129
	iWindow.Close();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   130
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   131
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   132
//check if border color matches with expected values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   133
void CEglTest_SurfaceScalingBase::CheckBorderColorL(EGLint aExpectedRedChannelColor, EGLint aExpectedBlueChannelColor, EGLint aExpectedGreenChannelColor)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   134
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   135
    EGLint value = 0xffff; //set color channel to some arbitrary number 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   136
    ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_RED_NOK, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   137
    ASSERT_EQUALS(value, aExpectedRedChannelColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   138
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   139
    value = 0xffff; //set color channel to some arbitrary number
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   140
    ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_GREEN_NOK, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   141
    ASSERT_EQUALS(value, aExpectedGreenChannelColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   142
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   143
    value = 0xffff; //set color channel to some arbitrary number
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   144
    ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   145
    ASSERT_EQUALS(value, aExpectedBlueChannelColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   146
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   147
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   148
//check if scaling attributes match with expected values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   149
void CEglTest_SurfaceScalingBase::CheckScalingAttributesL(EGLint aExpectedSurfaceWidth, EGLint aExpectedSurfaceHeight, EGLint aExpectedExtentWidth, EGLint aExpectedExtentHeight, EGLint aExpectedOffsetX, EGLint aExpectedOffsetY)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   150
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   151
    EGLint value = 0xffff; //set initial value to some arbitrary number 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   152
    ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_WIDTH, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   153
    ASSERT_EQUALS(value, aExpectedSurfaceWidth);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   154
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   155
    value = 0xffff; //set initial value to some arbitrary number 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   156
    ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_HEIGHT, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   157
    ASSERT_EQUALS(value, aExpectedSurfaceHeight);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   158
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   159
    value = 0xffff; //set initial value to some arbitrary number 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   160
    ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_WIDTH_NOK, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   161
    ASSERT_EQUALS(value, aExpectedExtentWidth);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   162
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   163
    value = 0xffff; //set initial value to some arbitrary number 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   164
    ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_HEIGHT_NOK, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   165
    ASSERT_EQUALS(value, aExpectedExtentHeight);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   166
   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   167
    value = 0xffff; //set initial value to some arbitrary number 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   168
    ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_X_NOK, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   169
    ASSERT_EQUALS(value, aExpectedOffsetX);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   170
   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   171
    value = 0xffff; //set initial value to some arbitrary number 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   172
    ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_Y_NOK, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   173
    ASSERT_EQUALS(value, aExpectedOffsetY);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   174
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   175
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   176
/*
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   177
 Simple create bitmap function to initialise a rectangular bitmap in four simple colours plus borders
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   178
     ---------------------------
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   179
    ¦         borderTop         ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   180
    ¦     -----------------     ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   181
    ¦ b. ¦        ¦        ¦ b. ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   182
    ¦    ¦    1   ¦   2    ¦    ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   183
    ¦ L  ¦        ¦        ¦ R  ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   184
    ¦ e  ¦--------¦--------¦ i  ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   185
    ¦ f  ¦        ¦        ¦ g  ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   186
    ¦ t  ¦    3   ¦   4    ¦ h  ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   187
    ¦    ¦        ¦        ¦ t  ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   188
    ¦     -----------------     ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   189
    ¦       borderBottom        ¦
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   190
     --------------------------- 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   191
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   192
CFbsBitmap* CEglTest_SurfaceScalingBase::CreateBitmapLC(const TSize& aSize, TInt aBorderTop, TInt aBorderBottom, TInt aBorderLeft, TInt aBorderRight, const TRgb& aBorderColor)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   193
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   194
    // create the bitmap to the requested size (DisplayMode set to default value)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   195
    CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   196
    CleanupStack::PushL(bitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   197
    User::LeaveIfError(bitmap->Create(aSize,KTestSourceDisplayMode));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   198
    TEST(bitmap->SizeInPixels().iHeight == aSize.iHeight);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   199
    TEST(bitmap->SizeInPixels().iWidth == aSize.iWidth);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   200
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   201
    //Create a device and context for the purpose of generating the bitmap which will be the
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   202
    //master reference used in the test
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   203
    CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL(bitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   204
    CleanupStack::PushL(bitmapDevice);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   205
    CFbsBitGc* bitmapGc = CFbsBitGc::NewL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   206
    CleanupStack::PushL(bitmapGc);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   207
    bitmapGc->SetDrawMode(CGraphicsContext::EDrawModePEN);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   208
    bitmapGc->Activate(bitmapDevice);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   209
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   210
    // First off, set the whole bitmap to the border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   211
    bitmapGc->SetBrushColor(aBorderColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   212
    bitmapGc->SetPenColor(aBorderColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   213
    bitmapGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   214
    bitmapGc->DrawRect(aSize);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   215
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   216
    // Set each individual quadrant to a different arbitrary colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   217
    const TInt height = aSize.iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   218
    const TInt width  = aSize.iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   219
    const TInt quadrantHeight = (height - aBorderTop - aBorderBottom) / 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   220
    const TInt quadrantWidth = (width - aBorderLeft - aBorderRight) / 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   221
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   222
    // quadrant 1 - Colour KRgbMagenta
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   223
    TRect rect = TRect(TPoint(aBorderLeft, aBorderTop), TSize(quadrantWidth, quadrantHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   224
    bitmapGc->SetBrushColor(KRgbMagenta);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   225
    bitmapGc->SetPenColor(KRgbMagenta);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   226
    bitmapGc->DrawRect(rect);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   227
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   228
    // quadrant 2 - Colour KRgbCyan
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   229
    rect = TRect(TPoint(aBorderLeft+quadrantWidth, aBorderTop), TSize(quadrantWidth, quadrantHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   230
    bitmapGc->SetBrushColor(KRgbCyan);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   231
    bitmapGc->SetPenColor(KRgbCyan);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   232
    bitmapGc->DrawRect(rect);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   233
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   234
    // quadrant 3 - Colour KRgbYellow
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   235
    rect = TRect(TPoint(aBorderLeft, aBorderTop+quadrantHeight), TSize(quadrantWidth, quadrantHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   236
    bitmapGc->SetBrushColor(KRgbYellow);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   237
    bitmapGc->SetPenColor(KRgbYellow);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   238
    bitmapGc->DrawRect(rect);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   239
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   240
    // quadrant 4 - Colour KRgbDarkGreen
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   241
    rect = TRect(TPoint(aBorderLeft+quadrantWidth, aBorderTop+quadrantHeight), TSize(quadrantWidth, quadrantHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   242
    bitmapGc->SetBrushColor(KRgbDarkGreen);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   243
    bitmapGc->SetPenColor(KRgbDarkGreen);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   244
    bitmapGc->DrawRect(rect);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   245
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   246
    //clean-up
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   247
    CleanupStack::PopAndDestroy(2, bitmapDevice);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   248
    return bitmap;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   249
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   250
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   251
void CEglTest_SurfaceScalingBase::WritePixelsToSurfaceL(const CFbsBitmap& aBitmap)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   252
	{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   253
    // Mind the fact that CFbsBitmap and VGImages use different coordinates origin
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   254
    const TSize bitmapSize = aBitmap.SizeInPixels();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   255
    TUint8* address = reinterpret_cast<TUint8*>(aBitmap.DataAddress());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   256
    const TInt stride = aBitmap.DataStride();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   257
    address += (bitmapSize.iHeight - 1) * stride;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   258
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   259
    // copy pixel data to the drawing surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   260
    vgWritePixels(address, -stride, KDefaultSurfaceFormat,0,0, bitmapSize.iWidth, bitmapSize.iHeight);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   261
    ASSERT_TRUE(vgGetError()==VG_NO_ERROR);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   262
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   263
    // force all outstanding requests on the current context to complete
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   264
    vgFinish();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   265
    iWsSession.Finish();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   266
	}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   267
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   268
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   269
@SYMTestCaseID GRAPHICS-EGL-0651
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   270
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   271
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   272
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   273
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   274
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   275
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   276
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   277
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   278
Choose a suitable extent to test that specified border colours are correct.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   279
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   280
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   281
For a number of different situations, do the following:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   282
1. Create a window of known size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   283
2. Create a fixed size surface, filled in with a predefined bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   284
3. Draw the surface onto the window for a set extent and border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   285
4. Compare window content and border against a reference bitmap containing expected values. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   286
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   287
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   288
The window content matches the independently created reference bitmap in each situation
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   289
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   290
TVerdict CEglTest_SurfaceScaling_Positive::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   291
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   292
    SetTestStepID(_L("GRAPHICS-EGL-0651"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   293
    SetTestStepName(_L("GRAPHICS-EGL-0651"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   294
    INFO_PRINTF1(_L("CEglTest_SurfaceScaling_Positive::doTestStepL started...."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   295
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   296
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   297
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   298
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   299
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   300
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   301
    //  NOTE: Borders depend on what you set as extent, offset, window and surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   302
    //        Care should be taken when choosing size values, better to use even numbers
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   303
	//		  (CreateBitmap splits rectangle in four, so we don't want a pixel mismatch there) 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   304
    for (TInt index=1; index<=17; index++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   305
    	{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   306
		// Set some default values which are used in most cases
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   307
		iWindowWidth = iWindowHeight = 200;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   308
		iBorderColor = TRgb(0,0,0);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   309
	    iBorderTop = iBorderBottom = iBorderLeft = iBorderRight = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   310
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   311
	    switch(index)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   312
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   313
		case 1:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   314
			// surface scaled to same window size with no border
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   315
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   316
		    iExtentWidth = 200; iExtentHeight = 200;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   317
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   318
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   319
		case 2:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   320
			// surface scaled to half the window size with border top 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   321
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   322
		    iExtentWidth = 200; iExtentHeight = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   323
		    iOffsetX = 0; iOffsetY = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   324
		    iBorderColor = TRgb(0,0,0);         // arbitrary border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   325
		    iBorderTop = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   326
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   327
		case 3:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   328
			// surface scaled to half the window size with border bottom
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   329
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   330
		    iExtentWidth = 200; iExtentHeight = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   331
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   332
		    iBorderColor = TRgb(128,0,255);     // arbitrary border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   333
		    iBorderBottom = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   334
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   335
		case 4:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   336
			// surface scaled to half the window size with border top and bottom
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   337
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   338
		    iExtentWidth = 200; iExtentHeight = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   339
		    iOffsetX = 0; iOffsetY = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   340
		    iBorderColor = TRgb(128,0,0);         // arbitrary border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   341
		    iBorderTop = 50; iBorderBottom = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   342
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   343
		case 5:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   344
			// surface scaled to half the window size with border left
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   345
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   346
		    iExtentWidth = 100; iExtentHeight = 200;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   347
		    iOffsetX = 100; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   348
		    iBorderColor = TRgb(96,96,96);         // arbitrary border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   349
		    iBorderLeft = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   350
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   351
		case 6:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   352
			// surface scaled to half the window size with border right
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   353
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   354
		    iExtentWidth = 100; iExtentHeight = 200;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   355
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   356
		    iBorderColor = TRgb(192,192,192);       // arbitrary border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   357
		    iBorderRight = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   358
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   359
		case 7:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   360
			// surface scaled to half the window size with border left and right
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   361
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   362
		    iExtentWidth = 100; iExtentHeight = 200;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   363
		    iOffsetX = 50; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   364
		    iBorderColor = TRgb(0,0,0);				// arbitrary border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   365
		    iBorderLeft = 50; iBorderRight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   366
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   367
		case 8:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   368
			// surface scaled in different proportions in width and height, with borders 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   369
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   370
		    iExtentWidth = 190; iExtentHeight = 10;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   371
		    iOffsetX = 5; iOffsetY = 95;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   372
		    iBorderColor = TRgb(240,240,240);       // arbitrary border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   373
		    iBorderTop = 95; iBorderBottom = 95; iBorderLeft = 5; iBorderRight = 5;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   374
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   375
		case 9:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   376
			// surface scaled to double the window height size, surface cropped with no borders
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   377
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   378
		    iExtentWidth = 400; iExtentHeight = 200;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   379
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   380
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   381
		case 10:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   382
			// surface scaled to double the window width and height size, surface cropped with no borders
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   383
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   384
		    iExtentWidth = 400; iExtentHeight = 400;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   385
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   386
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   387
		case 11:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   388
			// surface scaled to double the window width and height size, surface cropped with borders top and left
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   389
		    iSurfaceWidth = 100; iSurfaceHeight = 50;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   390
		    iExtentWidth = 400; iExtentHeight = 400;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   391
		    iOffsetX = 100; iOffsetY = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   392
		    iBorderColor = TRgb(255,128,255);      // arbitrary border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   393
		    iBorderTop = 100; iBorderLeft = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   394
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   395
		case 12:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   396
			// QnHD to full screen size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   397
			iWindowWidth = iScreenSize.iWidth; iWindowHeight = iScreenSize.iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   398
		    iSurfaceWidth = 320; iSurfaceHeight = 180;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   399
		    iExtentWidth = iWindowWidth; iExtentHeight = iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   400
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   401
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   402
		case 13:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   403
			// QVGA to full screen size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   404
			iWindowWidth = iScreenSize.iWidth; iWindowHeight = iScreenSize.iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   405
		    iSurfaceWidth = 320; iSurfaceHeight = 240;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   406
		    iExtentWidth = iWindowWidth; iExtentHeight = iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   407
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   408
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   409
		case 14:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   410
			// HVGA to full screen size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   411
			iWindowWidth = iScreenSize.iWidth; iWindowHeight = iScreenSize.iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   412
		    iSurfaceWidth = 480; iSurfaceHeight = 320;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   413
		    iExtentWidth = iWindowWidth; iExtentHeight = iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   414
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   415
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   416
		case 15:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   417
			// 480x270 to full screen size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   418
			iWindowWidth = iScreenSize.iWidth; iWindowHeight = iScreenSize.iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   419
		    iSurfaceWidth = 480; iSurfaceHeight = 270;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   420
		    iExtentWidth = iWindowWidth; iExtentHeight = iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   421
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   422
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   423
		case 16:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   424
			// VGA to full screen size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   425
			iWindowWidth = iScreenSize.iWidth; iWindowHeight = iScreenSize.iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   426
		    iSurfaceWidth = 640; iSurfaceHeight = 480;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   427
		    iExtentWidth = iWindowWidth; iExtentHeight = iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   428
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   429
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   430
		case 17:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   431
			// WVGA to full screen size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   432
			iWindowWidth = iScreenSize.iWidth; iWindowHeight = iScreenSize.iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   433
		    iSurfaceWidth = 768; iSurfaceHeight = 480;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   434
		    iExtentWidth = iWindowWidth; iExtentHeight = iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   435
		    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   436
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   437
		default:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   438
		    ERR_PRINTF2(_L("Inconsistency in test code, case does not exist: %d."), index);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   439
		    User::Leave(KErrNotSupported);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   440
		    break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   441
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   442
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   443
		// perform the testing
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   444
	    doTestPartialStepL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   445
    	}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   446
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   447
    // clean-up
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   448
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   449
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   450
    INFO_PRINTF1(_L("....CEglTest_SurfaceScaling_Positive::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   451
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   452
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   453
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   454
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   455
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   456
TVerdict CEglTest_SurfaceScaling_Positive::doTestPartialStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   457
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   458
    INFO_PRINTF5(_L("doTestPartialStepL started with (%d,%d) fixed surface scaled to (%d,%d) extent...."), iSurfaceWidth, iSurfaceHeight, iExtentWidth, iExtentHeight);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   459
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   460
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   461
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   462
    CreateAndActivateWindowL(TSize(iWindowWidth, iWindowHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   463
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   464
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   465
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   466
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   467
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   468
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   469
    TESTL(numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   470
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   471
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   472
              EGL_FIXED_WIDTH_NOK, iSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   473
              EGL_FIXED_HEIGHT_NOK, iSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   474
              EGL_TARGET_EXTENT_OFFSET_X_NOK, iOffsetX,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   475
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, iOffsetY,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   476
              EGL_TARGET_EXTENT_WIDTH_NOK, iExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   477
              EGL_TARGET_EXTENT_HEIGHT_NOK, iExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   478
              EGL_BORDER_COLOR_RED_NOK, iBorderColor.Red(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   479
              EGL_BORDER_COLOR_GREEN_NOK, iBorderColor.Green(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   480
              EGL_BORDER_COLOR_BLUE_NOK, iBorderColor.Blue(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   481
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   482
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   483
    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   484
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   485
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   486
    // Create the test bitmap that will be used in the scaled surface 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   487
    //  NOTE: This bitmap generally does not have borders, 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   488
    CFbsBitmap* testBitmap = CreateBitmapLC(TSize(iSurfaceWidth, iSurfaceHeight),0,0,0,0,TRgb(0,0,0));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   489
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   490
    // Copy test bitmap to drawing surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   491
    WritePixelsToSurfaceL(*testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   492
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   493
    //call eglSwapBuffers
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   494
    ASSERT_EGL_TRUE(eglSwapBuffers(iDisplay, iEglSess->Surface()));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   495
    //Wait for the draw operation to complete
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   496
    eglWaitClient();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   497
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   498
    // Create the reference bitmap that should be expected after the scaling 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   499
    //  NOTE: This bitmap may have borders
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   500
    //        Size could exceed that of the window, so check both extent and window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   501
    const TInt refWidth = iExtentWidth>iWindowWidth ? iExtentWidth : iWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   502
    const TInt refHeight = iExtentHeight>iWindowHeight ? iExtentHeight : iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   503
    CFbsBitmap* refBitmap = CreateBitmapLC(TSize(refWidth, refHeight), iBorderTop, iBorderBottom, iBorderLeft, iBorderRight, iBorderColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   504
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   505
    // compare window contents with expected bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   506
    TInt comparison = iImageComparison->CompareScreenImageL(TSize(iWindowWidth, iWindowHeight), TPoint(0,0), TPoint(0,0), *refBitmap, TestStepName());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   507
    TEST(comparison==KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   508
    INFO_PRINTF3(_L("CompareScreenImageL returns %d (expected is %d)"), comparison, KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   509
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   510
    /// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   511
    CleanupStack::PopAndDestroy(2, testBitmap); // refBitmap, testBitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   512
    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   513
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   514
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   515
    INFO_PRINTF1(_L("....doTestPartialStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   516
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   517
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   518
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   519
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   520
@SYMTestCaseID GRAPHICS-EGL-0661
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   521
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   522
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   523
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   524
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   525
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   526
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   527
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   528
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   529
Resize native window to verify target extent remains fixed.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   530
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   531
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   532
1. Create a window of known size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   533
2. Create a fixed size surface, filled in with a predefined bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   534
3. Draw the surface onto the window for a set extent and border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   535
4. Repeat step 3 but increasing native window size by (1,1) pixels.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   536
5. Compare window content and border against a reference bitmap containing expected values. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   537
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   538
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   539
The window content matches the independently created reference bitmap in each situation
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   540
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   541
TVerdict CEglTest_SurfaceScaling_WindowResize::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   542
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   543
    SetTestStepID(_L("GRAPHICS-EGL-0661"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   544
    SetTestStepName(_L("GRAPHICS-EGL-0661"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   545
    INFO_PRINTF1(_L("CEglTest_SurfaceScaling_WindowResize::doTestStepL started...."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   546
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   547
    // set the initial value of a square window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   548
    const TInt KWindowSize = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   549
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   550
    // surface with size and extent that matches the window size and no offset
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   551
    iWindowWidth = iWindowHeight = KWindowSize;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   552
    iSurfaceWidth = iSurfaceHeight = KWindowSize;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   553
    iExtentWidth = iExtentHeight = KWindowSize;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   554
    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   555
    iBorderColor = TRgb(0x99,0xcc,0xff);	// set some arbitrary colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   556
    iBorderTop = 0; iBorderBottom = 0; iBorderLeft = 0; iBorderRight = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   557
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   558
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   559
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   560
    CreateAndActivateWindowL(TSize(iWindowWidth, iWindowHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   561
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   562
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   563
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   564
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   565
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   566
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   567
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   568
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   569
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   570
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   571
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   572
    TESTL(numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   573
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   574
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   575
              EGL_FIXED_WIDTH_NOK, iSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   576
              EGL_FIXED_HEIGHT_NOK, iSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   577
              EGL_TARGET_EXTENT_OFFSET_X_NOK, iOffsetX,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   578
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, iOffsetY,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   579
              EGL_TARGET_EXTENT_WIDTH_NOK, iExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   580
              EGL_TARGET_EXTENT_HEIGHT_NOK, iExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   581
              EGL_BORDER_COLOR_RED_NOK, iBorderColor.Red(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   582
              EGL_BORDER_COLOR_GREEN_NOK, iBorderColor.Green(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   583
              EGL_BORDER_COLOR_BLUE_NOK, iBorderColor.Blue(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   584
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   585
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   586
    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   587
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   588
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   589
    // Create the test bitmap that will be used in the scaled surface 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   590
    //  NOTE: This bitmap generally does not have borders, 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   591
    CFbsBitmap* testBitmap = CreateBitmapLC(TSize(iSurfaceWidth, iSurfaceHeight),0,0,0,0,TRgb(0,0,0));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   592
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   593
    // Copy test bitmap to drawing surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   594
    WritePixelsToSurfaceL(*testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   595
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   596
    // Start doing iterations by increasing native window size.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   597
    INFO_PRINTF1(_L("Start increasing native window size by (1,1)..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   598
    iWindowWidth=1;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   599
    iWindowHeight=1;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   600
    while(iWindowWidth<=(KWindowSize*2) && iWindowHeight<=(KWindowSize*2))
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   601
    	{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   602
		// Note that borders will appear while window size is bigger than extent
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   603
		//  - iSurfaceWidth/iSurfaceHeight - unmodified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   604
		//  - iExtentWidth/iExtentHeight - unmodified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   605
		//  - iOffsetX/iOffsetY - unmodified 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   606
		// Set up expected values for the border
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   607
		iBorderTop = 0; iBorderLeft = 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   608
		iBorderBottom = iExtentHeight<iWindowHeight ? iWindowHeight-iExtentHeight : 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   609
		iBorderRight = iExtentWidth<iWindowWidth ? iWindowWidth-iExtentWidth : 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   610
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   611
		// resize window to new given size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   612
	    iWindow.Invalidate();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   613
		iWindow.BeginRedraw();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   614
		iWindow.SetSize(TSize(iWindowWidth, iWindowHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   615
		iWindow.EndRedraw();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   616
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   617
		// re-populate buffers with the unmodified fixed size surface content
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   618
	    WritePixelsToSurfaceL(*testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   619
		
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   620
		// perform the testing
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   621
		doTestPartialStepL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   622
		++iWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   623
		++iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   624
    	}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   625
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   626
    /// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   627
    CleanupStack::PopAndDestroy(testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   628
    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   629
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   630
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   631
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   632
    INFO_PRINTF1(_L("....CEglTest_SurfaceScaling_WindowResize::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   633
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   634
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   635
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   636
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   637
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   638
TVerdict CEglTest_SurfaceScaling_WindowResize::doTestPartialStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   639
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   640
    INFO_PRINTF3(_L("doTestPartialStepL started for native window size of (%d, %d)...."), iWindowWidth, iWindowHeight);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   641
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   642
	// resize may be effective only after swapbuffers 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   643
	ASSERT_EGL_TRUE(eglSwapBuffers(iDisplay, iEglSess->Surface()));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   644
	ASSERT_EGL_TRUE(eglWaitClient());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   645
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   646
	//check all expected values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   647
    CheckScalingAttributesL(iSurfaceWidth, iSurfaceHeight, iExtentWidth, iExtentHeight, iOffsetX, iOffsetY); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   648
    CheckBorderColorL(iBorderColor.Red(), iBorderColor.Blue(), iBorderColor.Green()); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   649
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   650
    // Create the reference bitmap that should be expected after the window resize 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   651
    //  NOTE: This bitmap may have borders
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   652
    //        Size could exceed that of the window, so check both extent and window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   653
    const TInt refWidth = iExtentWidth>iWindowWidth ? iExtentWidth : iWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   654
    const TInt refHeight = iExtentHeight>iWindowHeight ? iExtentHeight : iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   655
    CFbsBitmap* refBitmap = CreateBitmapLC(TSize(refWidth, refHeight), iBorderTop, iBorderBottom, iBorderLeft, iBorderRight, iBorderColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   656
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   657
    // compare window contents with expected bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   658
    TInt comparison = iImageComparison->CompareScreenImageL(TSize(iWindowWidth, iWindowHeight), TPoint(0,0), TPoint(0,0), *refBitmap, TestStepName());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   659
    TEST(comparison==KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   660
    INFO_PRINTF3(_L("CompareScreenImageL returns %d (expected is %d)"), comparison, KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   661
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   662
    /// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   663
    CleanupStack::PopAndDestroy(refBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   664
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   665
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   666
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   667
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   668
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   669
@SYMTestCaseID GRAPHICS-EGL-0668
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   670
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   671
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   672
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   673
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   674
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   675
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   677
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   678
Create a fixed size surface and vary the extent position for a range of values.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   679
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   680
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   681
1. Create a window of known size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   682
2. Create a fixed size surface, filled in with a predefined bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   683
3. Draw the surface onto the window for a set extent and border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   684
4. Repeat step 3 but increasing target extent offset by (1,1) pixels.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   685
5. Compare window content and border against a reference bitmap containing expected values. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   686
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   687
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   688
The window content matches the independently created reference bitmap in each situation
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   689
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   690
TVerdict CEglTest_SurfaceScaling_ExtentPositionChange::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   691
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   692
    SetTestStepID(_L("GRAPHICS-EGL-0668"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   693
    SetTestStepName(_L("GRAPHICS-EGL-0668"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   694
    INFO_PRINTF1(_L("CEglTest_SurfaceScaling_ExtentPositionChange::doTestStepL started...."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   695
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   696
    // surface with size and extent that matches the window size and no offset
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   697
    iWindowWidth = iWindowHeight = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   698
    iSurfaceWidth = iExtentWidth = iWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   699
    iSurfaceHeight = iExtentHeight = iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   700
    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   701
    iBorderColor = TRgb(0x11,0x22,0x33);	// set some arbitrary colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   702
    iBorderTop = 0; iBorderBottom = 0; iBorderLeft = 0; iBorderRight = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   703
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   704
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   705
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   706
    CreateAndActivateWindowL(TSize(iWindowWidth, iWindowHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   707
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   708
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   709
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   710
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   711
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   712
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   713
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   714
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   715
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   716
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   717
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   718
    TESTL(numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   719
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   720
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   721
              EGL_FIXED_WIDTH_NOK, iSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   722
              EGL_FIXED_HEIGHT_NOK, iSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   723
              EGL_TARGET_EXTENT_OFFSET_X_NOK, iOffsetX,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   724
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, iOffsetY,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   725
              EGL_TARGET_EXTENT_WIDTH_NOK, iExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   726
              EGL_TARGET_EXTENT_HEIGHT_NOK, iExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   727
              EGL_BORDER_COLOR_RED_NOK, iBorderColor.Red(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   728
              EGL_BORDER_COLOR_GREEN_NOK, iBorderColor.Green(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   729
              EGL_BORDER_COLOR_BLUE_NOK, iBorderColor.Blue(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   730
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   731
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   732
    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   733
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   734
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   735
    // Create the test bitmap that will be used in the scaled surface 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   736
    //  NOTE: This bitmap generally does not have borders, 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   737
    CFbsBitmap* testBitmap = CreateBitmapLC(TSize(iSurfaceWidth, iSurfaceHeight),0,0,0,0,TRgb(0,0,0));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   738
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   739
    // Copy test bitmap to drawing surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   740
    WritePixelsToSurfaceL(*testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   741
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   742
	// This test is a bit different. Since the extent remains the same, and we only change
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   743
    //  the offset, we create an oversized reference bitmap and compare the screen with a
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   744
    //  region contained within the reference bitmap 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   745
    // Size is three times the extent so that it has extent size borders all around
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   746
    const TInt refWidth = 3*iExtentWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   747
    const TInt refHeight = 3*iExtentHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   748
    iBorderTop=iBorderBottom=iBorderLeft=iBorderRight=iExtentWidth;	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   749
    CFbsBitmap* refBitmap = CreateBitmapLC(TSize(refWidth, refHeight), iBorderTop, iBorderBottom, iBorderLeft, iBorderRight, iBorderColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   750
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   751
    // Start doing iterations by increasing target extent offset
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   752
    INFO_PRINTF1(_L("Start increasing target extent offset size by (1,1)..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   753
    for (iOffsetX=-iExtentWidth,iOffsetY=-iExtentHeight; iOffsetX<=iExtentWidth&&iOffsetY<=iExtentHeight; ++iOffsetX,++iOffsetY)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   754
    	{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   755
		// Note that borders will appear other than when offset is (0,0)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   756
		//  - iSurfaceWidth/iSurfaceHeight - unmodified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   757
		//  - iExtentWidth/iExtentHeight - unmodified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   758
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   759
	    // set new offset values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   760
	    ASSERT_EGL_TRUE(iPfnEglSetSurfaceScalingNOK(iDisplay, iEglSess->Surface(), iOffsetX, iOffsetY, iExtentWidth, iExtentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   761
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   762
		// re-populate buffers with the unmodified fixed size surface content
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   763
	    WritePixelsToSurfaceL(*testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   764
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   765
		// perform the testing
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   766
		doTestPartialStepL(*refBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   767
    	}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   768
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   769
    /// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   770
    CleanupStack::PopAndDestroy(2, testBitmap); //testBitmap, refBitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   771
    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   772
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   773
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   774
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   775
    INFO_PRINTF1(_L("....CEglTest_SurfaceScaling_ExtentPositionChange::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   776
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   777
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   778
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   779
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   780
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   781
TVerdict CEglTest_SurfaceScaling_ExtentPositionChange::doTestPartialStepL(const CFbsBitmap& aRefBitmap)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   782
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   783
    INFO_PRINTF3(_L("doTestPartialStepL started for offset of (%d, %d)...."), iOffsetX, iOffsetY);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   784
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   785
    // offset change may be effective only after swapbuffers 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   786
	ASSERT_EGL_TRUE(eglSwapBuffers(iDisplay, iEglSess->Surface()));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   787
	ASSERT_EGL_TRUE(eglWaitClient());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   788
	// Finish() to ensure all native window operations related to the surface complete before image comparision.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   789
	iWsSession.Finish();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   790
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   791
	//check all expected values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   792
    CheckScalingAttributesL(iSurfaceWidth, iSurfaceHeight, iExtentWidth, iExtentHeight, iOffsetX, iOffsetY); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   793
    CheckBorderColorL(iBorderColor.Red(), iBorderColor.Blue(), iBorderColor.Green()); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   794
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   795
    // Prepare the offset of the reference bitmap to know what sub-region should be compared
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   796
    const TInt refWidth = 3*iExtentWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   797
    const TInt refHeight = 3*iExtentHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   798
    TPoint bitmapOffset(refWidth-iExtentWidth-iRefBitmapOffset, refHeight-iExtentHeight-iRefBitmapOffset);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   799
    iRefBitmapOffset++;		// increase offset for next iteration
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   800
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   801
    // Comparision takes into account specific region within the reference bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   802
    TInt comparison = iImageComparison->CompareScreenImageL(TSize(iWindowWidth, iWindowHeight), TPoint(0,0), bitmapOffset, aRefBitmap, TestStepName());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   803
    TEST(comparison==KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   804
    INFO_PRINTF3(_L("CompareScreenImageL returns %d (expected is %d)"), comparison, KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   805
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   806
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   807
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   808
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   809
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   810
@SYMTestCaseID GRAPHICS-EGL-0669
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   811
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   812
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   813
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   814
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   815
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   816
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   817
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   818
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   819
Create a fixed size surface and vary the extent size for a range of values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   820
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   821
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   822
1. Create a window of known size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   823
2. Create a fixed size surface, filled in with a predefined bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   824
3. Draw the surface onto the window for a set extent and border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   825
4. Repeat step 3 but increasing target extent size by (2,2) pixels.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   826
5. Compare window content and border against a reference bitmap containing expected values. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   827
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   828
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   829
The window content matches the independently created reference bitmap in each situation
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   830
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   831
TVerdict CEglTest_SurfaceScaling_ExtentSizeChange::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   832
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   833
    SetTestStepID(_L("GRAPHICS-EGL-0669"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   834
    SetTestStepName(_L("GRAPHICS-EGL-0669"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   835
    INFO_PRINTF1(_L("CEglTest_SurfaceScaling_ExtentSizeChange::doTestStepL started...."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   836
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   837
    // set the initial value of a square window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   838
    const TInt KWindowSize = 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   839
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   840
    // surface with size and extent that matches the window size and no offset
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   841
    iWindowWidth = iWindowHeight = KWindowSize;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   842
    iSurfaceWidth = iSurfaceHeight = KWindowSize;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   843
    iExtentWidth = iExtentHeight = KWindowSize; 	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   844
    iOffsetX = 0; iOffsetY = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   845
    iBorderColor = TRgb(0x80,0x40,0xF0);	// set some arbitrary colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   846
    iBorderTop = 0; iBorderBottom = 0; iBorderLeft = 0; iBorderRight = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   847
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   848
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   849
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   850
    CreateAndActivateWindowL(TSize(iWindowWidth, iWindowHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   851
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   852
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   853
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   854
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   855
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   856
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   857
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   858
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   859
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   860
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   861
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   862
    TESTL(numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   863
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   864
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   865
              EGL_FIXED_WIDTH_NOK, iSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   866
              EGL_FIXED_HEIGHT_NOK, iSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   867
              EGL_TARGET_EXTENT_OFFSET_X_NOK, iOffsetX,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   868
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, iOffsetY,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   869
              EGL_TARGET_EXTENT_WIDTH_NOK, iExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   870
              EGL_TARGET_EXTENT_HEIGHT_NOK, iExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   871
              EGL_BORDER_COLOR_RED_NOK, iBorderColor.Red(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   872
              EGL_BORDER_COLOR_GREEN_NOK, iBorderColor.Green(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   873
              EGL_BORDER_COLOR_BLUE_NOK, iBorderColor.Blue(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   874
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   875
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   876
    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   877
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   878
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   879
    // Create the test bitmap that will be used in the scaled surface 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   880
    //  NOTE: This bitmap generally does not have borders, 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   881
    CFbsBitmap* testBitmap = CreateBitmapLC(TSize(iSurfaceWidth, iSurfaceHeight),0,0,0,0,TRgb(0,0,0));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   882
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   883
    // Copy test bitmap to drawing surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   884
    WritePixelsToSurfaceL(*testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   885
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   886
    // Start doing iterations by increasing target extent size 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   887
    //  We do increments of (2,2) because the reference bitmap is simetrically split into 4 areas, so size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   888
    //  of this reference bitmap should be an even number of pixels
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   889
    INFO_PRINTF1(_L("Start increasing target extent size by (2,2)..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   890
    iExtentWidth=2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   891
    iExtentHeight=2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   892
	while(iExtentWidth <= (KWindowSize*2) && iExtentHeight <= (KWindowSize*2))
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   893
    	{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   894
		// Note that borders will appear while extent is smaller than window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   895
		//  - iSurfaceWidth/iSurfaceHeight - unmodified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   896
		//  - iOffsetX/iOffsetY - unmodified 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   897
		// Set up expected values for the border
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   898
		iBorderTop = 0; iBorderLeft = 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   899
		iBorderBottom = iExtentHeight<iWindowHeight ? iWindowHeight-iExtentHeight : 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   900
		iBorderRight = iExtentWidth<iWindowWidth ? iWindowWidth-iExtentWidth : 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   901
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   902
	    // set new target extent values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   903
	    ASSERT_EGL_TRUE(iPfnEglSetSurfaceScalingNOK(iDisplay, iEglSess->Surface(), iOffsetX, iOffsetY, iExtentWidth, iExtentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   904
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   905
		// re-populate buffers with the unmodified fixed size surface content
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   906
	    WritePixelsToSurfaceL(*testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   907
		
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   908
		// perform the testing
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   909
		doTestPartialStepL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   910
		iExtentWidth+=2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   911
		iExtentHeight+=2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   912
		}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   913
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   914
    /// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   915
    CleanupStack::PopAndDestroy(testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   916
    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   917
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   918
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   919
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   920
    INFO_PRINTF1(_L("....CEglTest_SurfaceScaling_ExtentSizeChange::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   921
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   922
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   923
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   924
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   925
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   926
TVerdict CEglTest_SurfaceScaling_ExtentSizeChange::doTestPartialStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   927
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   928
    INFO_PRINTF3(_L("doTestPartialStepL started for extent size of (%d, %d)...."), iExtentWidth, iExtentHeight);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   929
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   930
    // extent change may be effective only after swapbuffers 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   931
	ASSERT_EGL_TRUE(eglSwapBuffers(iDisplay, iEglSess->Surface()));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   932
	ASSERT_EGL_TRUE(eglWaitClient());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   933
	// Finish() to ensure all native window operations related to the surface complete before image comparision.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   934
	iWsSession.Finish();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   935
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   936
	//check all expected values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   937
    CheckScalingAttributesL(iSurfaceWidth, iSurfaceHeight, iExtentWidth, iExtentHeight, iOffsetX, iOffsetY); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   938
    CheckBorderColorL(iBorderColor.Red(), iBorderColor.Blue(), iBorderColor.Green()); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   939
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   940
    // Create the reference bitmap that should be expected after the window resize 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   941
    //  NOTE: This bitmap may have borders
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   942
    //        Size could exceed that of the window, so check both extent and window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   943
    const TInt refWidth = iExtentWidth>iWindowWidth ? iExtentWidth : iWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   944
    const TInt refHeight = iExtentHeight>iWindowHeight ? iExtentHeight : iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   945
    CFbsBitmap* refBitmap = CreateBitmapLC(TSize(refWidth, refHeight), iBorderTop, iBorderBottom, iBorderLeft, iBorderRight, iBorderColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   946
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   947
    // compare window contents with expected bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   948
    TInt comparison = iImageComparison->CompareScreenImageL(TSize(iWindowWidth, iWindowHeight), TPoint(0,0), TPoint(0,0), *refBitmap, TestStepName());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   949
    TEST(comparison==KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   950
    INFO_PRINTF3(_L("CompareScreenImageL returns %d (expected is %d)"), comparison, KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   951
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   952
    /// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   953
    CleanupStack::PopAndDestroy(refBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   954
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   955
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   956
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   957
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   958
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   959
@SYMTestCaseID GRAPHICS-EGL-0670
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   960
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   961
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   962
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   963
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   964
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   965
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   966
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   967
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   968
Check that updating surface scaling attributes is visible only after calling eglSwapBuffers
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   969
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   970
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   971
1. Create a window of known size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   972
2. Create a fixed size surface, filled in with a predefined bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   973
3. Draw the surface onto the window for a set extent and border colour
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   974
4. Repeat step 3 but increasing target extent size and changing border colours
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   975
5. Compare window content and border against a reference bitmap containing expected values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   976
  5a. Before calling eglSwapBuffers
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   977
  5b. After callnig eglSwapBuffers  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   978
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   979
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   980
5a. The window content matches the independently created reference with old values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   981
5b. The window content matches the independently created reference with new values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   982
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   983
TVerdict CEglTest_SurfaceScaling_SwapBuffers::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   984
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   985
    SetTestStepID(_L("GRAPHICS-EGL-0670"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   986
    SetTestStepName(_L("GRAPHICS-EGL-0670"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   987
    INFO_PRINTF1(_L("CEglTest_SurfaceScaling_SwapBuffers::doTestStepL started...."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   988
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   989
    // set the initial value of a square window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   990
    const TInt KWindowSize = 200;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   991
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   992
    // surface with size that matches the window size and no offset and extent a quarter 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   993
    // of that originally positioned in the middle (so borders should be seen)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   994
    iWindowWidth = iWindowHeight = KWindowSize;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   995
    iSurfaceWidth = iSurfaceHeight = KWindowSize;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   996
    iExtentWidth = iExtentHeight = KWindowSize/4; 	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   997
    iOffsetX = (iWindowWidth-iExtentWidth)/2; iOffsetY = (iWindowHeight-iExtentHeight)/2;	// to center the surface at the middle of the window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   998
    iBorderColor = TRgb(0xFF,0xFF,0x00);	// set some arbitrary colour with blue channel to 0x00
d72fc2aace31 201027_1
hgs
parents:
diff changeset
   999
	iBorderTop = iBorderBottom = iExtentHeight<iWindowHeight ? (iWindowHeight-iExtentHeight)/2 : 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1000
	iBorderLeft = iBorderRight = iExtentWidth<iWindowWidth ? (iWindowWidth-iExtentWidth)/2 : 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1001
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1002
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1003
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1004
    CreateAndActivateWindowL(TSize(iWindowWidth, iWindowHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1005
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1006
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1007
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1008
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1009
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1010
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1011
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1012
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1013
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1014
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1015
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1016
    TESTL(numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1017
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1018
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1019
              EGL_FIXED_WIDTH_NOK, iSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1020
              EGL_FIXED_HEIGHT_NOK, iSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1021
              EGL_TARGET_EXTENT_OFFSET_X_NOK, iOffsetX,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1022
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, iOffsetY,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1023
              EGL_TARGET_EXTENT_WIDTH_NOK, iExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1024
              EGL_TARGET_EXTENT_HEIGHT_NOK, iExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1025
              EGL_BORDER_COLOR_RED_NOK, iBorderColor.Red(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1026
              EGL_BORDER_COLOR_GREEN_NOK, iBorderColor.Green(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1027
              EGL_BORDER_COLOR_BLUE_NOK, iBorderColor.Blue(),
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1028
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1029
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1030
    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1031
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1032
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1033
    // Create the test bitmap that will be used in the scaled surface 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1034
    //  NOTE: This bitmap generally does not have borders, 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1035
    CFbsBitmap* testBitmap = CreateBitmapLC(TSize(iSurfaceWidth, iSurfaceHeight),0,0,0,0,TRgb(0,0,0));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1036
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1037
    // Copy test bitmap to drawing surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1038
    WritePixelsToSurfaceL(*testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1039
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1040
    // we need to update the window content for the first frame comparison inside the loop further down 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1041
	ASSERT_EGL_TRUE(eglSwapBuffers(iDisplay, iEglSess->Surface()));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1042
	ASSERT_EGL_TRUE(eglWaitClient());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1043
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1044
	// Start doing iterations changing border colours and increasing target extent size 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1045
    //  We do increments of (2,2) because the reference bitmap is simetrically split into 4 areas, so size
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1046
    //  of this reference bitmap should be an even number of pixels
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1047
    INFO_PRINTF1(_L("Start changing border colours and increasing target extent size by (2,2)..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1048
    for (;;)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1049
    	{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1050
		// re-populate buffers with the unmodified fixed size surface content
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1051
		WritePixelsToSurfaceL(*testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1052
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1053
		// perform the testing
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1054
		doTestPartialStepL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1055
		
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1056
		// break the loop when necessary
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1057
		if (iBorderColor.Blue()>=255)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1058
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1059
		}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1060
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1061
    /// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1062
    CleanupStack::PopAndDestroy(testBitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1063
    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1064
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1065
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1066
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1067
    INFO_PRINTF1(_L("....CEglTest_SurfaceScaling_SwapBuffers::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1068
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1069
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1070
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1071
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1072
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1073
TVerdict CEglTest_SurfaceScaling_SwapBuffers::doTestPartialStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1074
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1075
    INFO_PRINTF4(_L("doTestPartialStepL started for border colour (%d,%d,%d)...."), iBorderColor.Red(), iBorderColor.Green(), iBorderColor.Blue());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1076
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1077
	// Note that borders will appear while extent is smaller than window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1078
	//  - iSurfaceWidth/iSurfaceHeight - unmodified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1079
	//  - iExtentWidth/iExtentHeight - modified 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1080
	//  - iOffsetX/iOffsetY - modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1081
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1082
    // Set up new value for border blue channel, storing old ones
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1083
	TRgb oldBorderColor(iBorderColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1084
	TInt newColorBlue = oldBorderColor.Blue() + 5;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1085
	TESTL(newColorBlue>=0 && newColorBlue<=255);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1086
	iBorderColor.SetBlue(newColorBlue);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1087
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1088
    // Set up new values for extent/offset, storing old ones
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1089
	TInt oldExtentWidth = iExtentWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1090
	TInt oldExtentHeight = iExtentHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1091
	iExtentWidth+=2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1092
	iExtentHeight+=2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1093
	iOffsetX = (iWindowWidth-iExtentWidth)/2; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1094
	iOffsetY = (iWindowHeight-iExtentHeight)/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1095
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1096
	// Set up expected values for the border, storing old ones
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1097
	TInt oldBorderTop = iBorderTop;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1098
	TInt oldBorderBottom = iBorderBottom;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1099
	TInt oldBorderLeft = iBorderLeft;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1100
	TInt oldBorderRight = iBorderRight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1101
	iBorderTop = iBorderBottom = iExtentHeight<iWindowHeight ? (iWindowHeight-iExtentHeight)/2 : 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1102
	iBorderLeft = iBorderRight = iExtentWidth<iWindowWidth ? (iWindowWidth-iExtentWidth)/2 : 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1103
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1104
    // set new extent/offset values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1105
    ASSERT_EGL_TRUE(iPfnEglSetSurfaceScalingNOK(iDisplay, iEglSess->Surface(), iOffsetX, iOffsetY, iExtentWidth, iExtentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1106
    // set new border colour values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1107
    ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, iBorderColor.Blue()));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1108
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1109
    // Check that values have been updated as expected
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1110
    CheckScalingAttributesL(iSurfaceWidth, iSurfaceHeight, iExtentWidth, iExtentHeight, iOffsetX, iOffsetY); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1111
    CheckBorderColorL(iBorderColor.Red(), iBorderColor.Blue(), iBorderColor.Green()); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1112
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1113
    // Check that the screen has NOT BEEN UPDATED just yet
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1114
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1115
    // Create the reference bitmap that should be expected before the extent/border changes 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1116
    TInt refWidth = oldExtentWidth>iWindowWidth ? oldExtentWidth : iWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1117
    TInt refHeight = oldExtentHeight>iWindowHeight ? oldExtentHeight : iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1118
    CFbsBitmap* oldRefBitmap = CreateBitmapLC(TSize(refWidth, refHeight), oldBorderTop, oldBorderBottom, oldBorderLeft, oldBorderRight, oldBorderColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1119
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1120
    // compare screen with old reference bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1121
    TInt comparison = iImageComparison->CompareScreenImageL(TSize(iWindowWidth, iWindowHeight), TPoint(0,0), TPoint(0,0), *oldRefBitmap, TestStepName());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1122
    TEST(comparison==KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1123
    INFO_PRINTF3(_L("CompareScreenImageL before eglSwapBuffers returns %d (expected is %d)"), comparison, KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1124
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1125
    // extent/offset changes MUST be effective only after swapbuffers 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1126
	ASSERT_EGL_TRUE(eglSwapBuffers(iDisplay, iEglSess->Surface()));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1127
	ASSERT_EGL_TRUE(eglWaitClient());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1128
	// Finish() to ensure all native window operations related to the surface complete before image comparision.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1129
	iWsSession.Finish();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1130
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1131
	//check values still are as expected
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1132
    CheckScalingAttributesL(iSurfaceWidth, iSurfaceHeight, iExtentWidth, iExtentHeight, iOffsetX, iOffsetY); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1133
    CheckBorderColorL(iBorderColor.Red(), iBorderColor.Blue(), iBorderColor.Green()); 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1134
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1135
    // Create the reference bitmap that should be expected after the extent/border changes 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1136
    refWidth = iExtentWidth>iWindowWidth ? iExtentWidth : iWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1137
    refHeight = iExtentHeight>iWindowHeight ? iExtentHeight : iWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1138
    CFbsBitmap* newRefBitmap = CreateBitmapLC(TSize(refWidth, refHeight), iBorderTop, iBorderBottom, iBorderLeft, iBorderRight, iBorderColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1139
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1140
    // compare screen with new reference bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1141
    comparison = iImageComparison->CompareScreenImageL(TSize(iWindowWidth, iWindowHeight), TPoint(0,0), TPoint(0,0), *newRefBitmap, TestStepName());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1142
    TEST(comparison==KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1143
    INFO_PRINTF3(_L("CompareScreenImageL after eglSwapBuffers returns %d (expected is %d)"), comparison, KErrNone);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1144
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1145
    /// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1146
    CleanupStack::PopAndDestroy(2, oldRefBitmap); // oldRefBitmap, newRefBitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1147
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1148
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1149
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1150
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1151
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1152
@SYMTestCaseID GRAPHICS-EGL-0652
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1153
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1154
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1155
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1156
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1157
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1158
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1159
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1160
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1161
Check that all configs that support surface scaling also support window surfaces.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1162
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1163
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1164
1. Query number of configs
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1165
2. Iterate through all configs and check if surface scaling is supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1166
3. If surface scaling is supported, chech that it supports window surfaces and 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1167
	attempt to create a fixed size window surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1168
4. If surface scaling is not supported, check eglGetConfigAttrib return value and 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1169
	attempt to create a fixed size window surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1170
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1171
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1172
3. All configs that support surface scaling support window surfaces and window surface creation succeeds.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1173
4. If surface scaling is not supported, eglGetConfigAttrib sets value to EGL_FALSE and window surface creation fails.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1174
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1175
TVerdict CEglTest_SurfaceScaling_WindowSurface_Check::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1176
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1177
    INFO_PRINTF1(_L("CEglTest_SurfaceScaling_WindowSurface_Check::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1178
    SetTestStepName(_L("GRAPHICS-EGL-0652"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1179
    SetTestStepID(_L("GRAPHICS-EGL-0652"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1180
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1181
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1182
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1183
    CreateAndActivateWindowL(TSize(100, 100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1184
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1185
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1186
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1187
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1188
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1189
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1190
    EGLConfig matchingConfigs[KMaxEglConfigs];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1191
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1192
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1193
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1194
					EGL_FIXED_WIDTH_NOK, 50,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1195
					EGL_FIXED_HEIGHT_NOK, 50,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1196
					EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1197
					EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1198
					EGL_TARGET_EXTENT_WIDTH_NOK, 100,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1199
					EGL_TARGET_EXTENT_HEIGHT_NOK, 100,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1200
					EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1201
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1202
    // Query total number of configs
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1203
    ASSERT_EGL_TRUE(eglGetConfigs(iDisplay, NULL, KMaxTInt, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1204
    TESTL(numConfigs >= 1 && numConfigs <= KMaxEglConfigs);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1205
    INFO_PRINTF2(_L("Found %d configs in total"), numConfigs);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1206
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1207
    // Get all configs
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1208
    ASSERT_EGL_TRUE(eglGetConfigs(iDisplay, matchingConfigs, KMaxEglConfigs, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1209
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1210
    // Check that if surface scaling is supported in the config, then window surfaces are supported too
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1211
    for(TInt i=0; i<numConfigs; i++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1212
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1213
		// query scaling support
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1214
		EGLint scalingSupport = -32; // arbitraty value which is neither EGL_TRUE nor EGL_FALSE
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1215
		ASSERT_EGL_TRUE(eglGetConfigAttrib(iDisplay, matchingConfigs[i], EGL_SURFACE_SCALING_NOK, &scalingSupport));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1216
		
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1217
		// query window surface support
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1218
		EGLint surfaceType=-1;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1219
		ASSERT_EGL_TRUE(eglGetConfigAttrib(iDisplay, matchingConfigs[i], EGL_SURFACE_TYPE, &surfaceType));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1220
		
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1221
		// check that if surface scaling is supported, it also supports window surfaces
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1222
		if (scalingSupport==EGL_TRUE)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1223
			{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1224
			INFO_PRINTF2(_L("Config %d supports surface scaling. Checking window surface support..."), i);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1225
			TEST((surfaceType&EGL_WINDOW_BIT) == EGL_WINDOW_BIT);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1226
			}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1227
		else
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1228
			{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1229
			// check value was updated accordingly
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1230
			INFO_PRINTF2(_L("Config %d does NOT support surface scaling."), i);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1231
			TEST(scalingSupport==EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1232
			}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1233
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1234
		// check if config supports window surface, fixed window surface creation follows scaling support 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1235
		if ((surfaceType&EGL_WINDOW_BIT) == EGL_WINDOW_BIT)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1236
			{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1237
			EGLSurface windowSurface = eglCreateWindowSurface(iDisplay, matchingConfigs[i], &iWindow, attrib_list);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1238
			if (scalingSupport==EGL_TRUE)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1239
				{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1240
				INFO_PRINTF1(_L("Checking window surface creation succeeds..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1241
				TEST_EGL_ERROR(windowSurface =! EGL_NO_SURFACE, EGL_SUCCESS);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1242
				}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1243
			else
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1244
				{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1245
				INFO_PRINTF1(_L("Checking window surface creation fails..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1246
				TEST_EGL_ERROR(windowSurface == EGL_NO_SURFACE, EGL_BAD_MATCH);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1247
				}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1248
			}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1249
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1250
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1251
    // clean-up
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1252
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1253
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1254
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1255
    INFO_PRINTF1(_L("....CEglTest_SurfaceScaling_WindowSurface_Check::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1256
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1257
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1258
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1259
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1260
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1261
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1262
@SYMTestCaseID GRAPHICS-EGL-0653
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1263
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1264
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1265
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1266
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1267
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1268
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1269
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1270
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1271
Negative test. This test is to check the return value and error code of eglCreateWindowSurface 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1272
when creating a fixed size window surface with invalid combination of Surface Scaling attributes 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1273
and illegal values for each attribute.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1274
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1275
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1276
1. Create a fixed size Window Surface with invalid combination of Surface Scaling attributes.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1277
    - Only specify 5 out of 6 of the following attributes, when specified, should be valid.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1278
    EGL_EXTENT_WIDTH_NOK, EGL_EXTENT_HEIGHT_NOK, EGL_TARGET_EXTENT_WIDTH_NOK, 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1279
    EGL_TARGET_EXTENT_HEIGHT_NOK, EGL_TARGET_EXTENT_OFFSET_X_NOK, EGL_TARGET_EXTENT_OFFSET_Y_NOK
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1280
2. Create a fixed size Window Surface with illegal values for each attribute.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1281
    [attribute]                         [illegal value]
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1282
    EGL_FIXED_WIDTH_NOK                 less than or equal to zero
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1283
    EGL_FIXED_HEIGHT_NOK                less than or equal to zero
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1284
    EGL_TARGET_EXTENT_WIDTH_NOK         less than or equal to zero
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1285
    EGL_TARGET_EXTENT_HEIGHT_NOK        less than or equal to zero
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1286
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1287
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1288
1. EGL_NO_SURFACE is returned with error set to EGL_BAD_ATTRIBUTE
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1289
2. EGL_NO_SURFACE is returned with error set to EGL_BAD_ATTRIBUTE
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1290
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1291
TVerdict CEglTest_SurfaceScaling_Negative_CreateWindowSurface::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1292
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1293
    INFO_PRINTF1(_L("CEglTest_SurfaceScaling_Negative_CreateWindowSurface::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1294
    SetTestStepName(_L("GRAPHICS-EGL-0653"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1295
    SetTestStepID(_L("GRAPHICS-EGL-0653"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1296
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1297
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1298
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1299
    CreateAndActivateWindowL(TSize(100, 100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1300
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1301
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1302
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1303
    CreateEglSessionL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1304
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1305
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1306
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1307
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1308
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1309
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1310
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1311
    TESTL(numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1312
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1313
    // Make the fixed size surface half width and height of the window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1314
    TInt surfaceWidth = iWindow.Size().iWidth / 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1315
    TInt surfaceHeight = iWindow.Size().iHeight / 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1316
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1317
    TInt invalidCombinationAttrNum = 6;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1318
    EGLint invalid_combination_attrib_list[][11] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1319
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1320
                EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1321
                EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1322
                EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1323
                EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1324
                EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1325
                EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1326
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1327
                EGL_FIXED_WIDTH_NOK, surfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1328
                EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1329
                EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1330
                EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1331
                EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1332
                EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1333
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1334
                EGL_FIXED_WIDTH_NOK, surfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1335
                EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1336
                EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1337
                EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1338
                EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1339
                EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1340
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1341
                EGL_FIXED_WIDTH_NOK, surfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1342
                EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1343
                EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1344
                EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1345
                EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1346
                EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1347
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1348
                EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1349
                EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1350
                EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1351
                EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1352
                EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1353
                EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1354
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1355
                EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1356
                EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1357
                EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1358
                EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1359
                EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1360
                EGL_NONE}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1361
            };
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1362
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1363
    TInt illegalValAttrNum = 14;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1364
    EGLint illegal_value_attrib_list[][19] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1365
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1366
                    EGL_FIXED_WIDTH_NOK, -1,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1367
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1368
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1369
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1370
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1371
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1372
                    EGL_BORDER_COLOR_RED_NOK, 0xfc,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1373
                    EGL_BORDER_COLOR_GREEN_NOK, 0xfd,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1374
                    EGL_BORDER_COLOR_BLUE_NOK, 0xfe,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1375
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1376
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1377
                    EGL_FIXED_WIDTH_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1378
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1379
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1380
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1381
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1382
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1383
                    EGL_BORDER_COLOR_RED_NOK, 0xfc,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1384
                    EGL_BORDER_COLOR_GREEN_NOK, 0xfd,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1385
                    EGL_BORDER_COLOR_BLUE_NOK, 0xfe,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1386
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1387
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1388
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1389
                    EGL_FIXED_HEIGHT_NOK, -1,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1390
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1391
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1392
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1393
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1394
                    EGL_BORDER_COLOR_RED_NOK, 0xfc,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1395
                    EGL_BORDER_COLOR_GREEN_NOK, 0xfd,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1396
                    EGL_BORDER_COLOR_BLUE_NOK, 0xfe,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1397
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1398
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1399
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1400
                    EGL_FIXED_HEIGHT_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1401
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1402
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1403
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1404
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1405
                    EGL_BORDER_COLOR_RED_NOK, 0xfc,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1406
                    EGL_BORDER_COLOR_GREEN_NOK, 0xfd,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1407
                    EGL_BORDER_COLOR_BLUE_NOK, 0xfe,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1408
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1409
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1410
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1411
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1412
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1413
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1414
                    EGL_TARGET_EXTENT_WIDTH_NOK, -1,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1415
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1416
                    EGL_BORDER_COLOR_RED_NOK, 0xfc,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1417
                    EGL_BORDER_COLOR_GREEN_NOK, 0xfd,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1418
                    EGL_BORDER_COLOR_BLUE_NOK, 0xfe,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1419
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1420
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1421
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1422
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1423
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1424
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1425
                    EGL_TARGET_EXTENT_WIDTH_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1426
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1427
                    EGL_BORDER_COLOR_RED_NOK, 0xfc,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1428
                    EGL_BORDER_COLOR_GREEN_NOK, 0xfd,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1429
                    EGL_BORDER_COLOR_BLUE_NOK, 0xfe,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1430
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1431
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1432
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1433
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1434
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1435
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1436
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1437
                    EGL_TARGET_EXTENT_HEIGHT_NOK, -1,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1438
                    EGL_BORDER_COLOR_RED_NOK, 0xfc,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1439
                    EGL_BORDER_COLOR_GREEN_NOK, 0xfd,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1440
                    EGL_BORDER_COLOR_BLUE_NOK, 0xfe,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1441
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1442
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1443
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1444
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1445
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1446
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1447
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1448
                    EGL_TARGET_EXTENT_HEIGHT_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1449
                    EGL_BORDER_COLOR_RED_NOK, 0xfc,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1450
                    EGL_BORDER_COLOR_GREEN_NOK, 0xfd,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1451
                    EGL_BORDER_COLOR_BLUE_NOK, 0xfe,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1452
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1453
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1454
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1455
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1456
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1457
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1458
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1459
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1460
                    EGL_BORDER_COLOR_RED_NOK, -1,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1461
                    EGL_BORDER_COLOR_GREEN_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1462
                    EGL_BORDER_COLOR_BLUE_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1463
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1464
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1465
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1466
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1467
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1468
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1469
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1470
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1471
                    EGL_BORDER_COLOR_RED_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1472
                    EGL_BORDER_COLOR_GREEN_NOK, -1,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1473
                    EGL_BORDER_COLOR_BLUE_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1474
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1475
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1476
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1477
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1478
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1479
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1480
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1481
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1482
                    EGL_BORDER_COLOR_RED_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1483
                    EGL_BORDER_COLOR_GREEN_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1484
                    EGL_BORDER_COLOR_BLUE_NOK, -1,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1485
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1486
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1487
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1488
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1489
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1490
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1491
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1492
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1493
                    EGL_BORDER_COLOR_RED_NOK, 256,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1494
                    EGL_BORDER_COLOR_GREEN_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1495
                    EGL_BORDER_COLOR_BLUE_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1496
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1497
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1498
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1499
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1500
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1501
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1502
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1503
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1504
                    EGL_BORDER_COLOR_RED_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1505
                    EGL_BORDER_COLOR_GREEN_NOK, 256,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1506
                    EGL_BORDER_COLOR_BLUE_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1507
                    EGL_NONE},
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1508
                {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1509
                    EGL_FIXED_WIDTH_NOK, surfaceWidth,  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1510
                    EGL_FIXED_HEIGHT_NOK, surfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1511
                    EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1512
                    EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1513
                    EGL_TARGET_EXTENT_WIDTH_NOK, iWindow.Size().iWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1514
                    EGL_TARGET_EXTENT_HEIGHT_NOK, iWindow.Size().iHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1515
                    EGL_BORDER_COLOR_RED_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1516
                    EGL_BORDER_COLOR_GREEN_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1517
                    EGL_BORDER_COLOR_BLUE_NOK, 256,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1518
                    EGL_NONE}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1519
                };
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1520
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1521
    INFO_PRINTF1(_L("Calling eglCreateWindowSurface with invalid combination of Surface Scaling attributes... - only five out of six compulsary attributes specified"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1522
    for(TInt i = 0;i < invalidCombinationAttrNum;i++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1523
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1524
        EGLSurface surface = eglCreateWindowSurface(iDisplay, matchingConfigs[0], &iWindow, invalid_combination_attrib_list[i]);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1525
        TEST_EGL_ERROR(surface == EGL_NO_SURFACE, EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1526
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1527
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1528
    INFO_PRINTF1(_L("Calling eglCreateWindowSurface with illegal values for each attribute..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1529
    for(TInt i = 0;i < illegalValAttrNum;i++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1530
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1531
        EGLSurface surface = eglCreateWindowSurface(iDisplay, matchingConfigs[0], &iWindow, illegal_value_attrib_list[i]);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1532
        TEST_EGL_ERROR(surface == EGL_NO_SURFACE, EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1533
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1534
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1535
    // clean-up
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1536
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1537
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1538
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1539
    INFO_PRINTF1(_L("....CEglTest_SurfaceScaling_Negative_CreateWindowSurface::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1540
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1541
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1542
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1543
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1544
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1545
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1546
@SYMTestCaseID GRAPHICS-EGL-0654
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1547
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1548
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1549
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1550
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1551
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1552
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1553
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1554
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1555
Negative test. This test is to check the return value and error code when creating
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1556
a fixed size non window surface.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1557
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1558
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1559
1. Attempt to create a pixmap with scaling attributes specified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1560
2. Attempt to create a pbuffer surface with scaling attributes specified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1561
3. Attempt to create a window surface with scaling attributes specified but 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1562
   config doesn't support surface scaling
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1563
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1564
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1565
1. EGL_NO_SURFACE is returned with error set to EGL_BAD_ATTRIBUTE
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1566
2. EGL_NO_SURFACE is returned with error set to EGL_BAD_ATTRIBUTE
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1567
3. EGL_NO_SURFACE is returned with error set to EGL_BAD_MATCH
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1568
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1569
TVerdict CEglTest_SurfaceScaling_Negative_FixedSize_NonWindowSurface::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1570
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1571
    INFO_PRINTF1(_L("CEglTest_SurfaceScaling_Negative_FixedSize_NonWindowSurface::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1572
    SetTestStepName(_L("GRAPHICS-EGL-0654"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1573
    SetTestStepID(_L("GRAPHICS-EGL-0654"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1574
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1575
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1576
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1577
    CreateAndActivateWindowL(TSize(100, 100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1578
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1579
    // Create bitmap
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1580
    User::LeaveIfError(RFbsSession::Connect());
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1581
    CFbsBitmap* bitmap = new(ELeave) CFbsBitmap();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1582
    CleanupStack::PushL(bitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1583
    User::LeaveIfError(bitmap->Create(TSize(20, 20), EColor16MU));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1584
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1585
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1586
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1587
    CreateEglSessionL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1588
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1589
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1590
    EGLConfig config;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1591
    EGLSurface surface = EGL_NO_SURFACE;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1592
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1593
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1594
    // Use OpenVG to draw
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1595
    ASSERT_EGL_TRUE(eglBindAPI(EGL_OPENVG_API));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1596
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1597
    const EGLint KFixedSize_surface_attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1598
                EGL_FIXED_WIDTH_NOK, 100,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1599
                EGL_FIXED_HEIGHT_NOK, 100,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1600
                EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1601
                EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1602
                EGL_TARGET_EXTENT_WIDTH_NOK, 150,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1603
                EGL_TARGET_EXTENT_HEIGHT_NOK, 150,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1604
                EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1605
           
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1606
    // If all window surfaces in EGL are scalable, first case must be skipped. Others still valid
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1607
    TInt index = iAllScalable ? 1 : 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1608
    for(; index < 3; index++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1609
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1610
        switch(index)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1611
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1612
		case 0:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1613
			INFO_PRINTF1(_L("Calling eglCreateWindowSurface with surface scaling attribute specified in a config that does not support scaling..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1614
			ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribs_NoScaling], &config, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1615
			TEST(numConfigs==1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1616
			surface = eglCreateWindowSurface(iDisplay, config, &iWindow, KFixedSize_surface_attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1617
			TEST_EGL_ERROR(surface == EGL_NO_SURFACE, EGL_BAD_MATCH);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1618
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1619
        case 1:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1620
			INFO_PRINTF1(_L("Calling eglCreatePixmapSurface with surface scaling attribute specified..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1621
		    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPixmapAttribsColor16MU], &config, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1622
		    TEST(numConfigs==1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1623
			surface = eglCreatePixmapSurface(iDisplay, config, (NativePixmapType)bitmap, KFixedSize_surface_attrib_list);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1624
			TEST_EGL_ERROR(surface == EGL_NO_SURFACE, EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1625
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1626
        case 2:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1627
            INFO_PRINTF1(_L("Calling eglCreatePbufferSurface with surface scaling attribute specified..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1628
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPBufferAttribsColor64K], &config, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1629
            TEST(numConfigs==1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1630
            surface = eglCreatePbufferSurface(iDisplay, config, KFixedSize_surface_attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1631
            TEST_EGL_ERROR(surface == EGL_NO_SURFACE, EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1632
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1633
			}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1634
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1635
   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1636
    // cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1637
    CleanupStack::PopAndDestroy(bitmap);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1638
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1639
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1640
    RFbsSession::Disconnect();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1641
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1642
    INFO_PRINTF1(_L("....CEglTest_SurfaceScaling_Negative_FixedSize_NonWindowSurface::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1643
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1644
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1645
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1646
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1647
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1648
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1649
@SYMTestCaseID GRAPHICS-EGL-0655
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1650
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1651
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1652
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1653
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1654
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1655
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1656
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1657
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1658
Exercising border color set by default.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1659
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1660
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1661
1. Create a fixed size EGL Window Surface without border color specified.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1662
2. Create a fixed size EGL Window Surface with border color specified for one channel.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1663
3. Create a fixed size EGL Window Surface with border color specified for two channels.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1664
 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1665
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1666
Retrieved border color matches to the value it has been set at surface creation, 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1667
if during the surface creation border color has not been specified it is set to black (0x0).   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1668
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1669
TVerdict CEglTest_SurfaceScalingDefaultBorderColor::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1670
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1671
    SetTestStepName(_L("GRAPHICS-EGL-0655"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1672
    SetTestStepID(_L("GRAPHICS-EGL-0655"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1673
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingDefaultBorderColor::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1674
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1675
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1676
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1677
    CreateAndActivateWindowL(TSize(100,100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1678
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1679
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1680
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1681
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1682
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1683
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1684
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1685
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1686
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1687
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1688
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1689
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1690
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1691
    TESTL (numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1692
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1693
    // Make the fixed size surface half width and height of the window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1694
    const TInt KSurfaceWidth = KWindowWidth/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1695
    const TInt KSurfaceHeight = KWindowHeight/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1696
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1697
    EGLint attrib_list1[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1698
              EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1699
              EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1700
              EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1701
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1702
              EGL_TARGET_EXTENT_WIDTH_NOK, KWindowWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1703
              EGL_TARGET_EXTENT_HEIGHT_NOK, KWindowHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1704
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1705
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1706
    EGLint attrib_list2[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1707
              EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1708
              EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1709
              EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1710
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1711
              EGL_TARGET_EXTENT_WIDTH_NOK, KWindowWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1712
              EGL_TARGET_EXTENT_HEIGHT_NOK, KWindowHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1713
              EGL_BORDER_COLOR_RED_NOK, 0xf0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1714
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1715
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1716
    EGLint attrib_list3[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1717
              EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1718
              EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1719
              EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1720
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1721
              EGL_TARGET_EXTENT_WIDTH_NOK, KWindowWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1722
              EGL_TARGET_EXTENT_HEIGHT_NOK, KWindowHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1723
              EGL_BORDER_COLOR_BLUE_NOK, 0xf8,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1724
              EGL_BORDER_COLOR_GREEN_NOK, 0xfc,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1725
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1726
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1727
    for(TInt index = 0; index < 3; index++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1728
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1729
        EGLint* attrib_list = NULL;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1730
        EGLint expectedRedChannelColor = 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1731
        EGLint expectedGreenChannelColor = 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1732
        EGLint expectedBlueChannelColor = 0; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1733
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1734
        switch(index)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1735
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1736
        case 0:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1737
            attrib_list = attrib_list1;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1738
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1739
        case 1:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1740
            expectedRedChannelColor = 0xf0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1741
            attrib_list = attrib_list2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1742
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1743
        case 2:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1744
            expectedBlueChannelColor = 0xf8;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1745
            expectedGreenChannelColor = 0xfc;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1746
            attrib_list = attrib_list3;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1747
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1748
            }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1749
        // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1750
        iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1751
        
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1752
        // Check expected border colours 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1753
        CheckBorderColorL(expectedRedChannelColor, expectedBlueChannelColor, expectedGreenChannelColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1754
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1755
        // Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1756
        iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1757
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1758
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1759
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1760
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1761
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1762
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingDefaultBorderColor::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1763
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1764
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1765
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1766
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1767
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1768
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1769
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1770
@SYMTestCaseID GRAPHICS-EGL-0656
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1771
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1772
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1773
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1774
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1775
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1776
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1777
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1778
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1779
Modifying an existing fixed size surface border color. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1780
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1781
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1782
1. Create a fixed size EGL Window Surface with border color specified.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1783
2. Modify border color with the new values.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1784
 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1785
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1786
New color will take place only after setting new values.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1787
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1788
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1789
TVerdict CEglTest_SurfaceScalingModifyingBorderColor::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1790
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1791
	SetTestStepName(_L("GRAPHICS-EGL-0656"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1792
	SetTestStepID(_L("GRAPHICS-EGL-0656"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1793
	INFO_PRINTF1(_L("CEglTest_SurfaceScalingModifyingBorderColor::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1794
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1795
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1796
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1797
    CreateAndActivateWindowL(TSize(100,100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1798
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1799
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1800
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1801
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1802
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1803
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1804
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1805
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1806
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1807
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1808
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1809
    TESTL (numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1810
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1811
    // Make the fixed size surface half width and height of the window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1812
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1813
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1814
    const TInt KSurfaceWidth = KWindowWidth/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1815
    const TInt KSurfaceHeight = KWindowHeight/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1816
    const TInt KExtentWidth = KSurfaceWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1817
    const TInt KExtentHeight = KSurfaceHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1818
    const EGLint KRedChannelColor = 0x20; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1819
    const EGLint KGreenChannelColor = 0x40; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1820
    const EGLint KBlueChannelColor = 0x60; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1821
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1822
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1823
              EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1824
              EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1825
              EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1826
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1827
              EGL_TARGET_EXTENT_WIDTH_NOK, KExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1828
              EGL_TARGET_EXTENT_HEIGHT_NOK, KExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1829
              EGL_BORDER_COLOR_RED_NOK, KRedChannelColor,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1830
              EGL_BORDER_COLOR_BLUE_NOK, KBlueChannelColor,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1831
              EGL_BORDER_COLOR_GREEN_NOK, KGreenChannelColor,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1832
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1833
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1834
    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1835
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1836
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1837
    CheckBorderColorL(KRedChannelColor, KBlueChannelColor, KGreenChannelColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1838
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1839
    //modify existing attributes
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1840
    const EGLint KOffsetColor = 100; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1841
    ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_RED_NOK, KRedChannelColor + KOffsetColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1842
    ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, KBlueChannelColor + KOffsetColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1843
    ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_GREEN_NOK, KGreenChannelColor + KOffsetColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1844
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1845
    //check that border color has been modified now
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1846
    CheckBorderColorL(KRedChannelColor+KOffsetColor, KBlueChannelColor+KOffsetColor, KGreenChannelColor+KOffsetColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1847
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1848
    // Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1849
    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1850
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1851
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1852
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1853
	INFO_PRINTF1(_L("....CEglTest_SurfaceScalingModifyingBorderColor::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1854
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1855
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1856
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1857
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1858
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1859
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1860
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1861
@SYMTestCaseID 	GRAPHICS-EGL-0657
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1862
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1863
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1864
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1865
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1866
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1867
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1868
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1869
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1870
Negative testing. Modifying an existing non-fixed size surface border color. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1871
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1872
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1873
1. Create a non-fixed size EGL Window Surface.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1874
2. Try to set border color after surface creation.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1875
3. Repeat steps 1-2 for pixmap and pbuffer surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1876
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1877
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1878
Setting border color has no effect.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1879
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1880
TVerdict CEglTest_SurfaceScalingModifyingBorderColorNonFixed::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1881
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1882
	SetTestStepName(_L("GRAPHICS-EGL-0657"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1883
	SetTestStepID(_L("GRAPHICS-EGL-0657"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1884
	INFO_PRINTF1(_L("CEglTest_SurfaceScalingModifyingBorderColorNonFixed::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1885
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1886
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1887
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1888
    CreateAndActivateWindowL(TSize(100,100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1889
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1890
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1891
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1892
    const TInt KSurfaceWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1893
    const TInt KSurfaceHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1894
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1895
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1896
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1897
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1898
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1899
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1900
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1901
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1902
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1903
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1904
    // If all window surfaces in EGL are scalable, first case must be skipped. Others still valid
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1905
    TInt index = iAllScalable ? 1 : 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1906
    for(; index < 3; index++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1907
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1908
        switch(index)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1909
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1910
        case 0:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1911
            // Create the non-fixed size window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1912
            INFO_PRINTF1(_L("Create the non-fixed size window surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1913
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribs_NoScaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1914
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1915
            iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1916
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1917
        case 1:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1918
            // Create the pbuffer surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1919
            INFO_PRINTF1(_L("Create the pbuffer surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1920
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPBufferAttribsColor16MU], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1921
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1922
            iEglSess->CreatePbufferSurfaceAndMakeCurrentL(matchingConfigs[0], TSize(KSurfaceWidth, KSurfaceHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1923
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1924
        case 2:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1925
            // Create the pixmap surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1926
            INFO_PRINTF1(_L("Create the pixmap surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1927
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPixmapAttribsColor16MU], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1928
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1929
            iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(TSize(KSurfaceWidth, KSurfaceHeight), EColor16MU);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1930
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1931
            }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1932
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1933
		// Set border color values to a non fixed size window (nothing should happen)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1934
		const EGLint KRedChannelColor = 0x20; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1935
		const EGLint KGreenChannelColor = 0x40; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1936
		const EGLint KBlueChannelColor = 0x60; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1937
		ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_RED_NOK, KRedChannelColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1938
		ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, KBlueChannelColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1939
		ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_GREEN_NOK, KGreenChannelColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1940
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1941
		// Check all attributes (this is a non-fixed size window) 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1942
		// Note that we cannot use CheckBorderColorL because values are not updated
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1943
		EGLint redChannelColor = -1; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1944
		EGLint greenChannelColor = -2; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1945
		EGLint blueChannelColor = -3; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1946
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_RED_NOK, &redChannelColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1947
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, &blueChannelColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1948
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_GREEN_NOK, &greenChannelColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1949
		TEST(redChannelColor == -1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1950
		TEST(greenChannelColor == -2);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1951
		TEST(blueChannelColor == -3);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1952
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1953
		// Set invalid border color values to a non fixed size window (nothing should happen)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1954
		INFO_PRINTF1(_L("Attempt to set invalid border color values to a non fixed size window..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1955
		ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_RED_NOK, KRedChannelColor+256));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1956
		ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, KBlueChannelColor+256));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1957
		ASSERT_EGL_TRUE(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_GREEN_NOK, KGreenChannelColor+256));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1958
		
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1959
		// Check all attributes (this is a non-fixed size window) 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1960
		// Note that we cannot use CheckBorderColorL because values are not updated
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1961
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_RED_NOK, &redChannelColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1962
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, &blueChannelColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1963
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_GREEN_NOK, &greenChannelColor));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1964
		TEST(redChannelColor == -1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1965
		TEST(greenChannelColor == -2);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1966
		TEST(blueChannelColor == -3);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1967
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1968
	   	// destroy surface and context
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1969
	    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1970
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1971
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1972
    // Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1973
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1974
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1975
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1976
	INFO_PRINTF1(_L("....CEglTest_SurfaceScalingModifyingBorderColorNonFixed::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1977
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1978
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1979
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1980
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1981
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1982
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1983
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1984
@SYMTestCaseID GRAPHICS-EGL-0658
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1985
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1986
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1987
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1988
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1989
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1990
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1991
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1992
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1993
Negative testing. Attempt to modify an existing fixed size surface border color with invalid values. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1994
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1995
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1996
1. Create a fixed size EGL Window Surface with border color specified.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1997
2. Try to modify border color with the negative values.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1998
3. Try to modify border color with the positive values greater than 255.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  1999
 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2000
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2001
Attempt to modify the border color with the new values will fail with error code EGL_BAD_ATTRIBUTE.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2002
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2003
TVerdict CEglTest_SurfaceScalingModifyingInvalidBorderColor::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2004
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2005
    SetTestStepName(_L("GRAPHICS-EGL-0658"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2006
    SetTestStepID(_L("GRAPHICS-EGL-0658"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2007
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingModifyingInvalidBorderColor::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2008
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2009
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2010
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2011
    CreateAndActivateWindowL(TSize(100,100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2012
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2013
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2014
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2015
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2016
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2017
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2018
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2019
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2020
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2021
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2022
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2023
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2024
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2025
    TESTL (numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2026
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2027
    // Make the fixed size surface half width and height of the window
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2028
    const TInt KSurfaceWidth = KWindowWidth/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2029
    const TInt KSurfaceHeight = KWindowHeight/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2030
    const EGLint KRedChannelColor = 0x20; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2031
    const EGLint KGreenChannelColor = 0x40; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2032
    const EGLint KBlueChannelColor = 0x60; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2033
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2034
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2035
              EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2036
              EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2037
              EGL_TARGET_EXTENT_OFFSET_X_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2038
              EGL_TARGET_EXTENT_OFFSET_Y_NOK, 0,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2039
              EGL_TARGET_EXTENT_WIDTH_NOK, KWindowWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2040
              EGL_TARGET_EXTENT_HEIGHT_NOK, KWindowHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2041
              EGL_BORDER_COLOR_RED_NOK, KRedChannelColor,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2042
              EGL_BORDER_COLOR_BLUE_NOK, KBlueChannelColor,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2043
              EGL_BORDER_COLOR_GREEN_NOK, KGreenChannelColor,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2044
              EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2045
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2046
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2047
    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2048
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2049
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2050
    // check initial values match
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2051
    CheckBorderColorL(KRedChannelColor, KBlueChannelColor, KGreenChannelColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2052
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2053
    //modify existing attributes with negative value
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2054
	INFO_PRINTF1(_L("Attempt to set negative border color values..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2055
    TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_RED_NOK, -KRedChannelColor) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2056
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2057
    TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, -KBlueChannelColor) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2058
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2059
    TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_GREEN_NOK, -KGreenChannelColor) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2060
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2061
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2062
    //check that border color has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2063
    CheckBorderColorL(KRedChannelColor, KBlueChannelColor, KGreenChannelColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2064
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2065
    //modify existing attributes with very big positive value
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2066
	INFO_PRINTF1(_L("Attempt to set border color values that are too big..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2067
    TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_RED_NOK, KRedChannelColor + 256) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2068
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2069
    TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, KBlueChannelColor + 256) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2070
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2071
    TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_GREEN_NOK, KGreenChannelColor + 256) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2072
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2073
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2074
    //check that border color has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2075
    CheckBorderColorL(KRedChannelColor, KBlueChannelColor, KGreenChannelColor);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2076
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2077
    /// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2078
    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2079
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2080
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2081
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2082
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingModifyingInvalidBorderColor::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2083
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2084
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2085
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2086
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2087
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2088
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2089
@SYMTestCaseID GRAPHICS-EGL-0659
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2090
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2091
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2092
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2093
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2094
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2095
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2096
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2097
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2098
Negative testing. Attempt to modify an extent with eglSurfaceAttrib() after surface has been created. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2099
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2100
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2101
1. Create a fixed size EGL Window Surface.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2102
2. Try to modify a surface extent parameters with arbitrary values via eglSurfaceAttrib().
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2103
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2104
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2105
Attempt to modify the extent will fail with error code EGL_BAD_ATTRIBUTE.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2106
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2107
TVerdict CEglTest_SurfaceScalingModifyingExtent::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2108
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2109
    SetTestStepName(_L("GRAPHICS-EGL-0659"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2110
    SetTestStepID(_L("GRAPHICS-EGL-0659"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2111
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingModifyingExtent::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2112
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2113
     // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2114
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2115
    CreateAndActivateWindowL(TSize(100,100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2116
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2117
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2118
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2119
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2120
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2121
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2122
    INFO_PRINTF1(_L("Attempt to modify surface extent for fixed size surfaces..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2123
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2124
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2125
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2126
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2127
	TESTL (numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2128
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2129
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2130
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2131
    const TInt KSurfaceWidth = KWindowWidth/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2132
	const TInt KSurfaceHeight = KWindowHeight/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2133
	const TInt KExtentWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2134
	const TInt KExtentHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2135
    const TInt KOffsetX = 10;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2136
	const TInt KOffsetY = 20;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2137
            
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2138
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2139
                  EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2140
                  EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2141
                  EGL_TARGET_EXTENT_OFFSET_X_NOK, KOffsetX,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2142
                  EGL_TARGET_EXTENT_OFFSET_Y_NOK, KOffsetY,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2143
                  EGL_TARGET_EXTENT_WIDTH_NOK, KExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2144
                  EGL_TARGET_EXTENT_HEIGHT_NOK, KExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2145
                  EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2146
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2147
	// Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2148
	iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2149
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2150
	// Invalid update - modify existing attributes with any value
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2151
	TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_FIXED_WIDTH_NOK, KSurfaceWidth/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2152
	ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2153
	TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_FIXED_HEIGHT_NOK, KSurfaceHeight/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2154
	ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2155
	TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_WIDTH_NOK, KExtentWidth/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2156
	ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2157
	TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_HEIGHT_NOK, KExtentHeight/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2158
	ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2159
	TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_X_NOK, KOffsetX/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2160
	ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2161
	TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_Y_NOK, KOffsetY/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2162
	ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2163
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2164
    // check that attributes have not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2165
    CheckScalingAttributesL(KSurfaceWidth, KSurfaceHeight, KExtentWidth, KExtentHeight, KOffsetX, KOffsetY);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2166
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2167
	/// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2168
    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2169
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2170
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2171
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2172
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingModifyingExtent::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2173
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2174
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2175
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2176
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2177
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2178
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2179
@SYMTestCaseID GRAPHICS-EGL-0671
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2180
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2181
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2182
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2183
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2184
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2185
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2186
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2187
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2188
Negative testing. Attempt to modify an extent with eglSurfaceAttrib() after surface has been created. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2189
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2190
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2191
1. Create a non fixed size EGL Window Surface.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2192
2. Try to modify a surface extent parameters with arbitrary values via eglSurfaceAttrib().
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2193
3. Repeat steps 2-3 for pixmap and pbuffer surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2194
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2195
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2196
Attempt to modify the extent will fail with error code EGL_BAD_ATTRIBUTE.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2197
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2198
TVerdict CEglTest_SurfaceScalingModifyingExtentNonFixed::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2199
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2200
    SetTestStepName(_L("GRAPHICS-EGL-0671"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2201
    SetTestStepID(_L("GRAPHICS-EGL-0671"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2202
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingModifyingExtentNonFixed::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2203
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2204
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2205
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2206
    CreateAndActivateWindowL(TSize(100,100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2207
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2208
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2209
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2210
    const TInt KSurfaceWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2211
    const TInt KSurfaceHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2212
	const TInt KExtentWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2213
	const TInt KExtentHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2214
    const TInt KOffsetX = 11;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2215
	const TInt KOffsetY = 22;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2216
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2217
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2218
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2219
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2220
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2221
     
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2222
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2223
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2224
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2225
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2226
    // If all window surfaces in EGL are scalable, first case must be skipped. Others still valid
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2227
    TInt index = iAllScalable ? 1 : 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2228
    for(; index < 3; index++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2229
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2230
        switch(index)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2231
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2232
        case 0:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2233
            // Create the non-fixed size window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2234
            INFO_PRINTF1(_L("Create the non-fixed size window surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2235
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribs_NoScaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2236
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2237
            iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2238
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2239
        case 1:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2240
            // Create the pbuffer surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2241
            INFO_PRINTF1(_L("Create the pbuffer surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2242
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPBufferAttribsColor16MU], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2243
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2244
            iEglSess->CreatePbufferSurfaceAndMakeCurrentL(matchingConfigs[0], TSize(KSurfaceWidth, KSurfaceHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2245
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2246
        case 2:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2247
            // Create the pixmap surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2248
            INFO_PRINTF1(_L("Create the pixmap surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2249
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPixmapAttribsColor16MU], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2250
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2251
            iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(TSize(KSurfaceWidth, KSurfaceHeight), EColor16MU);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2252
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2253
            }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2254
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2255
		// Invalid update - modify existing attributes with any value
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2256
		TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_FIXED_WIDTH_NOK, KSurfaceWidth/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2257
		ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2258
		TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_FIXED_HEIGHT_NOK, KSurfaceHeight/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2259
		ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2260
		TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_WIDTH_NOK, KExtentWidth/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2261
		ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2262
		TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_HEIGHT_NOK, KExtentHeight/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2263
		ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2264
		TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_X_NOK, KOffsetX/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2265
		ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2266
		TEST(eglSurfaceAttrib(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_Y_NOK, KOffsetY/2) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2267
		ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2268
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2269
	   	// destroy surface and context
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2270
	    iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2271
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2272
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2273
	/// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2274
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2275
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2276
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2277
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingModifyingExtentNonFixed::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2278
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2279
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2280
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2281
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2282
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2283
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2284
@SYMTestCaseID GRAPHICS-EGL-0660
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2285
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2286
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2287
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2288
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2289
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2290
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2291
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2292
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2293
Query surface attrubutes related to scaling. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2294
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2295
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2296
1. Create a non-fixed size EGL Window Surface.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2297
2. Query surface attributes.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2298
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2299
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2300
2. Query surface attributes succeeds and all atributes matches to the expected values.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2301
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2302
TVerdict CEglTest_SurfaceScalingQuerySurface::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2303
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2304
    SetTestStepName(_L("GRAPHICS-EGL-0660"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2305
    SetTestStepID(_L("GRAPHICS-EGL-0660"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2306
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingQuerySurface::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2307
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2308
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2309
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2310
    CreateAndActivateWindowL(TSize(100,100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2311
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2312
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2313
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2314
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2315
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2316
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2317
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2318
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2319
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2320
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2321
    TESTL (numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2322
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2323
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2324
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2325
    const TInt KSurfaceWidth = KWindowWidth/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2326
    const TInt KSurfaceHeight = KWindowHeight/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2327
    const TInt KExtentWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2328
    const TInt KExtentHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2329
    const EGLint KXOffset = 10;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2330
    const EGLint KYOffset = 20;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2331
    const EGLint KBorderColorRed = 0xa0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2332
    const EGLint KBorderColorBlue = 0xf0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2333
    const EGLint KBorderColorGreen = 0xfc;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2334
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2335
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2336
                  EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2337
                  EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2338
                  EGL_TARGET_EXTENT_OFFSET_X_NOK, KXOffset,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2339
                  EGL_TARGET_EXTENT_OFFSET_Y_NOK, KYOffset,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2340
                  EGL_TARGET_EXTENT_WIDTH_NOK, KExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2341
                  EGL_TARGET_EXTENT_HEIGHT_NOK, KExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2342
                  EGL_BORDER_COLOR_BLUE_NOK, KBorderColorBlue,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2343
                  EGL_BORDER_COLOR_GREEN_NOK, KBorderColorGreen,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2344
                  EGL_BORDER_COLOR_RED_NOK, KBorderColorRed,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2345
                  EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2346
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2347
	// Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2348
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2349
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2350
    INFO_PRINTF1(_L("Query surface attributes and border colour back and check expected values..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2351
    CheckBorderColorL(KBorderColorRed, KBorderColorBlue, KBorderColorGreen);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2352
    CheckScalingAttributesL(KSurfaceWidth, KSurfaceHeight, KExtentWidth, KExtentHeight, KXOffset, KYOffset);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2353
   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2354
    INFO_PRINTF1(_L("Check EGL_FIXED_WIDTH_NOK and EGL_FIXED_HEIGHT_NOK cannot be queried..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2355
    EGLint surfaceFixedWidth = -1;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2356
    EGLint surfaceFixedHeight = -2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2357
    TEST(EGL_FALSE == eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_FIXED_WIDTH_NOK, &surfaceFixedWidth));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2358
    ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2359
    TEST(EGL_FALSE == eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_FIXED_HEIGHT_NOK, &surfaceFixedHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2360
    ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2361
	TEST(surfaceFixedWidth == -1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2362
	TEST(surfaceFixedHeight == -2);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2363
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2364
	// clean-up
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2365
	iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2366
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2367
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2368
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2369
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingQuerySurface::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2370
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2371
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2372
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2373
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2374
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2375
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2376
@SYMTestCaseID GRAPHICS-EGL-0662
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2377
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2378
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2379
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2380
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2381
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2382
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2383
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2384
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2385
Negative testing. Query surface attributes which are not supported by this API. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2386
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2387
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2388
1. Create a non-fixed size EGL window surface.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2389
2. Query surface attributes.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2390
3. Repeat step 2 for EGL window surface, pixmap and pbuffer surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2391
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2392
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2393
Query surface attributes will fail with error code EGL_BAD_ATTRIBUTE.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2394
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2395
TVerdict CEglTest_SurfaceScalingQuerySurfaceNonFixed::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2396
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2397
    SetTestStepName(_L("GRAPHICS-EGL-0662"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2398
    SetTestStepID(_L("GRAPHICS-EGL-0662"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2399
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingQuerySurfaceNonFixed::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2400
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2401
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2402
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2403
    CreateAndActivateWindowL(TSize(100,100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2404
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2405
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2406
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2407
    const TInt KSurfaceWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2408
    const TInt KSurfaceHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2409
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2410
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2411
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2412
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2413
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2414
     
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2415
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2416
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2417
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2418
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2419
    // If all window surfaces in EGL are scalable, first case must be skipped. Others still valid
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2420
    TInt index = iAllScalable ? 1 : 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2421
    for(; index < 3; index++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2422
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2423
        switch(index)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2424
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2425
        case 0:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2426
            // Create the non-fixed size window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2427
            INFO_PRINTF1(_L("Create the non-fixed size window surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2428
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribs_NoScaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2429
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2430
            iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2431
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2432
        case 1:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2433
            // Create the pbuffer surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2434
            INFO_PRINTF1(_L("Create the pbuffer surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2435
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPBufferAttribsColor16MU], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2436
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2437
            iEglSess->CreatePbufferSurfaceAndMakeCurrentL(matchingConfigs[0], TSize(KSurfaceWidth, KSurfaceHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2438
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2439
        case 2:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2440
            // Create the pixmap surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2441
            INFO_PRINTF1(_L("Create the pixmap surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2442
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPixmapAttribsColor16MU], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2443
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2444
            iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(TSize(KSurfaceWidth, KSurfaceHeight), EColor16MU);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2445
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2446
            }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2447
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2448
        INFO_PRINTF1(_L("Check EGL_FIXED_WIDTH_NOK and EGL_FIXED_HEIGHT_NOK cannot be queried..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2449
        EGLint surfaceFixedWidth = -1;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2450
        EGLint surfaceFixedHeight = -2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2451
        TEST(EGL_FALSE == eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_FIXED_WIDTH_NOK, &surfaceFixedWidth));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2452
        ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2453
        TEST(EGL_FALSE == eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_FIXED_HEIGHT_NOK, &surfaceFixedHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2454
        ASSERT_EGL_ERROR(EGL_BAD_ATTRIBUTE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2455
        TEST(surfaceFixedWidth == -1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2456
        TEST(surfaceFixedHeight == -2);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2457
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2458
        INFO_PRINTF1(_L("Check surface size is as we would expect..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2459
        EGLint surfaceWidth = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2460
    	EGLint surfaceHeight = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2461
    	ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_WIDTH, &surfaceWidth));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2462
    	ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_HEIGHT, &surfaceHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2463
    	TEST(surfaceWidth == KWindowWidth);		// non-fixed size surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2464
    	TEST(surfaceHeight == KWindowHeight);	// non-fixed size surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2465
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2466
    	INFO_PRINTF1(_L("Check scaling attributes cannot be queried..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2467
    	EGLint extentOffsetX = -1;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2468
    	EGLint extentOffsetY = -2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2469
    	EGLint extentWidth = -3;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2470
    	EGLint extentHeight = -4;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2471
    	EGLint borderColorBlue = -5;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2472
    	EGLint borderColorRed = -6;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2473
    	EGLint borderColorGreen = -7;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2474
    	ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_X_NOK, &extentOffsetX));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2475
    	ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_Y_NOK, &extentOffsetY));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2476
    	ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_WIDTH_NOK, &extentWidth));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2477
    	ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_HEIGHT_NOK, &extentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2478
    	ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_BLUE_NOK, &borderColorBlue));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2479
    	ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_GREEN_NOK, &borderColorGreen));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2480
    	ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_BORDER_COLOR_RED_NOK, &borderColorRed));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2481
    	TEST(extentOffsetX == -1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2482
    	TEST(extentOffsetY == -2);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2483
    	TEST(extentWidth == -3);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2484
    	TEST(extentHeight == -4);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2485
    	TEST(borderColorBlue == -5);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2486
    	TEST(borderColorRed == -6);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2487
    	TEST(borderColorGreen == -7);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2488
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2489
    	// destroy surface and context
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2490
        iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2491
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2492
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2493
    // clean-up
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2494
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2495
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2496
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2497
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingQuerySurfaceNonFixed::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2498
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2499
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2500
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2501
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2502
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2503
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2504
@SYMTestCaseID GRAPHICS-EGL-0663
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2505
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2506
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2507
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2508
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2509
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2510
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2511
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2512
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2513
Negative testing. Query surface scaling capability with invalid parameters. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2514
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2515
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2516
1. Query surface scaling capability for the different configs.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2517
2. Query surface scaling capability with invalid display.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2518
3. Query surface scaling capability with negative surface width.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2519
4. Query surface scaling capability with negative surface height.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2520
5. Query surface scaling capability with negative target width.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2521
6. Query surface scaling capability with negative target height.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2522
7. Query surface scaling capability with zero surface width.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2523
8. Query surface scaling capability with zero surface height.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2524
9. Query surface scaling capability with zero target width.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2525
10. Query surface scaling capability with zero target height.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2526
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2527
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2528
1. Query surface capability will fail with error code EGL_BAD_MATCH if config doesn't support scaling and succeed otherwise.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2529
2. Query surface capability will fail with error code EGL_BAD_DISPLAY.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2530
3. Query surface capability will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2531
4. Query surface capability will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2532
5. Query surface capability will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2533
6. Query surface capability will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2534
7. Query surface capability will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2535
8. Query surface capability will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2536
9. Query surface capability will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2537
10. Query surface capability will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2538
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2539
TVerdict CEglTest_SurfaceScalingCapability::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2540
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2541
    SetTestStepName(_L("GRAPHICS-EGL-0663"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2542
    SetTestStepID(_L("GRAPHICS-EGL-0663"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2543
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingCapability::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2544
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2545
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2546
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2547
    CreateEglSessionL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2548
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2549
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2550
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2551
    EGLConfig matchingConfigs[KMaxEglConfigs];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2552
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2553
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2554
    CreateAndActivateWindowL(TSize(100,100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2555
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2556
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2557
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2558
    const TInt KSurfaceWidth = KWindowWidth/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2559
    const TInt KSurfaceHeight = KWindowHeight/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2560
    const EGLDisplay KInvalidDisplay = iDisplay - 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2561
    EGLint capability = -1; //arbitrary number beyond the existing range 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2562
    EGLConfig config = -1;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2563
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2564
    INFO_PRINTF1(_L("Calling eglGetConfigs to get configs..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2565
    ASSERT_EGL_TRUE(eglGetConfigs(iDisplay, matchingConfigs, KMaxEglConfigs, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2566
    for(TInt index = 0; index < numConfigs; index++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2567
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2568
        EGLint value = EGL_FALSE;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2569
        ASSERT_EGL_TRUE(eglGetConfigAttrib(iDisplay, matchingConfigs[index], EGL_SURFACE_SCALING_NOK, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2570
        if(value == EGL_FALSE)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2571
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2572
            TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, matchingConfigs[index], KSurfaceWidth, KSurfaceHeight, KWindowWidth, KWindowHeight, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2573
            TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2574
            ASSERT_EGL_ERROR(EGL_BAD_MATCH);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2575
            }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2576
        else  
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2577
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2578
            if(config == -1) 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2579
                {//memorize the first config that supports scaling
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2580
                config = matchingConfigs[index];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2581
                }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2582
            ASSERT_EGL_TRUE(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, matchingConfigs[index], KSurfaceWidth, KSurfaceHeight, KWindowWidth, KWindowHeight, &capability));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2583
            TEST((capability == EGL_SUPPORTED_NOK) || (capability == EGL_SLOW_NOK));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2584
            capability = -1; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2585
            }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2586
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2587
    capability = -1; 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2588
    TEST(config != -1); // make sure that at least one config supports scaling 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2589
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2590
    //invalid display
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2591
    TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(KInvalidDisplay, config, KSurfaceWidth, KSurfaceHeight, KWindowWidth, KWindowHeight, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2592
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2593
    ASSERT_EGL_ERROR(EGL_BAD_DISPLAY);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2594
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2595
    //negative width
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2596
    TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, config, -KSurfaceWidth, KSurfaceHeight, KWindowWidth, KWindowHeight, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2597
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2598
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2599
    TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, config, KSurfaceWidth, KSurfaceHeight, -KWindowWidth, KWindowHeight, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2600
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2601
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2602
    //negative height
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2603
    TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, config, KSurfaceWidth, -KSurfaceHeight, KWindowWidth, KWindowHeight, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2604
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2605
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2606
    TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, config, KSurfaceWidth, KSurfaceHeight, KWindowWidth, -KWindowHeight, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2607
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2608
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2609
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2610
    //zero width
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2611
    TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, config, -0, KSurfaceHeight, KWindowWidth, KWindowHeight, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2612
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2613
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2614
    TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, config, KSurfaceWidth, KSurfaceHeight, -0, KWindowHeight, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2615
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2616
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2617
    //zero height
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2618
    TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, config, KSurfaceWidth, -0, KWindowWidth, KWindowHeight, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2619
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2620
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2621
    TEST(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, config, KSurfaceWidth, KSurfaceHeight, KWindowWidth, -0, &capability) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2622
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2623
    ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2624
   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2625
    // Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2626
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2627
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2628
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2629
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingCapability::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2630
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2631
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2632
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2633
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2634
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2635
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2636
@SYMTestCaseID GRAPHICS-EGL-0664
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2637
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2638
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2639
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2640
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2641
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2642
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2643
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2644
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2645
Call eglSetSurfaceScalingNOK with fixed size surface and a target extent that can be set. 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2646
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2647
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2648
Retrieve all available EGL configs and for those that support surface scaling 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2649
1. Create a window surface with surface scaling attributes and make it current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2650
2. Query these attributes and check they correspond with what is expected
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2651
3. Query if surface supports scaling to a different extent
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2652
4. Set the new extent and new offset to the surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2653
5. Query these attributes
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2654
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2655
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2656
5. Surface scaling attributes have been updated    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2657
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2658
TVerdict CEglTest_SurfaceScalingSet::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2659
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2660
    SetTestStepName(_L("GRAPHICS-EGL-0664"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2661
    SetTestStepID(_L("GRAPHICS-EGL-0664"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2662
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingSet::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2663
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2664
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2665
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2666
    CreateAndActivateWindowL(TSize(100, 100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2667
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2668
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2669
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2670
    const TInt KSurfaceWidth = KWindowWidth/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2671
    const TInt KSurfaceHeight = KWindowHeight/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2672
    const TInt KExtentWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2673
    const TInt KExtentHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2674
    const EGLint KOffsetX = 3;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2675
    const EGLint KOffsetY = 7;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2677
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2678
                  EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2679
                  EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2680
                  EGL_TARGET_EXTENT_OFFSET_X_NOK, KOffsetX,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2681
                  EGL_TARGET_EXTENT_OFFSET_Y_NOK, KOffsetY,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2682
                  EGL_TARGET_EXTENT_WIDTH_NOK, KExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2683
                  EGL_TARGET_EXTENT_HEIGHT_NOK, KExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2684
                  EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2685
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2686
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2687
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2688
    CreateEglSessionL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2689
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2690
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2691
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2692
    EGLConfig matchingConfigs[KMaxEglConfigs];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2693
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2694
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2695
    // Query total number of configs
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2696
    ASSERT_EGL_TRUE(eglGetConfigs(iDisplay, NULL, KMaxTInt, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2697
    TESTL(numConfigs >= 1 && numConfigs <= KMaxEglConfigs);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2698
    INFO_PRINTF2(_L("Found %d configs"), numConfigs);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2699
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2700
    // Get the configs
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2701
    ASSERT_EGL_TRUE(eglGetConfigs(iDisplay, matchingConfigs, KMaxEglConfigs, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2702
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2703
    // Check if surface scaling is supported in the config, if so, create surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2704
    for(TInt i=0; i<numConfigs; i++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2705
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2706
		EGLint value = -32; // arbitraty value which is neither EGL_TRUE nor EGL_FALSE
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2707
		ASSERT_EGL_TRUE(eglGetConfigAttrib(iDisplay, matchingConfigs[i], EGL_SURFACE_SCALING_NOK, &value));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2708
		if (value==EGL_TRUE)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2709
			{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2710
			INFO_PRINTF2(_L("Config %d supports surface scaling. Create a window surface..."), i);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2711
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2712
		    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2713
			EGLint renderableType = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2714
			ASSERT_EGL_TRUE(eglGetConfigAttrib(iDisplay, matchingConfigs[i],  EGL_RENDERABLE_TYPE, &renderableType));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2715
			if (renderableType&EGL_OPENVG_BIT)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2716
				{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2717
				iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[i], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2718
				}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2719
			else if (renderableType&EGL_OPENGL_ES_BIT)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2720
				{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2721
				iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[i], iWindow, EFalse, EGL_OPENGL_ES_API, 1, attrib_list);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2722
				}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2723
			else
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2724
				{
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2725
				WARN_PRINTF2(_L("Config %d does not support either OPENVG or OPENGL_ES. Skip!"), i);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2726
				continue;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2727
				}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2728
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2729
		    // Check values are as expected
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2730
	        CheckScalingAttributesL(KSurfaceWidth, KSurfaceHeight, KExtentWidth, KExtentHeight, KOffsetX, KOffsetY);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2731
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2732
	        // modify target extent atttributes
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2733
	        // 1 - first check that this new extent is supported, should do as we're reducing it
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2734
	        EGLint capability = -1; 	//arbitrary number beyond the existing range 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2735
	        EGLint newExtentWidth = KExtentWidth / 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2736
	    	EGLint newExtentHeight = KExtentHeight / 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2737
	        EGLint newOffsetX = KOffsetX * 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2738
	    	EGLint newOffsetY = KOffsetY * 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2739
	        ASSERT_EGL_TRUE(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, matchingConfigs[i], KSurfaceWidth, KSurfaceHeight, newExtentWidth, newExtentHeight, &capability));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2740
            TEST((capability == EGL_SUPPORTED_NOK) || (capability == EGL_SLOW_NOK));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2741
			// 2 - set new extent
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2742
	        ASSERT_EGL_TRUE(iPfnEglSetSurfaceScalingNOK(iDisplay, iEglSess->Surface(), newOffsetX, newOffsetY, newExtentWidth, newExtentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2743
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2744
	        // Check attributes have changed
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2745
	        CheckScalingAttributesL(KSurfaceWidth, KSurfaceHeight, newExtentWidth, newExtentHeight, newOffsetX, newOffsetY);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2746
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2747
			// Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2748
	        iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2749
			}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2750
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2751
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2752
    // Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2753
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2754
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2755
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2756
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingSet::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2757
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2758
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2759
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2760
	}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2761
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2762
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2763
@SYMTestCaseID GRAPHICS-EGL-0665
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2764
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2765
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2766
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2767
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2768
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2769
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2770
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2771
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2772
Negative testing. Call eglSetSurfaceScalingNOK with invalid parameters 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2773
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2774
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2775
1. Set surface scaling with invalid display.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2776
2. Set surface scaling with negative target width.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2777
3. Set surface scaling with negative target height.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2778
3. Set surface scaling with zero target width.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2779
3. Set surface scaling with zero target height.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2780
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2781
1. Set surface scaling will fail with error code EGL_BAD_DISPLAY.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2782
2. Set surface scaling will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2783
3. Set surface scaling will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2784
4. Set surface scaling will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2785
5. Set surface scaling will fail with error code EGL_BAD_PARAMETER.   
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2786
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2787
TVerdict CEglTest_SurfaceScalingSetInvalidAttributes::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2788
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2789
    SetTestStepName(_L("GRAPHICS-EGL-0665"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2790
    SetTestStepID(_L("GRAPHICS-EGL-0665"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2791
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingSetInvalidAttributes::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2792
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2793
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2794
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2795
    CreateAndActivateWindowL(TSize(100, 100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2796
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2797
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2798
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2799
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2800
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2801
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2802
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2803
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2804
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2805
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2806
    TESTL(numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2807
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2808
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2809
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2810
    const TInt KSurfaceWidth = KWindowWidth/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2811
    const TInt KSurfaceHeight = KWindowHeight/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2812
    const TInt KExtentWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2813
    const TInt KExtentHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2814
    const EGLint KOffsetX = 11;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2815
    const EGLint KOffsetY = 13;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2816
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2817
                  EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2818
                  EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2819
                  EGL_TARGET_EXTENT_OFFSET_X_NOK, KOffsetX,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2820
                  EGL_TARGET_EXTENT_OFFSET_Y_NOK, KOffsetY,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2821
                  EGL_TARGET_EXTENT_WIDTH_NOK, KExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2822
                  EGL_TARGET_EXTENT_HEIGHT_NOK, KExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2823
                  EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2824
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2825
    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2826
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2827
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2828
    // Check all attributes
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2829
    CheckScalingAttributesL(KSurfaceWidth, KSurfaceHeight, KExtentWidth, KExtentHeight, KOffsetX, KOffsetY);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2830
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2831
    for(TInt index = 0; index < 5; index++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2832
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2833
		// new attribute values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2834
		EGLDisplay newDisplay = iDisplay;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2835
		EGLint newExtentWidth = KExtentWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2836
		EGLint newExtentHeight = KExtentHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2837
		EGLint newOffsetX = KOffsetX;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2838
		EGLint newOffsetY = KOffsetY;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2839
		// expected error value
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2840
		EGLint error = EGL_BAD_PARAMETER;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2841
		
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2842
		switch(index)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2843
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2844
        case 0:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2845
            // Invalid display - valid extent
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2846
            newDisplay = newDisplay - 100;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2847
            error = EGL_BAD_DISPLAY;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2848
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2849
        case 1:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2850
            // Valid display - Negative extent width
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2851
        	newExtentWidth = -newExtentHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2852
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2853
        case 2:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2854
            // Valid display - Negative extent height
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2855
        	newExtentHeight = -newExtentHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2856
        	break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2857
		case 3:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2858
			// Valid display - zero extent width
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2859
			newExtentWidth = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2860
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2861
		case 4:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2862
			// Valid display - zero extent height
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2863
			newExtentHeight = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2864
			break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2865
			}
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2866
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2867
		TEST(EGL_FALSE == iPfnEglSetSurfaceScalingNOK(newDisplay, iEglSess->Surface(), newOffsetX, newOffsetY, newExtentWidth, newExtentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2868
		ASSERT_EGL_ERROR(error);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2869
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2870
		// attributes haven't changed
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2871
	    CheckScalingAttributesL(KSurfaceWidth, KSurfaceHeight, KWindowWidth, KWindowHeight, KOffsetX, KOffsetY);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2872
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2873
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2874
    // Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2875
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2876
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2877
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2878
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingSetInvalidAttributes::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2879
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2880
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2881
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2882
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2883
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2884
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2885
@SYMTestCaseID GRAPHICS-EGL-0666
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2886
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2887
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2888
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2889
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2890
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2891
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2892
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2893
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2894
Negative testing. Query scaling attributes in non-fixed size surfaces 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2895
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2896
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2897
1. Create a window surface from a non-fixed size surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2898
2. Set surface scaling with valid target extent.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2899
3. Query scaling attributes
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2900
4. Repeat step 2-3 for EGL window surface, pixmap and pbuffer surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2901
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2902
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2903
2. Set surface scaling will fail with error code EGL_BAD_MATCH.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2904
3. Query scaling attributes does not fail, but values not updated
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2905
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2906
TVerdict CEglTest_SurfaceScalingSetNonFixed::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2907
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2908
    SetTestStepName(_L("GRAPHICS-EGL-0666"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2909
    SetTestStepID(_L("GRAPHICS-EGL-0666"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2910
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingSetNonFixed::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2911
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2912
    // Establish the connection to the window server and create
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2913
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2914
    CreateAndActivateWindowL(TSize(100, 100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2915
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2916
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2917
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2918
    const TInt KSurfaceWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2919
    const TInt KSurfaceHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2920
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2921
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2922
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2923
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2924
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2925
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2926
    // Choose EGL config - Make sure it DOES NOT support surface scaling
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2927
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2928
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2929
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2930
    // If all window surfaces in EGL are scalable, first case must be skipped. Others still valid
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2931
    TInt index = iAllScalable ? 1 : 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2932
    for(; index < 3; index++)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2933
        {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2934
        switch(index)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2935
            {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2936
        case 0:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2937
            // Create the non-fixed size window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2938
            INFO_PRINTF1(_L("Create the non-fixed size window surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2939
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribs_NoScaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2940
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2941
            iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2942
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2943
        case 1:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2944
            // Create the pbuffer surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2945
            INFO_PRINTF1(_L("Create the pbuffer surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2946
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPBufferAttribsColor16MU], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2947
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2948
            iEglSess->CreatePbufferSurfaceAndMakeCurrentL(matchingConfigs[0], TSize(KSurfaceWidth, KSurfaceHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2949
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2950
        case 2:
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2951
            // Create the pixmap surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2952
            INFO_PRINTF1(_L("Create the pixmap surface and the egl context and make them current..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2953
            ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[EPixmapAttribsColor16MU], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2954
            TESTL(numConfigs == 1);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2955
            iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(TSize(KSurfaceWidth, KSurfaceHeight), EColor16MU);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2956
            break;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2957
            }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2958
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2959
		// Check all attributes (this is a non-fixed size surface)  - 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2960
		// Note that we cannot use CheckScalingAttributesL because values are not updated
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2961
		EGLint surfaceWidth = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2962
		EGLint surfaceHeight = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2963
		EGLint extentWidth = -1;	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2964
		EGLint extentHeight = -2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2965
		EGLint offsetX = -3;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2966
		EGLint offsetY = -4;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2967
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_WIDTH, &surfaceWidth));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2968
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_HEIGHT, &surfaceHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2969
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_WIDTH_NOK, &extentWidth));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2970
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_HEIGHT_NOK, &extentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2971
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_X_NOK, &offsetX));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2972
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_Y_NOK, &offsetY));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2973
		TEST((surfaceWidth == KWindowWidth) && (surfaceHeight == KWindowHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2974
		// following values should not be modified (non fixed size window)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2975
		TEST((extentWidth == -1) && (extentHeight == -2));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2976
		TEST((offsetX == -3) && (offsetY == -4));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2977
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2978
		// new attribute values
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2979
		EGLint newExtentWidth = extentWidth / 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2980
		EGLint newExtentHeight = extentHeight / 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2981
		EGLint newOffsetX = offsetX * 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2982
		EGLint newOffsetY = offsetY * 2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2983
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2984
		// Valid parameters - But non fixed size surface
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2985
		TEST(iPfnEglSetSurfaceScalingNOK(iDisplay, iEglSess->Surface(), newOffsetX, newOffsetY, newExtentWidth, newExtentHeight) == EGL_FALSE);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2986
		ASSERT_EGL_ERROR(EGL_BAD_MATCH);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2987
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2988
		// attributes haven't changed
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2989
		// Note that we cannot use CheckScalingAttributesL because values are not updated
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2990
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_WIDTH, &surfaceWidth));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2991
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_HEIGHT, &surfaceHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2992
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_WIDTH_NOK, &extentWidth));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2993
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_HEIGHT_NOK, &extentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2994
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_X_NOK, &offsetX));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2995
		ASSERT_EGL_TRUE(eglQuerySurface(iDisplay, iEglSess->Surface(), EGL_TARGET_EXTENT_OFFSET_Y_NOK, &offsetY));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2996
		TEST((surfaceWidth == KWindowWidth) && (surfaceHeight == KWindowHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2997
		TEST((extentWidth == -1) && (extentHeight == -2));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2998
		TEST((offsetX == -3) && (offsetY == -4));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  2999
	
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3000
    	// destroy surface and context
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3001
        iEglSess->CleanupSurfaceAndContextL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3002
        }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3003
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3004
    // Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3005
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3006
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3007
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3008
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingSetNonFixed::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3009
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3010
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3011
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3012
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3013
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3014
/**
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3015
@SYMTestCaseID GRAPHICS-EGL-0667
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3016
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3017
@SYMTestPriority 1
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3018
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3019
@SYMPREQ 2676
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3020
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3021
@SYMREQ 417-56592
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3022
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3023
@SYMTestCaseDesc
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3024
Negative testing. Calling extensions without initialising EGL
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3025
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3026
@SYMTestActions
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3027
Without initialising EGL
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3028
1. Call query surface scaling capability
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3029
2. Call set surface scaling
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3030
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3031
@SYMTestExpectedResults
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3032
1. Query scaling capability will fail with error code EGL_NOT_INITIALIZED.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3033
2. Set surface scaling will fail with error code EGL_NOT_INITIALIZED.
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3034
*/
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3035
TVerdict CEglTest_SurfaceScalingNotInitialized::doTestStepL()
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3036
    {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3037
    SetTestStepName(_L("GRAPHICS-EGL-0667"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3038
    SetTestStepID(_L("GRAPHICS-EGL-0667"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3039
    INFO_PRINTF1(_L("CEglTest_SurfaceScalingNotInitialized::doTestStepL"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3040
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3041
    // a WindowGroup and a Window object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3042
    CreateAndActivateWindowL(TSize(100, 100));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3043
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3044
    // Create display object
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3045
    GetDisplayL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3046
    CreateEglSessionL();    // initialise EGL Session so we can make use of its helper objects
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3047
    iEglSess->InitializeL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3048
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3049
    // Choose EGL config
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3050
    EGLConfig matchingConfigs[1];
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3051
    EGLint numConfigs = 0;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3052
    ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KScalingConfigAttribs[EWindowAttribsColor16MU_Scaling], matchingConfigs, 1, &numConfigs));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3053
    TESTL(numConfigs == 1); // Abort the test if the EGL config is not supported
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3054
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3055
    const TInt KWindowWidth = iWindow.Size().iWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3056
    const TInt KWindowHeight = iWindow.Size().iHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3057
    const TInt KSurfaceWidth = KWindowWidth/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3058
    const TInt KSurfaceHeight = KWindowHeight/2;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3059
    const TInt KExtentWidth = KWindowWidth;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3060
    const TInt KExtentHeight = KWindowHeight;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3061
    const EGLint KOffsetX = 11;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3062
    const EGLint KOffsetY = 13;
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3063
    EGLint attrib_list[] = {
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3064
                  EGL_FIXED_WIDTH_NOK, KSurfaceWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3065
                  EGL_FIXED_HEIGHT_NOK, KSurfaceHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3066
                  EGL_TARGET_EXTENT_OFFSET_X_NOK, KOffsetX,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3067
                  EGL_TARGET_EXTENT_OFFSET_Y_NOK, KOffsetY,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3068
                  EGL_TARGET_EXTENT_WIDTH_NOK, KExtentWidth,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3069
                  EGL_TARGET_EXTENT_HEIGHT_NOK, KExtentHeight,
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3070
                  EGL_NONE};
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3071
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3072
    // Create the window surface and the egl context and make them current
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3073
    iEglSess->CreateWindowSurfaceAndMakeCurrentL(matchingConfigs[0], iWindow, EFalse, EGL_OPENVG_API, 1, attrib_list);    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3074
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3075
    // First set new offset attributes (fairly simple, so should be supported)
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3076
    INFO_PRINTF1(_L("Set new offset attributes - should succeed..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3077
    EGLint capability = -1; 	//arbitrary number beyond the existing range 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3078
    ASSERT_EGL_TRUE(iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, matchingConfigs[0], KSurfaceWidth, KSurfaceHeight, KExtentWidth, KExtentHeight, &capability));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3079
    TEST((capability == EGL_SUPPORTED_NOK) || (capability == EGL_SLOW_NOK));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3080
    ASSERT_EGL_TRUE(iPfnEglSetSurfaceScalingNOK(iDisplay, iEglSess->Surface(), KOffsetX+1, KOffsetY+1, KExtentWidth, KExtentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3081
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3082
    // Terminate display and try again
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3083
    INFO_PRINTF1(_L("Terminate display and try again, should fail now..."));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3084
    eglTerminate(iDisplay);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3085
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3086
    capability = -1; 	//arbitrary number beyond the existing range 
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3087
    TEST(EGL_FALSE == iPfnEglQuerySurfaceScalingCapabilityNOK(iDisplay, matchingConfigs[0], KSurfaceWidth, KSurfaceHeight, KExtentWidth, KExtentHeight, &capability));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3088
    TEST(capability == -1); //make sure that value has not been modified
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3089
    ASSERT_EGL_ERROR(EGL_NOT_INITIALIZED);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3090
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3091
    TEST(EGL_FALSE == iPfnEglSetSurfaceScalingNOK(iDisplay, iEglSess->Surface(), KOffsetX, KOffsetY, KExtentWidth, KExtentHeight));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3092
    ASSERT_EGL_ERROR(EGL_NOT_INITIALIZED);
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3093
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3094
    // Cleanup
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3095
    CleanAll();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3096
    CloseWindow();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3097
    
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3098
    INFO_PRINTF1(_L("....CEglTest_SurfaceScalingNotInitialized::doTestStepL completed!"));
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3099
    RecordTestResultL();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3100
    CloseTMSGraphicsStep();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3101
    return TestStepResult();
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3102
    }
d72fc2aace31 201027_1
hgs
parents:
diff changeset
  3103