--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/nonnga/SERVER/offscreenbitmap.h Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,85 @@
+// 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:
+//
+
+#if !defined(__OFFSCREENBITMAP_H__)
+#define __OFFSCREENBITMAP_H__
+
+#include <e32std.h>
+#include <e32base.h>
+#include <gdi.h>
+
+#include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
+
+class CFbsBitmapDevice;
+class CWsClientWindow;
+class CWsWindow;
+class CWsWindowBase;
+class CWsClient;
+class CScreen;
+class DWsBitmap;
+
+#if defined(__WINS__) && defined(_DEBUG)
+class CDebugOsbWin;
+#endif
+
+class CWsOffScreenBitmap : public CBase, public MWsBackBuffer
+ {
+public: // Construction / Destruction
+ static CWsOffScreenBitmap* NewL(CScreen* aScreen);
+ ~CWsOffScreenBitmap();
+protected:
+ CWsOffScreenBitmap(CScreen* aScreen);
+ void ConstructL();
+public: // Bitmap
+ TInt DisplayModeChanged(TBool aSwapWidthAndHeight);
+ void UpdateGc(const TBool aSwapWidthAndHeight);
+public:
+ CFbsBitmap* Bitmap();
+ CFbsDevice* BitmapDevice();
+
+public: // implementing MWsObjectProvider
+ TAny* ResolveObjectInterface(TUint aTypeId);
+
+public: // implementing MWsBackBuffer
+ CFbsBitmap* GetBitmap();
+ CFbsBitGc* GetBitGc();
+ CFbsBitGc* GetBitGcCurrent();
+ TInt SetBitGc(CFbsBitGc* aBitGc);
+ TInt RedirectTo(MWsBackBuffer* aTarget);
+ void SetObserver(MWsFlickerFreeBufferObserver* aObserver);
+ MWsFlickerFreeBufferObserver* Observer();
+#if defined(__WINS__) && defined(_DEBUG)
+ void Update();
+#endif
+
+protected: // Data
+ CFbsBitGc* iBitmapGc;
+ CFbsBitmap* iBitmap;
+ CFbsBitmapDevice* iBitmapDevice;
+ CScreen* iScreen;
+
+private: // Data
+#if defined(__WINS__) && defined(_DEBUG)
+ CDebugOsbWin* iOsbWin;
+#endif
+
+private: // Data
+ // used by MWsBackBuffer to redirect OSB output
+ CFbsBitGc* iRedirectGc;
+ MWsBackBuffer* iRedirectBuffer;
+ MWsFlickerFreeBufferObserver* iObserver;
+ };
+
+#endif // __OFFSCREENBITMAP__