windowing/windowserver/test/tauto/TTransptAnim.cpp
author hgs
Tue, 22 Jun 2010 15:21:29 +0300
changeset 103 2717213c588a
permissions -rw-r--r--
201024
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
103
hgs
parents:
diff changeset
     1
// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     2
// All rights reserved.
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     7
//
hgs
parents:
diff changeset
     8
// Initial Contributors:
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    10
//
hgs
parents:
diff changeset
    11
// Contributors:
hgs
parents:
diff changeset
    12
//
hgs
parents:
diff changeset
    13
// Description:
hgs
parents:
diff changeset
    14
//
hgs
parents:
diff changeset
    15
hgs
parents:
diff changeset
    16
/**
hgs
parents:
diff changeset
    17
 @file
hgs
parents:
diff changeset
    18
 @test
hgs
parents:
diff changeset
    19
 @internalComponent - Internal Symbian test code
hgs
parents:
diff changeset
    20
*/
hgs
parents:
diff changeset
    21
#include "TTransptAnim.h"
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
struct FrameSet
hgs
parents:
diff changeset
    24
	{
hgs
parents:
diff changeset
    25
	TRgb* iFrames;
hgs
parents:
diff changeset
    26
	const TInt iFrameCount;
hgs
parents:
diff changeset
    27
	FrameSet(TRgb* aFrames, const TInt aFrameCount)
hgs
parents:
diff changeset
    28
	: iFrames(aFrames),
hgs
parents:
diff changeset
    29
	iFrameCount(aFrameCount)
hgs
parents:
diff changeset
    30
		{
hgs
parents:
diff changeset
    31
		}
hgs
parents:
diff changeset
    32
	};
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
TRgb FrameSequenceAlpha[]= 
hgs
parents:
diff changeset
    35
{ TRgb(255, 0, 0, 50), TRgb(0, 255, 0, 70), TRgb(0, 0, 255, 100), TRgb(255, 255, 0, 150), TRgb(0, 255, 255, 200) };
hgs
parents:
diff changeset
    36
TRgb FrameSequenceNoAlpha[] =
hgs
parents:
diff changeset
    37
{ TRgb(255, 0, 0), TRgb(0, 255, 0), TRgb(0, 0, 255), TRgb(255, 255, 0), TRgb(0, 255, 255) };
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
FrameSet frameSetAlpha(FrameSequenceAlpha, 	sizeof(FrameSequenceAlpha)/sizeof(TRgb));
hgs
parents:
diff changeset
    40
FrameSet frameSetNoAlpha(FrameSequenceNoAlpha, sizeof(FrameSequenceNoAlpha)/sizeof(TRgb));
hgs
parents:
diff changeset
    41
FrameSet TestFrameSets[] =
hgs
parents:
diff changeset
    42
	{
hgs
parents:
diff changeset
    43
	frameSetAlpha, frameSetNoAlpha
hgs
parents:
diff changeset
    44
	};
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
static const TInt 	FRAME_DELAY 			= 2000000;
hgs
parents:
diff changeset
    47
static const TInt 	DRAW_LINE_ANIMATION 	= 36;
hgs
parents:
diff changeset
    48
static const TBool 	ALPHATRANSPARENCY_ON 	= ETrue;
hgs
parents:
diff changeset
    49
static const TInt	ALPHA_FRAMESET 			= 0;
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
//*****************************************************************************
hgs
parents:
diff changeset
    52
CTTestCase* CTTransparentAnim::CreateTestCaseL(CTTransparentAnim* aTransAnim, TInt aTestCaseId)
hgs
parents:
diff changeset
    53
	{
hgs
parents:
diff changeset
    54
	CTTestCase* testCase = aTransAnim->GetCurrent();
hgs
parents:
diff changeset
    55
	
hgs
parents:
diff changeset
    56
	if (!testCase)
hgs
parents:
diff changeset
    57
		{
hgs
parents:
diff changeset
    58
		switch (aTestCaseId)
hgs
parents:
diff changeset
    59
			{
hgs
parents:
diff changeset
    60
		case GraphicsWServ0483 :
hgs
parents:
diff changeset
    61
			testCase =  CTGraphicsWServ0483::NewL();
hgs
parents:
diff changeset
    62
			break;
hgs
parents:
diff changeset
    63
			}
hgs
parents:
diff changeset
    64
		}
hgs
parents:
diff changeset
    65
	
hgs
parents:
diff changeset
    66
	return testCase;
hgs
parents:
diff changeset
    67
	}
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
//*****************************************************************************
hgs
parents:
diff changeset
    70
CTTransparentAnim::CTTransparentAnim(CTestStep* aStep)
hgs
parents:
diff changeset
    71
: CTWsGraphicsBase(aStep), iCurrentTestCase(NULL)
hgs
parents:
diff changeset
    72
	{}
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
CTTransparentAnim::~CTTransparentAnim()
hgs
parents:
diff changeset
    75
	{
hgs
parents:
diff changeset
    76
	TheClient->iWs.SetAutoFlush(EFalse);
hgs
parents:
diff changeset
    77
	}
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
void CTTransparentAnim::ConstructL()
hgs
parents:
diff changeset
    80
	{
hgs
parents:
diff changeset
    81
	TheClient->iWs.SetAutoFlush(ETrue);
hgs
parents:
diff changeset
    82
	}
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
void CTTransparentAnim::RunTestCaseL(TInt)
hgs
parents:
diff changeset
    85
	{
hgs
parents:
diff changeset
    86
	((CTTransparentAnimStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0483"));
hgs
parents:
diff changeset
    87
	CTTestCase* testCase = CTTransparentAnim::CreateTestCaseL(this, iTest->iState);
hgs
parents:
diff changeset
    88
	
hgs
parents:
diff changeset
    89
	if (!testCase)
hgs
parents:
diff changeset
    90
		{
hgs
parents:
diff changeset
    91
		TestComplete();
hgs
parents:
diff changeset
    92
		return ;
hgs
parents:
diff changeset
    93
		}
hgs
parents:
diff changeset
    94
hgs
parents:
diff changeset
    95
	TInt err = KErrNone;
hgs
parents:
diff changeset
    96
	
hgs
parents:
diff changeset
    97
	if (!testCase->IsAlreadyRunning())
hgs
parents:
diff changeset
    98
		{
hgs
parents:
diff changeset
    99
		SetCurrent(testCase);
hgs
parents:
diff changeset
   100
		iTest->LogSubTest(testCase->TestCaseName());
hgs
parents:
diff changeset
   101
		TRAP(err, testCase->StartL());
hgs
parents:
diff changeset
   102
		testCase->SetError(err);
hgs
parents:
diff changeset
   103
		}
hgs
parents:
diff changeset
   104
	
hgs
parents:
diff changeset
   105
	if (testCase->IsComplete() || err != KErrNone)
hgs
parents:
diff changeset
   106
		{
hgs
parents:
diff changeset
   107
		((CTTransparentAnimStep*)iStep)->RecordTestResultL();
hgs
parents:
diff changeset
   108
		((CTTransparentAnimStep*)iStep)->CloseTMSGraphicsStep();
hgs
parents:
diff changeset
   109
		if (testCase->HasFailed())
hgs
parents:
diff changeset
   110
			{
hgs
parents:
diff changeset
   111
			INFO_PRINTF3(_L("ErrorStatus  - Expected: %d, Actual: %d"), ETrue, EFalse);
hgs
parents:
diff changeset
   112
			}
hgs
parents:
diff changeset
   113
		++iTest->iState;
hgs
parents:
diff changeset
   114
		SetCurrent(NULL);
hgs
parents:
diff changeset
   115
		delete testCase;
hgs
parents:
diff changeset
   116
		}
hgs
parents:
diff changeset
   117
	else
hgs
parents:
diff changeset
   118
		{
hgs
parents:
diff changeset
   119
		// Prevent test harness from repeatedly running the test case too quickly.
hgs
parents:
diff changeset
   120
		User::After(TTimeIntervalMicroSeconds32(FRAME_DELAY));
hgs
parents:
diff changeset
   121
		}
hgs
parents:
diff changeset
   122
	}
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
void CTTransparentAnim::SetCurrent(CTTestCase* aTestCase)
hgs
parents:
diff changeset
   125
	{
hgs
parents:
diff changeset
   126
	iCurrentTestCase = aTestCase;
hgs
parents:
diff changeset
   127
	}
hgs
parents:
diff changeset
   128
hgs
parents:
diff changeset
   129
CTTestCase* CTTransparentAnim::GetCurrent()
hgs
parents:
diff changeset
   130
	{
hgs
parents:
diff changeset
   131
	return iCurrentTestCase;
hgs
parents:
diff changeset
   132
	}
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
//*****************************************************************************
hgs
parents:
diff changeset
   135
CTTAnimation::CTTAnimation(CTWin* aWin, TInt aDrawArg)
hgs
parents:
diff changeset
   136
: iWin(aWin), iFrameCount(0), iCurrentFrameSet(0), iIsComplete(EFalse), iDrawArg(aDrawArg)
hgs
parents:
diff changeset
   137
	{
hgs
parents:
diff changeset
   138
	iAnimDll = RAnimDll(TheClient->iWs);
hgs
parents:
diff changeset
   139
	iAnimDll.Load(KAnimDLLName);
hgs
parents:
diff changeset
   140
	iDrawAnim = RTestAnim(iAnimDll);
hgs
parents:
diff changeset
   141
	iDrawAnim.Construct(*iWin->BaseWin(), EAnimTypeTrans, TPckgBuf<TRect>(aWin->Size()));
hgs
parents:
diff changeset
   142
	}
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
CTTAnimation::~CTTAnimation()
hgs
parents:
diff changeset
   145
	{
hgs
parents:
diff changeset
   146
	iDrawAnim.Close();
hgs
parents:
diff changeset
   147
	iAnimDll.Close();
hgs
parents:
diff changeset
   148
	delete iWin;
hgs
parents:
diff changeset
   149
	}
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
void CTTAnimation::StartL()
hgs
parents:
diff changeset
   152
	{
hgs
parents:
diff changeset
   153
	iAnimTimer.ConstructL();
hgs
parents:
diff changeset
   154
	iAnimTimer.Start(FRAME_DELAY, TCallBack(CTTAnimation::NextFrame,this));
hgs
parents:
diff changeset
   155
	}
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
TBool CTTAnimation::IsComplete()
hgs
parents:
diff changeset
   158
	{
hgs
parents:
diff changeset
   159
	return iIsComplete;
hgs
parents:
diff changeset
   160
	}
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
void CTTAnimation::SetCurrentFrameSet(TInt aFrameSet)
hgs
parents:
diff changeset
   163
	{
hgs
parents:
diff changeset
   164
	iCurrentFrameSet = aFrameSet;
hgs
parents:
diff changeset
   165
	}
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
CTWin* CTTAnimation::GetWindow()
hgs
parents:
diff changeset
   168
	{
hgs
parents:
diff changeset
   169
	return iWin;
hgs
parents:
diff changeset
   170
	}
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
void CTTAnimation::Attach(MAnimationObserver* aObserver)
hgs
parents:
diff changeset
   173
	{
hgs
parents:
diff changeset
   174
	iObserver = aObserver;
hgs
parents:
diff changeset
   175
	}
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
TInt CTTAnimation::NextFrame(TAny* aAnim)
hgs
parents:
diff changeset
   178
	{
hgs
parents:
diff changeset
   179
	STATIC_CAST(CTTAnimation*,aAnim)->NextFrame();
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
	return KErrNone;
hgs
parents:
diff changeset
   182
	}
hgs
parents:
diff changeset
   183
hgs
parents:
diff changeset
   184
void CTTAnimation::NextFrame()
hgs
parents:
diff changeset
   185
	{
hgs
parents:
diff changeset
   186
	TRgb Color;
hgs
parents:
diff changeset
   187
	TPckgBuf<TFrameData> paramsPckg;
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
	if (iFrameCount == TestFrameSets[iCurrentFrameSet].iFrameCount)
hgs
parents:
diff changeset
   190
		{
hgs
parents:
diff changeset
   191
		iIsComplete = ETrue;
hgs
parents:
diff changeset
   192
		iObserver->Update(this);
hgs
parents:
diff changeset
   193
		return ;
hgs
parents:
diff changeset
   194
		}
hgs
parents:
diff changeset
   195
	
hgs
parents:
diff changeset
   196
	Color = TestFrameSets[iCurrentFrameSet].iFrames[iFrameCount++];
hgs
parents:
diff changeset
   197
	
hgs
parents:
diff changeset
   198
	paramsPckg().draw = iDrawArg;
hgs
parents:
diff changeset
   199
	paramsPckg().color = Color;
hgs
parents:
diff changeset
   200
	
hgs
parents:
diff changeset
   201
	iDrawAnim.Command(EADllNextFrame, paramsPckg);
hgs
parents:
diff changeset
   202
hgs
parents:
diff changeset
   203
	iAnimTimer.Start(FRAME_DELAY, TCallBack(CTTAnimation::NextFrame,this));
hgs
parents:
diff changeset
   204
	}
hgs
parents:
diff changeset
   205
hgs
parents:
diff changeset
   206
//*****************************************************************************
hgs
parents:
diff changeset
   207
CTransAnimTimer::CTransAnimTimer() 
hgs
parents:
diff changeset
   208
: CTimer(EPriorityStandard)
hgs
parents:
diff changeset
   209
	{}
hgs
parents:
diff changeset
   210
hgs
parents:
diff changeset
   211
CTransAnimTimer::~CTransAnimTimer()
hgs
parents:
diff changeset
   212
	{}
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
void CTransAnimTimer::ConstructL()
hgs
parents:
diff changeset
   215
	{
hgs
parents:
diff changeset
   216
	CTimer::ConstructL();
hgs
parents:
diff changeset
   217
	CActiveScheduler::Add(this);
hgs
parents:
diff changeset
   218
	}
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
void CTransAnimTimer::RunL()
hgs
parents:
diff changeset
   221
	{
hgs
parents:
diff changeset
   222
	iCallBack.CallBack();
hgs
parents:
diff changeset
   223
	}
hgs
parents:
diff changeset
   224
hgs
parents:
diff changeset
   225
void CTransAnimTimer::Start(TTimeIntervalMicroSeconds32 aInterval,TCallBack aCallBack)
hgs
parents:
diff changeset
   226
	{
hgs
parents:
diff changeset
   227
	iCallBack = aCallBack;
hgs
parents:
diff changeset
   228
	After(aInterval);
hgs
parents:
diff changeset
   229
	}
hgs
parents:
diff changeset
   230
hgs
parents:
diff changeset
   231
//*****************************************************************************
hgs
parents:
diff changeset
   232
CTTestCase::CTTestCase()
hgs
parents:
diff changeset
   233
: iError(KErrNone), iIsComplete(EFalse), iIsRunning(EFalse)
hgs
parents:
diff changeset
   234
	{}
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
TBool CTTestCase::IsAlreadyRunning()
hgs
parents:
diff changeset
   237
	{
hgs
parents:
diff changeset
   238
	return iIsRunning;
hgs
parents:
diff changeset
   239
	}
hgs
parents:
diff changeset
   240
hgs
parents:
diff changeset
   241
void CTTestCase::Update(CTTAnimation* aAnim)
hgs
parents:
diff changeset
   242
	{
hgs
parents:
diff changeset
   243
	iIsComplete = aAnim->IsComplete();
hgs
parents:
diff changeset
   244
	}
hgs
parents:
diff changeset
   245
hgs
parents:
diff changeset
   246
TBool CTTestCase::IsComplete()
hgs
parents:
diff changeset
   247
	{
hgs
parents:
diff changeset
   248
	return iIsComplete;
hgs
parents:
diff changeset
   249
	}
hgs
parents:
diff changeset
   250
hgs
parents:
diff changeset
   251
void CTTestCase::StartL()
hgs
parents:
diff changeset
   252
	{
hgs
parents:
diff changeset
   253
	if (!iIsRunning)
hgs
parents:
diff changeset
   254
		{
hgs
parents:
diff changeset
   255
		RunTestCaseL();
hgs
parents:
diff changeset
   256
		iIsRunning = ETrue;
hgs
parents:
diff changeset
   257
		}
hgs
parents:
diff changeset
   258
	}
hgs
parents:
diff changeset
   259
hgs
parents:
diff changeset
   260
TBool CTTestCase::HasFailed()
hgs
parents:
diff changeset
   261
	{
hgs
parents:
diff changeset
   262
	TBool ret = EFalse;
hgs
parents:
diff changeset
   263
	if (iError != KErrNone)
hgs
parents:
diff changeset
   264
		{
hgs
parents:
diff changeset
   265
		ret = ETrue;
hgs
parents:
diff changeset
   266
		}
hgs
parents:
diff changeset
   267
	return ret;
hgs
parents:
diff changeset
   268
	}
hgs
parents:
diff changeset
   269
hgs
parents:
diff changeset
   270
void CTTestCase::SetIsCompleted(TBool aIsComplete)
hgs
parents:
diff changeset
   271
	{
hgs
parents:
diff changeset
   272
	iIsComplete = aIsComplete;
hgs
parents:
diff changeset
   273
	}
hgs
parents:
diff changeset
   274
hgs
parents:
diff changeset
   275
void CTTestCase::SetError(TInt aError)
hgs
parents:
diff changeset
   276
	{
hgs
parents:
diff changeset
   277
	iError = aError;
hgs
parents:
diff changeset
   278
	}
hgs
parents:
diff changeset
   279
hgs
parents:
diff changeset
   280
//*********************** New Test Case Classes go here************************
hgs
parents:
diff changeset
   281
hgs
parents:
diff changeset
   282
/**
hgs
parents:
diff changeset
   283
 * @SYMTestCaseID GRAPHICS-WSERV-0483
hgs
parents:
diff changeset
   284
 *
hgs
parents:
diff changeset
   285
 * @SYMTestCaseDesc There are two animations running, one attached to a transparent
hgs
parents:
diff changeset
   286
 * window using SetTransparencyAlphaChannel and a second animation with a non-transparent
hgs
parents:
diff changeset
   287
 * window. The animations draw a line and then change the color of the line in subsequent
hgs
parents:
diff changeset
   288
 * frames. After the last frame the alpha channel for the first animation is set to
hgs
parents:
diff changeset
   289
 * opaque and then compared with the second animation to make certain that no artifacts
hgs
parents:
diff changeset
   290
 * are present.
hgs
parents:
diff changeset
   291
 *
hgs
parents:
diff changeset
   292
 * @SYMTestPriority High
hgs
parents:
diff changeset
   293
 *
hgs
parents:
diff changeset
   294
 * @SYMTestStatus Implemented
hgs
parents:
diff changeset
   295
 *
hgs
parents:
diff changeset
   296
 * @SYMTestActions An anim is attached with a Transparent window.
hgs
parents:
diff changeset
   297
 * 	The anim draws several frames using WSERV's Anim animation functionality.
hgs
parents:
diff changeset
   298
 *
hgs
parents:
diff changeset
   299
 * @SYMTestExpectedResults Both animations draw a line and then change it's color, the first
hgs
parents:
diff changeset
   300
 * animation doing it in a tranparent window and the second doing it in a non-transparent window.
hgs
parents:
diff changeset
   301
 **/
hgs
parents:
diff changeset
   302
CTGraphicsWServ0483* CTGraphicsWServ0483::NewL()
hgs
parents:
diff changeset
   303
	{
hgs
parents:
diff changeset
   304
	CTGraphicsWServ0483* testCase = new(ELeave) CTGraphicsWServ0483();
hgs
parents:
diff changeset
   305
	
hgs
parents:
diff changeset
   306
	CleanupStack::PushL(testCase);
hgs
parents:
diff changeset
   307
	testCase->ConstructL();
hgs
parents:
diff changeset
   308
	CleanupStack::Pop();
hgs
parents:
diff changeset
   309
	
hgs
parents:
diff changeset
   310
	return testCase;
hgs
parents:
diff changeset
   311
	}
hgs
parents:
diff changeset
   312
hgs
parents:
diff changeset
   313
CTGraphicsWServ0483::~CTGraphicsWServ0483()
hgs
parents:
diff changeset
   314
	{
hgs
parents:
diff changeset
   315
	delete iAnim;
hgs
parents:
diff changeset
   316
	delete iCheckAnim;
hgs
parents:
diff changeset
   317
	}
hgs
parents:
diff changeset
   318
hgs
parents:
diff changeset
   319
void CTGraphicsWServ0483::ConstructL()
hgs
parents:
diff changeset
   320
	{
hgs
parents:
diff changeset
   321
	iAnim = new(ELeave) CTTAnimation(CTAnimWin<ALPHATRANSPARENCY_ON>::NewL(
hgs
parents:
diff changeset
   322
										BaseWin->GetBorderWin()->Position(),
hgs
parents:
diff changeset
   323
										BaseWin->GetBorderWin()->Size()), DRAW_LINE_ANIMATION);
hgs
parents:
diff changeset
   324
	
hgs
parents:
diff changeset
   325
	iCheckAnim = new(ELeave) CTTAnimation(CTAnimWin<>::NewL(
hgs
parents:
diff changeset
   326
										TestWin->GetBorderWin()->Position(),
hgs
parents:
diff changeset
   327
										TestWin->GetBorderWin()->Size()), DRAW_LINE_ANIMATION);
hgs
parents:
diff changeset
   328
	TheClient->WaitForRedrawsToFinish();
hgs
parents:
diff changeset
   329
	}
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
void CTGraphicsWServ0483::RunTestCaseL()
hgs
parents:
diff changeset
   332
	{
hgs
parents:
diff changeset
   333
	iAnim->Attach(this);
hgs
parents:
diff changeset
   334
	iCheckAnim->Attach(this);
hgs
parents:
diff changeset
   335
	
hgs
parents:
diff changeset
   336
	iAnim->SetCurrentFrameSet(ALPHA_FRAMESET);
hgs
parents:
diff changeset
   337
	iAnim->StartL();
hgs
parents:
diff changeset
   338
	
hgs
parents:
diff changeset
   339
	iCheckAnim->SetCurrentFrameSet(ALPHA_FRAMESET);
hgs
parents:
diff changeset
   340
	iCheckAnim->StartL();	
hgs
parents:
diff changeset
   341
	}
hgs
parents:
diff changeset
   342
hgs
parents:
diff changeset
   343
void CTGraphicsWServ0483::Update(CTTAnimation*)
hgs
parents:
diff changeset
   344
	{
hgs
parents:
diff changeset
   345
	if (iAnim->IsComplete() && iCheckAnim->IsComplete())
hgs
parents:
diff changeset
   346
		{
hgs
parents:
diff changeset
   347
		TRgb bgColor(150, 150, 150, 255); 
hgs
parents:
diff changeset
   348
		iAnim->GetWindow()->Win()->SetBackgroundColor(bgColor);
hgs
parents:
diff changeset
   349
		iAnim->GetWindow()->Win()->Invalidate();
hgs
parents:
diff changeset
   350
		TheClient->iWs.Finish();
hgs
parents:
diff changeset
   351
		TheClient->WaitForRedrawsToFinish();
hgs
parents:
diff changeset
   352
		if (!DoCheckRect(iAnim->GetWindow(), iCheckAnim->GetWindow()))
hgs
parents:
diff changeset
   353
			{
hgs
parents:
diff changeset
   354
			SetError(KErrGeneral);
hgs
parents:
diff changeset
   355
			}
hgs
parents:
diff changeset
   356
		SetIsCompleted(ETrue);
hgs
parents:
diff changeset
   357
		}
hgs
parents:
diff changeset
   358
	}
hgs
parents:
diff changeset
   359
hgs
parents:
diff changeset
   360
TPtrC CTGraphicsWServ0483::TestCaseName()
hgs
parents:
diff changeset
   361
	{
hgs
parents:
diff changeset
   362
	_LIT(KTransparentAlphaChannelAnimationTest, "Transparent Anim Test");
hgs
parents:
diff changeset
   363
	
hgs
parents:
diff changeset
   364
	return TPtrC(KTransparentAlphaChannelAnimationTest);
hgs
parents:
diff changeset
   365
	}
hgs
parents:
diff changeset
   366
hgs
parents:
diff changeset
   367
__WS_CONSTRUCT_STEP__(TransparentAnim)