--- a/windowing/windowserver/tauto/TTransptAnim.cpp Tue Jun 22 15:21:29 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +0,0 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-/**
- @file
- @test
- @internalComponent - Internal Symbian test code
-*/
-#include "TTransptAnim.h"
-
-struct FrameSet
- {
- TRgb* iFrames;
- const TInt iFrameCount;
- FrameSet(TRgb* aFrames, const TInt aFrameCount)
- : iFrames(aFrames),
- iFrameCount(aFrameCount)
- {
- }
- };
-
-TRgb FrameSequenceAlpha[]=
-{ 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) };
-TRgb FrameSequenceNoAlpha[] =
-{ TRgb(255, 0, 0), TRgb(0, 255, 0), TRgb(0, 0, 255), TRgb(255, 255, 0), TRgb(0, 255, 255) };
-
-FrameSet frameSetAlpha(FrameSequenceAlpha, sizeof(FrameSequenceAlpha)/sizeof(TRgb));
-FrameSet frameSetNoAlpha(FrameSequenceNoAlpha, sizeof(FrameSequenceNoAlpha)/sizeof(TRgb));
-FrameSet TestFrameSets[] =
- {
- frameSetAlpha, frameSetNoAlpha
- };
-
-static const TInt FRAME_DELAY = 2000000;
-static const TInt DRAW_LINE_ANIMATION = 36;
-static const TBool ALPHATRANSPARENCY_ON = ETrue;
-static const TInt ALPHA_FRAMESET = 0;
-
-//*****************************************************************************
-CTTestCase* CTTransparentAnim::CreateTestCaseL(CTTransparentAnim* aTransAnim, TInt aTestCaseId)
- {
- CTTestCase* testCase = aTransAnim->GetCurrent();
-
- if (!testCase)
- {
- switch (aTestCaseId)
- {
- case GraphicsWServ0483 :
- testCase = CTGraphicsWServ0483::NewL();
- break;
- }
- }
-
- return testCase;
- }
-
-//*****************************************************************************
-CTTransparentAnim::CTTransparentAnim(CTestStep* aStep)
-: CTWsGraphicsBase(aStep), iCurrentTestCase(NULL)
- {}
-
-CTTransparentAnim::~CTTransparentAnim()
- {
- TheClient->iWs.SetAutoFlush(EFalse);
- }
-
-void CTTransparentAnim::ConstructL()
- {
- TheClient->iWs.SetAutoFlush(ETrue);
- }
-
-void CTTransparentAnim::RunTestCaseL(TInt)
- {
- ((CTTransparentAnimStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0483"));
- CTTestCase* testCase = CTTransparentAnim::CreateTestCaseL(this, iTest->iState);
-
- if (!testCase)
- {
- TestComplete();
- return ;
- }
-
- TInt err = KErrNone;
-
- if (!testCase->IsAlreadyRunning())
- {
- SetCurrent(testCase);
- iTest->LogSubTest(testCase->TestCaseName());
- TRAP(err, testCase->StartL());
- testCase->SetError(err);
- }
-
- if (testCase->IsComplete() || err != KErrNone)
- {
- ((CTTransparentAnimStep*)iStep)->RecordTestResultL();
- ((CTTransparentAnimStep*)iStep)->CloseTMSGraphicsStep();
- if (testCase->HasFailed())
- {
- INFO_PRINTF3(_L("ErrorStatus - Expected: %d, Actual: %d"), ETrue, EFalse);
- }
- ++iTest->iState;
- SetCurrent(NULL);
- delete testCase;
- }
- else
- {
- // Prevent test harness from repeatedly running the test case too quickly.
- User::After(TTimeIntervalMicroSeconds32(FRAME_DELAY));
- }
- }
-
-void CTTransparentAnim::SetCurrent(CTTestCase* aTestCase)
- {
- iCurrentTestCase = aTestCase;
- }
-
-CTTestCase* CTTransparentAnim::GetCurrent()
- {
- return iCurrentTestCase;
- }
-
-//*****************************************************************************
-CTTAnimation::CTTAnimation(CTWin* aWin, TInt aDrawArg)
-: iWin(aWin), iFrameCount(0), iCurrentFrameSet(0), iIsComplete(EFalse), iDrawArg(aDrawArg)
- {
- iAnimDll = RAnimDll(TheClient->iWs);
- iAnimDll.Load(KAnimDLLName);
- iDrawAnim = RTestAnim(iAnimDll);
- iDrawAnim.Construct(*iWin->BaseWin(), EAnimTypeTrans, TPckgBuf<TRect>(aWin->Size()));
- }
-
-CTTAnimation::~CTTAnimation()
- {
- iDrawAnim.Close();
- iAnimDll.Close();
- delete iWin;
- }
-
-void CTTAnimation::StartL()
- {
- iAnimTimer.ConstructL();
- iAnimTimer.Start(FRAME_DELAY, TCallBack(CTTAnimation::NextFrame,this));
- }
-
-TBool CTTAnimation::IsComplete()
- {
- return iIsComplete;
- }
-
-void CTTAnimation::SetCurrentFrameSet(TInt aFrameSet)
- {
- iCurrentFrameSet = aFrameSet;
- }
-
-CTWin* CTTAnimation::GetWindow()
- {
- return iWin;
- }
-
-void CTTAnimation::Attach(MAnimationObserver* aObserver)
- {
- iObserver = aObserver;
- }
-
-TInt CTTAnimation::NextFrame(TAny* aAnim)
- {
- STATIC_CAST(CTTAnimation*,aAnim)->NextFrame();
-
- return KErrNone;
- }
-
-void CTTAnimation::NextFrame()
- {
- TRgb Color;
- TPckgBuf<TFrameData> paramsPckg;
-
- if (iFrameCount == TestFrameSets[iCurrentFrameSet].iFrameCount)
- {
- iIsComplete = ETrue;
- iObserver->Update(this);
- return ;
- }
-
- Color = TestFrameSets[iCurrentFrameSet].iFrames[iFrameCount++];
-
- paramsPckg().draw = iDrawArg;
- paramsPckg().color = Color;
-
- iDrawAnim.Command(EADllNextFrame, paramsPckg);
-
- iAnimTimer.Start(FRAME_DELAY, TCallBack(CTTAnimation::NextFrame,this));
- }
-
-//*****************************************************************************
-CTransAnimTimer::CTransAnimTimer()
-: CTimer(EPriorityStandard)
- {}
-
-CTransAnimTimer::~CTransAnimTimer()
- {}
-
-void CTransAnimTimer::ConstructL()
- {
- CTimer::ConstructL();
- CActiveScheduler::Add(this);
- }
-
-void CTransAnimTimer::RunL()
- {
- iCallBack.CallBack();
- }
-
-void CTransAnimTimer::Start(TTimeIntervalMicroSeconds32 aInterval,TCallBack aCallBack)
- {
- iCallBack = aCallBack;
- After(aInterval);
- }
-
-//*****************************************************************************
-CTTestCase::CTTestCase()
-: iError(KErrNone), iIsComplete(EFalse), iIsRunning(EFalse)
- {}
-
-TBool CTTestCase::IsAlreadyRunning()
- {
- return iIsRunning;
- }
-
-void CTTestCase::Update(CTTAnimation* aAnim)
- {
- iIsComplete = aAnim->IsComplete();
- }
-
-TBool CTTestCase::IsComplete()
- {
- return iIsComplete;
- }
-
-void CTTestCase::StartL()
- {
- if (!iIsRunning)
- {
- RunTestCaseL();
- iIsRunning = ETrue;
- }
- }
-
-TBool CTTestCase::HasFailed()
- {
- TBool ret = EFalse;
- if (iError != KErrNone)
- {
- ret = ETrue;
- }
- return ret;
- }
-
-void CTTestCase::SetIsCompleted(TBool aIsComplete)
- {
- iIsComplete = aIsComplete;
- }
-
-void CTTestCase::SetError(TInt aError)
- {
- iError = aError;
- }
-
-//*********************** New Test Case Classes go here************************
-
-/**
- * @SYMTestCaseID GRAPHICS-WSERV-0483
- *
- * @SYMTestCaseDesc There are two animations running, one attached to a transparent
- * window using SetTransparencyAlphaChannel and a second animation with a non-transparent
- * window. The animations draw a line and then change the color of the line in subsequent
- * frames. After the last frame the alpha channel for the first animation is set to
- * opaque and then compared with the second animation to make certain that no artifacts
- * are present.
- *
- * @SYMTestPriority High
- *
- * @SYMTestStatus Implemented
- *
- * @SYMTestActions An anim is attached with a Transparent window.
- * The anim draws several frames using WSERV's Anim animation functionality.
- *
- * @SYMTestExpectedResults Both animations draw a line and then change it's color, the first
- * animation doing it in a tranparent window and the second doing it in a non-transparent window.
- **/
-CTGraphicsWServ0483* CTGraphicsWServ0483::NewL()
- {
- CTGraphicsWServ0483* testCase = new(ELeave) CTGraphicsWServ0483();
-
- CleanupStack::PushL(testCase);
- testCase->ConstructL();
- CleanupStack::Pop();
-
- return testCase;
- }
-
-CTGraphicsWServ0483::~CTGraphicsWServ0483()
- {
- delete iAnim;
- delete iCheckAnim;
- }
-
-void CTGraphicsWServ0483::ConstructL()
- {
- iAnim = new(ELeave) CTTAnimation(CTAnimWin<ALPHATRANSPARENCY_ON>::NewL(
- BaseWin->GetBorderWin()->Position(),
- BaseWin->GetBorderWin()->Size()), DRAW_LINE_ANIMATION);
-
- iCheckAnim = new(ELeave) CTTAnimation(CTAnimWin<>::NewL(
- TestWin->GetBorderWin()->Position(),
- TestWin->GetBorderWin()->Size()), DRAW_LINE_ANIMATION);
- TheClient->WaitForRedrawsToFinish();
- }
-
-void CTGraphicsWServ0483::RunTestCaseL()
- {
- iAnim->Attach(this);
- iCheckAnim->Attach(this);
-
- iAnim->SetCurrentFrameSet(ALPHA_FRAMESET);
- iAnim->StartL();
-
- iCheckAnim->SetCurrentFrameSet(ALPHA_FRAMESET);
- iCheckAnim->StartL();
- }
-
-void CTGraphicsWServ0483::Update(CTTAnimation*)
- {
- if (iAnim->IsComplete() && iCheckAnim->IsComplete())
- {
- TRgb bgColor(150, 150, 150, 255);
- iAnim->GetWindow()->Win()->SetBackgroundColor(bgColor);
- iAnim->GetWindow()->Win()->Invalidate();
- TheClient->iWs.Finish();
- TheClient->WaitForRedrawsToFinish();
- if (!DoCheckRect(iAnim->GetWindow(), iCheckAnim->GetWindow()))
- {
- SetError(KErrGeneral);
- }
- SetIsCompleted(ETrue);
- }
- }
-
-TPtrC CTGraphicsWServ0483::TestCaseName()
- {
- _LIT(KTransparentAlphaChannelAnimationTest, "Transparent Anim Test");
-
- return TPtrC(KTransparentAlphaChannelAnimationTest);
- }
-
-__WS_CONSTRUCT_STEP__(TransparentAnim)