uiacceltk/hitchcock/coretoolkit/src/HuiStatic_stubs.cpp
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiStatic_stubs.cpp	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,132 @@
+/*
+* Copyright (c) 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: 
+*
+*/
+
+#include "uiacceltk/huiStatic.h"  // Class definition
+#include "uiacceltk/huiUtil.h"
+#include "uiacceltk/huiEnv.h"
+#include "huirenderplugin.h"
+#include "huistatictlsdata.h"
+#include "uiacceltk/huiProbe.h"
+#include <e32math.h>
+#include <eikenv.h>
+#include <flogger.h>
+
+
+
+void CHuiStatic::UpdateTime(TTlsData* aData)
+    {
+    ASSERT( aData );
+    // Updates the toolkit's time counters. This includes the toolkit's
+    // realtime clock, the internal absolute clock (which is affected by the
+    // time factor), the amount of elapsed time since last UpdateTime()
+    // invocation, and the amount of elapsed time since the first UpdateTime()
+    // invocation (which was done in the beginning of the first refresh).
+
+    if(aData->iIsFirstUpdateTime)
+        {
+        aData->iIsFirstUpdateTime = EFalse;
+        aData->iFirstUpdateTime.UniversalTime();
+        aData->iUniversalTime = aData->iFirstUpdateTime;
+        aData->iRealUniversalTime = aData->iUniversalTime;
+        return;
+        }
+
+    TTime now;
+    now.UniversalTime();
+
+    // Advance the toolkit's internal clock, applying the time factor.
+    if(!aData->iTimePaused)
+        {
+        aData->iInternalElapsed = now.MicroSecondsFrom(aData->iRealUniversalTime).Int64();
+        aData->iInternalElapsed = (TInt64)((TReal32)aData->iInternalElapsed * aData->iTimeFactor);
+        aData->iUniversalTime += TTimeIntervalMicroSeconds(aData->iInternalElapsed);
+        }
+    else
+        {
+        aData->iInternalElapsed = aData->iInternalElapsedBeforePausing;
+        aData->iInternalElapsedBeforePausing = 0;        
+        }
+
+    aData->iRealUniversalTime = now;      
+    }
+
+
+TUint32 CHuiStatic::MilliSecondsSinceUpdateTime()
+    {
+    TTlsData* data = Data();
+    
+    TTime now;
+    now.UniversalTime();
+    
+    return now.MicroSecondsFrom(data->iRealUniversalTime).Int64() / 1000;
+    }
+
+
+
+void CHuiStatic::SetRenderer(CHuiRenderPlugin& aRenderer)
+    {
+    if(!Data())
+        {
+        THuiPanic::Panic(THuiPanic::EStaticDataNotCreated);
+        }
+    Data()->iRenderer = &aRenderer;
+    }
+
+
+void CHuiStatic::UpdateTime()
+    {
+    // Updates the toolkit's time counters. This includes the toolkit's
+    // realtime clock, the internal absolute clock (which is affected by the
+    // time factor), the amount of elapsed time since last UpdateTime()
+    // invocation, and the amount of elapsed time since the first UpdateTime()
+    // invocation (which was done in the beginning of the first refresh).
+
+    TTlsData* data = Data();
+    
+    UpdateTime(data);
+    }
+
+
+
+TInt CHuiStatic::GenerateId()
+    {
+    TTlsData* data = Data();
+
+    // The ID counter counts backwards.
+    TInt id = data->iIdCounter;
+
+    if(data->iIdCounter == KMinTInt)
+        {
+        // Wrap around to stay negative.
+        data->iIdCounter = -1;
+        }
+    else
+        {
+        --data->iIdCounter;
+        }
+
+    return id;
+    }
+
+
+void CHuiStatic::ReportNewFrame()
+    {
+    TTlsData* data = Data();
+    data->iFrameCounter++;
+    data->iCurrentFrameCounter++;
+    }
+