graphicscomposition/openwfcompositionengine/adaptation/include/owfdisplaycontext.h
--- a/graphicscomposition/openwfcompositionengine/adaptation/include/owfdisplaycontext.h Tue Aug 31 16:31:06 2010 +0300
+++ b/graphicscomposition/openwfcompositionengine/adaptation/include/owfdisplaycontext.h Wed Sep 01 12:39:21 2010 +0100
@@ -1,5 +1,5 @@
-/* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
- *
+/* Copyright (c) 2009 The Khronos Group Inc.
+ *
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
* "Materials"), to deal in the Materials without restriction, including
@@ -7,10 +7,10 @@
* distribute, sublicense, and/or sell copies of the Materials, and to
* permit persons to whom the Materials are furnished to do so, subject to
* the following conditions:
- *
+ *
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Materials.
- *
+ *
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
@@ -24,13 +24,11 @@
#define OWFDISPLAYCONTEXT_H
#include <e32base.h>
-#include <e32cmn.h>
#include <dispchannel.h>
#include "owfmemory.h"
#include "owfscreen.h"
#include "owfdisplaycontextgeneral.h"
-#include <WF\openwfc_ri_display.h>
#define _OWF_DISPLAYCONTEXT(x) (static_cast<OWFDisplayContext *>(x))
@@ -54,19 +52,51 @@
RArray <TBufferAddress> iBuffers;
};
+class COWFScreenDisplayInfo : public CBase
+ {
+public:
+ ~COWFScreenDisplayInfo();
+ static COWFScreenDisplayInfo* NewL(TInt aScreen);
+ TInt ScreenNumber() const;
+ void GetScreenInfo(OWF_SCREEN *header) const;
+ OWFboolean Blit(void* buffer, OWF_ROTATION rotation);
+
+private:
+ COWFScreenDisplayInfo(TInt aScreen);
+ void ConstructL();
+private:
+ OWF_SCREEN iScreenInfo;
+ mutable RDisplayChannel iDispChan;
+ TInt iScreenNumber;
+ RArray <TBufferAddress*> iCompositionBuffer;
+ RDisplayChannel::TDisplayRotation iDefaultRotation;
+ TInt iRotationOffset;
+ };
+
+class COwfcDisplayDevice : public CBase
+ {
+private:
+ static COwfcDisplayDevice* gDisplayDeviceInstancePtr;
+public:
+ static COwfcDisplayDevice* SingletonInstance();
+ TInt OpenScreen(TInt aScreen);
+ TInt CloseScreen(TInt aScreen, OWFboolean *aCanDelete);
+ ~COwfcDisplayDevice();
+public:
+ static TBool ScreenCompare(const TInt* k, COWFScreenDisplayInfo* const & t)
+ {return (*k == t->ScreenNumber());}
+ RArray <COWFScreenDisplayInfo*> iScreenDisplayInfo;
+ };
+
typedef struct OWFDisplayContext_
{
public:
- COpenWFC_RI_Display *iScreenContext;
+ COwfcDisplayDevice *iDisplayContext;
COwfScratchBuffers iBuffers;
WFCint iEventServerUpdate;
WFCboolean iCompositionOngoing;
WFCint iPreviousCommit;
WFCint iSerialNumber;
- OWF_SEMAPHORE iRendezvous;
- OWFNativeStreamType fastpathStream;
- WFCboolean fastpathChecked;
- WFCboolean iInternalStreamAccessed;
public:
virtual ~OWFDisplayContext_();
} OWFDisplayContext;