--- a/egl/eglinterface/include/1.4/eglext.h Wed May 19 14:34:22 2010 +0100
+++ b/egl/eglinterface/include/1.4/eglext.h Tue Jun 01 15:04:40 2010 +0100
@@ -250,6 +250,12 @@
#define EGL_ENDPOINT_READY_NOK 0x30D6
#define EGL_DELAY_NOK 0x30D7
+#ifndef EGL_SYMBIAN_COMPOSITION
+#define EGL_SYMBIAN_COMPOSITION 1
+/* Extension defines a behavioural change which does not introduce functions or tokens. */
+/* The presence of this extension means that semi-transparent UI content can be displayed above EGL window surfaces. */
+#endif
+
#ifdef EGL_EGLEXT_PROTOTYPES
EGLAPI EGLEndpointNOK EGLAPIENTRY eglCreateEndpointNOK(EGLDisplay dpy, EGLenum type, EGLenum source_type, EGLEndpointSourceNOK source, const EGLint *attrib_list);
EGLAPI EGLBoolean EGLAPIENTRY eglDestroyEndpointNOK(EGLDisplay dpy, EGLEndpointNOK endpoint);
--- a/egl/eglswitch/src/eglswitch.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/eglswitch/src/eglswitch.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -44,10 +44,16 @@
FARPROC vector[MAX_ORDINAL+1]; // 1 additional entry: vector[0] to set the initialised state
+#ifdef _DEBUG
void Stop(char* aErrorMessage)
+#else
+void Stop(char* /*aErrorMessage*/)
+#endif
{
int err = GetLastError();
+#ifdef _DEBUG
RDebug::Printf("%S, (last error = %i)", aErrorMessage, err);
+#endif
_asm int 3;
}
@@ -71,14 +77,13 @@
{
Stop("... has too few exported functions");
}
-
- // next position should be empty
+
+ // next position should be empty
address = GetProcAddress(aDll, (LPCSTR)(MAX_ORDINAL+2));
if (address != NULL)
{
Stop("... has too many exported functions");
}
-
// Set initialised
vector[0] = (FARPROC)1;
}
@@ -102,8 +107,10 @@
library = "libegl_nongce.dll";
}
+#ifdef _DEBUG
RDebug::Printf("Redirecting libEGL.dll to \"%s\" ...\n", library);
-
+#endif
+
Emulator::Escape(); // prevent deadlock between EKA2 scheduler and MS kernel
// try to load selected DLL
HINSTANCE instance = LoadLibraryA(library);
@@ -116,7 +123,9 @@
else
{
fill_vector(instance);
+#ifdef _DEBUG
RDebug::Printf("... DLL loaded successfully");
+#endif
}
}
--- a/egl/egltest/bwins/egltestcommonu.def Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/bwins/egltestcommonu.def Tue Jun 01 15:04:40 2010 +0100
@@ -4,87 +4,87 @@
?eglCreateImageKhrL@CTestEglSession@@QAEHHHHPAVRSgImage@@PBH@Z @ 3 NONAME ; int CTestEglSession::eglCreateImageKhrL(int, int, int, class RSgImage *, int const *)
?SwapChannels@CTestEglSession@@QAEXAAK@Z @ 4 NONAME ; void CTestEglSession::SwapChannels(unsigned long &)
??0TSgImageInfoOpenVgTarget@@QAE@XZ @ 5 NONAME ; TSgImageInfoOpenVgTarget::TSgImageInfoOpenVgTarget(void)
- ?CreateWindowSurfaceAndMakeCurrentL@CTestEglSession@@QAEXHAAVRWindow@@HH@Z @ 6 NONAME ; void CTestEglSession::CreateWindowSurfaceAndMakeCurrentL(int, class RWindow &, int, int)
- ??1TSgImageInfoOpenVgImage@@QAE@XZ @ 7 NONAME ; TSgImageInfoOpenVgImage::~TSgImageInfoOpenVgImage(void)
- ?GetDisplayL@CEglTestStep@@IAEXXZ @ 8 NONAME ; void CEglTestStep::GetDisplayL(void)
- ?NewL@CTestEglSession@@SAPAV1@AAVCTestExecuteLogger@@AAHH@Z @ 9 NONAME ; class CTestEglSession * CTestEglSession::NewL(class CTestExecuteLogger &, int &, int)
- ?CheckImageDataL@CTestEglSession@@QAEXPAVCFbsBitmap@@@Z @ 10 NONAME ; void CTestEglSession::CheckImageDataL(class CFbsBitmap *)
- ?doProcessFunctionL@CEglTestStep@@MAEXH@Z @ 11 NONAME ; void CEglTestStep::doProcessFunctionL(int)
- ?CheckExpectedErrorL@CTestEglSession@@QAEXH@Z @ 12 NONAME ; void CTestEglSession::CheckExpectedErrorL(int)
- ?CheckVgDrawingL@CTestEglSession@@QAEXW4VGImageFormat@@PBVCFbsBitmap@@@Z @ 13 NONAME ; void CTestEglSession::CheckVgDrawingL(enum VGImageFormat, class CFbsBitmap const *)
- ?VgFormatToDisplayMode@EglTestConversion@@SA?AW4TDisplayMode@@W4VGImageFormat@@@Z @ 14 NONAME ; enum TDisplayMode EglTestConversion::VgFormatToDisplayMode(enum VGImageFormat)
- ?CreateReferenceMaskedBitmapL@CTestEglSession@@QAEPAVCFbsBitmap@@W4TDisplayMode@@ABVTRgb@@PBV2@@Z @ 15 NONAME ; class CFbsBitmap * CTestEglSession::CreateReferenceMaskedBitmapL(enum TDisplayMode, class TRgb const &, class CFbsBitmap const *)
- ?CreatePixmapSurfaceAndMakeCurrentAndMatchL@CTestEglSession@@QAEXABVTSize@@W4TDisplayMode@@HH@Z @ 16 NONAME ; void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentAndMatchL(class TSize const &, enum TDisplayMode, int, int)
- ?doTestStepPostambleL@CEglTestStep@@UAE?AW4TVerdict@@XZ @ 17 NONAME ; enum TVerdict CEglTestStep::doTestStepPostambleL(void)
- ?FetchProcEglDestroyImageKhr@CTestEglSession@@QAEHXZ @ 18 NONAME ; int CTestEglSession::FetchProcEglDestroyImageKhr(void)
- ??1CEglTestCommonIniSettings@@UAE@XZ @ 19 NONAME ; CEglTestCommonIniSettings::~CEglTestCommonIniSettings(void)
- ?Surface@CTestEglSession@@QBEHXZ @ 20 NONAME ; int CTestEglSession::Surface(void) const
- ?ConstructWindowL@CEglTestStep@@IAEXAAVRWindow@@ABVTRect@@@Z @ 21 NONAME ; void CEglTestStep::ConstructWindowL(class RWindow &, class TRect const &)
- ?NativeFbsBitmap@CTestEglSession@@QAEPAVCFbsBitmap@@XZ @ 22 NONAME ; class CFbsBitmap * CTestEglSession::NativeFbsBitmap(void)
- ?GetMatchType@@YA?AW4TEglConfigMatchType@@HW4TEglConfigMatchRule@@@Z @ 23 NONAME ; enum TEglConfigMatchType GetMatchType(int, enum TEglConfigMatchRule)
- ?GetConfigExactMatchL@CTestEglSession@@QAEHW4TEglTestConfig@@W4TEglConfigMatchRule@@@Z @ 24 NONAME ; int CTestEglSession::GetConfigExactMatchL(enum TEglTestConfig, enum TEglConfigMatchRule)
- ??0TSgImageInfoTest@@QAE@W4TUidPixelFormat@@VTSize@@@Z @ 25 NONAME ; TSgImageInfoTest::TSgImageInfoTest(enum TUidPixelFormat, class TSize)
- ?InitializeL@CTestEglSession@@QAEXH@Z @ 26 NONAME ; void CTestEglSession::InitializeL(int)
- ?CreateReferenceBitmapL@CTestEglSession@@QAEPAVCFbsBitmap@@W4TDisplayMode@@ABVTRgb@@@Z @ 27 NONAME ; class CFbsBitmap * CTestEglSession::CreateReferenceBitmapL(enum TDisplayMode, class TRgb const &)
- ?CreatePixmapSurfaceAndMakeCurrentL@CTestEglSession@@QAEXHABVTSize@@W4TDisplayMode@@HH@Z @ 28 NONAME ; void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentL(int, class TSize const &, enum TDisplayMode, int, int)
- ??1TSgImageInfoOpenVgTarget@@QAE@XZ @ 29 NONAME ; TSgImageInfoOpenVgTarget::~TSgImageInfoOpenVgTarget(void)
- ?CreateEglSessionL@CEglTestStep@@QAEXH@Z @ 30 NONAME ; void CEglTestStep::CreateEglSessionL(int)
- ?CheckNeededExtensionL@CTestEglSession@@QAEHHABVTDesC16@@@Z @ 31 NONAME ; int CTestEglSession::CheckNeededExtensionL(int, class TDesC16 const &)
- ?TryUsePixmapRSgImageL@CTestEglSession@@QAEXXZ @ 32 NONAME ; void CTestEglSession::TryUsePixmapRSgImageL(void)
- ?TryUsePixmapCFbsBitmapOpenGlesL@CTestEglSession@@QAEXHABVTSize@@W4TDisplayMode@@H@Z @ 33 NONAME ; void CTestEglSession::TryUsePixmapCFbsBitmapOpenGlesL(int, class TSize const &, enum TDisplayMode, int)
- ?vgCreateImageTargetKHR@CTestEglSession@@QAEKH@Z @ 34 NONAME ; unsigned long CTestEglSession::vgCreateImageTargetKHR(int)
- ?DrawOpenGLesL@CTestEglSession@@QAEXXZ @ 35 NONAME ; void CTestEglSession::DrawOpenGLesL(void)
- ?CreateBitmap@CTestEglSession@@QAEHPAVCFbsBitmap@@ABVTSize@@W4TDisplayMode@@@Z @ 36 NONAME ; int CTestEglSession::CreateBitmap(class CFbsBitmap *, class TSize const &, enum TDisplayMode)
- ?doProcessFunctionL@CEglTestStep@@MAEXHABVTSgDrawableId@@@Z @ 37 NONAME ; void CEglTestStep::doProcessFunctionL(int, class TSgDrawableId const &)
- ?PixelsMatch@CTestEglSession@@QAEHABVTRgb@@0H@Z @ 38 NONAME ; int CTestEglSession::PixelsMatch(class TRgb const &, class TRgb const &, int)
- ?SetExpectedError@CTestEglSession@@QAEXH@Z @ 39 NONAME ; void CTestEglSession::SetExpectedError(int)
- ?CreateReferenceBitmapL@CTestEglSession@@QAEPAVCFbsBitmap@@W4TDisplayMode@@@Z @ 40 NONAME ; class CFbsBitmap * CTestEglSession::CreateReferenceBitmapL(enum TDisplayMode)
- ?VgFormatToWindowSurfaceFormat@EglTestConversion@@SA?AW4TEglTestConfig@@W4VGImageFormat@@@Z @ 41 NONAME ; enum TEglTestConfig EglTestConversion::VgFormatToWindowSurfaceFormat(enum VGImageFormat)
- ??0CEglTestStep@@IAE@XZ @ 42 NONAME ; CEglTestStep::CEglTestStep(void)
- ?NativeSgImage@CTestEglSession@@QAEAAVRSgImage@@XZ @ 43 NONAME ; class RSgImage & CTestEglSession::NativeSgImage(void)
- ?IsACompatibleConfig@CTestEglSession@@QAEHHAAVRSgImage@@H@Z @ 44 NONAME ; int CTestEglSession::IsACompatibleConfig(int, class RSgImage &, int)
- ?CheckImageDataVgL@CTestEglSession@@QAEXW4VGImageFormat@@@Z @ 45 NONAME ; void CTestEglSession::CheckImageDataVgL(enum VGImageFormat)
- ?ResetSurfaceAndContextSgImageL@CTestEglSession@@QAEXXZ @ 46 NONAME ; void CTestEglSession::ResetSurfaceAndContextSgImageL(void)
- ?PixelFormatToVgFormat@EglTestConversion@@SA?AW4VGImageFormat@@W4TUidPixelFormat@@@Z @ 47 NONAME ; enum VGImageFormat EglTestConversion::PixelFormatToVgFormat(enum TUidPixelFormat)
- ??0TSgImageInfoOpenVgImage@@QAE@W4TUidPixelFormat@@VTSize@@@Z @ 48 NONAME ; TSgImageInfoOpenVgImage::TSgImageInfoOpenVgImage(enum TUidPixelFormat, class TSize)
- ?CheckForExtensionL@CEglTestStep@@IAEHHABVTDesC16@@@Z @ 49 NONAME ; int CEglTestStep::CheckForExtensionL(int, class TDesC16 const &)
- ?Rendezvous@CEglTestStep@@IAEXH@Z @ 50 NONAME ; void CEglTestStep::Rendezvous(int)
- ?OpenWsSessionL@CEglTestStep@@IAEXH@Z @ 51 NONAME ; void CEglTestStep::OpenWsSessionL(int)
- ?TryUsePixmapRSgImageOpenGlesL@CTestEglSession@@QAEHHABVTSgImageInfo@@W4TResourceCloseRule@1@H@Z @ 52 NONAME ; int CTestEglSession::TryUsePixmapRSgImageOpenGlesL(int, class TSgImageInfo const &, enum CTestEglSession::TResourceCloseRule, int)
- ?eglCreateImageKhrL@CTestEglSession@@QAEHHHHAAVCFbsBitmap@@PBH@Z @ 53 NONAME ; int CTestEglSession::eglCreateImageKhrL(int, int, int, class CFbsBitmap &, int const *)
- ?VgFormatToSgPixelFormat@EglTestConversion@@SA?AW4TUidPixelFormat@@W4VGImageFormat@@@Z @ 54 NONAME ; enum TUidPixelFormat EglTestConversion::VgFormatToSgPixelFormat(enum VGImageFormat)
- ?NewLC@CEglTestCommonIniSettings@@SAPAV1@XZ @ 55 NONAME ; class CEglTestCommonIniSettings * CEglTestCommonIniSettings::NewLC(void)
- ?doThreadFunctionL@CEglTestStep@@MAEXH@Z @ 56 NONAME ; void CEglTestStep::doThreadFunctionL(int)
- ?TerminateDisplayL@CTestEglSession@@QAEXXZ @ 57 NONAME ; void CTestEglSession::TerminateDisplayL(void)
- ?PrintVGImageFormat@CEglTestStep@@IAEXW4VGImageFormat@@@Z @ 58 NONAME ; void CEglTestStep::PrintVGImageFormat(enum VGImageFormat)
- ?ConvertColor@CTestEglSession@@SAXABVTRgb@@PAM@Z @ 59 NONAME ; void CTestEglSession::ConvertColor(class TRgb const &, float *)
- ?DrawOpenVgL@CTestEglSession@@QAEXXZ @ 60 NONAME ; void CTestEglSession::DrawOpenVgL(void)
- ?doThreadFunctionL@CEglTestStep@@MAEXHABVTSgDrawableId@@@Z @ 61 NONAME ; void CEglTestStep::doThreadFunctionL(int, class TSgDrawableId const &)
- ?CloseFbsSession@CTestEglSession@@QAEXXZ @ 62 NONAME ; void CTestEglSession::CloseFbsSession(void)
- ?GetImageSize@CEglTestCommonIniSettings@@QAE?AVTSize@@ABVTDesC16@@@Z @ 63 NONAME ; class TSize CEglTestCommonIniSettings::GetImageSize(class TDesC16 const &)
- ?PrintUsedPixelConfiguration@CEglTestStep@@IAEXXZ @ 64 NONAME ; void CEglTestStep::PrintUsedPixelConfiguration(void)
- ?NewLC@CTestEglSession@@SAPAV1@AAVCTestExecuteLogger@@AAHH@Z @ 65 NONAME ; class CTestEglSession * CTestEglSession::NewLC(class CTestExecuteLogger &, int &, int)
- ?GetPixelFormatFromEglConfigL@CTestEglSession@@QAEPBVTMapEglConfigToPixelFormat@@H@Z @ 66 NONAME ; class TMapEglConfigToPixelFormat const * CTestEglSession::GetPixelFormatFromEglConfigL(int)
- ?TryUsePixmapCFbsBitmapOpenVgL@CTestEglSession@@QAEXHABVTSize@@W4TDisplayMode@@@Z @ 67 NONAME ; void CTestEglSession::TryUsePixmapCFbsBitmapOpenVgL(int, class TSize const &, enum TDisplayMode)
- ?CreatePixmapSurfaceAndMakeCurrentAndMatchL@CTestEglSession@@QAEXABVTSgImageInfo@@W4TResourceCloseRule@1@HH@Z @ 68 NONAME ; void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentAndMatchL(class TSgImageInfo const &, enum CTestEglSession::TResourceCloseRule, int, int)
- ?BytePerPixel@EglTestConversion@@SAHW4TUidPixelFormat@@@Z @ 69 NONAME ; int EglTestConversion::BytePerPixel(enum TUidPixelFormat)
- ?CheckImageDataGLesL@CTestEglSession@@QAEXXZ @ 70 NONAME ; void CTestEglSession::CheckImageDataGLesL(void)
- ?CreatePixmapSurfaceAndMakeCurrentL@CTestEglSession@@QAEXHABVTSgImageInfo@@W4TResourceCloseRule@1@HH@Z @ 71 NONAME ; void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentL(int, class TSgImageInfo const &, enum CTestEglSession::TResourceCloseRule, int, int)
- ?VgFormatToPBufferSurfaceFormat@EglTestConversion@@SA?AW4TEglTestConfig@@W4VGImageFormat@@@Z @ 72 NONAME ; enum TEglTestConfig EglTestConversion::VgFormatToPBufferSurfaceFormat(enum VGImageFormat)
- ?TryUsePixmapRSgImageOpenVgL@CTestEglSession@@QAEHHABVTSgImageInfo@@W4TResourceCloseRule@1@@Z @ 73 NONAME ; int CTestEglSession::TryUsePixmapRSgImageOpenVgL(int, class TSgImageInfo const &, enum CTestEglSession::TResourceCloseRule)
- ?CloseWsSession@CEglTestStep@@IAEXXZ @ 74 NONAME ; void CEglTestStep::CloseWsSession(void)
- ??0TSgImageInfoTest@@QAE@XZ @ 75 NONAME ; TSgImageInfoTest::TSgImageInfoTest(void)
- ??1CEglTestStep@@UAE@XZ @ 76 NONAME ; CEglTestStep::~CEglTestStep(void)
- ?Test_MultiThreadL@CEglTestStep@@IAEXHH@Z @ 77 NONAME ; void CEglTestStep::Test_MultiThreadL(int, int)
- ?PartialInitialiseL@CEglTestStep@@QAEXABVTDesC16@@@Z @ 78 NONAME ; void CEglTestStep::PartialInitialiseL(class TDesC16 const &)
- ?CreatePbufferSurfaceAndMakeCurrentL@CTestEglSession@@QAEXHABVTSize@@HH@Z @ 79 NONAME ; void CTestEglSession::CreatePbufferSurfaceAndMakeCurrentL(int, class TSize const &, int, int)
- ?Test_MultiProcessL@CEglTestStep@@IAEXABVTDesC16@@H0ABV?$RArray@VTSgDrawableId@@@@@Z @ 80 NONAME ; void CEglTestStep::Test_MultiProcessL(class TDesC16 const &, int, class TDesC16 const &, class RArray<class TSgDrawableId> const &)
- ?IsOpenVGSupported@CTestEglSession@@QAEHXZ @ 81 NONAME ; int CTestEglSession::IsOpenVGSupported(void)
- ?NewL@CEglTestCommonIniSettings@@SAPAV1@XZ @ 82 NONAME ; class CEglTestCommonIniSettings * CEglTestCommonIniSettings::NewL(void)
- ?PrintPixelFormat@CEglTestStep@@IAEXW4TUidPixelFormat@@@Z @ 83 NONAME ; void CEglTestStep::PrintPixelFormat(enum TUidPixelFormat)
- ?CheckExpectedError@CTestEglSession@@QAEHH@Z @ 84 NONAME ; int CTestEglSession::CheckExpectedError(int)
- ?GetVgFormat@CEglTestCommonIniSettings@@QAE?AW4VGImageFormat@@ABVTDesC16@@H@Z @ 85 NONAME ; enum VGImageFormat CEglTestCommonIniSettings::GetVgFormat(class TDesC16 const &, int)
- ?CleanupSurfaceFbsBitmapL@CTestEglSession@@QAEXXZ @ 86 NONAME ; void CTestEglSession::CleanupSurfaceFbsBitmapL(void)
+ ??1TSgImageInfoOpenVgImage@@QAE@XZ @ 6 NONAME ; TSgImageInfoOpenVgImage::~TSgImageInfoOpenVgImage(void)
+ ?GetDisplayL@CEglTestStep@@IAEXXZ @ 7 NONAME ; void CEglTestStep::GetDisplayL(void)
+ ?NewL@CTestEglSession@@SAPAV1@AAVCTestExecuteLogger@@AAHH@Z @ 8 NONAME ; class CTestEglSession * CTestEglSession::NewL(class CTestExecuteLogger &, int &, int)
+ ?CheckImageDataL@CTestEglSession@@QAEXPAVCFbsBitmap@@@Z @ 9 NONAME ; void CTestEglSession::CheckImageDataL(class CFbsBitmap *)
+ ?doProcessFunctionL@CEglTestStep@@MAEXH@Z @ 10 NONAME ; void CEglTestStep::doProcessFunctionL(int)
+ ?CheckExpectedErrorL@CTestEglSession@@QAEXH@Z @ 11 NONAME ; void CTestEglSession::CheckExpectedErrorL(int)
+ ?CheckVgDrawingL@CTestEglSession@@QAEXW4VGImageFormat@@PBVCFbsBitmap@@@Z @ 12 NONAME ; void CTestEglSession::CheckVgDrawingL(enum VGImageFormat, class CFbsBitmap const *)
+ ?VgFormatToDisplayMode@EglTestConversion@@SA?AW4TDisplayMode@@W4VGImageFormat@@@Z @ 13 NONAME ; enum TDisplayMode EglTestConversion::VgFormatToDisplayMode(enum VGImageFormat)
+ ?CreateReferenceMaskedBitmapL@CTestEglSession@@QAEPAVCFbsBitmap@@W4TDisplayMode@@ABVTRgb@@PBV2@@Z @ 14 NONAME ; class CFbsBitmap * CTestEglSession::CreateReferenceMaskedBitmapL(enum TDisplayMode, class TRgb const &, class CFbsBitmap const *)
+ ?CreatePixmapSurfaceAndMakeCurrentAndMatchL@CTestEglSession@@QAEXABVTSize@@W4TDisplayMode@@HH@Z @ 15 NONAME ; void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentAndMatchL(class TSize const &, enum TDisplayMode, int, int)
+ ?doTestStepPostambleL@CEglTestStep@@UAE?AW4TVerdict@@XZ @ 16 NONAME ; enum TVerdict CEglTestStep::doTestStepPostambleL(void)
+ ?FetchProcEglDestroyImageKhr@CTestEglSession@@QAEHXZ @ 17 NONAME ; int CTestEglSession::FetchProcEglDestroyImageKhr(void)
+ ??1CEglTestCommonIniSettings@@UAE@XZ @ 18 NONAME ; CEglTestCommonIniSettings::~CEglTestCommonIniSettings(void)
+ ?Surface@CTestEglSession@@QBEHXZ @ 19 NONAME ; int CTestEglSession::Surface(void) const
+ ?ConstructWindowL@CEglTestStep@@IAEXAAVRWindow@@ABVTRect@@@Z @ 20 NONAME ; void CEglTestStep::ConstructWindowL(class RWindow &, class TRect const &)
+ ?NativeFbsBitmap@CTestEglSession@@QAEPAVCFbsBitmap@@XZ @ 21 NONAME ; class CFbsBitmap * CTestEglSession::NativeFbsBitmap(void)
+ ?GetMatchType@@YA?AW4TEglConfigMatchType@@HW4TEglConfigMatchRule@@@Z @ 22 NONAME ; enum TEglConfigMatchType GetMatchType(int, enum TEglConfigMatchRule)
+ ?GetConfigExactMatchL@CTestEglSession@@QAEHW4TEglTestConfig@@W4TEglConfigMatchRule@@@Z @ 23 NONAME ; int CTestEglSession::GetConfigExactMatchL(enum TEglTestConfig, enum TEglConfigMatchRule)
+ ??0TSgImageInfoTest@@QAE@W4TUidPixelFormat@@VTSize@@@Z @ 24 NONAME ; TSgImageInfoTest::TSgImageInfoTest(enum TUidPixelFormat, class TSize)
+ ?InitializeL@CTestEglSession@@QAEXH@Z @ 25 NONAME ; void CTestEglSession::InitializeL(int)
+ ?CreateReferenceBitmapL@CTestEglSession@@QAEPAVCFbsBitmap@@W4TDisplayMode@@ABVTRgb@@@Z @ 26 NONAME ; class CFbsBitmap * CTestEglSession::CreateReferenceBitmapL(enum TDisplayMode, class TRgb const &)
+ ?CreatePixmapSurfaceAndMakeCurrentL@CTestEglSession@@QAEXHABVTSize@@W4TDisplayMode@@HH@Z @ 27 NONAME ; void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentL(int, class TSize const &, enum TDisplayMode, int, int)
+ ??1TSgImageInfoOpenVgTarget@@QAE@XZ @ 28 NONAME ; TSgImageInfoOpenVgTarget::~TSgImageInfoOpenVgTarget(void)
+ ?CreateEglSessionL@CEglTestStep@@QAEXH@Z @ 29 NONAME ; void CEglTestStep::CreateEglSessionL(int)
+ ?CheckNeededExtensionL@CTestEglSession@@QAEHHABVTDesC16@@@Z @ 30 NONAME ; int CTestEglSession::CheckNeededExtensionL(int, class TDesC16 const &)
+ ?TryUsePixmapRSgImageL@CTestEglSession@@QAEXXZ @ 31 NONAME ; void CTestEglSession::TryUsePixmapRSgImageL(void)
+ ?TryUsePixmapCFbsBitmapOpenGlesL@CTestEglSession@@QAEXHABVTSize@@W4TDisplayMode@@H@Z @ 32 NONAME ; void CTestEglSession::TryUsePixmapCFbsBitmapOpenGlesL(int, class TSize const &, enum TDisplayMode, int)
+ ?vgCreateImageTargetKHR@CTestEglSession@@QAEKH@Z @ 33 NONAME ; unsigned long CTestEglSession::vgCreateImageTargetKHR(int)
+ ?DrawOpenGLesL@CTestEglSession@@QAEXXZ @ 34 NONAME ; void CTestEglSession::DrawOpenGLesL(void)
+ ?CreateBitmap@CTestEglSession@@QAEHPAVCFbsBitmap@@ABVTSize@@W4TDisplayMode@@@Z @ 35 NONAME ; int CTestEglSession::CreateBitmap(class CFbsBitmap *, class TSize const &, enum TDisplayMode)
+ ?doProcessFunctionL@CEglTestStep@@MAEXHABVTSgDrawableId@@@Z @ 36 NONAME ; void CEglTestStep::doProcessFunctionL(int, class TSgDrawableId const &)
+ ?PixelsMatch@CTestEglSession@@QAEHABVTRgb@@0H@Z @ 37 NONAME ; int CTestEglSession::PixelsMatch(class TRgb const &, class TRgb const &, int)
+ ?SetExpectedError@CTestEglSession@@QAEXH@Z @ 38 NONAME ; void CTestEglSession::SetExpectedError(int)
+ ?CreateReferenceBitmapL@CTestEglSession@@QAEPAVCFbsBitmap@@W4TDisplayMode@@@Z @ 39 NONAME ; class CFbsBitmap * CTestEglSession::CreateReferenceBitmapL(enum TDisplayMode)
+ ?VgFormatToWindowSurfaceFormat@EglTestConversion@@SA?AW4TEglTestConfig@@W4VGImageFormat@@@Z @ 40 NONAME ; enum TEglTestConfig EglTestConversion::VgFormatToWindowSurfaceFormat(enum VGImageFormat)
+ ??0CEglTestStep@@IAE@XZ @ 41 NONAME ; CEglTestStep::CEglTestStep(void)
+ ?NativeSgImage@CTestEglSession@@QAEAAVRSgImage@@XZ @ 42 NONAME ; class RSgImage & CTestEglSession::NativeSgImage(void)
+ ?IsACompatibleConfig@CTestEglSession@@QAEHHAAVRSgImage@@H@Z @ 43 NONAME ; int CTestEglSession::IsACompatibleConfig(int, class RSgImage &, int)
+ ?CheckImageDataVgL@CTestEglSession@@QAEXW4VGImageFormat@@@Z @ 44 NONAME ; void CTestEglSession::CheckImageDataVgL(enum VGImageFormat)
+ ?ResetSurfaceAndContextSgImageL@CTestEglSession@@QAEXXZ @ 45 NONAME ; void CTestEglSession::ResetSurfaceAndContextSgImageL(void)
+ ?PixelFormatToVgFormat@EglTestConversion@@SA?AW4VGImageFormat@@W4TUidPixelFormat@@@Z @ 46 NONAME ; enum VGImageFormat EglTestConversion::PixelFormatToVgFormat(enum TUidPixelFormat)
+ ??0TSgImageInfoOpenVgImage@@QAE@W4TUidPixelFormat@@VTSize@@@Z @ 47 NONAME ; TSgImageInfoOpenVgImage::TSgImageInfoOpenVgImage(enum TUidPixelFormat, class TSize)
+ ?CheckForExtensionL@CEglTestStep@@IAEHHABVTDesC16@@@Z @ 48 NONAME ; int CEglTestStep::CheckForExtensionL(int, class TDesC16 const &)
+ ?Rendezvous@CEglTestStep@@IAEXH@Z @ 49 NONAME ; void CEglTestStep::Rendezvous(int)
+ ?OpenWsSessionL@CEglTestStep@@IAEXH@Z @ 50 NONAME ; void CEglTestStep::OpenWsSessionL(int)
+ ?TryUsePixmapRSgImageOpenGlesL@CTestEglSession@@QAEHHABVTSgImageInfo@@W4TResourceCloseRule@1@H@Z @ 51 NONAME ; int CTestEglSession::TryUsePixmapRSgImageOpenGlesL(int, class TSgImageInfo const &, enum CTestEglSession::TResourceCloseRule, int)
+ ?eglCreateImageKhrL@CTestEglSession@@QAEHHHHAAVCFbsBitmap@@PBH@Z @ 52 NONAME ; int CTestEglSession::eglCreateImageKhrL(int, int, int, class CFbsBitmap &, int const *)
+ ?VgFormatToSgPixelFormat@EglTestConversion@@SA?AW4TUidPixelFormat@@W4VGImageFormat@@@Z @ 53 NONAME ; enum TUidPixelFormat EglTestConversion::VgFormatToSgPixelFormat(enum VGImageFormat)
+ ?NewLC@CEglTestCommonIniSettings@@SAPAV1@XZ @ 54 NONAME ; class CEglTestCommonIniSettings * CEglTestCommonIniSettings::NewLC(void)
+ ?doThreadFunctionL@CEglTestStep@@MAEXH@Z @ 55 NONAME ; void CEglTestStep::doThreadFunctionL(int)
+ ?TerminateDisplayL@CTestEglSession@@QAEXXZ @ 56 NONAME ; void CTestEglSession::TerminateDisplayL(void)
+ ?PrintVGImageFormat@CEglTestStep@@IAEXW4VGImageFormat@@@Z @ 57 NONAME ; void CEglTestStep::PrintVGImageFormat(enum VGImageFormat)
+ ?ConvertColor@CTestEglSession@@SAXABVTRgb@@PAM@Z @ 58 NONAME ; void CTestEglSession::ConvertColor(class TRgb const &, float *)
+ ?DrawOpenVgL@CTestEglSession@@QAEXXZ @ 59 NONAME ; void CTestEglSession::DrawOpenVgL(void)
+ ?doThreadFunctionL@CEglTestStep@@MAEXHABVTSgDrawableId@@@Z @ 60 NONAME ; void CEglTestStep::doThreadFunctionL(int, class TSgDrawableId const &)
+ ?CloseFbsSession@CTestEglSession@@QAEXXZ @ 61 NONAME ; void CTestEglSession::CloseFbsSession(void)
+ ?GetImageSize@CEglTestCommonIniSettings@@QAE?AVTSize@@ABVTDesC16@@@Z @ 62 NONAME ; class TSize CEglTestCommonIniSettings::GetImageSize(class TDesC16 const &)
+ ?PrintUsedPixelConfiguration@CEglTestStep@@IAEXXZ @ 63 NONAME ; void CEglTestStep::PrintUsedPixelConfiguration(void)
+ ?NewLC@CTestEglSession@@SAPAV1@AAVCTestExecuteLogger@@AAHH@Z @ 64 NONAME ; class CTestEglSession * CTestEglSession::NewLC(class CTestExecuteLogger &, int &, int)
+ ?GetPixelFormatFromEglConfigL@CTestEglSession@@QAEPBVTMapEglConfigToPixelFormat@@H@Z @ 65 NONAME ; class TMapEglConfigToPixelFormat const * CTestEglSession::GetPixelFormatFromEglConfigL(int)
+ ?TryUsePixmapCFbsBitmapOpenVgL@CTestEglSession@@QAEXHABVTSize@@W4TDisplayMode@@@Z @ 66 NONAME ; void CTestEglSession::TryUsePixmapCFbsBitmapOpenVgL(int, class TSize const &, enum TDisplayMode)
+ ?CreatePixmapSurfaceAndMakeCurrentAndMatchL@CTestEglSession@@QAEXABVTSgImageInfo@@W4TResourceCloseRule@1@HH@Z @ 67 NONAME ; void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentAndMatchL(class TSgImageInfo const &, enum CTestEglSession::TResourceCloseRule, int, int)
+ ?BytePerPixel@EglTestConversion@@SAHW4TUidPixelFormat@@@Z @ 68 NONAME ; int EglTestConversion::BytePerPixel(enum TUidPixelFormat)
+ ?CheckImageDataGLesL@CTestEglSession@@QAEXXZ @ 69 NONAME ; void CTestEglSession::CheckImageDataGLesL(void)
+ ?CreatePixmapSurfaceAndMakeCurrentL@CTestEglSession@@QAEXHABVTSgImageInfo@@W4TResourceCloseRule@1@HH@Z @ 70 NONAME ; void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentL(int, class TSgImageInfo const &, enum CTestEglSession::TResourceCloseRule, int, int)
+ ?VgFormatToPBufferSurfaceFormat@EglTestConversion@@SA?AW4TEglTestConfig@@W4VGImageFormat@@@Z @ 71 NONAME ; enum TEglTestConfig EglTestConversion::VgFormatToPBufferSurfaceFormat(enum VGImageFormat)
+ ?TryUsePixmapRSgImageOpenVgL@CTestEglSession@@QAEHHABVTSgImageInfo@@W4TResourceCloseRule@1@@Z @ 72 NONAME ; int CTestEglSession::TryUsePixmapRSgImageOpenVgL(int, class TSgImageInfo const &, enum CTestEglSession::TResourceCloseRule)
+ ?CloseWsSession@CEglTestStep@@IAEXXZ @ 73 NONAME ; void CEglTestStep::CloseWsSession(void)
+ ??0TSgImageInfoTest@@QAE@XZ @ 74 NONAME ; TSgImageInfoTest::TSgImageInfoTest(void)
+ ??1CEglTestStep@@UAE@XZ @ 75 NONAME ; CEglTestStep::~CEglTestStep(void)
+ ?Test_MultiThreadL@CEglTestStep@@IAEXHH@Z @ 76 NONAME ; void CEglTestStep::Test_MultiThreadL(int, int)
+ ?PartialInitialiseL@CEglTestStep@@QAEXABVTDesC16@@@Z @ 77 NONAME ; void CEglTestStep::PartialInitialiseL(class TDesC16 const &)
+ ?CreatePbufferSurfaceAndMakeCurrentL@CTestEglSession@@QAEXHABVTSize@@HH@Z @ 78 NONAME ; void CTestEglSession::CreatePbufferSurfaceAndMakeCurrentL(int, class TSize const &, int, int)
+ ?Test_MultiProcessL@CEglTestStep@@IAEXABVTDesC16@@H0ABV?$RArray@VTSgDrawableId@@@@@Z @ 79 NONAME ; void CEglTestStep::Test_MultiProcessL(class TDesC16 const &, int, class TDesC16 const &, class RArray<class TSgDrawableId> const &)
+ ?IsOpenVGSupported@CTestEglSession@@QAEHXZ @ 80 NONAME ; int CTestEglSession::IsOpenVGSupported(void)
+ ?NewL@CEglTestCommonIniSettings@@SAPAV1@XZ @ 81 NONAME ; class CEglTestCommonIniSettings * CEglTestCommonIniSettings::NewL(void)
+ ?PrintPixelFormat@CEglTestStep@@IAEXW4TUidPixelFormat@@@Z @ 82 NONAME ; void CEglTestStep::PrintPixelFormat(enum TUidPixelFormat)
+ ?CheckExpectedError@CTestEglSession@@QAEHH@Z @ 83 NONAME ; int CTestEglSession::CheckExpectedError(int)
+ ?GetVgFormat@CEglTestCommonIniSettings@@QAE?AW4VGImageFormat@@ABVTDesC16@@H@Z @ 84 NONAME ; enum VGImageFormat CEglTestCommonIniSettings::GetVgFormat(class TDesC16 const &, int)
+ ?CleanupSurfaceFbsBitmapL@CTestEglSession@@QAEXXZ @ 85 NONAME ; void CTestEglSession::CleanupSurfaceFbsBitmapL(void)
+ ?CreateWindowSurfaceAndMakeCurrentL@CTestEglSession@@QAEXHAAVRWindow@@HHH@Z @ 86 NONAME ; void CTestEglSession::CreateWindowSurfaceAndMakeCurrentL(int, class RWindow &, int, int, int)
?CloseSgDriver@CTestEglSession@@QAEXXZ @ 87 NONAME ; void CTestEglSession::CloseSgDriver(void)
?doTestStepPreambleL@CEglTestStep@@UAE?AW4TVerdict@@XZ @ 88 NONAME ; enum TVerdict CEglTestStep::doTestStepPreambleL(void)
??0CTestEglSession@@IAE@AAVCTestExecuteLogger@@AAHH@Z @ 89 NONAME ; CTestEglSession::CTestEglSession(class CTestExecuteLogger &, int &, int)
@@ -116,4 +116,7 @@
?GetNumberOfFormats@CEglTestCommonIniSettings@@QAEHABVTDesC16@@@Z @ 115 NONAME ; int CEglTestCommonIniSettings::GetNumberOfFormats(class TDesC16 const &)
?Test_MultiProcessL@CEglTestStep@@IAEXABVTDesC16@@H0ABVTSgDrawableId@@@Z @ 116 NONAME ; void CEglTestStep::Test_MultiProcessL(class TDesC16 const &, int, class TDesC16 const &, class TSgDrawableId const &)
?PixelFormatToDisplayMode@EglTestConversion@@SA?AW4TDisplayMode@@W4TUidPixelFormat@@@Z @ 117 NONAME ; enum TDisplayMode EglTestConversion::PixelFormatToDisplayMode(enum TUidPixelFormat)
+ ?GetThresholdGPUUsedMemory@CEglTestCommonIniSettings@@QAEHABVTDesC16@@@Z @ 118 NONAME ; int CEglTestCommonIniSettings::GetThresholdGPUUsedMemory(class TDesC16 const &)
+ ?GetThresholdLastIteration@CEglTestCommonIniSettings@@QAEHABVTDesC16@@@Z @ 119 NONAME ; int CEglTestCommonIniSettings::GetThresholdLastIteration(class TDesC16 const &)
+ ?GetWindowSize@CEglTestCommonIniSettings@@QAE?AVTSize@@ABVTDesC16@@@Z @ 120 NONAME ; class TSize CEglTestCommonIniSettings::GetWindowSize(class TDesC16 const &)
--- a/egl/egltest/eabi/egltestcommonu.def Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/eabi/egltestcommonu.def Tue Jun 01 15:04:40 2010 +0100
@@ -82,7 +82,7 @@
_ZN15CTestEglSession31TryUsePixmapCFbsBitmapOpenGlesLEiRK5TSize12TDisplayModei @ 81 NONAME
_ZN15CTestEglSession34CreatePixmapSurfaceAndMakeCurrentLEiRK12TSgImageInfoNS_18TResourceCloseRuleEii @ 82 NONAME
_ZN15CTestEglSession34CreatePixmapSurfaceAndMakeCurrentLEiRK5TSize12TDisplayModeii @ 83 NONAME
- _ZN15CTestEglSession34CreateWindowSurfaceAndMakeCurrentLEiR7RWindowii @ 84 NONAME
+ _ZN15CTestEglSession34CreateWindowSurfaceAndMakeCurrentLEiR7RWindowiii @ 84 NONAME
_ZN15CTestEglSession35CreatePbufferSurfaceAndMakeCurrentLEiRK5TSizeii @ 85 NONAME
_ZN15CTestEglSession42CreatePixmapSurfaceAndMakeCurrentAndMatchLERK12TSgImageInfoNS_18TResourceCloseRuleEii @ 86 NONAME
_ZN15CTestEglSession42CreatePixmapSurfaceAndMakeCurrentAndMatchLERK5TSize12TDisplayModeii @ 87 NONAME
@@ -135,4 +135,7 @@
_ZTI15CTestEglSession @ 134 NONAME
_ZTV12CEglTestStep @ 135 NONAME
_ZTV15CTestEglSession @ 136 NONAME
+ _ZN25CEglTestCommonIniSettings13GetWindowSizeERK7TDesC16 @ 137 NONAME
+ _ZN25CEglTestCommonIniSettings25GetThresholdGPUUsedMemoryERK7TDesC16 @ 138 NONAME
+ _ZN25CEglTestCommonIniSettings25GetThresholdLastIterationERK7TDesC16 @ 139 NONAME
--- a/egl/egltest/group/egltest.mmp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/group/egltest.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -85,6 +85,7 @@
LIBRARY graphicsscreencomparison.lib
LIBRARY egltestcommon.lib
LIBRARY tprofiler.lib
+LIBRARY estor.lib
DEFFILE egltest.def
--- a/egl/egltest/group/egltestcommonprocess.mmp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/group/egltestcommonprocess.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -33,4 +33,6 @@
LIBRARY libEGL.lib
LIBRARY egltestcommon.lib
+CAPABILITY PowerMgmt
+
SMPSAFE
--- a/egl/egltest/group/egltestserver.mmp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/group/egltestserver.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -24,7 +24,7 @@
UID 0x1000007a 0xA000E61B
VENDORID 0x70000001
-CAPABILITY none
+CAPABILITY PowerMgmt
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
--- a/egl/egltest/inc/egltest_benchmark_sgimage.h Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/inc/egltest_benchmark_sgimage.h Tue Jun 01 15:04:40 2010 +0100
@@ -63,6 +63,9 @@
public:
// from CTestStep
TVerdict doTestStepL();
+protected:
+ // from CEglTestStep
+ void doProcessFunctionL(TInt aIdx);
};
#endif // __EGLTEST_BENCHMARK_SGIMAGE_H__
--- a/egl/egltest/inc/egltest_image_multiprocess.h Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/inc/egltest_image_multiprocess.h Tue Jun 01 15:04:40 2010 +0100
@@ -129,17 +129,6 @@
void doProcessFunctionL(TInt aIdx);
};
-_LIT(KEGL_Image_Multi_Process_VgImage_ProcessTerminate2, "EGL_Image_Multi_Process_VgImage_ProcessTerminate2");
-NONSHARABLE_CLASS(CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate2) : public CEglTestStep
- {
-public:
- // from CTestStep
- TVerdict doTestStepL();
-protected:
- // from CEglTestStep
- void doProcessFunctionL(TInt aIdx);
- };
-
_LIT(KEGL_Image_Multi_Process_VgImage_ProcessTerminateNegative, "EGL_Image_Multi_Process_VgImage_ProcessTerminateNegative");
NONSHARABLE_CLASS(CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminateNegative) : public CEglTestStep
{
--- a/egl/egltest/inc/egltestcommoninisettings.h Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/inc/egltestcommoninisettings.h Tue Jun 01 15:04:40 2010 +0100
@@ -66,6 +66,10 @@
IMPORT_C TInt GetNumberOfFormats(const TDesC& aSectioName);
IMPORT_C TInt GetNumberOfIterations(const TDesC& aSectioName);
IMPORT_C TSize GetImageSize(const TDesC& aSectioName);
+ IMPORT_C TInt GetThresholdGPUUsedMemory(const TDesC& aSectioName);
+ IMPORT_C TInt GetThresholdLastIteration(const TDesC& aSectioName);
+ IMPORT_C TSize GetWindowSize(const TDesC& aSectioName);
+
private:
void ConstructL();
private:
--- a/egl/egltest/inc/egltestcommonprocess.h Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/inc/egltestcommonprocess.h Tue Jun 01 15:04:40 2010 +0100
@@ -46,7 +46,8 @@
EProcSlotMsgQueueSgId,
EProcSlotMsgQueueProcId,
EProcSlotSourceFormat,
- EProcSlotSurfaceFormat
+ EProcSlotSurfaceFormat,
+ EProcSlotCustomClientParam //data that could be sent from client to main process. Concrete implementation will need to specify the format
};
class EglTestCommonProcess
--- a/egl/egltest/inc/egltestcommonsession.h Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/inc/egltestcommonsession.h Tue Jun 01 15:04:40 2010 +0100
@@ -104,9 +104,9 @@
//
//Compound functions that construct surface
//
- IMPORT_C void CreateWindowSurfaceAndMakeCurrentL(EGLConfig aConfig, RWindow& aWindow, EGLenum aBindAPI = EGL_OPENVG_API, TInt aRenderVersionNumber = 1);
+ IMPORT_C void CreateWindowSurfaceAndMakeCurrentL(EGLConfig aConfig, RWindow& aWindow, TBool aVgAlphaFormatPre = EFalse, EGLenum aBindAPI = EGL_OPENVG_API, TInt aRenderVersionNumber = 1);
IMPORT_C void CreatePixmapSurfaceAndMakeCurrentAndMatchL(const TSgImageInfo& aImageInfo, TResourceCloseRule aResourceCloseRule, EGLenum aBindAPI = EGL_OPENVG_API, TInt aRenderVersionNumber = 1);
- IMPORT_C void CreatePixmapSurfaceAndMakeCurrentAndMatchL(const TSize& aSize, TDisplayMode displayMode, EGLenum aBindAPI = EGL_OPENVG_API, TInt aRenderVersionNumber = 1);
+ IMPORT_C void CreatePixmapSurfaceAndMakeCurrentAndMatchL(const TSize& aSize, TDisplayMode aDisplayMode, EGLenum aBindAPI = EGL_OPENVG_API, TInt aRenderVersionNumber = 1);
IMPORT_C void CreatePbufferSurfaceAndMakeCurrentL(EGLConfig aConfig, const TSize& aSize, EGLenum aBindAPI = EGL_OPENVG_API, TInt aRenderVersionNumber = 1);
//
--- a/egl/egltest/inc/egltestcommonstep.h Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/inc/egltestcommonstep.h Tue Jun 01 15:04:40 2010 +0100
@@ -21,6 +21,7 @@
#ifndef EGLTESTCOMMONSTEP_H
#define EGLTESTCOMMONSTEP_H
+#include <e32msgqueue.h>
#include <EGL/egl.h>
#include <VG/openvg.h>
#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
@@ -40,6 +41,10 @@
class RWindow;
+struct TEglStepMessageBuffer
+ {
+ TInt iBuf[64];
+ };
/**
Abstract base class for Egl test steps
@@ -120,6 +125,7 @@
IMPORT_C void GetDisplayL();
IMPORT_C void TerminateDisplayL();
+ virtual void ReceiveMessageFromClient(RMsgQueue<TEglStepMessageBuffer>& /*aMessageQueueClientProcParam*/) {}
protected:
// Session object as required for most tests
CTestEglSession* iEglSess;
--- a/egl/egltest/scripts/egltest_settings.ini Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/scripts/egltest_settings.ini Tue Jun 01 15:04:40 2010 +0100
@@ -38,10 +38,10 @@
NumIterations=1000
[Benchmark]
-NumIterations = 400 // Needs to be set with care. Making this value bigger may cause an allocation failure
- // on the emulator, it fails to create SgImage at some point.
+NumIterations = 300 // Needs to be set with care. Making this value greater may cause an allocation failure.
+ // On the emulator, it fails to create SgImage at some point.
// Hardware will have their own limitations which also need to be considered.
ImageWidth = 50 // width of RSgImage
-ImageHeight = 50 // height if RSgImage
+ImageHeight = 50 // height of RSgImage
NumFormats = 1
Format0 = EUidPixelFormatARGB_8888_PRE
--- a/egl/egltest/scripts/egltest_t_benchmark_sgimage.script Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/scripts/egltest_t_benchmark_sgimage.script Tue Jun 01 15:04:40 2010 +0100
@@ -20,4 +20,4 @@
RUN_TEST_STEP 100 egltestserver Benchmark_CreateCloseImage
RUN_TEST_STEP 100 egltestserver Benchmark_Multi_Process_CreateCloseImage
-RUN_TEST_STEP 100 egltestserver Benchmark_DrawImage
+RUN_TEST_STEP 300 egltestserver Benchmark_DrawImage
--- a/egl/egltest/scripts/egltest_t_image_multiprocess.script Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/scripts/egltest_t_image_multiprocess.script Tue Jun 01 15:04:40 2010 +0100
@@ -32,7 +32,6 @@
RUN_TEST_STEP 100 egltestserver EGL_Image_Multi_Process_ThemeServer
RUN_TEST_STEP 100 egltestserver EGL_Image_Multi_Process_VgImage_ProcessTerminate
-RUN_TEST_STEP 100 egltestserver EGL_Image_Multi_Process_VgImage_ProcessTerminate2
RUN_TEST_STEP 100 egltestserver EGL_Image_Multi_Process_VgImage_ProcessTerminateNegative
RUN_TEST_STEP 100 egltestserver EGL_Image_Multi_Process_VgImage_ReadWrite
--- a/egl/egltest/scripts/egltest_t_syncobject.script Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/scripts/egltest_t_syncobject.script Tue Jun 01 15:04:40 2010 +0100
@@ -17,22 +17,22 @@
PRINT Run EGL Sync Object tests excluding WaitFlush test which requires OpenVG and OpenGL ES
LOAD_SUITE egltestserver
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_GetProcAddress z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_CreateDestroy z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_WaitSignal z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_WaitSignal2 z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_WaitDelete z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_WaitWithTimeoutExpired z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_SignalBeforeTimeoutExpired z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_DeleteBeforeTimeoutExpired z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Multithread_SignalBeforeTimeout z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Multithread_SignalAfterTimeout z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Multithread_WaitOnTwoSyncObject z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Wait_TestMode z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Multithread_Deletion z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Stress z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Terminate z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Positive_TerminateBeforeTimeoutExpired z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Negative_WrongParameters z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Negative_SignalImpl z:\egltest\egltest_settings.ini
-RUN_TEST_STEP 100 egltestserver SyncObject_Negative_OOM z:\egltest\egltest_settings.ini
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_GetProcAddress z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_CreateDestroy z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_WaitSignal z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_WaitSignal2 z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_WaitDelete z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_WaitWithTimeoutExpired z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_SignalBeforeTimeoutExpired z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_DeleteBeforeTimeoutExpired z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Multithread_SignalBeforeTimeout z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Multithread_SignalAfterTimeout z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Multithread_WaitOnTwoSyncObject z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Wait_TestMode z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Multithread_Deletion z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Stress z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_Terminate z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Positive_TerminateBeforeTimeoutExpired z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Negative_WrongParameters z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Negative_SignalImpl z:\egltest\egltest_settings.ini SyncObject
+RUN_TEST_STEP 100 egltestserver SyncObject_Negative_OOM z:\egltest\egltest_settings.ini SyncObject
--- a/egl/egltest/src/egltest_benchmark_sgimage.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltest_benchmark_sgimage.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -36,6 +36,13 @@
_LIT(KBenchmarkSection, "Benchmark");
+#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
+const TInt KBenchmarkDrawImageThreshold = 5; //semi-arbitrary number which signifies deviation in percentage between min and max number of image drawing
+#endif
+
+
+#define ENABLE_BENCHMARK_VERBOSE_LOGGING 1
+
//data will be used to cleanup VgImages if leaving occurs
NONSHARABLE_CLASS(CVgImageDeleteData) : public CBase
{
@@ -163,7 +170,7 @@
return CEglTestStep::doTestStepPostambleL();
}
-//-------
+
/**
@SYMTestCaseID GRAPHICS-EGL-0434
@@ -270,9 +277,6 @@
#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
INFO_PRINTF1(_L("CEglTest_Benchmark_CreateCloseImage can only be run with SgImage-Lite"));
- RecordTestResultL();
- CloseTMSGraphicsStep();
- return TestStepResult();
#else
TBool ret = CheckForExtensionL(KEGL_RSgimage | KEGL_KHR_image_base | KVG_KHR_EGL_image | KEGL_KHR_image_pixmap);
if(!ret)
@@ -487,10 +491,10 @@
CleanupStack::PopAndDestroy(3, vgImageDeleteData); // vgImageDeleteData, sgImageData, eglImageDeleteData
CleanAll();
+#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
-#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
}
/**
@@ -569,9 +573,6 @@
#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
INFO_PRINTF1(_L("CEglTest_Benchmark_Multi_Process_CreateCloseImage can only be run with SgImage-Lite"));
- RecordTestResultL();
- CloseTMSGraphicsStep();
- return TestStepResult();
#else
TBool ret = CheckForExtensionL(KEGL_RSgimage | KEGL_KHR_image_base | KVG_KHR_EGL_image | KEGL_KHR_image_pixmap);
if(!ret)
@@ -585,10 +586,10 @@
// launch 2 processes
Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
+#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
-#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
}
void CEglTest_Benchmark_Multi_Process_CreateCloseImage::doProcessFunctionL(TInt aIdx)
@@ -764,7 +765,12 @@
@SYMPREQ 2637
@SYMTestCaseDesc
- Performance test - Drawing VGImage
+ Performance test - Drawing of VGImage
+
+@SYMTestPurpose
+Compare the relative speed of drawing a regular pre-existing VGImage with the
+speed of mapping in a VGImage (starting with a drawable id) and then drawing that.
+
@SYMTestActions
Environmental settings:
• Image Size: w50 h50
@@ -772,195 +778,328 @@
• Pixel format ESgPixelFormatARGB_8888_PRE
• Number of benchmark iteration: N (may vary depending on hardware capacity)
-Creating regular VGImage
-Init EGL, create context and surface
-For i = 0 to N
- Create VGImage[i] with size: 50x50 and format: VG_sARGB_8888_PRE
- SetSubData for VGImage[i]
-End loop
-
-Draw VGImage
-For i = N to 0
- Start timer
- Draw VGImage[i]
- Stop timer and record time
-End loop
-Record average time of drawing VGImage
-
-Closing regular VGImage
-For i = N to 0
- Destroy VGImage[i]
-End loop
-
-Creating VGImage from initialized RSgImage
+From the main test process:
+Spawn two processes A and B
+From process A:
Open RSgDriver
Construct TSgImageInfo object with
• Size: 50x50
• PixelFormat: ESgPixelFormatARGB_8888_PRE
• Usage: ESgUsageBitOpenVgImage;
-For i = N to 0
- Create RSgImage[i] with arguments TSgImageInfo with initialized data which were supplied to regular VGImage
- Create an EGLImage[i] from the RSgImage[i]
- Create a VGImage[i] from the EGLImage[i]
+Creation of the RSgImages:
+For i = 0 to N
+ Form pixel data in such way that there will be a mixture of opaque and transparent pixels.
+ At least one coordinate of the opaque pixel will be unique for any iteration.
+ Creating RSgImage with initialized data, size: 50x50 and format: VG_sARGB_8888_PRE.
+ Send RSgImage drawableID to process B
+End loop
+Close all RSgImages after they will have been opened in process B
+Close RSgDriver after process B finishes with benchmark measurement.
+
+From process B:
+
+For i = 0 to N
+ Receive and store drawableID[i] from process A
+End loop
+
+Init EGL, create context and pixmap surface. Make the surface current.
+Creating regular VGImage:
+For i = 0 to N
+ Create VGImage[i] with size: 50x50 and format: VG_sARGB_8888_PRE
+ SetSubData for VGImage[i] with the same data which were supplied on RSgImage creation
End loop
-Draw VGImage which is based on RSgImage
-For i = N to 0
+Draw regular VGImage:
+For j = 0 to 4
Start timer
- Draw VGImage[i]
+ For i = N to 0
+ Draw VGImage[i]
+ End loop i
Stop timer and record time
-End loop
-Record average time of drawing VGImage
+End loop j
+Complete all outstanding requests on the current context (vgFinish)
+Record max, min, average drawing time of VGImage
+Check that deviation between max and min time doesn’t exceed 5% (max – min / mean) < 0.05
+
+Destroy all regular VGImages
+Open RSgDriver
+Mapping in VGImage from initialized RSgImage and perform drawing:
+For j = 0 to 4
+ Start timer
+ For i = N to 0
+ Open RSgImage[i] with drawableID[i]
+ Create an EGLImage[i] from the RSgImage[i]
+ Create a VGImage[i] from the EGLImage[i]
+ Draw VGImage[i]
+ End loop i
+ Complete all outstanding requests on the current context (vgFinish)
+ Stop timer and record time
+End loop j
+Record max, min, average mapping and drawing time of VGImage
+Check that deviation between max and min time doesn’t exceed 5% (max – min / mean) < 0.05
+
+Destroy context, surface
Close all VGImages, EGLImages and RSgImages
+Terminate Egl environment
Close RSgDriver
@SYMTestExpectedResults
The creation of RSgImage, EGLImage and VGImage must return no error.
-The average drawing time of regular VGImage and VGImage with underlying RSgImage is
-made available in an easy-to-use format for further analysis and comparison.
+The drawing speed of regular VGImage and mapping VGImage (starting from drawable id)
+with following draw is made available in an easy-to-use format for further analysis and
+comparison.
*/
TVerdict CEglTest_Benchmark_DrawImage::doTestStepL()
{
SetTestStepID(_L("GRAPHICS-EGL-0436"));
+ SetTestStepName(KBenchmark_DrawImage);
INFO_PRINTF1(_L("CEglTest_Benchmark_DrawImage::doTestStepL"));
#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
INFO_PRINTF1(_L("CEglTest_Benchmark_DrawImage can only be run with SgImage-Lite"));
+#else
+ TBool ret = CheckForExtensionL(KEGL_RSgimage | KEGL_KHR_image_base | KVG_KHR_EGL_image | KEGL_KHR_image_pixmap);
+ if(ret)
+ {
+ // launch 2 processes
+ Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
+ }
+#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
+
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
-#else
- TBool ret = CheckForExtensionL(KEGL_RSgimage | KEGL_KHR_image_base | KVG_KHR_EGL_image | KEGL_KHR_image_pixmap);
- if(!ret)
- {
- // The extension is not supported
- RecordTestResultL();
- CloseTMSGraphicsStep();
- return TestStepResult();
- }
-
- ASSERT_TRUE(iDisplay == EGL_NO_DISPLAY);
+ }
+
+void CEglTest_Benchmark_DrawImage::doProcessFunctionL(TInt aIdx)
+ {
+ INFO_PRINTF2(_L("CEglTest_Benchmark_DrawImage::doProcessFunctionL, Process %d"),aIdx);
+#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
GetDisplayL();
- CreateEglSessionL();
- iEglSess->InitializeL();
+ CreateEglSessionL(aIdx);
+ iEglSess->InitializeL();
iEglSess->OpenSgDriverL();
- //----create pixmap and make context curent
+
TSgImageInfo imageInfo;
- imageInfo.iUsage = ESgUsageBitOpenVgImage | ESgUsageBitOpenVgSurface;
+ imageInfo.iUsage = ESgUsageBitOpenVgImage;
imageInfo.iPixelFormat = iPixelFormat;
imageInfo.iSizeInPixels = iImageSize;
- //create a dummy surface and context for the purpose of enabling use of VG
- iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo, CTestEglSession::EResourceCloseSgImageLate);
-
- const TInt KDataStride = iImageSize.iWidth * EglTestConversion::BytePerPixel(iPixelFormat);
- const TInt KDataSizeInByte = KDataStride * iImageSize.iHeight;
- TInt* data = new (ELeave) TInt[KDataSizeInByte];
- User::LeaveIfNull(data);
- CleanupStack::PushL(data);
+ RArray<TSgDrawableId> sgIdImageList;
- Mem::Fill(data, KDataSizeInByte / 2, 0xff);
- Mem::FillZ(data + KDataSizeInByte / 2, KDataSizeInByte / 2);
-
- //Creating regular VGImages
- //Create an array of VGImages and push them into cleanup stack
- //vgImageDeleteData takes ownership of the VGImages array.
- //If leaving occurs or this object is destroyed from the cleanup stack
- //it will delete all images and then the array
- VGImageFormat vgPixelFormat = EglTestConversion::PixelFormatToVgFormat(iPixelFormat);
- VGImage* vgImages = NULL;
- CVgImageDeleteData* vgImageDeleteData = new (ELeave) CVgImageDeleteData(vgImages, iNumIterations);
- CleanupStack::PushL(vgImageDeleteData);
- vgImages = new (ELeave)VGImage[iNumIterations];
- for(TInt count=iNumIterations - 1; count >= 0; --count)
- {
- //we will use VG_IMAGE_QUALITY_NONANTIALIASED flag to avoid OpenVG making the quality improvements
- //at the expense of performance (for instance to create an extra buffer)
- vgImages[count] = vgCreateImage(vgPixelFormat, iImageSize.iWidth, iImageSize.iHeight, VG_IMAGE_QUALITY_NONANTIALIASED);
- ASSERT_VG_TRUE(vgImages[count] != VG_INVALID_HANDLE);
-
- vgImageSubData(vgImages[count],
- data, KDataStride,
- vgPixelFormat,
- 0, 0, iImageSize.iWidth, iImageSize.iHeight);
- ASSERT_VG_ERROR(VG_NO_ERROR);
- }
-
- //--------- start profiling
- iProfiler->InitResults();
- for(TInt count=iNumIterations - 1; count >= 0; --count)
- {
- vgDrawImage(vgImages[count]);
-#ifdef ENABLE_CHECKING_WHILST_PROFILING
- ASSERT_VG_ERROR(VG_NO_ERROR);
-#endif
- iProfiler->MarkResultSetL();
- }
- iProfiler->ResultsAnalysis(_L("Drawing regular VGImage"), 0, EglTestConversion::PixelFormatToDisplayMode(iPixelFormat), EglTestConversion::PixelFormatToDisplayMode(iPixelFormat), iNumIterations);
- //--------- stop profiling
-
- //destroy vgImages
- for(TInt count=iNumIterations - 1; count >= 0; --count)
- {
- vgDestroyImage(vgImages[count]);
- ASSERT_VG_ERROR(VG_NO_ERROR);
- vgImages[count]=VG_INVALID_HANDLE;
- }
-
+ const TInt KNumAttempt = 5;
+ const TInt KNumImagesToDraw = iNumIterations;
//Create an array of SgImages and push them into cleanup stack
//sgImageData takes ownership of the SgImages array.
//If leaving occurs or this object is destroyed from the cleanup stack
//it will delete all images and then the array
- imageInfo.iUsage = ESgUsageBitOpenVgImage;
RSgImage* sgImages = NULL;
- CSgImageDeleteData* sgImageData = new (ELeave)CSgImageDeleteData(sgImages, iNumIterations);
+ CSgImageDeleteData* sgImageData = new (ELeave)CSgImageDeleteData(sgImages, KNumImagesToDraw);
CleanupStack::PushL(sgImageData);
- sgImages = new (ELeave) RSgImage[iNumIterations];
+ sgImages = new (ELeave) RSgImage[KNumImagesToDraw];
+
+ // the message queue will be used to pass image IDs across process boundary
+ RMsgQueue<TSgDrawableId> messageQueue;
+ User::LeaveIfError(messageQueue.Open(EProcSlotMsgQueueSgId, EOwnerProcess));
+ CleanupClosePushL(messageQueue);
+
+ //create iNumIterations * KNumAttempt number of SgImages in one process and send them over to the second process
+ INFO_PRINTF3(_L("Process %d, Start sending %d SgImage IDs to other process..."), aIdx, iNumIterations);
+ if(aIdx == 0)
+ {
+ TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(KDefaultSourceFormat);
+ for(TInt index=0; index < KNumImagesToDraw; ++index)
+ {
+ CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, iImageSize, index);
+ CleanupStack::PushL(bitmap);
+ ASSERT_EQUALS(sgImages[index].Create(imageInfo, bitmap->DataAddress(),bitmap->DataStride()), KErrNone);
+ messageQueue.SendBlocking(sgImages[index].Id());
+ CleanupStack::PopAndDestroy(bitmap);
+ }
+ }
+ else if(aIdx == 1)
+ {
+ for(TInt index=0; index < KNumImagesToDraw; ++index)
+ {
+ TSgDrawableId sgImageId;
+ messageQueue.ReceiveBlocking(sgImageId);
+ sgIdImageList.AppendL(sgImageId);
+ }
+ }
+ CleanupStack::PopAndDestroy(&messageQueue);
+ INFO_PRINTF3(_L("Process %d, Finish sending %d SgImage IDs to other process..."), aIdx, iNumIterations);
+ //We expect to reach this point from both processes simultaneously
+ //this is because ReceiveBlocking/SendBlocking are synchronous
- //Create an array of EglImages and push them into cleanup stack
- //eglImageDeleteData takes ownership of the EglImages array.
- //If leaving occurs or this object is destroyed from the cleanup stack
- //it will delete all images and then the array
- EGLImageKHR* eglImages = NULL;
- CEglImageDeleteData* eglImageDeleteData = new (ELeave)CEglImageDeleteData(*this, eglImages, iDisplay, iNumIterations);
- CleanupStack::PushL(eglImageDeleteData);
- eglImages = new (ELeave) EGLImageKHR[iNumIterations];
-
- //Creating VGImage from initialized RSgImage
- for(TInt count=iNumIterations-1; count >= 0; --count)
+ if(aIdx == 1)
{
- const TInt res = sgImages[count].Create(imageInfo, data, KDataStride);
- TESTL(res == KErrNone);
- TESTL(!sgImages[count].IsNull());
+ imageInfo.iUsage = ESgUsageBitOpenVgImage | ESgUsageBitOpenVgSurface;
+ //create a dummy surface and context for the purpose of enabling use of VG
+ iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo, CTestEglSession::EResourceCloseSgImageLate);
- eglImages[count]= iEglSess->eglCreateImageKhrL(iDisplay,EGL_NO_CONTEXT,EGL_NATIVE_PIXMAP_KHR,&sgImages[count],const_cast<EGLint *> (KEglImageAttribsPreservedTrue));
- ASSERT_EGL_TRUE(eglImages[count] != EGL_NO_IMAGE_KHR)
+ //Creating regular VGImages
+ //Create an array of VGImages and push them into cleanup stack
+ //vgImageDeleteData takes ownership of the VGImages array.
+ //If leaving occurs or this object is destroyed from the cleanup stack
+ //it will delete all images and then the array
+ VGImageFormat vgPixelFormat = EglTestConversion::PixelFormatToVgFormat(iPixelFormat);
+ VGImage* vgImages = NULL;
+ CVgImageDeleteData* vgImageDeleteData = new (ELeave) CVgImageDeleteData(vgImages, KNumImagesToDraw);
+ CleanupStack::PushL(vgImageDeleteData);
+ vgImages = new (ELeave)VGImage[KNumImagesToDraw];
+ for(TInt index=KNumImagesToDraw - 1; index >= 0; --index)
+ {
+ //we will use VG_IMAGE_QUALITY_NONANTIALIASED flag to avoid OpenVG making the quality improvements
+ //at the expense of performance (for instance to create an extra buffer)
+ vgImages[index] = vgCreateImage(vgPixelFormat, iImageSize.iWidth, iImageSize.iHeight, VG_IMAGE_QUALITY_NONANTIALIASED);
+ ASSERT_VG_TRUE(vgImages[index] != VG_INVALID_HANDLE);
+
+ TDisplayMode bitmapMode = EglTestConversion::VgFormatToDisplayMode(EglTestConversion::PixelFormatToVgFormat(iPixelFormat));
+ CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, iImageSize, index);
+ CleanupStack::PushL(bitmap);
+ // Add pixel data to the VGImage reference from the bitmap reference.
+ // Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
+ TUint8* address = reinterpret_cast<TUint8*>(bitmap->DataAddress());
+ TInt stride = bitmap->DataStride();
+ address += (iImageSize.iHeight - 1) * stride;
+ vgImageSubData(vgImages[index], address, -stride,
+ KDefaultSurfaceFormat, 0,0, iImageSize.iWidth, iImageSize.iHeight);
+ ASSERT_VG_ERROR(VG_NO_ERROR);
+ CleanupStack::PopAndDestroy(bitmap);
+ }
+#ifdef ENABLE_BENCHMARK_VERBOSE_LOGGING
+ iProfiler->SetStoreResultInTimingOrder(ETrue);
+#endif
+ //--------- start profiling
+ INFO_PRINTF1(_L("Profiling of drawing of the regular VG image"));
+ iProfiler->InitResults();
+ for(TInt count = KNumAttempt - 1; count >= 0; --count)
+ {
+ for(TInt index=iNumIterations - 1; index >= 0; --index)
+ {
+ vgDrawImage(vgImages[index]);
+#ifdef ENABLE_CHECKING_WHILST_PROFILING
+ ASSERT_VG_ERROR(VG_NO_ERROR);
+#endif
+ }
+ vgFinish();
+#ifdef ENABLE_CHECKING_WHILST_PROFILING
+ ASSERT_VG_ERROR(VG_NO_ERROR);
+#endif
+ iProfiler->MarkResultSetL();
+ }
+ iProfiler->ResultsAnalysis(_L("Drawing of the regular VGImages"), 0, EglTestConversion::PixelFormatToDisplayMode(iPixelFormat), EglTestConversion::PixelFormatToDisplayMode(iPixelFormat), KNumAttempt);
+#ifdef ENABLE_BENCHMARK_VERBOSE_LOGGING
+ iProfiler->ShowResultArrayInTimingOrder();
+
+ const TInt KDeviationRegular = ((((TReal)(iProfiler->TimeMax())) - iProfiler->TimeMin()) / (TReal)(iProfiler->Mean())) * 100;
+ INFO_PRINTF3(_L("Deviation in percentage between min and max number of images drawing ((TimeMax - TimeMin) / Mean * 100): %d, threshold: %d "), KDeviationRegular, KBenchmarkDrawImageThreshold);
+ if(KDeviationRegular > KBenchmarkDrawImageThreshold)
+ {
+ //unfortunatelly EGL test framework currently ignores the error because this is a spawned process, and not
+ // the main cteststep process. We could leave, but that would be too harsh in this situation
+ WARN_PRINTF1(_L("***The deviation has exceeded threshold, the number of iteration needs to be increased!!!"));
+ }
+#endif
+ //--------- stop profiling
+
+ //destroy vgImages
+ for(TInt index=0; index < KNumImagesToDraw; index++)
+ {
+ vgDestroyImage(vgImages[index]);
+ vgImages[index]=VG_INVALID_HANDLE;
+ ASSERT_VG_ERROR(VG_NO_ERROR);
+ }
+
+ //Create an array of EglImages and push them into cleanup stack
+ //eglImageDeleteData takes ownership of the EglImages array.
+ //If leaving occurs or this object is destroyed from the cleanup stack
+ //it will delete all images and then the array
+ EGLImageKHR* eglImages = NULL;
+ CEglImageDeleteData* eglImageDeleteData = new (ELeave)CEglImageDeleteData(*this, eglImages, iDisplay, KNumImagesToDraw);
+ CleanupStack::PushL(eglImageDeleteData);
+ eglImages = new (ELeave) EGLImageKHR[KNumImagesToDraw];
+
+ //---------------start profiling
+ INFO_PRINTF1(_L("Profiling of mapping in and drawing of the VG images with underlying RSgImage"));
+ iProfiler->InitResults();
+ for(TInt count = KNumAttempt - 1; count >= 0; --count)
+ {//we will run KNumAttemt times in a row and check that the set of results is consistent,
+ // i.e. deviation between max and min time doesn't exceed KBenchmarkDrawImageThreshold percentage
+
+ for(TInt index=iNumIterations - 1; index >= 0; --index)
+ {
+#ifdef ENABLE_CHECKING_WHILST_PROFILING
+ const TInt res = sgImages[index].Open(sgIdImageList[index]);
+ TESTL(res == KErrNone);
+ TESTL(!sgImages[index].IsNull());
+ eglImages[index]= iEglSess->eglCreateImageKhrL(iDisplay,EGL_NO_CONTEXT,EGL_NATIVE_PIXMAP_KHR,&sgImages[index],const_cast<EGLint *> (KEglImageAttribsPreservedTrue));
+ ASSERT_EGL_TRUE(eglImages[index] != EGL_NO_IMAGE_KHR)
+ vgImages[index] = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)eglImages[index]);
+ ASSERT_VG_TRUE(vgImages[index] != VG_INVALID_HANDLE);
+ vgDrawImage(vgImages[index]);
+ ASSERT_VG_ERROR(VG_NO_ERROR);
+#else
+ const TInt res = sgImages[index].Open(sgIdImageList[index]);
+ eglImages[index]= iEglSess->eglCreateImageKhrL(iDisplay,EGL_NO_CONTEXT,EGL_NATIVE_PIXMAP_KHR,&sgImages[index],const_cast<EGLint *> (KEglImageAttribsPreservedTrue));
+ vgImages[index] = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)eglImages[index]);
+ vgDrawImage(vgImages[index]);
+
+#endif //ENABLE_CHECKING_WHILST_PROFILING
+ }
+ vgFinish();
+#ifdef ENABLE_CHECKING_WHILST_PROFILING
+ ASSERT_VG_ERROR(VG_NO_ERROR);
+#endif
+ iProfiler->MarkResultSetAndSuspendL(); //mark the end of the iteration. The timer will not be resumed yet
+
+ // Clean Sg/Vg/Egl images.
+ // This is to ensure that expanding of the images will not impact measurement
+ for(TInt index=iNumIterations - 1; index >= 0; --index)
+ {
+ sgImages[index].Close();
+ vgDestroyImage(vgImages[index]);
+ vgImages[index] = VG_INVALID_HANDLE;
+ iEglSess->DestroyEGLImage( iDisplay, eglImages[index]);
+ eglImages[index] = EGL_NO_IMAGE_KHR;
+ }
+
+ iProfiler->StartTimer();
+ }
+ //----------------stop profiling
- vgImages[count] = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)eglImages[count]);
- ASSERT_VG_TRUE(vgImages[count] != VG_INVALID_HANDLE);
+ const TInt KDeviation = ((((TReal)(iProfiler->TimeMax())) - iProfiler->TimeMin()) / (TReal)(iProfiler->Mean())) * 100;
+ INFO_PRINTF3(_L("Deviation in percentage between min and max number of images drawing ((TimeMax - TimeMin) / Mean * 100): %d, threshold: %d "), KDeviation, KBenchmarkDrawImageThreshold);
+ if(KDeviation > KBenchmarkDrawImageThreshold)
+ {
+ //unfortunatelly EGL test framework currently ignores the error because this is a spawned process, and not
+ // the main cteststep process. We could leave, but that would be too harsh in this situation
+ WARN_PRINTF1(_L("***The deviation has exceeded threshold, the number of iteration needs to be increased!!!"));
+ }
+
+ iProfiler->ResultsAnalysis(_L("Drawing VGImages with underlying RSgImage"), 0, EglTestConversion::PixelFormatToDisplayMode(iPixelFormat), EglTestConversion::PixelFormatToDisplayMode(iPixelFormat), KNumAttempt);
+#ifdef ENABLE_BENCHMARK_VERBOSE_LOGGING
+ iProfiler->ShowResultArrayInTimingOrder();
+#endif
+ sgIdImageList.Reset();
}
- //---------------start profiling
- iProfiler->InitResults();
- for(TInt count=iNumIterations - 1; count >= 0; --count)
+ //Introduce synchronization point here to make sure that RSgImages are not closed from the
+ //first process while the second one is busy with benchmark measurement
+ Rendezvous(aIdx);
+ if(aIdx == 0)
{
- vgDrawImage(vgImages[count]);
-#ifdef ENABLE_CHECKING_WHILST_PROFILING
- ASSERT_VG_ERROR(VG_NO_ERROR);
-#endif
- iProfiler->MarkResultSetL();
+ //Destroying VGImage/EGLImage/RSgImages
+ //no need to profile as we have already done this before
+ CleanupStack::PopAndDestroy(sgImageData); // sgImageData
}
- iProfiler->ResultsAnalysis(_L("Drawing VGImage with underlying RSgImage "), 0, EglTestConversion::PixelFormatToDisplayMode(iPixelFormat), EglTestConversion::PixelFormatToDisplayMode(iPixelFormat), iNumIterations);
- //----------------stop profiling
-
- //Destroying VGImage/EGLImage/RSgImages
- //no need to profile as we have already done this before
- CleanupStack::PopAndDestroy(4, data); // data, vgImageDeleteData, sgImageData, eglImageDeleteData
-
+ else
+ {
+ //Destroying VGImage/EGLImage/RSgImages
+ //no need to profile as we have already done this before
+ CleanupStack::PopAndDestroy(3, sgImageData); // sgImageData, vgImageDeleteData, eglImageDeleteData
+ }
CleanAll();
- RecordTestResultL();
- CloseTMSGraphicsStep();
- return TestStepResult();
#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
}
--- a/egl/egltest/src/egltest_general.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltest_general.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -107,9 +107,8 @@
INFO_PRINTF1(_L("Dumping OpenVG strings"));
// OpenVG needs a current VG context before it will allow the call to vgGetString
- TUidPixelFormat pixelFormat = EglTestConversion::VgFormatToSgPixelFormat(KDefaultSurfaceFormat);
- TSgImageInfoOpenVgTarget imageInfo = TSgImageInfoOpenVgTarget(pixelFormat, KPixmapSize);
- eglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo,CTestEglSession::EResourceCloseSgImageEarly, EGL_OPENVG_API);
+ EGLConfig currentConfig = eglSess->GetConfigExactMatchL(EPBufferAttribsColor64K);
+ eglSess->CreatePbufferSurfaceAndMakeCurrentL(currentConfig, KPixmapSize, EGL_OPENVG_API);
TPtrC8 ptrVgVendor((const TText8 *)vgGetString(VG_VENDOR));
DumpString(_L("VG_VENDOR"), ptrVgVendor);
@@ -133,9 +132,8 @@
INFO_PRINTF1(_L("Dumping OpenGLES strings"));
// OpenGLES needs a current GLES context before it will allow the call to glGetString
- TUidPixelFormat pixelFormat = EglTestConversion::VgFormatToSgPixelFormat(KDefaultSurfaceFormat);
- TSgImageInfoOpenVgTarget imageInfo = TSgImageInfoOpenVgTarget(pixelFormat, KPixmapSize);
- eglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo,CTestEglSession::EResourceCloseSgImageEarly, EGL_OPENGL_ES_API);
+ EGLConfig currentConfig = eglSess->GetConfigExactMatchL(EPBufferAttribsColor64K);
+ eglSess->CreatePbufferSurfaceAndMakeCurrentL(currentConfig, KPixmapSize, EGL_OPENGL_ES_API);
TPtrC8 ptrGlesVendor((const TText8 *)glGetString(GL_VENDOR));
DumpString(_L("GL_VENDOR"), ptrGlesVendor);
@@ -201,7 +199,7 @@
INFO_PRINTF1(_L("CEglTest_QueryString_Extensions::doTestStepL"));
TInt numExtensions=0;
- if (!GetIntFromConfig(KSectionQueryExtensions, KKeyCountExtensionsEGL, numExtensions))
+ if (!GetIntFromConfig(ConfigSection(), KKeyCountExtensionsEGL, numExtensions))
{
ERR_PRINTF2(_L("Cannot find key '%S' in INI file"), &KKeyCountExtensionsEGL);
User::Leave(KErrArgument);
@@ -213,7 +211,7 @@
for(TInt i=0; i<numExtensions; i++)
{
bufExtensionNameKey.Format(KKeyExtensionEGLX, i);
- if (!GetStringFromConfig(KSectionQueryExtensions, bufExtensionNameKey, ptrExtensionNameValue16))
+ if (!GetStringFromConfig(ConfigSection(), bufExtensionNameKey, ptrExtensionNameValue16))
{
ERR_PRINTF2(_L("Cannot find key '%S' in INI file"), &bufExtensionNameKey);
User::Leave(KErrArgument);
@@ -223,7 +221,7 @@
}
numExtensions=0;
- if (!GetIntFromConfig(KSectionQueryExtensions, KKeyCountExtensionsVG, numExtensions))
+ if (!GetIntFromConfig(ConfigSection(), KKeyCountExtensionsVG, numExtensions))
{
ERR_PRINTF2(_L("Cannot find key '%S' in INI file"), &KKeyCountExtensionsVG);
User::Leave(KErrArgument);
--- a/egl/egltest/src/egltest_geterroranddisplay.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltest_geterroranddisplay.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -963,7 +963,7 @@
TEST(eglGetError() == EGL_SUCCESS);
// launch 100 threads.
- Test_MultiThreadL(100, EFalse);
+ Test_MultiThreadL(100, ETrue);
INFO_PRINTF1(_L("Calling eglTerminate from main thread"));
TEST_EGL_ERROR(eglTerminate(iDisplay), EGL_SUCCESS);
--- a/egl/egltest/src/egltest_image_multiprocess.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltest_image_multiprocess.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -107,7 +107,7 @@
// destroy sgImage
CleanupStack::PopAndDestroy(2, bitmap);
-
+
// clean everything
CleanAll();
INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_Sibling_Basic::doTestStepL"));
@@ -117,7 +117,7 @@
}
void CEglTest_EGL_Image_Multi_Process_Sibling_Basic::doProcessFunctionL(TInt aIdx,const TSgDrawableId& aSgId)
- {
+ {
INFO_PRINTF2(_L("CEglTest_EGL_Image_Multi_Process_Sibling_Basic::doProcessFunctionL, Process %d"),aIdx);
GetDisplayL();
CreateEglSessionL(aIdx);
@@ -127,12 +127,12 @@
RSgImage sgImageFromId;
CleanupClosePushL(sgImageFromId);
ASSERT_EQUALS(sgImageFromId.Open(aSgId),KErrNone);
-
+
INFO_PRINTF2(_L("Process %d, Creating an EGLImage from the shared RSgImage"),aIdx);
EGLImageKHR eglImage = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &sgImageFromId, KEglImageAttribsPreservedTrue);
ASSERT_EGL_TRUE(eglImage != EGL_NO_IMAGE_KHR);
CleanupStack::PopAndDestroy(&sgImageFromId);
-
+
INFO_PRINTF2(_L("Process %d, EGLImage successfully created, now destroying it"),aIdx);
ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImage));
@@ -155,7 +155,7 @@
@SYMTestActions
Run two processes that independently perform the same actions detailed below.
-This test will check for the “VG_KHR_EGL_image” extension, if it is not
+This test will check for the “VG_KHR_EGL_image” extension, if it is not
supported on this platform then the test will return immediately without failure.
Create and fully construct an RSgImage object
• Set the iUsage bits to ESgUsageBitOpenVgImage
@@ -166,21 +166,21 @@
Check that eglCreateImageKHR() does NOT return EGL_NO_IMAGE_KHR
Use vgCreateEGLImageTargetKHR() to construct a VGImage object from the EGLImage.
• Check for errors (VGInvalidHandle is not returned)
-Create a second RSgImage, and use it to create a pixmap surface that is
+Create a second RSgImage, and use it to create a pixmap surface that is
compatible as a target for the VGImage to be drawn to.
• Set the iUsage bit to ESgUsageBitOpenVgSurface
• Use the same pixel format as the RSgImage above.
-Now that a eglContext and an OpenVG context have been created, use the
-OpenVG API vgClearImage to clear to a chosen colour the VGImage previously
+Now that a eglContext and an OpenVG context have been created, use the
+OpenVG API vgClearImage to clear to a chosen colour the VGImage previously
returned by eglCreateImageKHR.
-Use OpenVG to draw the just drawn VGImage to the pixmap surface currently
+Use OpenVG to draw the just drawn VGImage to the pixmap surface currently
linked to the context.
Call eglWaitClient() to finish the above drawing instructions synchronously.
Destroy the original image data
• Pass the VGImage into vgDestroyImage()
• Pass the EGLImage into eglDestroyImageKHR()
• Close the first RSgImage
-• Check that the pixmap surface contains expected pixel values using
+• Check that the pixmap surface contains expected pixel values using
OpenVG APIs, vgReadPixels.
Close the second RSgImage and destroy the pixmap surface
Check for memory and handle leaks
@@ -194,7 +194,7 @@
SetTestStepID(_L("GRAPHICS-EGL-0161"));
SetTestStepName(KEGL_Image_Multi_Process_Parallel);
INFO_PRINTF1(_L("Enter: CEglTest_EGL_Image_Multi_Process_Parallel::doTestStepL"));
-
+
TBool ret = CheckForExtensionL(KEGL_RSgimage | KEGL_KHR_image_base | KEGL_KHR_image_pixmap | KVG_KHR_EGL_image);
if(!ret)
{
@@ -206,8 +206,8 @@
// launch 2 processes
Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
-
- INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_Parallel::doTestStepL"));
+
+ INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_Parallel::doTestStepL"));
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -218,7 +218,7 @@
INFO_PRINTF2(_L("CEglTest_EGL_Image_Multi_Process_Parallel::doProcessFunctionL, Process %d"),aIdx);
GetDisplayL();
CreateEglSessionL(aIdx);
- iEglSess->InitializeL();
+ iEglSess->InitializeL();
iEglSess->OpenSgDriverL();
// create a reference bitmap (we give index 3 for example, as there's only 1 image in this test case)
@@ -238,7 +238,7 @@
ASSERT_EGL_TRUE(eglImageLocal != EGL_NO_IMAGE_KHR);
CleanupStack::PopAndDestroy(&rSgImageLocal); //transferring ownership of the buffer to the EGLImage
CleanupStack::PopAndDestroy(bitmap);
-
+
INFO_PRINTF2(_L("Process %d, Creating a Surface and a Context bound to OpenVG"),aIdx);
TUidPixelFormat pixelFormat = EglTestConversion::VgFormatToSgPixelFormat(KDefaultSurfaceFormat);
TSgImageInfoOpenVgTarget imageInfo2 = TSgImageInfoOpenVgTarget(pixelFormat, KImageSize);
@@ -265,7 +265,7 @@
iEglSess->CheckVgDrawingL(KDefaultSurfaceFormat, refBitmap);
CleanupStack::PopAndDestroy(refBitmap);
INFO_PRINTF2(_L("Drawing successful, Process %d"),aIdx);
-
+
// cleanup
CleanAll();
}
@@ -344,10 +344,10 @@
// destroy sgImage
CleanupStack::PopAndDestroy(&sgImage);
CleanupStack::PopAndDestroy(bitmap);
-
+
// clean everything
CleanAll();
- INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_Sibling_CheckContents::doTestStepL"));
+ INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_Sibling_CheckContents::doTestStepL"));
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -364,28 +364,28 @@
RSgImage sgImageFromId;
CleanupClosePushL(sgImageFromId);
ASSERT_EQUALS(sgImageFromId.Open(aSgId),KErrNone);
-
+
INFO_PRINTF2(_L("Process %d, Creating an EGLImage from the shared RSgImage"),aIdx);
EGLImageKHR eglImageLocal = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &sgImageFromId, KEglImageAttribsPreservedTrue);
ASSERT_EGL_TRUE(eglImageLocal != EGL_NO_IMAGE_KHR);
CleanupStack::PopAndDestroy(&sgImageFromId);
-
+
INFO_PRINTF2(_L("Process %d, Creating a Surface and a Context bound to OpenVG"),aIdx);
TUidPixelFormat pixelFormat = EglTestConversion::VgFormatToSgPixelFormat(KDefaultSurfaceFormat);
TSgImageInfoOpenVgTarget imageInfo = TSgImageInfoOpenVgTarget(pixelFormat, KImageSize);
// Create a pixmap surface matching the native image pixel format
iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo,CTestEglSession::EResourceCloseSgImageEarly);
-
+
INFO_PRINTF2(_L("Process %d, Creating one VGImage from the EGLImage"),aIdx);
VGImage vgImageLocal = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)eglImageLocal);
ASSERT_VG_TRUE(vgImageLocal != VG_INVALID_HANDLE);
ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImageLocal));
-
+
if(aIdx == 0)
{
TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(KDefaultSourceFormat);
CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, KImageSize, 4);
- // Add pixel data to the VGImage reference from the bitmap reference.
+ // Add pixel data to the VGImage reference from the bitmap reference.
// Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
TSize bitmapSize = bitmap->SizeInPixels();
TUint8* address = reinterpret_cast<TUint8*>(bitmap->DataAddress());
@@ -397,10 +397,10 @@
ASSERT_TRUE(vgGetError()==VG_NO_ERROR);
eglWaitClient();
}
-
+
// Wait for both processes to reach this point (process 0 will have updated the VGImage)
Rendezvous(aIdx);
-
+
if(aIdx == 1)
{
INFO_PRINTF2(_L("Process %d, Drawing the VGImage to the current surface"),aIdx);
@@ -472,7 +472,7 @@
// launch 2 processes
Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
- INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_Source::doTestStepL"));
+ INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_Source::doTestStepL"));
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -483,7 +483,7 @@
INFO_PRINTF2(_L("CEglTest_EGL_Image_Multi_Process_VgImage_Source::doProcessFunctionL, Process %d"),aIdx);
GetDisplayL();
CreateEglSessionL(aIdx);
- iEglSess->InitializeL();
+ iEglSess->InitializeL();
iEglSess->OpenSgDriverL();
RMsgQueue<TSgDrawableId> messageQueue;
@@ -506,7 +506,7 @@
#endif
ASSERT_EQUALS(rSgImageLocal.Create(imageInfo,bitmap->DataAddress(),bitmap->DataStride()), KErrNone);
CleanupStack::PopAndDestroy(bitmap);
-
+
INFO_PRINTF2(_L("Process %d, Sending SgImage ID to other process..."), aIdx);
messageQueue.SendBlocking(rSgImageLocal.Id());
}
@@ -560,7 +560,7 @@
INFO_PRINTF2(_L("Process %d, Changing contents of the VGImage"),aIdx);
TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(KDefaultSourceFormat);
CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, KImageSize, 4);
- // Add pixel data to the VGImage reference from the bitmap reference.
+ // Add pixel data to the VGImage reference from the bitmap reference.
// Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
TSize bitmapSize = bitmap->SizeInPixels();
TUint8* address = reinterpret_cast<TUint8*>(bitmap->DataAddress());
@@ -575,7 +575,7 @@
// Wait for both processes to reach this point (process 0 will have updated the VGImage)
Rendezvous(aIdx);
-
+
if(aIdx == 1)
{
INFO_PRINTF2(_L("Drawing the VGImage to the current surface after changing contents of the VGImage, Process %d"),aIdx);
@@ -649,7 +649,7 @@
// launch 2 processes
Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
- INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_DrawAfterTerminate::doTestStepL"));
+ INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_DrawAfterTerminate::doTestStepL"));
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -666,7 +666,7 @@
RMsgQueue<TSgDrawableId> messageQueue;
User::LeaveIfError(messageQueue.Open(EProcSlotMsgQueueSgId, EOwnerProcess));
CleanupClosePushL(messageQueue);
-
+
RSgImage rSgImageLocal;
if(aIdx == 0)
{
@@ -683,7 +683,7 @@
#endif
ASSERT_EQUALS(rSgImageLocal.Create(imageInfo,bitmap->DataAddress(),bitmap->DataStride()), KErrNone);
CleanupStack::PopAndDestroy(bitmap);
-
+
INFO_PRINTF2(_L("Process %d, Sending SgImage ID to other process..."), aIdx);
messageQueue.SendBlocking(rSgImageLocal.Id());
}
@@ -694,7 +694,7 @@
messageQueue.ReceiveBlocking(sgImageId);
ASSERT_EQUALS(rSgImageLocal.Open(sgImageId),KErrNone);
}
-
+
INFO_PRINTF2(_L("Process %d, Creating an EGLImage from the shared RSgImage"),aIdx);
CleanupClosePushL(rSgImageLocal);
EGLImageKHR eglImageLocal = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &rSgImageLocal, KEglImageAttribsPreservedTrue);
@@ -711,7 +711,7 @@
VGImage vgImageLocal = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)eglImageLocal);
ASSERT_VG_TRUE(vgImageLocal != VG_INVALID_HANDLE);
ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImageLocal));
-
+
if(aIdx == 1)
{
INFO_PRINTF2(_L("Process %d, Drawing the VGImage to the current surface before changing contents of the VGImage"),aIdx);
@@ -719,7 +719,7 @@
vgSetPixels(0, 0, vgImageLocal, 0, 0, KImageSize.iWidth, KImageSize.iHeight);
ASSERT_TRUE(vgGetError()==VG_NO_ERROR);
eglWaitClient();
-
+
// we can now compare the VgImage to the one we expect before we apply any change to it
TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(KDefaultSourceFormat);
@@ -738,7 +738,7 @@
INFO_PRINTF2(_L("Process %d, Changing contents of the VGImage"),aIdx);
TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(KDefaultSourceFormat);
CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, KImageSize, 2);
- // Add pixel data to the VGImage reference from the bitmap reference.
+ // Add pixel data to the VGImage reference from the bitmap reference.
// Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
TSize bitmapSize = bitmap->SizeInPixels();
TUint8* address = reinterpret_cast<TUint8*>(bitmap->DataAddress());
@@ -758,7 +758,7 @@
// Wait for both processes to reach this point
Rendezvous(aIdx);
-
+
if(aIdx == 1)
{
INFO_PRINTF2(_L("Drawing the VGImage to the current surface after changing contents of the VGImage, Process %d"),aIdx);
@@ -805,18 +805,18 @@
• EUidPixelFormatA_8 (source only)
- Note that when using EUidPixelFormatA_8 as a source, the reference bitmap display mode used is EGray256,
This is to enable using the reference bitmap as an alpha mask.
-- Spawn N client processes. During the process launching, pass to each process single drawable ID from the SgImages.
- In order to define which SgImage needs to be passed to the particular process, there will be following
+- Spawn N client processes. During the process launching, pass to each process single drawable ID from the SgImages.
+ In order to define which SgImage needs to be passed to the particular process, there will be following
formula applied: J = P Mod (M), where J is the sequence number of the image, P is the particular process number.
From processes 1 to N:
- Open SgImage by using TSgDrawableId, obtained from the SgImage which was passed from the process A.
-- Using EGL extension, create EGLImage specifying as EGLClientBuffer SgImage which was created on
+- Using EGL extension, create EGLImage specifying as EGLClientBuffer SgImage which was created on
previous step, EGL_NATIVE_PIXMAP_KHR as a target and EGL_IMAGE_PRESERVED_KHR as an attribute
-- Using VG extension, create VG image based on EGLImage from the previous step.
+- Using VG extension, create VG image based on EGLImage from the previous step.
- Close Sg and EGL images
-- Create second SgImage with the same size and pixel format as first SgImage and usage flag is set to ESgUsageBitOpenVgSurface.
-- Create off-screen pixmap surface with underlining second SgImage and make it current for the drawing context.
-- Draw VGImage to the off-screen surface (note that when using EUidPixelFormatA_8 as a source, the
+- Create second SgImage with the same size and pixel format as first SgImage and usage flag is set to ESgUsageBitOpenVgSurface.
+- Create off-screen pixmap surface with underlining second SgImage and make it current for the drawing context.
+- Draw VGImage to the off-screen surface (note that when using EUidPixelFormatA_8 as a source, the
reference bitmap is used as an alpha mask).
- Draw VGImage to the off-screen surface.
- Retrieve surface data (see vgReadPixels() API)
@@ -824,7 +824,7 @@
@SYMTestExpectedResults
Creation of all drawable resources have been completed without errors.
Image data obtained in client processes 1-N matches to the data which have been uploaded to the SgImages buffer from
-process A. Reference counting works correctly and keeps VG image alive although bound Sg and EGL images have been destroyed.
+process A. Reference counting works correctly and keeps VG image alive although bound Sg and EGL images have been destroyed.
When all resources are closed, resource count maintained by RSgDriver extension is zero in all processes.
*/
TVerdict CEglTest_EGL_Image_Multi_Process_FontServer_Upfront::doTestStepL()
@@ -868,7 +868,7 @@
// A_8 related tests are only performed for SgImage-Lite
if (iSourceFormat == EUidPixelFormatA_8)
continue;
-#endif
+#endif
doTestPartialStepL();
}
}
@@ -913,8 +913,8 @@
}
INFO_PRINTF2(_L("MAIN PROCESS: About to launch %d processes..."), KNumProcesses);
- Test_MultiProcessL(KEglTestStepDllName, KNumProcesses, TestStepName(), sgIdList); //the function will guarantee that all images will be opened before it returns
- CleanupStack::PopAndDestroy(2 * KNumImages + 1, &sgIdList); // KNumImages SgImages, KNumImages bitmaps, sgIdList
+ Test_MultiProcessL(KEglTestStepDllName, KNumProcesses, TestStepName(), sgIdList); //the function will guarantee that all images will be opened before it returns
+ CleanupStack::PopAndDestroy(2 * KNumImages + 1, &sgIdList); // KNumImages SgImages, KNumImages bitmaps, sgIdList
INFO_PRINTF2(_L("MAIN PROCESS: All %d launched processes have completed!"), KNumProcesses);
CleanAll();
@@ -955,9 +955,9 @@
ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImage));
// At this point we draw the VGImage created from the SgImage to the current surface.
- // # if the source is a A_8, the VGImage acts as a mask and the target surface must contain
+ // # if the source is a A_8, the VGImage acts as a mask and the target surface must contain
// as a result the pen colour set above blended with the mask
- // # otherwise, drawing the VGImage is just a simple copy via vgSetPixels (no blending required)
+ // # otherwise, drawing the VGImage is just a simple copy via vgSetPixels (no blending required)
INFO_PRINTF1(_L("Copying the VGImage to the surface"));
if (iSourceFormat == EUidPixelFormatA_8)
{
@@ -975,7 +975,7 @@
VGuint fillColor = 0x008000ff; // opaque dark green
vgSetColor(fillPaint, fillColor);
ASSERT_EGL_TRUE(vgGetError() == VG_NO_ERROR);
-
+
vgSeti(VG_IMAGE_MODE, VG_DRAW_IMAGE_STENCIL);
vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER);
vgDrawImage(vgImage);
@@ -996,7 +996,7 @@
// a) a reference bitmap needs to be cleared to black (same colour as the surface was cleared to)
// b) a Pen bitmap, that we clear to dark green (same colour as the fillPaint used to draw to the surface)
// c) a mask bitmap, which is the reference bitmap used to create the SgImage
- // # otherwise, the surface must contain the same pixels as the bitmap used to create the SgImage
+ // # otherwise, the surface must contain the same pixels as the bitmap used to create the SgImage
if (iSourceFormat == EUidPixelFormatA_8)
{
TDisplayMode maskMode = EglTestConversion::PixelFormatToDisplayMode(iSourceFormat);
@@ -1009,7 +1009,7 @@
CFbsBitmap* refBitmap = iEglSess->CreateReferenceMaskedBitmapL(refbitmapMode, KRgbDarkGreen, mask);
CleanupStack::PushL(refBitmap);
-
+
// compare the obtained reference bitmap with the surface drawn
iEglSess->CheckVgDrawingL(iSurfaceFormat, refBitmap);
CleanupStack::PopAndDestroy(2, mask); //mask, refBitmap
@@ -1051,29 +1051,29 @@
• EUidPixelFormatRGB_565
• EUidPixelFormatXRGB_8888
• EUidPixelFormatARGB_8888_PRE
-- Using EGL extension, create M EGLImage(s), specifying as EGLClientBuffer SgImage(s) which were created on
+- Using EGL extension, create M EGLImage(s), specifying as EGLClientBuffer SgImage(s) which were created on
first step and EGL_NATIVE_PIXMAP_KHR as a target
- Using VG extension, create VG images based on EGLImage(s) from the previous step
- Close Sg and EGL Images
-- Populate data in VGImages (see vgImageSubData(..) API), there will be different data uploaded for each VGImage
-- Spawn N client processes. During the process launching, pass to each process single drawable ID from the SgImages.
- In order to define which SgImage(s) needs to be passed to the particular processes, there will be following
+- Populate data in VGImages (see vgImageSubData(..) API), there will be different data uploaded for each VGImage
+- Spawn N client processes. During the process launching, pass to each process single drawable ID from the SgImages.
+ In order to define which SgImage(s) needs to be passed to the particular processes, there will be following
formula applied: J = P Mod (M), where J is the sequence number of the image, P is the particular process number.
From processes 1 to N:
- Open SgImage by using TSgDrawableId, obtained from the SgImage which was passed from the process A.
-- Using EGL extension, create EGLImage specifying as EGLClientBuffer SgImage which was created on previous step,
+- Using EGL extension, create EGLImage specifying as EGLClientBuffer SgImage which was created on previous step,
EGL_NATIVE_PIXMAP_KHR as a target and EGL_IMAGE_PRESERVED_KHR as an attribute
-- Using VG extension, create VG image based on EGLImage from the previous step.
+- Using VG extension, create VG image based on EGLImage from the previous step.
- Close Sg and EGL images
-- Create second SgImage with the same size and pixel format as first SgImage and usage flag is set to ESgUsageBitOpenVgSurface.
-- Create off-screen pixmap surface with underlining second SgImage and make it current for the drawing context.
+- Create second SgImage with the same size and pixel format as first SgImage and usage flag is set to ESgUsageBitOpenVgSurface.
+- Create off-screen pixmap surface with underlining second SgImage and make it current for the drawing context.
- Draw VGImage to the off-screen surface.
- Retrieve surface data (see vgReadPixels() API)
@SYMTestExpectedResults
Creation of all drawable resources have been completed without errors.
-Image data obtained in client processes 1-N matches to the data which have been uploaded to the SgImages buffer from
-process A. Reference counting works correctly and keep VG image alive although bound Sg and EGL images have been closed.
+Image data obtained in client processes 1-N matches to the data which have been uploaded to the SgImages buffer from
+process A. Reference counting works correctly and keep VG image alive although bound Sg and EGL images have been closed.
When all resources are closed, resource count maintained by RSgDriver extension is zero in all processes.
*/
TVerdict CEglTest_EGL_Image_Multi_Process_FontServer_Deferred::doTestStepL()
@@ -1108,7 +1108,7 @@
// A_8 related tests are only performed for SgImage-Lite
if (iSourceFormat == EUidPixelFormatA_8)
continue;
-#endif
+#endif
doTestPartialStepL();
}
@@ -1122,7 +1122,7 @@
{
INFO_PRINTF1(_L("CEglTest_EGL_Image_Multi_Process_FontServer_Deferred::doTestPartialStepL"));
PrintUsedPixelConfiguration();
-
+
// Create display object
ASSERT_TRUE(iDisplay == EGL_NO_DISPLAY);
GetDisplayL();
@@ -1137,7 +1137,7 @@
#else
imageInfo.iUsage = ESgUsageOpenVgImage | ESgUsageOpenVgTarget;
imageInfo.iShareable = ETrue;
-#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
+#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
// Create a pixmap surface matching the given pixel format
iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo,CTestEglSession::EResourceCloseSgImageEarly);
@@ -1153,16 +1153,16 @@
CleanupClosePushL(sgImages[i]);
ASSERT_EQUALS(sgIdList.Insert(sgImages[i].Id(),i), KErrNone);
- EGLImageKHR eglImage = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &sgImages[i], KEglImageAttribsPreservedTrue);
+ EGLImageKHR eglImage = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &sgImages[i], KEglImageAttribsPreservedTrue);
ASSERT_EGL_TRUE(eglImage != EGL_NO_IMAGE_KHR);
-
+
VGImage vgImage = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)eglImage);
ASSERT_VG_TRUE(vgImage != VG_INVALID_HANDLE);
ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImage));
TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(iSourceFormat);
CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, KImageSize, i);
- // Add pixel data to the VGImage reference from the bitmap reference.
+ // Add pixel data to the VGImage reference from the bitmap reference.
// Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
TSize bitmapSize = bitmap->SizeInPixels();
TUint8* address = reinterpret_cast<TUint8*>(bitmap->DataAddress());
@@ -1196,7 +1196,7 @@
//Retrieve source formats for the launched process from the process parameters.
User::LeaveIfError(User::GetTIntParameter(EProcSlotSourceFormat, reinterpret_cast<TInt&>(iSourceFormat)));
User::LeaveIfError(User::GetTIntParameter(EProcSlotSurfaceFormat, reinterpret_cast<TInt&>(iSurfaceFormat)));
-
+
RSgImage sgImageFromId;
CleanupClosePushL(sgImageFromId);
ASSERT_EQUALS(sgImageFromId.Open(aSgId), KErrNone);
@@ -1218,9 +1218,9 @@
ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImage));
// At this point we draw the VGImage created from the SgImage to the current surface.
- // # if the source is a A_8, the VGImage acts as a mask and the target surface must contain
+ // # if the source is a A_8, the VGImage acts as a mask and the target surface must contain
// as a result the pen colour set above blended with the mask
- // # otherwise, drawing the VGImage is just a simple copy via vgSetPixels (no blending required)
+ // # otherwise, drawing the VGImage is just a simple copy via vgSetPixels (no blending required)
INFO_PRINTF1(_L("Copying the VGImage to the surface"));
if (iSourceFormat == EUidPixelFormatA_8)
{
@@ -1238,7 +1238,7 @@
VGuint fillColor = 0x008000ff; // opaque dark green
vgSetColor(fillPaint, fillColor);
ASSERT_EGL_TRUE(vgGetError() == VG_NO_ERROR);
-
+
vgSeti(VG_IMAGE_MODE, VG_DRAW_IMAGE_STENCIL);
vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER);
vgDrawImage(vgImage);
@@ -1259,7 +1259,7 @@
// a) a reference bitmap needs to be cleared to black (same colour as the surface was cleared to)
// b) a Pen bitmap, that we clear to dark green (same colour as the fillPaint used to draw to the surface)
// c) a mask bitmap, which is the reference bitmap used to create the SgImage
- // # otherwise, the surface must contain the same pixels as the bitmap used to create the SgImage
+ // # otherwise, the surface must contain the same pixels as the bitmap used to create the SgImage
if (iSourceFormat == EUidPixelFormatA_8)
{
TDisplayMode maskMode = EglTestConversion::PixelFormatToDisplayMode(iSourceFormat);
@@ -1272,7 +1272,7 @@
CFbsBitmap* refBitmap = iEglSess->CreateReferenceMaskedBitmapL(refbitmapMode, KRgbDarkGreen, mask);
CleanupStack::PushL(refBitmap);
-
+
// compare the obtained reference bitmap with the surface drawn
iEglSess->CheckVgDrawingL(iSurfaceFormat, refBitmap);
CleanupStack::PopAndDestroy(2, mask); //mask, refBitmap
@@ -1314,37 +1314,37 @@
• EUidPixelFormatRGB_565
• EUidPixelFormatXRGB_8888
• EUidPixelFormatARGB_8888_PRE
-- Choose egl config, supplying as a native pixmap type in attribute (flag EGL_MATCH_NATIVE_PIXMAP) the SgImages which
+- Choose egl config, supplying as a native pixmap type in attribute (flag EGL_MATCH_NATIVE_PIXMAP) the SgImages which
were created on the previous step. The EGL_RENDERABLE_TYPE of the config attributes must include EGL_OPENVG_BIT.
-- Create M pixmap surfaces based on SgImages from the first step. The surface is created with EGL_ALPHA_FORMAT_PRE
+- Create M pixmap surfaces based on SgImages from the first step. The surface is created with EGL_ALPHA_FORMAT_PRE
flag supplied in attribute list if the underlining SgImage was of type ESgPixelFormatARGB_8888_PRE.
- In iteration from 1 to M perform three following steps:
1. Make the pixmap surface current (see eglMakeCurrent(.) API)
- 2. Draw something to the current surface, for instance, clear the whole area with color and then draw a
- few graphics primitives. The drawing needs to be unique for each surface and complicated enough to
+ 2. Draw something to the current surface, for instance, clear the whole area with color and then draw a
+ few graphics primitives. The drawing needs to be unique for each surface and complicated enough to
ensure that bit comparison will reveal any mismatch
3. Make no surface current
- Close all pixmap surfaces
-- Spawn N client processes. During the process launching, pass to each process single drawable ID from the SgImages.
- In order to define which SgImage(s) needs to be passed to the particular processes, there will be following
+- Spawn N client processes. During the process launching, pass to each process single drawable ID from the SgImages.
+ In order to define which SgImage(s) needs to be passed to the particular processes, there will be following
formula applied: J = P Mod (M), where J is the sequence number of the image, P is the particular process number.
From processes 1 to N:
- Open SgImage by TSgDrawableId obtained from the SgImage which was passed from the process A.
-- Using EGL extension, create EGLImage specifying as EGLClientBuffer SgImage which was opened on the previous
+- Using EGL extension, create EGLImage specifying as EGLClientBuffer SgImage which was opened on the previous
step, EGL_NATIVE_PIXMAP_KHR as a target and EGL_IMAGE_PRESERVED_KHR as an attribute
- Using VG extension, create VG image based on EGLImage from the previous step.
- Close both Sg and EGL images
-- Create second SgImage with the same size and pixel format as first SgImage and usage flag is set to ESgUsageBitOpenVgSurface.
-- Create off-screen pixmap surface with underlining second SgImage and make it current for the drawing context.
+- Create second SgImage with the same size and pixel format as first SgImage and usage flag is set to ESgUsageBitOpenVgSurface.
+- Create off-screen pixmap surface with underlining second SgImage and make it current for the drawing context.
- Draw VGImage to the off-screen surface.
- Retrieve surface data (see vgReadPixels() API)
@SYMTestExpectedResults
-Creation of all drawable resources has been completed without errors.
-On return eglChooseConfig() must return EGL_OPENVG_BIT in config attribute list (actual attributes should
+Creation of all drawable resources has been completed without errors.
+On return eglChooseConfig() must return EGL_OPENVG_BIT in config attribute list (actual attributes should
be retrieved via call to eglGetConfigAttrib()).
Image data obtained in client processes 1 - N matches to the pixmap surface which was drawn in the process A.
-Reference counting works correctly and keep VG image alive although bound Sg and EGL images have been closed.
+Reference counting works correctly and keep VG image alive although bound Sg and EGL images have been closed.
When all resources are closed, resource count maintained by RSgDriver extension is zero in all processes.
*/
TVerdict CEglTest_EGL_Image_Multi_Process_ThemeServer::doTestStepL()
@@ -1379,7 +1379,7 @@
// A_8 related tests are only performed for SgImage-Lite
if (iSourceFormat == EUidPixelFormatA_8)
continue;
-#endif
+#endif
doTestPartialStepL();
}
@@ -1393,7 +1393,7 @@
{
INFO_PRINTF1(_L("CEglTest_EGL_Image_Multi_Process_ThemeServer::doTestPartialStepL"));
PrintUsedPixelConfiguration();
-
+
// Create display object
ASSERT_TRUE(iDisplay == EGL_NO_DISPLAY);
GetDisplayL();
@@ -1416,22 +1416,22 @@
#else
imageInfo.iUsage = ESgUsageOpenVgImage | ESgUsageOpenVgTarget;
imageInfo.iShareable = ETrue;
-#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
+#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
ASSERT_EQUALS(sgImages[i].Create(imageInfo, NULL, NULL), KErrNone);
CleanupClosePushL(sgImages[i]);
ASSERT_EQUALS(sgIdList.Insert(sgImages[i].Id(),i), KErrNone);
-
+
INFO_PRINTF1(_L("Calling sequence - eglBindAPI(EGL_OPENVG_API) - eglCreatePixmapSurface - eglCreateContext - eglMakeCurrent"));
ASSERT_EGL_TRUE(eglBindAPI(EGL_OPENVG_API));
- const EGLint KAttrib_list_image_pre[] = { EGL_MATCH_NATIVE_PIXMAP, reinterpret_cast<EGLint>(&sgImages[i]),
+ const EGLint KAttrib_list_image_pre[] = { EGL_MATCH_NATIVE_PIXMAP, reinterpret_cast<EGLint>(&sgImages[i]),
EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
- EGL_SURFACE_TYPE, EGL_PIXMAP_BIT | EGL_VG_ALPHA_FORMAT_PRE_BIT,
+ EGL_SURFACE_TYPE, EGL_PIXMAP_BIT | EGL_VG_ALPHA_FORMAT_PRE_BIT,
EGL_NONE };
const EGLint KAttrib_list_image_nonpre[] = {EGL_MATCH_NATIVE_PIXMAP, reinterpret_cast<EGLint>(&sgImages[i]),
EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
- EGL_SURFACE_TYPE, EGL_PIXMAP_BIT,
+ EGL_SURFACE_TYPE, EGL_PIXMAP_BIT,
EGL_NONE };
EGLConfig currentConfig;
EGLint numconfigs =0;
@@ -1514,9 +1514,9 @@
ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImage));
// At this point we draw the VGImage created from the SgImage to the current surface.
- // # if the source is a A_8, the VGImage acts as a mask and the target surface must contain
+ // # if the source is a A_8, the VGImage acts as a mask and the target surface must contain
// as a result the pen colour set above blended with the mask
- // # otherwise, drawing the VGImage is just a simple copy via vgSetPixels (no blending required)
+ // # otherwise, drawing the VGImage is just a simple copy via vgSetPixels (no blending required)
INFO_PRINTF1(_L("Copying the VGImage to the surface"));
if (iSourceFormat == EUidPixelFormatA_8)
{
@@ -1534,7 +1534,7 @@
VGuint fillColor = 0x008000ff; // opaque dark green
vgSetColor(fillPaint, fillColor);
ASSERT_EGL_TRUE(vgGetError() == VG_NO_ERROR);
-
+
vgSeti(VG_IMAGE_MODE, VG_DRAW_IMAGE_STENCIL);
vgSeti(VG_BLEND_MODE, VG_BLEND_SRC_OVER);
vgDrawImage(vgImage);
@@ -1555,7 +1555,7 @@
// a) a reference bitmap needs to be cleared to black (same colour as the surface was cleared to)
// b) a Pen bitmap, that we clear to dark green (same colour as the fillPaint used to draw to the surface)
// c) a mask bitmap, which is the reference bitmap used to create the SgImage
- // # otherwise, the surface must contain the same pixels as the bitmap used to create the SgImage
+ // # otherwise, the surface must contain the same pixels as the bitmap used to create the SgImage
if (iSourceFormat == EUidPixelFormatA_8)
{
TDisplayMode maskMode = EglTestConversion::PixelFormatToDisplayMode(iSourceFormat);
@@ -1568,7 +1568,7 @@
CFbsBitmap* refBitmap = iEglSess->CreateReferenceMaskedBitmapL(refbitmapMode, KRgbDarkGreen, mask);
CleanupStack::PushL(refBitmap);
-
+
// compare the obtained reference bitmap with the surface drawn
iEglSess->CheckVgDrawingL(iSurfaceFormat, refBitmap);
CleanupStack::PopAndDestroy(2, mask); //mask, refBitmap
@@ -1593,7 +1593,7 @@
/**
-@SYMTestCaseID GRAPHICS-EGL-0428
+@SYMTestCaseID GRAPHICS-EGL-0430
@SYMTestPriority 1
@@ -1609,36 +1609,39 @@
Run two processes that independently perform the actions detailed below.
* From Process A
Open the RSgDriver
- Create an RSgImage
- Signal (by semaphore or otherwise) to process A, passing the drawable ID to it
+ Create an RSgImage passing an initialised bitmap
+ Signal (by semaphore or otherwise) to process B, passing the drawable ID to it
* From Process B:
Open the RSgDriver
Using the drawable ID, open the RSgImage
+ Close the RSgImage
+ Re-open the RSgImage
+
+* From Process A:
+ Unexpectedly terminate process A without performing any explicit clean-up
+
+* From Process B:
+ Wait for Process A to be killed:
Create an EGLImage from the RSgImage
Create a VGImage from the EGLImage
Close the RSgImage
Close the EGLImage
Create an off-screen surface
-
-* From Process A:
- Unexpectedly terminate process A without performing any explicit clean-up
-
-* From Process B:
- Wait for Process A to be killed
- Populate the VGImage with data
- Copy the VGImage to the off-screen surface
- Close the off-screen surface
+ Draw VGImage to the off-screen surface
+ Read the pixel data and verify that it matches the data populated by process A
+ Destroy the off-screen surface
Close the VGImage
Close the RSgDriver
+ Exit
@SYMTestExpectedResults
-Process B should be able to populate the VGImage with data and copy it to the off-screen surface.
+Process B should be able to populate the VGImage with data and copy it to the off-screen surface
All allocated image memory should be freed
*/
TVerdict CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate::doTestStepL()
{
- SetTestStepID(_L("GRAPHICS-EGL-0428"));
+ SetTestStepID(_L("GRAPHICS-EGL-0430"));
SetTestStepName(KEGL_Image_Multi_Process_VgImage_ProcessTerminate);
INFO_PRINTF1(_L("Enter: CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate::doTestStepL"));
@@ -1655,9 +1658,9 @@
PrintUsedPixelConfiguration();
// launch 2 processes
- Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
+ Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
- INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate::doTestStepL"));
+ INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate::doTestStepL"));
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -1684,216 +1687,14 @@
RMsgQueue<TProcessId> messageQueueProcId;
User::LeaveIfError(messageQueueProcId.Open(EProcSlotMsgQueueProcId, EOwnerProcess));
CleanupClosePushL(messageQueueProcId);
-
+
RProcess process;
CleanupClosePushL(process);
TRequestStatus status;
- RSgImage rSgImageLocal;
- EGLImageKHR eglImageLocal = EGL_NO_IMAGE_KHR;
- VGImage vgImageLocal = VG_INVALID_HANDLE;
- if(aIdx == 0)
- {
- // Create an RSgImage
- INFO_PRINTF2(_L("Process %d, Creating a RSgImage"),aIdx);
- TSgImageInfoOpenVgImage imageInfo = TSgImageInfoOpenVgImage(iSourceFormat, KImageSize);
-#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
- imageInfo.iShareable = ETrue;
- imageInfo.iCpuAccess = ESgCpuAccessReadWrite;
-#endif
- ASSERT_EQUALS(rSgImageLocal.Create(imageInfo, NULL, NULL), KErrNone);
-
- INFO_PRINTF2(_L("Process %d, Sending SgImage ID to other process..."), aIdx);
- messageQueueSgId.SendBlocking(rSgImageLocal.Id());
-
- // Sending Process ID to other process... so that the other process can identify when this one dies.
- messageQueueProcId.SendBlocking(RProcess().Id());
- }
- else if(aIdx == 1)
- {
- INFO_PRINTF2(_L("Process %d: Receiving SgImage ID from other process..."), aIdx);
- TSgDrawableId sgImageId;
- messageQueueSgId.ReceiveBlocking(sgImageId);
- ASSERT_EQUALS(rSgImageLocal.Open(sgImageId),KErrNone);
-
- // Also receiving RProcess ID from other process to be able to identify when it dies
- TProcessId procId;
- messageQueueProcId.ReceiveBlocking(procId);
- process.Open(procId);
- process.Logon(status);
-
- INFO_PRINTF2(_L("Process %d, Creating an EGLImage from the shared RSgImage"),aIdx);
- CleanupClosePushL(rSgImageLocal);
- eglImageLocal = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &rSgImageLocal, KEglImageAttribsPreservedTrue);
- ASSERT_EGL_TRUE(eglImageLocal != EGL_NO_IMAGE_KHR);
- CleanupStack::PopAndDestroy(&rSgImageLocal); //transferring ownership of the buffer to the EGLImage
-
- INFO_PRINTF2(_L("Creating a Surface and a Context bound to OpenVG, Process %d"),aIdx);
- TUidPixelFormat pixelFormat = EglTestConversion::VgFormatToSgPixelFormat(iSurfaceFormat);
- TSgImageInfoOpenVgTarget imageInfo = TSgImageInfoOpenVgTarget(pixelFormat, KImageSize);
- // Create a pixmap surface matching the native image pixel format
- iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo,CTestEglSession::EResourceCloseSgImageEarly);
-
- INFO_PRINTF2(_L("Process %d, Creating one VGImage from the EGLImage"),aIdx);
- vgImageLocal = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)eglImageLocal);
- ASSERT_VG_TRUE(vgImageLocal != VG_INVALID_HANDLE);
- ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImageLocal));
- }
-
- // Wait for both processes to reach this point
- Rendezvous(aIdx);
-
- if(aIdx == 0)
- {
- // simulate this process being killed
- // note that we terminate with reason=0 (otherwise the egl test framework would think it's an error)
- INFO_PRINTF2(_L("Process %d, Simulate the process is being killed!"),aIdx);
- RProcess().Terminate(KErrNone);
-
- // this line is unreachable
- ASSERT(0);
- }
- else if(aIdx == 1)
- {
- // first wait for the other process to finish
- User::WaitForRequest(status);
- ASSERT_EQUALS(status.Int(), KErrNone);
-
- INFO_PRINTF2(_L("Process %d, Populate contents of the VGImage"),aIdx);
- TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(iSourceFormat);
- CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, KImageSize, 3);
- CleanupStack::PushL(bitmap);
- // Add pixel data to the VGImage reference from the bitmap reference.
- // Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
- TSize bitmapSize = bitmap->SizeInPixels();
- TUint8* address = reinterpret_cast<TUint8*>(bitmap->DataAddress());
- TInt stride = bitmap->DataStride();
- address += (bitmapSize.iHeight - 1) * stride;
- vgImageSubData(vgImageLocal, address, -stride, iSurfaceFormat, 0,0, bitmapSize.iWidth, bitmapSize.iHeight);
- ASSERT_TRUE(vgGetError()==VG_NO_ERROR);
- eglWaitClient();
-
- INFO_PRINTF2(_L("Process %d, Drawing the VGImage to the current surface before changing contents of the VGImage"),aIdx);
- // Copy the source VGImage to the surface
- vgSetPixels(0, 0, vgImageLocal, 0, 0, KImageSize.iWidth, KImageSize.iHeight);
- ASSERT_TRUE(vgGetError()==VG_NO_ERROR);
- eglWaitClient();
-
- // we can now compare the VgImage to the one we expect
- iEglSess->CheckVgDrawingL(iSurfaceFormat, bitmap);
- CleanupStack::PopAndDestroy(bitmap);
- INFO_PRINTF2(_L("Process %d, Drawing successful"),aIdx);
-
- // cleanup
- vgDestroyImage(vgImageLocal);
- ASSERT_TRUE(vgGetError() == VG_NO_ERROR);
- }
-
- //cleanup and finish
- CleanupStack::PopAndDestroy(3, &messageQueueSgId); //messageQueueSgId, messageQueueProcId, process
- CleanAll();
- }
-
-
-/**
-@SYMTestCaseID GRAPHICS-EGL-0430
-
-@SYMTestPriority 1
-
-@SYMPREQ 2637
-
-@SYMTestCaseDesc
-Functional test - Killing the RSgImage creating process
-
-@SYMTestPurpose
-To verify correct operation of RSgImage sharing across processes when the creating process is killed
-
-@SYMTestActions
-Run two processes that independently perform the actions detailed below.
-* From Process A
- Open the RSgDriver
- Create an RSgImage
- Signal (by semaphore or otherwise) to process B, passing the drawable ID to it
-
-* From Process B:
- Open the RSgDriver
- Using the drawable ID, open the RSgImage
- Close the RSgImage
- Re-open the RSgImage
-
-* From Process A:
- Unexpectedly terminate process A without performing any explicit clean-up
-
-* From Process B:
- Wait for Process A to be killed:
- Create an EGLImage from the RSgImage
- Create a VGImage from the EGLImage
- Close the RSgImage
- Close the EGLImage
- Create an off-screen surface
- Populate the VGImage with data
- Draw VGImage to the off-screen surface
- Destroy the off-screen surface
- Close the VGImage
- Close the RSgDriver
- Exit
-
-@SYMTestExpectedResults
-Process B should be able to populate the VGImage with data and copy it to the off-screen surface
-All allocated image memory should be freed
-*/
-TVerdict CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate2::doTestStepL()
- {
- SetTestStepID(_L("GRAPHICS-EGL-0430"));
- SetTestStepName(KEGL_Image_Multi_Process_VgImage_ProcessTerminate2);
- INFO_PRINTF1(_L("Enter: CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate2::doTestStepL"));
-
- TBool ret = CheckForExtensionL(KEGL_RSgimage | KEGL_KHR_image_base | KEGL_KHR_image_pixmap | KVG_KHR_EGL_image);
- if(!ret)
- {
- // The extension is not supported
- RecordTestResultL();
- CloseTMSGraphicsStep();
- return TestStepResult();
- }
-
- // This test is performed for default pixel format
- PrintUsedPixelConfiguration();
-
- // launch 2 processes
- Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
-
- INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate2::doTestStepL"));
- RecordTestResultL();
- CloseTMSGraphicsStep();
- return TestStepResult();
- }
-
-void CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate2::doProcessFunctionL(TInt aIdx)
- {
- INFO_PRINTF2(_L("CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate2::doProcessFunctionL, Process %d"),aIdx);
- GetDisplayL();
- CreateEglSessionL(aIdx);
- iEglSess->InitializeL();
- iEglSess->OpenSgDriverL();
-
- //Retrieve source formats for the launched process from the process parameters.
- User::LeaveIfError(User::GetTIntParameter(EProcSlotSourceFormat, reinterpret_cast<TInt&>(iSourceFormat)));
- User::LeaveIfError(User::GetTIntParameter(EProcSlotSurfaceFormat, reinterpret_cast<TInt&>(iSurfaceFormat)));
-
- //create the queue to send/receive SgImage ID between processes
- RMsgQueue<TSgDrawableId> messageQueueSgId;
- User::LeaveIfError(messageQueueSgId.Open(EProcSlotMsgQueueSgId, EOwnerProcess));
- CleanupClosePushL(messageQueueSgId);
-
- //create the queue to send/receive Process ID between processes
- RMsgQueue<TProcessId> messageQueueProcId;
- User::LeaveIfError(messageQueueProcId.Open(EProcSlotMsgQueueProcId, EOwnerProcess));
- CleanupClosePushL(messageQueueProcId);
-
- RProcess process;
- CleanupClosePushL(process);
- TRequestStatus status;
+ TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(iSourceFormat);
+ CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, KImageSize, 6);
+ CleanupStack::PushL(bitmap);
RSgImage rSgImageLocal;
if(aIdx == 0)
@@ -1905,8 +1706,8 @@
imageInfo.iShareable = ETrue;
imageInfo.iCpuAccess = ESgCpuAccessReadWrite;
#endif
- ASSERT_EQUALS(rSgImageLocal.Create(imageInfo,NULL, NULL), KErrNone);
-
+ ASSERT_EQUALS(rSgImageLocal.Create(imageInfo, bitmap->DataAddress(), bitmap->DataStride()), KErrNone);
+
INFO_PRINTF2(_L("Process %d, Sending SgImage ID to other process..."), aIdx);
messageQueueSgId.SendBlocking(rSgImageLocal.Id());
@@ -1930,7 +1731,7 @@
rSgImageLocal.Close();
ASSERT_EQUALS(rSgImageLocal.Open(sgImageId),KErrNone);
}
-
+
// Wait for both processes to reach this point
Rendezvous(aIdx);
@@ -1940,7 +1741,7 @@
// note that we terminate with reason=0 (otherwise the egl test framework would think it's an error)
INFO_PRINTF2(_L("Process %d, Simulate the process is being killed!"),aIdx);
RProcess().Terminate(KErrNone);
-
+
// this line is unreachable
ASSERT(0);
}
@@ -1949,13 +1750,13 @@
// first wait for the other process to finish
User::WaitForRequest(status);
ASSERT_EQUALS(status.Int(), KErrNone);
-
+
INFO_PRINTF2(_L("Process %d, Creating an EGLImage from the shared RSgImage"),aIdx);
CleanupClosePushL(rSgImageLocal);
EGLImageKHR eglImageLocal = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &rSgImageLocal, KEglImageAttribsPreservedTrue);
ASSERT_EGL_TRUE(eglImageLocal != EGL_NO_IMAGE_KHR);
CleanupStack::PopAndDestroy(&rSgImageLocal); //transferring ownership of the buffer to the EGLImage
-
+
INFO_PRINTF2(_L("Creating a Surface and a Context bound to OpenVG, Process %d"),aIdx);
TUidPixelFormat pixelFormat = EglTestConversion::VgFormatToSgPixelFormat(iSurfaceFormat);
TSgImageInfoOpenVgTarget imageInfo = TSgImageInfoOpenVgTarget(pixelFormat, KImageSize);
@@ -1967,38 +1768,23 @@
ASSERT_VG_TRUE(vgImageLocal != VG_INVALID_HANDLE);
ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImageLocal));
- INFO_PRINTF2(_L("Process %d, Populate contents of the VGImage"),aIdx);
- TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(iSourceFormat);
- CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, KImageSize, 3);
- CleanupStack::PushL(bitmap);
- // Add pixel data to the VGImage reference from the bitmap reference.
- // Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
- TSize bitmapSize = bitmap->SizeInPixels();
- TUint8* address = reinterpret_cast<TUint8*>(bitmap->DataAddress());
- TInt stride = bitmap->DataStride();
- address += (bitmapSize.iHeight - 1) * stride;
- vgImageSubData(vgImageLocal, address, -stride, iSurfaceFormat, 0,0, bitmapSize.iWidth, bitmapSize.iHeight);
- ASSERT_TRUE(vgGetError()==VG_NO_ERROR);
- eglWaitClient();
-
INFO_PRINTF2(_L("Process %d, Drawing the VGImage to the current surface before changing contents of the VGImage"),aIdx);
// Copy the source VGImage to the surface
vgSetPixels(0, 0, vgImageLocal, 0, 0, KImageSize.iWidth, KImageSize.iHeight);
ASSERT_TRUE(vgGetError()==VG_NO_ERROR);
eglWaitClient();
-
+
// we can now compare the VgImage to the one we expect
iEglSess->CheckVgDrawingL(iSurfaceFormat, bitmap);
- CleanupStack::PopAndDestroy(bitmap);
INFO_PRINTF2(_L("Process %d, Drawing successful"),aIdx);
// cleanup
vgDestroyImage(vgImageLocal);
ASSERT_TRUE(vgGetError() == VG_NO_ERROR);
}
-
+
//cleanup and finish
- CleanupStack::PopAndDestroy(3, &messageQueueSgId); //messageQueueSgId, messageQueueProcId, process
+ CleanupStack::PopAndDestroy(4, &messageQueueSgId); //messageQueueSgId, messageQueueProcId, process, bitmap
CleanAll();
}
@@ -2028,7 +1814,7 @@
* From Process A:
Unexpectedly terminate process A without performing any explicit clean-up
-
+
* From Process B:
Wait for Process A to be killed:
Using the drawable ID, attempt to open the RSgImage
@@ -2036,7 +1822,7 @@
Exit
@SYMTestExpectedResults
-Process B should be unable to open the RSgImage and the call to Open() should return error code KErrNotFound.
+Process B should be unable to open the RSgImage and the call to Open() should return error code KErrNotFound.
All allocated image memory should be freed
*/
TVerdict CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminateNegative::doTestStepL()
@@ -2060,7 +1846,7 @@
// launch 2 processes
Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
- INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminateNegative::doTestStepL"));
+ INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminateNegative::doTestStepL"));
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -2087,7 +1873,7 @@
RMsgQueue<TProcessId> messageQueueProcId;
User::LeaveIfError(messageQueueProcId.Open(EProcSlotMsgQueueProcId, EOwnerProcess));
CleanupClosePushL(messageQueueProcId);
-
+
RProcess process;
CleanupClosePushL(process);
TRequestStatus status;
@@ -2104,7 +1890,7 @@
imageInfo.iCpuAccess = ESgCpuAccessReadWrite;
#endif
ASSERT_EQUALS(rSgImageLocal.Create(imageInfo,NULL, NULL), KErrNone);
-
+
INFO_PRINTF2(_L("Process %d, Sending SgImage ID to other process..."), aIdx);
messageQueueSgId.SendBlocking(rSgImageLocal.Id());
@@ -2133,7 +1919,7 @@
// note that we terminate with reason=0 (otherwise the egl test framework would think it's an error)
INFO_PRINTF2(_L("Process %d, Simulate the process is being killed!"),aIdx);
RProcess().Terminate(KErrNone);
-
+
// this line is unreachable
ASSERT(0);
}
@@ -2145,13 +1931,13 @@
// NOTE: We can't guarante when the kernel will have completed the cleanup. This process
// could have been notified that the other process has terminated but this does not guarantee
- // that all handles to the process have been released.
+ // that all handles to the process have been released.
// This is not generally a problem in single processor hardware, but can be a problem in dual
// processor hardware (ie, NaviEngine) where one processor could be cleaning up the terminated
// process, the other processor could already be issuing the notification to the waiting process
// Not much we can do other than adding a small delay to ensure this...
User::After(1*1000*1000); // 1 second
-
+
// we're expecting it to fail with the appropriate error
TInt ret = rSgImageLocal.Open(sgImageId);
#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
@@ -2177,7 +1963,7 @@
@SYMPREQ 2637
@SYMTestCaseDesc
-Functional test - Simultaneous reading and writing of simulated glyphs.
+Functional test - Simultaneous reading and writing of simulated glyphs.
The rectangular area of RSgImage will be divided into the following section:
-----------
¦ 0 ¦ 1 ¦ 2 ¦
@@ -2190,7 +1976,7 @@
It is obvoious that each sub-section will therefore be of 30x30:
@SYMTestPurpose
-To determine that the system can cope with simultaneous
+To determine that the system can cope with simultaneous
reading and writing from/to area within RSgImage without corrupting each other.
@SYMTestActions
@@ -2214,7 +2000,7 @@
Signal client process that section[i] can be read
Repeat until client process signal read complete
Shade sections surrounding section[i] to other colors e.g. when i=1,
- surrounding sections are section 4, 5 and 2
+ surrounding sections are section 0, 2 and 4
End loop
End loop
@@ -2231,7 +2017,7 @@
Close the VGImage and RSgImage driver
@SYMTestExpectedResults
-The content of each section read by client process should match the content written by Process A.
+The content of each section read by client process should match the content written by Process A.
All image memory should be freed
*/
TVerdict CEglTest_EGL_Image_Multi_Process_VgImage_ReadWrite::doTestStepL()
@@ -2258,7 +2044,7 @@
// launch 2 processes
Test_MultiProcessL(KEglTestStepDllName, 2, TestStepName());
- INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_ReadWrite::doTestStepL"));
+ INFO_PRINTF1(_L("Exit: CEglTest_EGL_Image_Multi_Process_VgImage_ReadWrite::doTestStepL"));
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -2275,17 +2061,17 @@
const TSize KTestReadWriteImageSize(90,90);
const TInt KTestReadWriteSubImageLength = KTestReadWriteImageSize.iHeight / 3;
const TInt KTestNumColors = 9;
- const VGfloat KTestClearColors[KTestNumColors][4] =
+ const VGfloat KTestClearColors[KTestNumColors][4] =
{
- {0.11f, 0.13f, 0.15f, 0.17f}, // arbitrary colour 1
- {0.21f, 0.23f, 0.25f, 0.27f}, // arbitrary colour 2
- {0.31f, 0.33f, 0.35f, 0.37f}, // arbitrary colour 3
- {0.41f, 0.43f, 0.45f, 0.47f}, // arbitrary colour 4
- {0.51f, 0.53f, 0.55f, 0.57f}, // arbitrary colour 5
- {0.61f, 0.63f, 0.65f, 0.67f}, // arbitrary colour 6
- {0.71f, 0.73f, 0.75f, 0.77f}, // arbitrary colour 7
- {0.81f, 0.83f, 0.85f, 0.87f}, // arbitrary colour 8
- {0.91f, 0.93f, 0.95f, 0.97f} // arbitrary colour 9
+ {0.11f, 0.13f, 0.15f, 0.17f}, // arbitrary colour 1
+ {0.21f, 0.23f, 0.25f, 0.27f}, // arbitrary colour 2
+ {0.31f, 0.33f, 0.35f, 0.37f}, // arbitrary colour 3
+ {0.41f, 0.43f, 0.45f, 0.47f}, // arbitrary colour 4
+ {0.51f, 0.53f, 0.55f, 0.57f}, // arbitrary colour 5
+ {0.61f, 0.63f, 0.65f, 0.67f}, // arbitrary colour 6
+ {0.71f, 0.73f, 0.75f, 0.77f}, // arbitrary colour 7
+ {0.81f, 0.83f, 0.85f, 0.87f}, // arbitrary colour 8
+ {0.91f, 0.93f, 0.95f, 0.97f} // arbitrary colour 9
};
//Retrieve source formats for the launched process from the process parameters.
@@ -2308,7 +2094,7 @@
imageInfo.iCpuAccess = ESgCpuAccessReadWrite;
#endif
ASSERT_EQUALS(rSgImageLocal.Create(imageInfo,NULL, NULL), KErrNone);
-
+
INFO_PRINTF2(_L("Process %d, Sending SgImage ID to other process..."), aIdx);
messageQueueSgId.SendBlocking(rSgImageLocal.Id());
}
@@ -2319,7 +2105,7 @@
messageQueueSgId.ReceiveBlocking(sgImageId);
ASSERT_EQUALS(rSgImageLocal.Open(sgImageId),KErrNone);
}
-
+
INFO_PRINTF2(_L("Process %d, Creating an EGLImage from the shared RSgImage"),aIdx);
CleanupClosePushL(rSgImageLocal);
EGLImageKHR eglImageLocal = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &rSgImageLocal, KEglImageAttribsPreservedTrue);
@@ -2327,7 +2113,7 @@
CleanupStack::PopAndDestroy(&rSgImageLocal); //transferring ownership of the buffer to the EGLImage
// OpenVG needs a current VG context before it will allow the call vgCreateEGLImageTargetKHR
- // The created surface will remain un-used, hence we create it with the default pixel format, as we don't care
+ // The created surface will remain un-used, hence we create it with the default pixel format, as we don't care
TUidPixelFormat pixelFormat = EglTestConversion::VgFormatToSgPixelFormat(KDefaultSurfaceFormat);
TSgImageInfoOpenVgTarget imageInfo = TSgImageInfoOpenVgTarget(pixelFormat, KTestReadWriteImageSize);
iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo,CTestEglSession::EResourceCloseSgImageEarly);
@@ -2336,7 +2122,7 @@
VGImage vgImageLocal = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)eglImageLocal);
ASSERT_VG_TRUE(vgImageLocal != VG_INVALID_HANDLE);
ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, eglImageLocal));
-
+
// Wait for both processes to reach this point
Rendezvous(aIdx);
@@ -2348,7 +2134,8 @@
INFO_PRINTF3(_L("Process %d, Shading section[%d]"),aIdx, section);
//Shade section[i] to color[i]
vgSetfv(VG_CLEAR_COLOR, 4, KTestClearColors[section]);
- vgClearImage(vgImageLocal, section%3, section/3, KTestReadWriteSubImageLength, KTestReadWriteSubImageLength);
+ vgClearImage(vgImageLocal, (section%3)*KTestReadWriteSubImageLength, (section/3)*KTestReadWriteSubImageLength, KTestReadWriteSubImageLength, KTestReadWriteSubImageLength);
+ vgFinish();
}
// Wait for both processes to reach this point
@@ -2359,21 +2146,24 @@
{
INFO_PRINTF3(_L("Process %d, Creating child vgimage for section[%d]"),aIdx, section);
//Create child VGImage for section[i]
- childImage = vgChildImage(vgImageLocal, section%3, section/3, KTestReadWriteSubImageLength, KTestReadWriteSubImageLength);
+ childImage = vgChildImage(vgImageLocal, (section%3)*KTestReadWriteSubImageLength, (section/3)*KTestReadWriteSubImageLength, KTestReadWriteSubImageLength, KTestReadWriteSubImageLength);
//Read the value of child VGImage and compare it with colour[i]
- TUint32 vgPixel=0;
+ TUint32* vgPixel = new(ELeave) TUint32[KTestReadWriteSubImageLength];
+ CleanupArrayDeletePushL(vgPixel);
for (TInt i=0; i<KTestReadWriteSubImageLength; i++)
{
+ // Read childImage, a line at a time
+ vgGetImageSubData(childImage, vgPixel, 1, iSurfaceFormat, 0, i, KTestReadWriteSubImageLength, 1);
for (TInt j=0; j<KTestReadWriteSubImageLength; j++)
{
- vgGetImageSubData(childImage, &vgPixel, 1, iSurfaceFormat, i, j, 1, 1);
// Should be exact, but give a tolerance of 1 because VG rounds to nearer integer, whereas TInt rounds down
- ASSERT_TRUE(Abs(((vgPixel & 0xff000000) >> 24) - (255 * KTestClearColors[section][3])) <= 1); //alpha
- ASSERT_TRUE(Abs(((vgPixel & 0x00ff0000) >> 16) - (255 * KTestClearColors[section][0])) <= 1); //red
- ASSERT_TRUE(Abs(((vgPixel & 0x0000ff00) >> 8) - (255 * KTestClearColors[section][1])) <= 1); //green
- ASSERT_TRUE(Abs(((vgPixel & 0x000000ff) >> 0) - (255 * KTestClearColors[section][2])) <= 1); //blue
+ ASSERT_TRUE(Abs(((vgPixel[j] & 0xff000000) >> 24) - (255 * KTestClearColors[section][3])) <= 1); //alpha
+ ASSERT_TRUE(Abs(((vgPixel[j] & 0x00ff0000) >> 16) - (255 * KTestClearColors[section][0])) <= 1); //red
+ ASSERT_TRUE(Abs(((vgPixel[j] & 0x0000ff00) >> 8) - (255 * KTestClearColors[section][1])) <= 1); //green
+ ASSERT_TRUE(Abs(((vgPixel[j] & 0x000000ff) >> 0) - (255 * KTestClearColors[section][2])) <= 1); //blue
}
}
+ CleanupStack::PopAndDestroy(vgPixel);
}
if (aIdx==0)
{
@@ -2382,8 +2172,9 @@
{
TInt surroundingSection = (KTestNumColors + section + k) % KTestNumColors;
vgSetfv(VG_CLEAR_COLOR, 4, KTestClearColors[surroundingSection]);
- vgClearImage(vgImageLocal, surroundingSection*KTestReadWriteSubImageLength, section*KTestReadWriteSubImageLength, KTestReadWriteSubImageLength, KTestReadWriteSubImageLength);
+ vgClearImage(vgImageLocal, (surroundingSection%3)*KTestReadWriteSubImageLength, (surroundingSection/3)*KTestReadWriteSubImageLength, KTestReadWriteSubImageLength, KTestReadWriteSubImageLength);
}
+ vgFinish();
}
// Wait for both processes to reach this point
--- a/egl/egltest/src/egltest_image_negative.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltest_image_negative.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -76,13 +76,13 @@
GetDisplayL();
CreateEglSessionL();
iEglSess->InitializeL();
- iEglSess->OpenSgDriverL();
-
+ iEglSess->OpenSgDriverL();
+
INFO_PRINTF1(_L("Creating one EGLImage from a NULL RSgImage"));
EGLImageKHR imageKHR = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, NULL, KEglImageAttribsPreservedTrue);
ASSERT_EGL_TRUE(imageKHR == EGL_NO_IMAGE_KHR);
ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
-
+
INFO_PRINTF1(_L("Creating one EGLImage from a not fully constructed RSgImage"));
RSgImage sgImage;
CleanupClosePushL(sgImage);
@@ -241,7 +241,7 @@
TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(iSourceFormat);
CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, KPixmapSize, 8);
CleanupStack::PushL(bitmap);
-
+
// Create RSgImage's attributes.
TSgImageInfoTest imageInfo;
imageInfo.iSizeInPixels = KPixmapSize;
@@ -254,20 +254,22 @@
imageInfo.iCpuAccess = ESgCpuAccessNone;
imageInfo.iScreenId = KSgScreenIdMain;
imageInfo.iUserAttributes = NULL;
- imageInfo.iUserAttributeCount = 0;
+ imageInfo.iUserAttributeCount = 0;
#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
RSgImage sgImage;
CleanupClosePushL(sgImage);
ASSERT_EQUALS(sgImage.Create(imageInfo, bitmap->DataAddress(), bitmap->DataStride()), KErrNone);
- //First Subtest: creation of an EGLImageKhr with wrong Usage will fail
- INFO_PRINTF1(_L("Trying to create an EGLImage from a RSgImage that doesn't have correct iUsage, ESgUsageBitOpenVgImage|ESgUsageOpenGlesTexture2D|ESgUsageOpenGles2Texture2D"));
+ //First Subtest: Attempted creation of an EGLImageKhr from an RSgImage with the wrong Usage should fail
+ INFO_PRINTF1(_L("Attempt creation of an EGLImage from a RSgImage with incorrect iUsage ESgUsageBitOpenGlesSurface"));
+ INFO_PRINTF1(_L("Correct iUsage needs to have at least one of ESgUsageBitOpenVgImage, ESgUsageOpenGlesTexture2D or ESgUsageOpenGles2Texture2D bits set"));
+
EGLImageKHR imageKHR = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &sgImage, KEglImageAttribsPreservedTrue);
ASSERT_EGL_TRUE(imageKHR == EGL_NO_IMAGE_KHR);
ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
CleanupStack::PopAndDestroy(&sgImage);
-
+
if(iEglSess->IsOpenGLES2Supported())
{
TSgImageInfoTest imageInfo2;
@@ -278,15 +280,15 @@
#else
imageInfo2.iUsage = ESgUsageOpenGlesTexture2D;
#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
-
+
// Create a SgImage
RSgImage sgImage2;
CleanupClosePushL(sgImage2);
ASSERT_EQUALS(sgImage2.Create(imageInfo2, bitmap->DataAddress(), bitmap->DataStride()), KErrNone);
- // Create a EGLImage from the RSgImage
+ // The creation of an EGLImage from a RSgImage with correct usage (ESgUsageBitOpenGles2Texture2D or ESgUsageOpenGlesTexture2D) should pass
EGLImageKHR imageKHR2 = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &sgImage2, KEglImageAttribsPreservedTrue);
- ASSERT_EGL_TRUE(imageKHR2 == EGL_NO_IMAGE_KHR);
+ ASSERT_EGL_TRUE(imageKHR2 != EGL_NO_IMAGE_KHR);
//Create an OffScreen Pixmap, we need it to make a Context current
imageInfo2.iSizeInPixels = KPixmapSize;
@@ -305,13 +307,13 @@
ASSERT_TRUE(vgGetError()==VG_UNSUPPORTED_IMAGE_FORMAT_ERROR);
CleanupStack::PopAndDestroy(&sgImage2);
- ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, imageKHR2));
+ ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, imageKHR2));
}
-
+
//cleanup
CleanupStack::PopAndDestroy(bitmap);
CleanAll();
-
+
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -373,11 +375,11 @@
iEglSess->InitializeL();
iEglSess->OpenSgDriverL();
- INFO_PRINTF1(_L("Creating one RSgImage"));
+ INFO_PRINTF1(_L("Creating one RSgImage"));
TSgImageInfoOpenVgImage imageInfo = TSgImageInfoOpenVgImage(iSourceFormat, KPixmapSize);
#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
imageInfo.iCpuAccess = ESgCpuAccessReadWrite;
-#endif
+#endif
RSgImage sgImage;
CleanupClosePushL(sgImage);
ASSERT_EQUALS(sgImage.Create(imageInfo, NULL, NULL), KErrNone);
@@ -385,26 +387,26 @@
INFO_PRINTF1(_L("Creating one EGLImage from it"));
EGLImageKHR imageKHR = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &sgImage, KEglImageAttribsPreservedTrue);
ASSERT_EGL_TRUE(imageKHR != EGL_NO_IMAGE_KHR);
-
+
INFO_PRINTF1(_L("Calling eglDestroyImageKHR with EGL_NO_DISPLAY"));
- ASSERT_EGL_TRUE(!iEglSess->DestroyEGLImage(EGL_NO_DISPLAY, imageKHR));
+ ASSERT_EGL_TRUE(!iEglSess->DestroyEGLImage(EGL_NO_DISPLAY, imageKHR));
ASSERT_EGL_ERROR(EGL_BAD_DISPLAY);
INFO_PRINTF1(_L("Calling eglDestroyImageKHR with a random number (but not 1) as Display"));
- ASSERT_EGL_TRUE(!iEglSess->DestroyEGLImage(7, imageKHR));
+ ASSERT_EGL_TRUE(!iEglSess->DestroyEGLImage(7, imageKHR));
ASSERT_EGL_ERROR(EGL_BAD_DISPLAY);
INFO_PRINTF1(_L("Calling eglDestroyImageKHR with valid EGLImage handle (so, that should succeed)"));
- ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, imageKHR));
+ ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, imageKHR));
INFO_PRINTF1(_L("Calling eglDestroyImageKHR with invalid handle"));
- ASSERT_EGL_TRUE(!iEglSess->DestroyEGLImage(iDisplay, imageKHR));
+ ASSERT_EGL_TRUE(!iEglSess->DestroyEGLImage(iDisplay, imageKHR));
ASSERT_EGL_ERROR(EGL_BAD_PARAMETER);
-
+
//cleanup
- CleanupStack::PopAndDestroy(&sgImage);
+ CleanupStack::PopAndDestroy(&sgImage);
CleanAll();
-
+
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -464,11 +466,11 @@
iEglSess->InitializeL();
iEglSess->OpenSgDriverL();
- INFO_PRINTF1(_L("Creating one RSgImage"));
+ INFO_PRINTF1(_L("Creating one RSgImage"));
TSgImageInfoOpenVgImage imageInfo = TSgImageInfoOpenVgImage(iSourceFormat, KPixmapSize);
#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
imageInfo.iCpuAccess = ESgCpuAccessReadWrite;
-#endif
+#endif
RSgImage sgImage;
CleanupClosePushL(sgImage);
ASSERT_EQUALS(sgImage.Create(imageInfo, NULL, NULL), KErrNone);
@@ -483,10 +485,10 @@
iEglSess->CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo2, CTestEglSession::EResourceCloseSgImageEarly);
INFO_PRINTF1(_L("Destroying the EGLImage but retain the handle value"));
- ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, imageKHR));
+ ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, imageKHR));
INFO_PRINTF1(_L("Attemptimg to create a VGImage from an invalid handle"));
- VGImage vgImage = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)imageKHR);
+ VGImage vgImage = iEglSess->vgCreateImageTargetKHR((VGeglImageKHR)imageKHR);
ASSERT_VG_TRUE(vgImage == VG_INVALID_HANDLE);
ASSERT_TRUE(vgGetError()==VG_ILLEGAL_ARGUMENT_ERROR);
@@ -494,9 +496,9 @@
ASSERT_TRUE(vgGetError()==VG_BAD_HANDLE_ERROR);
//cleanup
- CleanupStack::PopAndDestroy(&sgImage);
+ CleanupStack::PopAndDestroy(&sgImage);
CleanAll();
-
+
RecordTestResultL();
CloseTMSGraphicsStep();
return TestStepResult();
@@ -568,8 +570,8 @@
TDisplayMode bitmapMode = EglTestConversion::PixelFormatToDisplayMode(iSourceFormat);
CFbsBitmap* bitmap = iEglSess->CreateReferenceBitmapL(bitmapMode, KPixmapSize, 8);
CleanupStack::PushL(bitmap);
-
- INFO_PRINTF1(_L("Creating one RSgImage"));
+
+ INFO_PRINTF1(_L("Creating one RSgImage"));
TSgImageInfoTest imageInfo;
imageInfo.iSizeInPixels = KPixmapSize;
imageInfo.iPixelFormat = iSourceFormat;
@@ -589,7 +591,7 @@
INFO_PRINTF1(_L("Calling eglBindAPI(EGL_OPENVG_API)"));
ASSERT_EGL_TRUE(eglBindAPI(EGL_OPENVG_API));
- EGLint numConfigsWithPre = 0;
+ EGLint numConfigsWithPre = 0;
EGLConfig configWithPre;
const EGLint KAttribImagePre[] = { EGL_MATCH_NATIVE_PIXMAP, reinterpret_cast<EGLint>(&sgImage),
EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
@@ -623,7 +625,7 @@
//cleanup
vgDestroyImage(vgImage);
ASSERT_TRUE(vgGetError()==VG_NO_ERROR);
- ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, imageKHR));
+ ASSERT_EGL_TRUE(iEglSess->DestroyEGLImage(iDisplay, imageKHR));
CleanupStack::PopAndDestroy(2, bitmap); // bitmap, sgImage
//This test doesn't check the drawing because the content of the image are undefined
//since we are using the same buffer both as target and as source
--- a/egl/egltest/src/egltest_syncobject.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltest_syncobject.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -77,7 +77,6 @@
}
INFO_PRINTF2(_L("Tick period in micro seconds %d"), iTickPeriodMicroSeconds);
- _LIT(KSectionSyncObject, "SyncObject");
_LIT(KKeyThreshold, "Threshold");
_LIT(KKeyDelaySignalling, "DelaySignalling");
_LIT(KKeyWaitSyncTimeout, "WaitSyncTimeout");
@@ -85,11 +84,11 @@
_LIT(KKeyNumStressIterations, "NumIterations");
//retrive all setting from INI file
- GetIntFromConfig(KSectionSyncObject, KKeyThreshold, iThreshold);
- GetIntFromConfig(KSectionSyncObject, KKeyDelaySignalling, iDelaySignalling);
- GetIntFromConfig(KSectionSyncObject, KKeyWaitSyncTimeout, iWaitSyncTimeout);
- GetIntFromConfig(KSectionSyncObject, KKeyLongDelaySignalling, iLongDelaySignalling);
- GetIntFromConfig(KSectionSyncObject, KKeyNumStressIterations, iNumStressIterations);
+ GetIntFromConfig(ConfigSection(), KKeyThreshold, iThreshold);
+ GetIntFromConfig(ConfigSection(), KKeyDelaySignalling, iDelaySignalling);
+ GetIntFromConfig(ConfigSection(), KKeyWaitSyncTimeout, iWaitSyncTimeout);
+ GetIntFromConfig(ConfigSection(), KKeyLongDelaySignalling, iLongDelaySignalling);
+ GetIntFromConfig(ConfigSection(), KKeyNumStressIterations, iNumStressIterations);
INFO_PRINTF2(_L("Level of tolerance %d"), iThreshold);
INFO_PRINTF2(_L("Delay before the signal occurs %d"), iDelaySignalling);
--- a/egl/egltest/src/egltest_vgimagetosurfaces.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltest_vgimagetosurfaces.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -389,7 +389,7 @@
return TestStepResult();
}
User::LeaveIfError(res); // leave here if any other error was raised other than the one above.
- iEglSess->CreateWindowSurfaceAndMakeCurrentL(config, window);
+ iEglSess->CreateWindowSurfaceAndMakeCurrentL(config, window, windowFormat == EWindowAttribsColor16MAP);
INFO_PRINTF1(_L("Creating 1 EGLImage from the RSgImage"));
EGLImageKHR imageKHR = iEglSess->eglCreateImageKhrL(iDisplay, EGL_NO_CONTEXT, EGL_NATIVE_PIXMAP_KHR, &sgImage, KEglImageAttribsPreservedTrue);
--- a/egl/egltest/src/egltestcommoninisettings.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltestcommoninisettings.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -153,7 +153,40 @@
{
return size;
}
-
return TSize(0,0);
}
+EXPORT_C TSize CEglTestCommonIniSettings::GetWindowSize(const TDesC& aSectioName)
+ {
+ _LIT(KKeyWindowWidth, "WindowWidth");
+ _LIT(KKeyWindowHeight, "WindowHeight");
+ TSize size(0, 0);
+ if(iIniData->FindVar(aSectioName, KKeyWindowWidth, size.iWidth) &&
+ iIniData->FindVar(aSectioName, KKeyWindowHeight, size.iHeight))
+ {
+ return size;
+ }
+ return TSize(0,0);
+ }
+
+EXPORT_C TInt CEglTestCommonIniSettings::GetThresholdGPUUsedMemory(const TDesC& aSectioName)
+ {
+ _LIT(KKeyThresholdGPUUsedMemory, "ThresholdGPUUsedMemory");
+ TInt thresholdGPUUsedMemory = 0;
+ if(iIniData->FindVar(aSectioName, KKeyThresholdGPUUsedMemory, thresholdGPUUsedMemory))
+ {
+ return thresholdGPUUsedMemory;
+ }
+ return 0;
+ }
+
+EXPORT_C TInt CEglTestCommonIniSettings::GetThresholdLastIteration(const TDesC& aSectioName)
+ {
+ _LIT(KKeyThresholdLastIteration, "ThresholdLastIteration");
+ TInt thresholdLastIteration = 0;
+ if(iIniData->FindVar(aSectioName, KKeyThresholdLastIteration, thresholdLastIteration))
+ {
+ return thresholdLastIteration;
+ }
+ return 0;
+ }
--- a/egl/egltest/src/egltestcommonsession.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltestcommonsession.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -15,7 +15,7 @@
/**
@file
- @test
+ @test
*/
#include "egltestcommonsession.h"
@@ -82,7 +82,7 @@
{
WARN_PRINTF3(_L("thread %d: eglMakeCurrent returned error = %x ~CTestEglSession..."), iThreadIdx, eglGetError());
}
-
+
// Warn because this should be done by the test, rather than relying on the d'tor
// which may not leave if there is an error (so no CHECK_EXPECTED_ERROR)
WARN_PRINTF2(_L("thread %d: Calling eglDestroyContext() from ~CTestEglSession..."), iThreadIdx);
@@ -90,7 +90,7 @@
if(ret == EGL_FALSE)
{
WARN_PRINTF3(_L("thread %d: eglDestroyContext returned error = %x ~CTestEglSession..."), iThreadIdx, eglGetError());
- }
+ }
}
if (iSurface != EGL_NO_SURFACE)
@@ -102,9 +102,9 @@
if(ret == EGL_FALSE)
{
WARN_PRINTF3(_L("thread %d: eglDestroySurface returned error = %x ~CTestEglSession..."), iThreadIdx, eglGetError());
- }
+ }
}
-
+
if (iTerminateDisplay)
{
INFO_PRINTF1(_L("Calling eglTerminate..."));
@@ -113,14 +113,14 @@
if(ret == EGL_FALSE)
{
WARN_PRINTF3(_L("thread %d: eglTerminate returned error = %x ~CTestEglSession..."), iThreadIdx, eglGetError());
- }
+ }
}
}
// Only destroy native resource after the surface and context that wraps it has been destroyed.
delete iFbsBitmap;
CloseFbsSession();
-
+
iSgImage.Close();
CloseSgDriver();
}
@@ -129,7 +129,7 @@
{
VERBOSE_INFO_PRINTF3(_L("thread %d: Setting the expected error code for the next EGL call to %x"), iThreadIdx, aExpectedErrorCode);
{
- iExpectedErrorCode = aExpectedErrorCode;
+ iExpectedErrorCode = aExpectedErrorCode;
}
}
@@ -149,15 +149,15 @@
{
TBool isExpectedError = ETrue;
EGLint eglErr = eglGetError();
-
+
// First check that we got the correct return value
if ((iExpectedErrorCode == EGL_SUCCESS) && !aFunctionReturnValue)
{
ERR_PRINTF3(_L("thread %d: Wrong function return value: %d"), iThreadIdx, aFunctionReturnValue);
isExpectedError = EFalse;
}
- // Also check that we got the
- if (eglErr != iExpectedErrorCode)
+ // Also check that we got the
+ if (eglErr != iExpectedErrorCode)
{
ERR_PRINTF4(_L("thread %d: eglGetError() returned %x, but expected %x"), iThreadIdx, eglErr, iExpectedErrorCode);
isExpectedError = EFalse;
@@ -166,18 +166,18 @@
{
VERBOSE_INFO_PRINTF3(_L("thread %d: eglGetError() returned %x, as expected"), iThreadIdx, eglErr);
}
-
+
// Reset the expected error
ResetExpectedError();
-
+
return isExpectedError;
}
EXPORT_C void CTestEglSession::CheckExpectedErrorL(EGLint aExpectedErrorCode)
{
- EGLint eglErr = eglGetError();
+ EGLint eglErr = eglGetError();
// check that we got the expected error
- if (eglErr != aExpectedErrorCode)
+ if (eglErr != aExpectedErrorCode)
{
ERR_PRINTF4(_L("thread %d: eglGetError() returned %x, but expected %x"), iThreadIdx, eglErr, aExpectedErrorCode);
User::Leave(KErrTEFUnitFail);
@@ -188,7 +188,7 @@
{
// reset the cached extensions
iExtensionStrings.Reset();
-
+
const char* extensionsString = NULL;
if(aExtensionBelongsTo == EIsEGL)
{
@@ -196,19 +196,13 @@
extensionsString = eglQueryString(iDisplay, EGL_EXTENSIONS);
}
else if(aExtensionBelongsTo == EIsVG)
- {
+ {
INFO_PRINTF2(_L("thread %d: Calling vgGetString for VG_EXTENSIONS)"), iThreadIdx);
// OpenVG needs a current VG context before it will allow the call to vgGetString
- TSgImageInfoOpenVgTarget imageInfo;
- imageInfo.iSizeInPixels = KPixmapSize;
- imageInfo.iPixelFormat = EUidPixelFormatXRGB_8888;
-#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
- imageInfo.iUsage = ESgUsageBitOpenVgSurface;
-#else
- imageInfo.iUsage = ESgUsageOpenVgTarget;
-#endif
- CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo,CTestEglSession::EResourceCloseSgImageEarly);
+ // The created surface will remain un-used, hence we create it with an arbitrary pixel format
+ EGLConfig currentConfig = GetConfigExactMatchL(EPBufferAttribsColor64K);
+ CreatePbufferSurfaceAndMakeCurrentL(currentConfig, TSize(1,1), EGL_OPENVG_API);
extensionsString = (const char*) vgGetString(VG_EXTENSIONS);
@@ -220,13 +214,17 @@
ERR_PRINTF2(_L("CTestEglSession::QueryExtensionsL() - Unknown extension group provided (%d)."), aExtensionBelongsTo);
User::Leave(KErrArgument);
}
- CHECK_EXPECTED_ERROR(extensionsString!=NULL);
-
+ CHECK_EXPECTED_ERROR(extensionsString!=NULL);
+
TPtrC8 ptrExtensions((const TUint8 *) extensionsString );
- TBuf16<128> bufExtensions;
- bufExtensions.Copy(ptrExtensions.Left(128));
- INFO_PRINTF3(_L("thread %d: QueryExtensionsL: \"%S\""), iThreadIdx, &bufExtensions);
-
+
+ RBuf buffer;
+ buffer.CreateL(ptrExtensions.Length());
+ buffer.CleanupClosePushL();
+ buffer.Copy(ptrExtensions);
+ INFO_PRINTF3(_L("thread %d: QueryExtensionsL: \"%S\""), iThreadIdx, &buffer);
+ CleanupStack::PopAndDestroy(&buffer);
+
TInt posSpace=1;
while (posSpace > 0 && ptrExtensions.Length() > 0)
{
@@ -244,7 +242,7 @@
{
iExtensionStrings.Append(ptrExtensions);
}
- }
+ }
}
TBool CTestEglSession::FindExtensionStringL(TExtensionsGroups aExtensionBelongsTo, const TDesC8& aExtensionString)
@@ -255,7 +253,7 @@
QueryExtensionsL(aExtensionBelongsTo); // Load extension info
iExtensionGroupCached = aExtensionBelongsTo;
}
-
+
TInt countExtensionStrings = iExtensionStrings.Count();
for(TUint i=0; i<countExtensionStrings; i++)
{
@@ -270,7 +268,7 @@
const TInt KBufLenMissingExtension=128;
TBuf16<KBufLenMissingExtension> bufMissingExtension16;
bufMissingExtension16.Copy(aExtensionString.Left(KBufLenMissingExtension));
-
+
WARN_PRINTF2(_L("EGL extension missing: [%S]"), &bufMissingExtension16);
return EFalse;
}
@@ -300,11 +298,11 @@
INFO_PRINTF1(_L("Checking number of configs..."));
ASSERT_TRUE(numConfigs >= 1);
INFO_PRINTF2(_L("Found %d configs"), numConfigs);
-
+
// Get the configs
INFO_PRINTF1(_L("Calling eglGetConfigs to get configs..."));
CHECK_EXPECTED_ERROR(eglGetConfigs(iDisplay, configs, KMaxEglConfigs, &numConfigs));
-
+
for(TUint index = 0; index < numConfigs; index++)
{
EGLint EGL_BUFFER_SIZE_value;
@@ -381,14 +379,14 @@
TBool good = ETrue;
- INFO_PRINTF7(_L("(idx: %3d) RGBA=(%2d) %2d,%2d,%2d,%2d"), index, EGL_BUFFER_SIZE_value,
- EGL_RED_SIZE_value, EGL_GREEN_SIZE_value, EGL_BLUE_SIZE_value,
+ INFO_PRINTF7(_L("(idx: %3d) RGBA=(%2d) %2d,%2d,%2d,%2d"), index, EGL_BUFFER_SIZE_value,
+ EGL_RED_SIZE_value, EGL_GREEN_SIZE_value, EGL_BLUE_SIZE_value,
EGL_ALPHA_SIZE_value);
if (!(EGL_RED_SIZE_value == 8 && EGL_GREEN_SIZE_value == 8 && EGL_BLUE_SIZE_value == 8 && EGL_ALPHA_SIZE_value == 0))
{
continue;
}
-
+
INFO_PRINTF2(_L("\n\n^^^^^^ CONFIG [%d] VALUES ******"), index);
if (EGL_SURFACE_TYPE_value & EGL_PIXMAP_BIT)
{
@@ -399,7 +397,7 @@
INFO_PRINTF2(_L("EGL_SURFACE_TYPE=%d. <<< BAD (not pixmap)"), EGL_SURFACE_TYPE_value);
good = EFalse;
}
-
+
if (EGL_RENDERABLE_TYPE_value & EGL_OPENVG_BIT)
{
INFO_PRINTF2(_L("EGL_RENDERABLE_TYPE=%d. <<< Has EGL_OPENVG_BIT"), EGL_RENDERABLE_TYPE_value);
@@ -409,7 +407,7 @@
INFO_PRINTF2(_L("EGL_RENDERABLE_TYPE=%d. <<< BAD (not open vg)"), EGL_RENDERABLE_TYPE_value);
good = EFalse;
}
-
+
if (good)
{
INFO_PRINTF1(_L("^^^^^^^ GOOD ^^^^^^^"));
@@ -456,7 +454,7 @@
EXPORT_C static TEglConfigMatchType GetMatchType(EGLint aAttrib, TEglConfigMatchRule aMatchRule)
{
const TConfigMatchRuleItem* curMatchRuleItem = KConfigMatchRules[aMatchRule];
-
+
while(curMatchRuleItem->iAttrib != EGL_NONE)
{
if (aAttrib == curMatchRuleItem->iAttrib)
@@ -473,7 +471,7 @@
/**
Returns the first index of a config that matches the requested config extactly
*/
-TInt CTestEglSession::GetFullMatchConfigIndex(EGLDisplay aDisplay, EGLConfig *aConfigs, TInt aNumConfigs,
+TInt CTestEglSession::GetFullMatchConfigIndex(EGLDisplay aDisplay, EGLConfig *aConfigs, TInt aNumConfigs,
const EGLint aWantedAttribs[], TEglConfigMatchRule aMatchRule)
{
EGLint value=0;
@@ -481,7 +479,7 @@
{
const EGLint *curAttrib = aWantedAttribs;
TBool match = ETrue;
-
+
while(*curAttrib != EGL_NONE && match)
{
ASSERT_EGL_TRUE(eglGetConfigAttrib(aDisplay, aConfigs[idxConfig], *curAttrib, &value));
@@ -492,7 +490,7 @@
if (value != curAttrib[1])
{
match = EFalse;
- }
+ }
break;
case eMatchAtLeast:
if (value < curAttrib[1]) // Note, we detect "failure to match", hence "<" not ">="!
@@ -508,17 +506,17 @@
break;
case eMatchAlways:
break;
-
+
default:
// We should not get here.
- ASSERT(FALSE);
+ ASSERT(FALSE);
break;
}
curAttrib += 2;
}
-
- // If we get here with match set, we have matched all attributes, and have found a match.
- if (match)
+
+ // If we get here with match set, we have matched all attributes, and have found a match.
+ if (match)
{
return idxConfig;
}
@@ -539,7 +537,7 @@
/**
Returns pixel format inforamtion for a given EGL config.
@param aConfig The EGL config for which pixel format information will be returned.
- @return A pointer to the pixel format information for the given EGL config.
+ @return A pointer to the pixel format information for the given EGL config.
Tf the config cannot be mapped, then NULL is returned.
*/
EXPORT_C const TMapEglConfigToPixelFormat* CTestEglSession::GetPixelFormatFromEglConfigL(EGLConfig aConfig)
@@ -561,7 +559,7 @@
CHECK_EXPECTED_ERROR(eglGetConfigAttrib(iDisplay, aConfig, EGL_SURFACE_TYPE, &surfaceType));
INFO_PRINTF7(_L(">>>>> Config info: %d, %d, %d,%d,%d, 0x%x"), bufferSize, alphaSize, redSize, greenSize, blueSize, colorBufferType);
-
+
for(TUint i=0; i<ConfigToPixelFormatTableLength(); i++)
{
if ((ConfigToPixelFormatTable(i).iBufferSize == bufferSize)
@@ -632,7 +630,7 @@
ERR_PRINTF1(_L("Attribute index out of range, please check the INI file"));
User::Leave(KErrArgument);
}
-
+
EGLConfig configs[KMaxEglConfigs];
EGLint numConfigs=0;
ASSERT_EGL_TRUE(eglChooseConfig(iDisplay, KConfigAttribs[aConfigAttribIndex], configs, KMaxEglConfigs, &numConfigs));
@@ -642,7 +640,7 @@
WARN_PRINTF1(_L("GetConfigExactMatchL - Could not find a matching config, eglChooseConfig returned 0 configs!"));
User::Leave(KTestNoMatchingConfig);
}
-
+
// Check that any of the configs returned matches the desired attributes
TInt match = GetFullMatchConfigIndex(iDisplay, configs, numConfigs, KConfigAttribs[aConfigAttribIndex], aMatchRule);
if (match == KErrNotFound)
@@ -671,10 +669,10 @@
{
CreatePixmapSurfaceAndMakeCurrentL(aConfig, aSize, aDisplayMode);
DrawOpenVgL();
-
+
// Wait for the drawing to complete
eglWaitClient();
-
+
CheckImageDataL(iFbsBitmap);
CheckImageDataVgL(VG_sRGB_565);
CleanupSurfaceFbsBitmapL();
@@ -688,10 +686,10 @@
{
CreatePixmapSurfaceAndMakeCurrentL(aConfig, aSize, aDisplayMode,EGL_OPENGL_ES_API, aRenderVersion);
DrawOpenGLesL();
-
+
// Wait for the drawing to complete
eglWaitClient();
-
+
CheckImageDataFullRedishL(iFbsBitmap);
CleanupSurfaceFbsBitmapL();
CloseFbsSession();
@@ -707,7 +705,7 @@
imageInfo.iSizeInPixels = KPixmapSize;
imageInfo.iPixelFormat = EUidPixelFormatXRGB_8888;
// will draw to and read from the image using OpenVg
-#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
+#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
imageInfo.iUsage = ESgUsageBitOpenVgSurface | ESgUsageBitOpenVgImage;
#else
// will also read from the image using DirectGdi
@@ -720,11 +718,11 @@
#endif
CreatePixmapSurfaceAndMakeCurrentAndMatchL(imageInfo, EResourceCloseSgImageLate);
DrawOpenVgL();
-
+
// Wait for the drawing to complete
eglWaitClient();
-
- //we can't retrieve data directly from the SgImage as
+
+ //we can't retrieve data directly from the SgImage as
//non-unified architecture doesn't allow readback from the GPU
CheckImageDataVgL(VG_sXRGB_8888);
CleanupSurfaceSgImageL();
@@ -734,18 +732,18 @@
EXPORT_C TBool CTestEglSession::TryUsePixmapRSgImageOpenGlesL(EGLConfig aConfig, const TSgImageInfo& aImageInfo, TResourceCloseRule aResourceCloseRule, TInt aRenderVersion)
{
CreatePixmapSurfaceAndMakeCurrentL(aConfig, aImageInfo, aResourceCloseRule ,EGL_OPENGL_ES_API, aRenderVersion);
-
+
DrawOpenGLesL();
-
+
// Wait for the drawing to complete
eglWaitClient();
- //we can't retrieve data directly from SgImage as non-unified
+ //we can't retrieve data directly from SgImage as non-unified
//architecture doesn't allow readback from the GPU
-
- if (aImageInfo.iPixelFormat == EUidPixelFormatXRGB_8888 ||
+
+ if (aImageInfo.iPixelFormat == EUidPixelFormatXRGB_8888 ||
aImageInfo.iPixelFormat == EUidPixelFormatARGB_8888_PRE)
- {
+ {
CheckImageDataGLesL();
}
@@ -767,13 +765,13 @@
EXPORT_C TBool CTestEglSession::TryUsePixmapRSgImageOpenVgL(EGLConfig aConfig, const TSgImageInfo& aImageInfo, TResourceCloseRule aResourceCloseRule)
{
CreatePixmapSurfaceAndMakeCurrentL(aConfig, aImageInfo, aResourceCloseRule);
-
+
DrawOpenVgL();
-
+
// Wait for the drawing to complete
eglWaitClient();
-
- //we can't retrieve data directly from the SgImage as
+
+ //we can't retrieve data directly from the SgImage as
//non-unified architecture doesn't allow readback from the GPU
CheckImageDataVgL(VG_sXRGB_8888);
CleanupSurfaceSgImageL();
@@ -781,26 +779,24 @@
return ETrue;
}
-EXPORT_C void CTestEglSession::CreateWindowSurfaceAndMakeCurrentL(EGLConfig aConfig, RWindow& aWindow, EGLenum aBindAPI, TInt aRenderVersionNumber)
+EXPORT_C void CTestEglSession::CreateWindowSurfaceAndMakeCurrentL(EGLConfig aConfig, RWindow& aWindow, TBool aVgAlphaFormatPre, EGLenum aBindAPI, TInt aRenderVersionNumber)
{
ASSERT_EQUALS(iSurface, EGL_NO_SURFACE);
ASSERT_EQUALS(iContext, EGL_NO_CONTEXT);
-
+
ASSERT_EGL_TRUE(eglBindAPI(aBindAPI));
-
+
// Create a Window surface from the native image
- EGLint EGL_RENDERABLE_TYPE_value = 0;
- ASSERT_EGL_TRUE(eglGetConfigAttrib(iDisplay, aConfig, EGL_RENDERABLE_TYPE, &EGL_RENDERABLE_TYPE_value));
- const EGLint* pixmapAttribs = ((aWindow.DisplayMode() == EColor16MAP) && (EGL_RENDERABLE_TYPE_value & EGL_OPENVG_BIT)) ? KPixmapAttribsVgAlphaFormatPre : KPixmapAttribsNone;
- iSurface = eglCreateWindowSurface(iDisplay, aConfig, &aWindow, pixmapAttribs);
+ const EGLint* windowAttribs = (aVgAlphaFormatPre && aBindAPI == EGL_OPENVG_API) ? KPixmapAttribsVgAlphaFormatPre : KPixmapAttribsNone;
+ iSurface = eglCreateWindowSurface(iDisplay, aConfig, &aWindow, windowAttribs);
ASSERT_EGL_TRUE(iSurface != EGL_NO_SURFACE);
// Create a context for drawing to/reading from the pixmap surface and make it current
const EGLint KAttribsListCtxNone[] = { EGL_NONE };;
const EGLint KAttribsListCtxGles2[] = { EGL_CONTEXT_CLIENT_VERSION, aRenderVersionNumber, EGL_NONE };
- const EGLint* attrib_list_ctx = (aBindAPI == EGL_OPENGL_ES_API && aRenderVersionNumber == 2) ? KAttribsListCtxGles2 : KAttribsListCtxNone;
+ const EGLint* attrib_list_ctx = (aBindAPI == EGL_OPENGL_ES_API && aRenderVersionNumber == 2) ? KAttribsListCtxGles2 : KAttribsListCtxNone;
iContext = eglCreateContext(iDisplay, aConfig, EGL_NO_CONTEXT, attrib_list_ctx);
- ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
+ ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
ASSERT_EGL_TRUE(eglMakeCurrent(iDisplay, iSurface, iSurface, iContext));
}
@@ -816,7 +812,7 @@
{
ASSERT_EQUALS(iSurface, EGL_NO_SURFACE);
ASSERT_EQUALS(iContext, EGL_NO_CONTEXT);
-
+
OpenSgDriverL();
ASSERT_EQUALS(iSgImage.Create(aImageInfo, NULL, 0), KErrNone);
@@ -838,7 +834,7 @@
ERR_PRINTF1(_L("CreatePixmapSurfaceAndMakeCurrentAndMatchL - Unkown API requested!"));
User::Leave(KErrArgument);
}
- EGLint attrib_list[] = {
+ EGLint attrib_list[] = {
EGL_MATCH_NATIVE_PIXMAP,(TInt)&iSgImage,
EGL_RENDERABLE_TYPE,renderableType,
EGL_SURFACE_TYPE,EGL_PIXMAP_BIT,
@@ -865,25 +861,25 @@
const EGLint* pixmapAttribs = ((aImageInfo.iPixelFormat == EUidPixelFormatARGB_8888_PRE) && (EGL_RENDERABLE_TYPE_value & EGL_OPENVG_BIT)) ? KPixmapAttribsVgAlphaFormatPre : KPixmapAttribsNone;
iSurface = eglCreatePixmapSurface(iDisplay, config, &iSgImage, pixmapAttribs);
ASSERT_EGL_TRUE(iSurface != EGL_NO_SURFACE);
-
+
if (aResourceCloseRule == EResourceCloseSgImageEarly)
{
// EGL should have taken its own reference to the SgImage, so it should be able to continue
// to use the underlying data after this local image has been closed.
iSgImage.Close();
}
-
+
if (aResourceCloseRule == EResourceCloseSgDriverAndImageEarly)
{
// EGL should have taken its own reference to the SgDriver, so it should be able to continue
- // to use its reference to the image resource after this local reference to the driver has
+ // to use its reference to the image resource after this local reference to the driver has
// been closed.
iSgImage.Close();
- CloseSgDriver();
+ CloseSgDriver();
}
// Create a context for drawing to/reading from the pixmap surface and make it current
- const EGLint KAttribsListCtxNone[] = { EGL_NONE };;
+ const EGLint KAttribsListCtxNone[] = { EGL_NONE };
const EGLint KAttribsListCtxGles2[] = { EGL_CONTEXT_CLIENT_VERSION, aRenderVersionNumber, EGL_NONE };
const EGLint* attrib_list_ctx = (aBindAPI == EGL_OPENGL_ES_API && aRenderVersionNumber == 2) ? KAttribsListCtxGles2 : KAttribsListCtxNone;
iContext = eglCreateContext(iDisplay, config, EGL_NO_CONTEXT, attrib_list_ctx);
@@ -892,12 +888,12 @@
}
/**
-Compound operation that constructs an RSgImage and uses it to create a pixmap suface.
+Compound operation that constructs an RSgImage and uses it to create a pixmap suface.
It then makes it current to the thread.
@param aConfig The EGL config to be used when creating the pixmap surface
@param aImageInfo Used to create the RSgImage pixmap
@param aCloseNativeImageEarly When ETrue, the RSgImage is closed as soon as the pixmap surface has been
- created. Otherwise, the RSgImage is left to be destroyed later by some other method
+ created. Otherwise, the RSgImage is left to be destroyed later by some other method
- e.g at the same time as destroying the surface.
@return Whether it was possible to create an iSgImage for the given aImageInfo
*/
@@ -905,10 +901,10 @@
{
ASSERT_EQUALS(iSurface, EGL_NO_SURFACE);
ASSERT_EQUALS(iContext, EGL_NO_CONTEXT);
-
+
OpenSgDriverL();
ASSERT_EQUALS(iSgImage.Create(aImageInfo, NULL, 0), KErrNone);
-
+
ASSERT_EGL_TRUE(eglBindAPI(aBindAPI));
// Create a pixmap surface from the native image
@@ -917,7 +913,7 @@
const EGLint* pixmapAttribs = ((aImageInfo.iPixelFormat == EUidPixelFormatARGB_8888_PRE) && (EGL_RENDERABLE_TYPE_value & EGL_OPENVG_BIT)) ? KPixmapAttribsVgAlphaFormatPre : KPixmapAttribsNone;
iSurface = eglCreatePixmapSurface(iDisplay, aConfig, &iSgImage, pixmapAttribs);
ASSERT_EGL_TRUE(iSurface != EGL_NO_SURFACE);
-
+
if (aResourceCloseRule == EResourceCloseSgImageEarly)
{
// EGL should have taken its own reference to the SgImage, so it should be able to continue
@@ -927,18 +923,18 @@
if (aResourceCloseRule == EResourceCloseSgDriverAndImageEarly)
{
// EGL should have taken its own reference to the SgDriver, so it should be able to continue
- // to use its reference to the image resource after this local reference to the driver has
+ // to use its reference to the image resource after this local reference to the driver has
// been closed.
iSgImage.Close();
- CloseSgDriver();
+ CloseSgDriver();
}
-
+
// Create a context for drawing to/reading from the pixmap surface and make it current
const EGLint KAttribsListCtxNone[] = { EGL_NONE };;
const EGLint KAttribsListCtxGles2[] = { EGL_CONTEXT_CLIENT_VERSION, aRenderVersionNumber, EGL_NONE };
- const EGLint* attrib_list_ctx = (aBindAPI == EGL_OPENGL_ES_API && aRenderVersionNumber == 2) ? KAttribsListCtxGles2 : KAttribsListCtxNone;
+ const EGLint* attrib_list_ctx = (aBindAPI == EGL_OPENGL_ES_API && aRenderVersionNumber == 2) ? KAttribsListCtxGles2 : KAttribsListCtxNone;
iContext = eglCreateContext(iDisplay, aConfig, EGL_NO_CONTEXT, attrib_list_ctx);
- ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
+ ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
ASSERT_EGL_TRUE(eglMakeCurrent(iDisplay, iSurface, iSurface, iContext));
}
@@ -946,7 +942,7 @@
{
//Fist try with CreateHardwareBitmap to check whether we are on hardware
TInt result = aFbsBitmap->CreateHardwareBitmap(aSize, aDisplayMode, KUidEglTestServer);
-
+
if(result == KErrNotSupported)
{
//we are not on hardware
@@ -959,12 +955,12 @@
{
ASSERT_EQUALS(iSurface, EGL_NO_SURFACE);
ASSERT_EQUALS(iContext, EGL_NO_CONTEXT);
-
+
// Create an empty native CFbsBitmap
OpenFbsSessionL();
iFbsBitmap = new(ELeave)CFbsBitmap;
ASSERT_EQUALS(CreateBitmap(iFbsBitmap, aSize, displayMode), KErrNone);
-
+
const EGLint* attrib_list = NULL;
if(aBindAPI == EGL_OPENVG_API)
{
@@ -985,28 +981,28 @@
User::Leave(KErrArgument);
}
ASSERT_EGL_TRUE(eglBindAPI(aBindAPI));
-
+
// Create a pixmap surface from the native image
EGLint EGL_RENDERABLE_TYPE_value = 0;
ASSERT_EGL_TRUE(eglGetConfigAttrib(iDisplay, aConfig, EGL_RENDERABLE_TYPE, &EGL_RENDERABLE_TYPE_value));
const EGLint* pixmapAttribs = ((displayMode == EColor16MAP) && (EGL_RENDERABLE_TYPE_value & EGL_OPENVG_BIT)) ? KPixmapAttribsVgAlphaFormatPre : KPixmapAttribsNone;
iSurface = eglCreatePixmapSurface(iDisplay, aConfig, iFbsBitmap, pixmapAttribs);
ASSERT_EGL_TRUE(iSurface != EGL_NO_SURFACE);
-
+
// Create a context for drawing to/reading from the pixmap surface and make it current
iContext = eglCreateContext(iDisplay, aConfig, EGL_NO_CONTEXT, attrib_list);
- ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
+ ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
ASSERT_EGL_TRUE(eglMakeCurrent(iDisplay, iSurface, iSurface, iContext));
}
-EXPORT_C void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentAndMatchL(const TSize& aSize, TDisplayMode displayMode, EGLenum aBindAPI, TInt aRenderVersionNumber)
+EXPORT_C void CTestEglSession::CreatePixmapSurfaceAndMakeCurrentAndMatchL(const TSize& aSize, TDisplayMode aDisplayMode, EGLenum aBindAPI, TInt aRenderVersionNumber)
{
ASSERT_EQUALS(iSurface, EGL_NO_SURFACE);
ASSERT_EQUALS(iContext, EGL_NO_CONTEXT);
-
+
OpenFbsSessionL();
iFbsBitmap = new(ELeave)CFbsBitmap;
- ASSERT_EQUALS(CreateBitmap(iFbsBitmap, aSize, displayMode), KErrNone);
+ ASSERT_EQUALS(CreateBitmap(iFbsBitmap, aSize, aDisplayMode), KErrNone);
EGLint renderableType = 0;
if(aBindAPI == EGL_OPENVG_API)
@@ -1026,7 +1022,7 @@
ERR_PRINTF1(_L("CreatePixmapSurfaceAndMakeCurrentAndMatchL - Unkown API requested!"));
User::Leave(KErrArgument);
}
- EGLint attrib_list[] = {
+ EGLint attrib_list[] = {
EGL_MATCH_NATIVE_PIXMAP,(TInt)iFbsBitmap,
EGL_RENDERABLE_TYPE,renderableType,
EGL_SURFACE_TYPE,EGL_PIXMAP_BIT,
@@ -1048,18 +1044,16 @@
}
// Create a pixmap surface from the native image
- EGLint EGL_RENDERABLE_TYPE_value = 0;
- ASSERT_EGL_TRUE(eglGetConfigAttrib(iDisplay, config, EGL_RENDERABLE_TYPE, &EGL_RENDERABLE_TYPE_value));
- const EGLint* pixmapAttribs = ((displayMode == EColor16MAP) && (EGL_RENDERABLE_TYPE_value & EGL_OPENVG_BIT)) ? KPixmapAttribsVgAlphaFormatPre : KPixmapAttribsNone;
+ const EGLint* pixmapAttribs = (aDisplayMode == EColor16MAP && aBindAPI == EGL_OPENVG_API) ? KPixmapAttribsVgAlphaFormatPre : KPixmapAttribsNone;
iSurface = eglCreatePixmapSurface(iDisplay, config, iFbsBitmap, pixmapAttribs);
ASSERT_EGL_TRUE(iSurface != EGL_NO_SURFACE);
-
+
// Create a context for drawing to/reading from the pixmap surface and make it current
const EGLint KAttribsListCtxNone[] = { EGL_NONE };;
const EGLint KAttribsListCtxGles2[] = { EGL_CONTEXT_CLIENT_VERSION, aRenderVersionNumber, EGL_NONE };
- const EGLint* attrib_list_ctx = (aBindAPI == EGL_OPENGL_ES_API && aRenderVersionNumber == 2) ? KAttribsListCtxGles2 : KAttribsListCtxNone;
+ const EGLint* attrib_list_ctx = (aBindAPI == EGL_OPENGL_ES_API && aRenderVersionNumber == 2) ? KAttribsListCtxGles2 : KAttribsListCtxNone;
iContext = eglCreateContext(iDisplay, config, EGL_NO_CONTEXT, attrib_list_ctx);
- ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
+ ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
ASSERT_EGL_TRUE(eglMakeCurrent(iDisplay, iSurface, iSurface, iContext));
}
@@ -1070,27 +1064,27 @@
ASSERT_EQUALS(iSurface, EGL_NO_SURFACE);
ASSERT_EQUALS(iContext, EGL_NO_CONTEXT);
-
+
ASSERT_EGL_TRUE(eglBindAPI(aBindAPI));
-
+
// PBuffer attribs options are:
// EGL_WIDTH, EGL_HEIGHT, EGL_LARGEST_PBUFFER,
// EGL_TEXTURE_FORMAT, EGL_TEXTURE_TARGET, EGL_MIPMAP_TEXTURE,
// EGL_VG_COLORSPACE, and EGL_VG_ALPHA_FORMAT
// Create a pbuffer surface of the given size
- const EGLint KPbufferAttribs[] = {
+ const EGLint KPbufferAttribs[] = {
EGL_WIDTH, aSize.iWidth,
EGL_HEIGHT, aSize.iHeight,
EGL_NONE };
- iSurface = eglCreatePbufferSurface(iDisplay, aConfig, KPbufferAttribs);
+ iSurface = eglCreatePbufferSurface(iDisplay, aConfig, KPbufferAttribs);
ASSERT_EGL_TRUE(iSurface != EGL_NO_SURFACE);
// Create a context for drawing to/reading from the pixmap surface and make it current
const EGLint KAttribsListCtxNone[] = { EGL_NONE };;
const EGLint KAttribsListCtxGles2[] = { EGL_CONTEXT_CLIENT_VERSION, aRenderVersionNumber, EGL_NONE };
- const EGLint* attrib_list_ctx = (aBindAPI == EGL_OPENGL_ES_API && aRenderVersionNumber == 2) ? KAttribsListCtxGles2 : KAttribsListCtxNone;
+ const EGLint* attrib_list_ctx = (aBindAPI == EGL_OPENGL_ES_API && aRenderVersionNumber == 2) ? KAttribsListCtxGles2 : KAttribsListCtxNone;
iContext = eglCreateContext(iDisplay, aConfig, EGL_NO_CONTEXT, attrib_list_ctx);
- ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
+ ASSERT_EGL_TRUE(iContext != EGL_NO_CONTEXT);
ASSERT_EGL_TRUE(eglMakeCurrent(iDisplay, iSurface, iSurface, iContext));
}
@@ -1098,14 +1092,14 @@
{
ASSERT_TRUE(iSurface != EGL_NO_SURFACE);
ASSERT_TRUE(iContext != EGL_NO_CONTEXT);
-
- // Draw to the pixmap surface
+
+ // Draw to the pixmap surface
// Clear it: redish
VGfloat colorBackground[4];
ConvertColor(KRgbReddish, colorBackground);
vgSetfv(VG_CLEAR_COLOR, 4, colorBackground);
vgClear(0, 0, KPixmapSize.iWidth, KPixmapSize.iHeight);
-
+
// And add a square: greenish
VGfloat colorSquare[4];
ConvertColor(KRgbGreenish, colorSquare);
@@ -1126,16 +1120,16 @@
const GLfloat glGreenBits = 255.f;
const GLfloat glBlueBits = 255.f;
const GLfloat glAlphaBits = 255.f;
-
+
// Disable cdither - when using exact comparison to reference bitmap
// because reference bitmap cannot be created to match dither exactly
- glDisable(GL_DITHER);
+ glDisable(GL_DITHER);
// Clear the surface to the colour specified
glClearColor((glRed)/glRedBits, (glGreen)/glGreenBits, (glBlue)/glBlueBits, glAlpha/glAlphaBits);
-
+
//glColor3f(KRgbGreenish.Red(),KRgbGreenish.Green(),KRgbGreenish.Blue());
//glRectf(KPixmapSquare.iTl.iX, KPixmapSquare.iTl.iY,KPixmapSquare.iTl.iX + KPixmapSquare.Width(),KPixmapSquare.iTl.iY + KPixmapSquare.Height());
-
+
glClear(GL_COLOR_BUFFER_BIT);
}
@@ -1148,7 +1142,7 @@
ASSERT_TRUE(PixelsMatch(KRgbReddish, rgbPixelSample, EFalse));
aFbsBitmap->GetPixel(rgbPixelSample, TPoint(90,90));
ASSERT_TRUE(PixelsMatch(KRgbReddish, rgbPixelSample, EFalse));
-
+
// Inside the square
aFbsBitmap->GetPixel(rgbPixelSample, TPoint(30,30));
ASSERT_TRUE(PixelsMatch(KRgbGreenish, rgbPixelSample, EFalse));
@@ -1165,7 +1159,7 @@
ASSERT_TRUE(PixelsMatch(KRgbReddish, rgbPixelSample, EFalse));
aFbsBitmap->GetPixel(rgbPixelSample, TPoint(90,90));
ASSERT_TRUE(PixelsMatch(KRgbReddish, rgbPixelSample, EFalse));
-
+
// Inside the square
aFbsBitmap->GetPixel(rgbPixelSample, TPoint(30,30));
ASSERT_TRUE(PixelsMatch(KRgbReddish, rgbPixelSample, EFalse));
@@ -1184,13 +1178,13 @@
case VG_sRGB_565:
{
TUint16 intPixelSample=0;
-
+
// Outside the square
vgReadPixels(&intPixelSample, 1, aDataFormat, 10,10, 1,1);
ASSERT_TRUE(PixelsMatch(KRgbReddish, TRgb::Color64K(intPixelSample), EFalse));
vgReadPixels(&intPixelSample, 1, aDataFormat, 90,90, 1,1);
ASSERT_TRUE(PixelsMatch(KRgbReddish, TRgb::Color64K(intPixelSample), EFalse));
-
+
// Inside the square
vgReadPixels(&intPixelSample, 1, aDataFormat, 30,30, 1,1);
ASSERT_TRUE(PixelsMatch(KRgbGreenish, TRgb::Color64K(intPixelSample), EFalse));
@@ -1198,16 +1192,16 @@
ASSERT_TRUE(PixelsMatch(KRgbGreenish, TRgb::Color64K(intPixelSample), EFalse));
break;
}
- case VG_sXRGB_8888:
+ case VG_sXRGB_8888:
{
TUint32 intPixelSample=0;
-
+
// Outside the square
vgReadPixels(&intPixelSample, 1, aDataFormat, 10,10, 1,1);
ASSERT_TRUE(PixelsMatch(KRgbReddish, TRgb::Color16MU(intPixelSample), EFalse));
vgReadPixels(&intPixelSample, 1, aDataFormat, 90,90, 1,1);
ASSERT_TRUE(PixelsMatch(KRgbReddish, TRgb::Color16MU(intPixelSample), EFalse));
-
+
// Inside the square
vgReadPixels(&intPixelSample, 1, aDataFormat, 30,30, 1,1);
ASSERT_TRUE(PixelsMatch(KRgbGreenish, TRgb::Color16MU(intPixelSample), EFalse));
@@ -1218,13 +1212,13 @@
case VG_sARGB_8888:
{
TUint32 intPixelSample=0;
-
+
// Outside the square
vgReadPixels(&intPixelSample, 1, aDataFormat, 10,10, 1,1);
ASSERT_TRUE(PixelsMatch(KRgbReddish, TRgb::Color16MA(intPixelSample), EFalse));
vgReadPixels(&intPixelSample, 1, aDataFormat, 90,90, 1,1);
ASSERT_TRUE(PixelsMatch(KRgbReddish, TRgb::Color16MA(intPixelSample), EFalse));
-
+
// Inside the square
vgReadPixels(&intPixelSample, 1, aDataFormat, 30,30, 1,1);
ASSERT_TRUE(PixelsMatch(KRgbGreenish, TRgb::Color16MA(intPixelSample), EFalse));
@@ -1247,8 +1241,8 @@
TUint32 intPixelSample;
glReadPixels(10,10,1,1,GL_RGBA,GL_UNSIGNED_BYTE ,&intPixelSample);
SwapChannels(intPixelSample);
- ASSERT_TRUE(PixelsMatch(KRgbReddish, TRgb::Color16MU(intPixelSample), EFalse));
-
+ ASSERT_TRUE(PixelsMatch(KRgbReddish, TRgb::Color16MU(intPixelSample), EFalse));
+
glReadPixels(45,45,1,1,GL_RGBA,GL_UNSIGNED_BYTE ,&intPixelSample);
SwapChannels(intPixelSample);
ASSERT_TRUE(PixelsMatch(KRgbReddish, TRgb::Color16MU(intPixelSample), EFalse));
@@ -1266,7 +1260,7 @@
EXPORT_C void CTestEglSession::SwapChannels(TUint32 &aSwapMe)
{
TUint32 buff = aSwapMe;
-
+
aSwapMe = 0;
aSwapMe |= (buff & 0x000000FF) << 16;
aSwapMe |= (buff & 0x0000FF00);
@@ -1290,12 +1284,12 @@
Also closes the internal RSgImage handled that is associated to the surface.
EGL destroys all surface and context handles associated with a display when
-eglTerminate() is called.
+eglTerminate() is called.
*/
EXPORT_C void CTestEglSession::ResetSurfaceAndContextSgImageL()
{
INFO_PRINTF1(_L("CTestEglSession::ResetSurfaceAndContextSgImageL()"));
-
+
iContext = EGL_NO_CONTEXT;
iSurface = EGL_NO_SURFACE;
iSgImage.Close();
@@ -1304,7 +1298,7 @@
/**
Check that the pixel values match within a predefined tolerance
@param aExpected the expected pixel colour vaule
- @param aActual the actual pixel colour value
+ @param aActual the actual pixel colour value
@param aCheckAlpha Whether to check the alpha channel value
@return Whether the pixel values match - within the allowed tolerance
*/
@@ -1314,10 +1308,10 @@
// differences, while too low will be too strict to allow for pixel conversions, i.e. from 16bpp to 32bpp
const TInt KPixelTolerance = 8;
- if (aCheckAlpha && aExpected.Alpha()== 0 &&
- aActual.Red() == 0 &&
- aActual.Green() == 0 &&
- aActual.Blue() == 0 &&
+ if (aCheckAlpha && aExpected.Alpha()== 0 &&
+ aActual.Red() == 0 &&
+ aActual.Green() == 0 &&
+ aActual.Blue() == 0 &&
aActual.Alpha() == 0)
{
// if the expected value for alpha is 0, all actual values should be 0
@@ -1346,7 +1340,7 @@
CHECK_EXPECTED_ERROR(eglInitialize(iDisplay, &major, &minor));
// Remember if the user wants us to terminate the display.
iTerminateDisplay = aTerminateDisplay;
-
+
INFO_PRINTF4(_L("thread %d: Initialised: EGL Version %d.%d"), iThreadIdx, major, minor);
}
@@ -1379,11 +1373,11 @@
if (!iSgDriverOpen)
{
VERBOSE_INFO_PRINTF2(_L("CTestEglSession<0x%08x> Opening SgDriver"), this);
-#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
+#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
TInt ret=iSgDriver.Open();
#else
TInt ret=SgDriver::Open();
-#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
+#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
ASSERT_EQUALS(ret, KErrNone);
iSgDriverOpen = ETrue;
}
@@ -1394,10 +1388,10 @@
if (iSgDriverOpen)
{
VERBOSE_INFO_PRINTF2(_L("CTestEglSession<0x%08x> Closing SgDriver"), this);
-#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
+#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
iSgDriver.Close();
#else
- SgDriver::Close();
+ SgDriver::Close();
#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
iSgDriverOpen = EFalse;
}
@@ -1444,7 +1438,7 @@
TBool bSuccess = FetchProcEglCreateImageKhr();
ASSERT_TRUE(bSuccess);
VERBOSE_INFO_PRINTF2(_L("thread %d: Calling eglCreateImageKHR"), iThreadIdx);
- EGLImageKHR eglImage = ipfnEglCreateImageKHR(aDisplay,aContext,aTarget,reinterpret_cast<EGLClientBuffer>(aSgImage),const_cast<EGLint *>(aAttr_List));
+ EGLImageKHR eglImage = ipfnEglCreateImageKHR(aDisplay,aContext,aTarget,reinterpret_cast<EGLClientBuffer>(aSgImage),const_cast<EGLint *>(aAttr_List));
return eglImage;
}
@@ -1454,7 +1448,7 @@
ASSERT_TRUE(bSuccess);
INFO_PRINTF2(_L("thread %d: Calling eglCreateImageKHR, with CFBsBitmap)"), iThreadIdx);
//the following call to eglCreateImageKHR MUST fail, error handling is made outside
- EGLImageKHR eglImage = ipfnEglCreateImageKHR(aDisplay,aContext,aTarget,reinterpret_cast<EGLClientBuffer>(&aCFbsBitmap),const_cast<EGLint *>(aAttr_List));
+ EGLImageKHR eglImage = ipfnEglCreateImageKHR(aDisplay,aContext,aTarget,reinterpret_cast<EGLClientBuffer>(&aCFbsBitmap),const_cast<EGLint *>(aAttr_List));
return eglImage;
}
@@ -1486,7 +1480,7 @@
if (!ipfnvgCreateImageTargetKHR)
{
INFO_PRINTF2(_L("thread %d: Calling eglGetProcAddress (\"vgCreateEGLImageTargetKHR\")"), iThreadIdx);
- ipfnvgCreateImageTargetKHR = reinterpret_cast<TFPtrVgCreateEglImageTargetKhr>(eglGetProcAddress("vgCreateEGLImageTargetKHR"));
+ ipfnvgCreateImageTargetKHR = reinterpret_cast<TFPtrVgCreateEglImageTargetKhr>(eglGetProcAddress("vgCreateEGLImageTargetKHR"));
if (ipfnvgCreateImageTargetKHR==NULL)
{
EGLint eglError = eglGetError();
@@ -1514,32 +1508,32 @@
EGLint EGL_SURFACE_TYPE_value;
EGLint EGL_RENDERABLE_TYPE_value;
EGLint EGL_CONFIG_ID_value;
-
+
eglGetConfigAttrib(iDisplay, aConfig, EGL_CONFIG_ID, &EGL_CONFIG_ID_value);
eglGetConfigAttrib(iDisplay, aConfig, EGL_BUFFER_SIZE, &EGL_BUFFER_SIZE_value);
eglGetConfigAttrib(iDisplay, aConfig, EGL_ALPHA_SIZE, &EGL_ALPHA_SIZE_value);
eglGetConfigAttrib(iDisplay, aConfig, EGL_BLUE_SIZE, &EGL_BLUE_SIZE_value);
eglGetConfigAttrib(iDisplay, aConfig, EGL_GREEN_SIZE, &EGL_GREEN_SIZE_value);
eglGetConfigAttrib(iDisplay, aConfig, EGL_RED_SIZE, &EGL_RED_SIZE_value);
- eglGetConfigAttrib(iDisplay, aConfig, EGL_SURFACE_TYPE, &EGL_SURFACE_TYPE_value);
+ eglGetConfigAttrib(iDisplay, aConfig, EGL_SURFACE_TYPE, &EGL_SURFACE_TYPE_value);
eglGetConfigAttrib(iDisplay, aConfig, EGL_RENDERABLE_TYPE, &EGL_RENDERABLE_TYPE_value);
#ifdef PRINTG_CONFIGS_LOG
- INFO_PRINTF7(_L("(Config: %3d) RGBA=(%2d) %2d,%2d,%2d,%2d"), EGL_CONFIG_ID_value, EGL_BUFFER_SIZE_value,
- EGL_RED_SIZE_value, EGL_GREEN_SIZE_value, EGL_BLUE_SIZE_value,
+ INFO_PRINTF7(_L("(Config: %3d) RGBA=(%2d) %2d,%2d,%2d,%2d"), EGL_CONFIG_ID_value, EGL_BUFFER_SIZE_value,
+ EGL_RED_SIZE_value, EGL_GREEN_SIZE_value, EGL_BLUE_SIZE_value,
EGL_ALPHA_SIZE_value);
INFO_PRINTF2(_L("RENDERABLE_TYPE %d"),EGL_RENDERABLE_TYPE_value);
#endif
-
+
if(!(EGL_SURFACE_TYPE_value & EGL_PIXMAP_BIT))
{
return EFalse;
}
-
+
TBool good = ETrue;
//requested usage bits
TSgImageInfo requestedImageInfo;
aImage.GetInfo(requestedImageInfo);
-
+
#ifndef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
//potential usage bits
RSgImage potential;
@@ -1547,22 +1541,22 @@
TSgImageInfo potentialImageInfo;
potential.GetInfo(potentialImageInfo);
potential.Close();
-#endif
-
+#endif
+
switch(requestedImageInfo.iPixelFormat)
- {
+ {
case EUidPixelFormatRGB_565:
if (!(EGL_RED_SIZE_value == 5 && EGL_GREEN_SIZE_value == 6 && EGL_BLUE_SIZE_value == 5 && EGL_ALPHA_SIZE_value == 0))
{
good = EFalse;
}
- break;
+ break;
case EUidPixelFormatXRGB_8888:
if (!(EGL_RED_SIZE_value == 8 && EGL_GREEN_SIZE_value == 8 && EGL_BLUE_SIZE_value == 8 && EGL_ALPHA_SIZE_value == 0))
{
good = EFalse;
- }
- break;
+ }
+ break;
case EUidPixelFormatARGB_8888_PRE:
if (!(EGL_RED_SIZE_value == 8 && EGL_GREEN_SIZE_value == 8 && EGL_BLUE_SIZE_value == 8 && EGL_ALPHA_SIZE_value == 8))
{
@@ -1595,17 +1589,17 @@
}
#ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
- //
+ //
//Check if strict matching requirements are met:
- //- All the supported APIs included in the EGL_RENDERABLE_TYPE of the
+ //- All the supported APIs included in the EGL_RENDERABLE_TYPE of the
// EGLConfig must be matched by the corresponding iUsage of RSgImage
- //- The following usages included in the iUsage of the RSgImage must be
- // matched by the corresponding API in EGL_RENDERABLE_TYPE of the EGLConfig:
+ //- The following usages included in the iUsage of the RSgImage must be
+ // matched by the corresponding API in EGL_RENDERABLE_TYPE of the EGLConfig:
// ESgUsageBitOpenGlSurface-> EGL_OPENGL_BIT
// ESgUsageBitOpenGlesSurface-> EGL_OPENGL_ES_BIT
// ESgUsageBitOpenGles2Surface-> EGL_OPENGL_ES2_BIT
// ESgUsageBitOpenVgSurface->EGL_OPENVG_BIT
-
+
EGLint usageBitsMask = 0;
if(requestedImageInfo.iUsage & ESgUsageBitOpenVgSurface)
{
@@ -1647,9 +1641,9 @@
{
return EFalse;
}
-
+
// potential usage >= RENDERABLE_TYPE
-
+
EGLint potentialUsageBitsMask = 0;
if(potentialImageInfo.iUsage & ESgUsageOpenVgTarget)
{
@@ -1663,13 +1657,13 @@
{
potentialUsageBitsMask |= EGL_OPENGL_ES2_BIT;
}
-
+
potentialUsageBitsMask = EGL_RENDERABLE_TYPE_value &~ potentialUsageBitsMask;
if(potentialUsageBitsMask)
{
return EFalse;
}
-#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
+#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
return good;
}
@@ -1751,8 +1745,8 @@
}
}
#endif //SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
-
- return ETrue;
+
+ return ETrue;
}
EXPORT_C CFbsBitmap* CTestEglSession::CreateReferenceBitmapL(TDisplayMode aMode)
@@ -1803,8 +1797,8 @@
fbsBitGc->Activate(bitmapDevice);
fbsBitGc->SetBrushColor(KRgbBlack);
fbsBitGc->Clear();
-
- // create the penBitmap (same size as the mask bitmap)
+
+ // create the penBitmap (same size as the mask bitmap)
CFbsBitmap* penBitmap = new(ELeave) CFbsBitmap();
CleanupStack::PushL(penBitmap);
User::LeaveIfError(penBitmap->Create(aMaskBitmap->SizeInPixels(), aRefBitmapMode));
@@ -1817,9 +1811,9 @@
penBitGc->Clear();
// perform a masked bitmap transfer to the active refBitmap
- TRect bmpRect(TPoint(0, 0), refBitmap->SizeInPixels());
+ TRect bmpRect(TPoint(0, 0), refBitmap->SizeInPixels());
fbsBitGc->Activate(bitmapDevice);
- fbsBitGc->BitBltMasked(TPoint(0, 0), penBitmap, bmpRect, aMaskBitmap, EFalse);
+ fbsBitGc->BitBltMasked(TPoint(0, 0), penBitmap, bmpRect, aMaskBitmap, EFalse);
CleanupStack::PopAndDestroy(5, bitmapDevice);
CleanupStack::Pop(refBitmap);
@@ -1837,7 +1831,7 @@
TInt height = bitmap->SizeInPixels().iHeight;
TInt width = bitmap->SizeInPixels().iWidth;
- // Initialise colour values to a random value (guarantees pixel uniqueness if update is done accordingly)
+ // Initialise colour values to a random value (guarantees pixel uniqueness if update is done accordingly)
TInt red=0;
TInt green=127;
TInt blue=127;
@@ -1883,29 +1877,29 @@
{
// We should not get here - colour mode not supported by these tests
ERR_PRINTF1(_L("CTestEglSession::CreateReferenceBitmapL - Colour mode not supported!"));
- ASSERT(FALSE);
+ ASSERT(FALSE);
}
}
bmpUtil.IncYPos();
- // Update red bit
- red = ++red + aIndex;
- if (red>255)
+ // Update red bit
+ red = ++red + aIndex;
+ if (red>255)
red = red - 256;
-
+
// Update green bit
- green = --green - aIndex;
- if (green<0)
+ green = --green - aIndex;
+ if (green<0)
green = green + 256;
-
+
// Update blue bit
- blue = ++blue + aIndex;
- if (blue>255)
+ blue = ++blue + aIndex;
+ if (blue>255)
blue = blue - 256;
-
+
// Update alpha bit
- alpha = --alpha - aIndex;
- if (alpha<0)
+ alpha = --alpha - aIndex;
+ if (alpha<0)
alpha = alpha + 256;
}
}
@@ -1923,14 +1917,14 @@
switch(aDataFormat)
{
case VG_sRGB_565:
- {
+ {
TUint16* vgPixel = new(ELeave) TUint16[width];
CleanupArrayDeletePushL(vgPixel);
for (TInt y=0; y < height; y++)
{
// Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
vgReadPixels(vgPixel, 1, aDataFormat, 0,height-y-1, width,1);
-
+
for (TInt x=0; x < width; x++)
{
aReferenceBitmap->GetPixel(refPixel, TPoint(x,y));
@@ -1938,21 +1932,21 @@
{
User::Leave(KErrTEFUnitFail);
}
- }
+ }
}
CleanupStack::PopAndDestroy(vgPixel);
break;
}
- case VG_sXRGB_8888:
- {
+ case VG_sXRGB_8888:
+ {
TUint32* vgPixel = new(ELeave) TUint32[width];
CleanupArrayDeletePushL(vgPixel);
for (TInt y=0; y < height; y++)
{
// Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
vgReadPixels(vgPixel, 1, aDataFormat, 0,height-y-1, width,1);
-
+
for (TInt x=0; x < width; x++)
{
aReferenceBitmap->GetPixel(refPixel, TPoint(x,y));
@@ -1960,21 +1954,21 @@
{
User::Leave(KErrTEFUnitFail);
}
- }
+ }
}
CleanupStack::PopAndDestroy(vgPixel);
break;
}
-
- case VG_sARGB_8888:
- {
+
+ case VG_sARGB_8888:
+ {
TUint32* vgPixel = new(ELeave) TUint32[width];
CleanupArrayDeletePushL(vgPixel);
for (TInt y=0; y < height; y++)
{
// Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
vgReadPixels(vgPixel, 1, aDataFormat, 0,height-y-1, width,1);
-
+
for (TInt x=0; x < width; x++)
{
aReferenceBitmap->GetPixel(refPixel, TPoint(x,y));
@@ -1982,21 +1976,21 @@
{
User::Leave(KErrTEFUnitFail);
}
- }
+ }
}
CleanupStack::PopAndDestroy(vgPixel);
break;
}
-
- case VG_sARGB_8888_PRE:
- {
+
+ case VG_sARGB_8888_PRE:
+ {
TUint32* vgPixel = new(ELeave) TUint32[width];
CleanupArrayDeletePushL(vgPixel);
for (TInt y=0; y < height; y++)
{
// Mind the fact that CFbsBitmap and VGImages use different coordinates origin!
vgReadPixels(vgPixel, 1, aDataFormat, 0,height-y-1, width,1);
-
+
for (TInt x=0; x < width; x++)
{
aReferenceBitmap->GetPixel(refPixel, TPoint(x,y));
@@ -2004,7 +1998,7 @@
{
User::Leave(KErrTEFUnitFail);
}
- }
+ }
}
CleanupStack::PopAndDestroy(vgPixel);
break;
@@ -2013,21 +2007,21 @@
default:
// We should not get here - colour mode not supported by these tests
ERR_PRINTF1(_L("CTestEglSession::CheckVgDrawingL - Colour mode not supported!"));
- ASSERT(FALSE);
+ ASSERT(FALSE);
break;
}
}
-EXPORT_C TBool CTestEglSession::IsOpenGLESSupported()
- {
+EXPORT_C TBool CTestEglSession::IsOpenGLESSupported()
+ {
if(!iIsSupportedRenderInitialized)
{
CheckAllAvailableRenders();
}
return iIsOpenGLESSupported;
- }
+ }
-EXPORT_C TBool CTestEglSession::IsOpenGLES2Supported()
+EXPORT_C TBool CTestEglSession::IsOpenGLES2Supported()
{
if(!iIsSupportedRenderInitialized)
{
@@ -2035,7 +2029,7 @@
}
return iIsOpenGLES2Supported;
}
-EXPORT_C TBool CTestEglSession::IsOpenVGSupported()
+EXPORT_C TBool CTestEglSession::IsOpenVGSupported()
{
if(!iIsSupportedRenderInitialized)
{
@@ -2049,7 +2043,7 @@
ASSERT_EGL_TRUE(iDisplay != EGL_NO_DISPLAY);
TPtrC8 ptrEglClientApis((const TText8 *)eglQueryString(iDisplay, EGL_CLIENT_APIS));
_LIT8(KOpenGLES, "OpenGL_ES");
- EGLint numConfigs= 0;
+ EGLint numConfigs= 0;
EGLConfig config;
if(ptrEglClientApis.Find(KOpenGLES) != KErrNotFound)
{
@@ -2076,7 +2070,7 @@
_LIT8(KOpenVG, "OpenVG");
if(ptrEglClientApis.Find(KOpenVG) != KErrNotFound)
{
- numConfigs= 0;
+ numConfigs= 0;
//check VG
const EGLint KAttrib_list_vg[] = { EGL_RENDERABLE_TYPE, EGL_OPENVG_BIT,
EGL_NONE };
--- a/egl/egltest/src/egltestcommonstep.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/egltestcommonstep.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -294,10 +294,12 @@
RMsgQueue<TSgDrawableId> messageQueueSgId;
TInt ret = messageQueueSgId.CreateGlobal(KNullDesC, 1, EOwnerProcess);
ASSERT_EQUALS(ret, KErrNone);
+ CleanupClosePushL(messageQueueSgId);
RMsgQueue<TProcessId> messageQueueProcId;
ret = messageQueueProcId.CreateGlobal(KNullDesC, 1, EOwnerProcess);
ASSERT_EQUALS(ret, KErrNone);
+ CleanupClosePushL(messageQueueProcId);
// Create semphores that can be shared (only used in some test to synch between 2 process)
ret = iSemaphore[0].CreateGlobal(KNullDesC(), 0, EOwnerProcess);
@@ -305,6 +307,12 @@
ret = iSemaphore[1].CreateGlobal(KNullDesC(), 0, EOwnerProcess);
ASSERT_EQUALS(ret, KErrNone);
+ // create MsgQueue (only used in some tests to pass data from client processes to the main process)
+ RMsgQueue<TEglStepMessageBuffer> messageQueueClientProcParam;
+ ret = messageQueueClientProcParam.CreateGlobal(KNullDesC, 1, EOwnerProcess);
+ ASSERT_EQUALS(ret, KErrNone);
+ CleanupClosePushL(messageQueueClientProcParam);
+
for (TInt i=0; i<aProcessCount; i++)
{
TProcessInfo info;
@@ -338,14 +346,19 @@
User::LeaveIfError(ret);
ret = iProcessStatus[i].iProcess.SetParameter(EProcSlotSurfaceFormat, static_cast<TInt>(iSurfaceFormat));
User::LeaveIfError(ret);
-
+ ret = iProcessStatus[i].iProcess.SetParameter(EProcSlotCustomClientParam, messageQueueClientProcParam);
+ User::LeaveIfError(ret);
+
iProcessStatus[i].iProcess.Logon(iProcessStatus[i].iStatus);
iProcessStatus[i].iProcess.Resume();
}
+
+ //by default an empty implementation
+ ReceiveMessageFromClient(messageQueueClientProcParam);
// wait for all processes to complete (not worried about the order)
// This is needed, as the only way to determine whether the process step has failed is to check
- // the return value (using TEST(EFalse) has no effect on the spawned process)
+ // the return value (using TEST(EFalse) has no effect on the spawned process)
for (TInt i=0; i<aProcessCount; i++)
{
User::WaitForRequest(iProcessStatus[i].iStatus);
@@ -355,8 +368,7 @@
}
// close MsgQueue and semaphores (as used in some test with 2 spawned processes)
- messageQueueSgId.Close();
- messageQueueProcId.Close();
+ CleanupStack::PopAndDestroy(3, &messageQueueSgId); //messageQueueClientProcParam, messageQueueProcId
iSemaphore[1].Close();
iSemaphore[0].Close();
}
--- a/egl/egltest/src/eglteststep.cpp Wed May 19 14:34:22 2010 +0100
+++ b/egl/egltest/src/eglteststep.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -63,7 +63,7 @@
else if (aStepName == KDisplay_OOM_ClientHeap) testStep = new CEglTest_Display_OOM_ClientHeap;
else if (aStepName == KDisplay_OOM_ClientHeap_Initialize) testStep = new CEglTest_Display_OOM_ClientHeap_Initialize;
- //SyncObject tests excluding WaitFlush which requires OpenVG and OpenGL ES
+ // SyncObject tests excluding WaitFlush which requires OpenVG and OpenGL ES
else if (aStepName == KSyncObject_Positive_GetProcAddress) testStep = new CEglTest_SyncObject_Positive_GetProcAddress;
else if (aStepName == KSyncObject_Positive_CreateDestroy) testStep = new CEglTest_SyncObject_Positive_CreateDestroy;
else if (aStepName == KSyncObject_Positive_WaitSignal) testStep = new CEglTest_SyncObject_Positive_WaitSignal;
@@ -101,19 +101,19 @@
else if (aStepName == KCreatePixmapSurface_Alpha_bit_RSgImage) testStep = new CEglTest_CreatePixmapSurface_Alpha_bit_RSgImage;
else if (aStepName == KCreatePixmapSurface_RSgImage_Positive_MantadoryFormatUsageSupport) testStep = new CEglTest_CreatePixmapSurface_RSgImage_Positive_MantadoryFormatUsageSupport;
- // image tests
+ // Image tests
else if (aStepName == KEGL_Image_SgDriverHandle) testStep = new CEglTest_EGL_Image_SgDriverHandle;
else if (aStepName == KEGL_Image_RSgImage_UseOpenVG_PersistImageData) testStep = new CEglTest_EGL_Image_RSgImage_UseOpenVG_PersistImageData;
else if (aStepName == KEGL_Image_Consistent_Linked_List) testStep = new CEglTest_EGL_Image_Consistent_Linked_List;
- // image negative tests
+ // Image negative tests
else if (aStepName == KEGL_Image_eglCreateImage_Bad_Parameter) testStep = new CEglTest_EGL_Image_eglCreateImage_Bad_Parameter;
else if (aStepName == KEGL_Image_UsageBits_Enforcement) testStep = new CEglTest_EGL_Image_UsageBits_Enforcement;
else if (aStepName == KEGL_Image_DestroyImageKHR) testStep = new CEglTest_EGL_Image_DestroyImageKHR;
else if (aStepName == KEGL_Image_VGImage_From_Invalid_EGLHandle) testStep = new CEglTest_EGL_Image_VGImage_From_Invalid_EGLHandle;
else if (aStepName == KEGL_Image_Self_Drawing) testStep = new CEglTest_EGL_Image_Self_Drawing;
- //Siblings tests
+ // Siblings tests
else if (aStepName == KEGL_Image_Sibling_Basic) testStep = new CEglTest_EGL_Image_Sibling_Basic;
else if (aStepName == KEGL_Image_Sibling_VGImage) testStep = new CEglTest_EGL_Image_Sibling_VGImage;
else if (aStepName == KEGL_Image_Sibling_Two_VGImages) testStep = new CEglTest_EGL_Image_Sibling_Two_VGImages;
@@ -122,7 +122,7 @@
else if (aStepName == KEGL_Image_Sibling_VGImage_Child_CheckContents_CloseSgEarlier) testStep = new CEglTest_EGL_Image_Sibling_VGImage_Child_CheckContents_CloseSgEarlier;
else if (aStepName == KEGL_Image_CreatePBufferFromClient_With_Sibling_VGImage) testStep = new CEglTest_EGL_Image_CreatePBufferFromClient_With_Sibling_VGImage;
- //VgImage to surfaces tests
+ // VgImage to surfaces tests
else if (aStepName == KEGL_Image_VgImage_To_Pixmap) testStep = new CEglTest_EGL_Image_VgImage_To_Pixmap;
else if (aStepName == KEGL_Image_VGImage_To_Pixmap_CFbs) testStep = new CEglTest_EGL_Image_VGImage_To_Pixmap_CFbs;
else if (aStepName == KEGL_Image_VgImage_To_pBuffer) testStep = new CEglTest_EGL_Image_VgImage_To_pBuffer;
@@ -146,7 +146,6 @@
else if (aStepName == KEGL_Image_Multi_Process_FontServer_Deferred) testStep = new CEglTest_EGL_Image_Multi_Process_FontServer_Deferred;
else if (aStepName == KEGL_Image_Multi_Process_ThemeServer) testStep = new CEglTest_EGL_Image_Multi_Process_ThemeServer;
else if (aStepName == KEGL_Image_Multi_Process_VgImage_ProcessTerminate) testStep = new CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate;
- else if (aStepName == KEGL_Image_Multi_Process_VgImage_ProcessTerminate2) testStep = new CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminate2;
else if (aStepName == KEGL_Image_Multi_Process_VgImage_ProcessTerminateNegative) testStep = new CEglTest_EGL_Image_Multi_Process_VgImage_ProcessTerminateNegative;
else if (aStepName == KEGL_Image_Multi_Process_VgImage_ReadWrite) testStep = new CEglTest_EGL_Image_Multi_Process_VgImage_ReadWrite;
--- a/fbs/fontandbitmapserver/group/BLD.INF Wed May 19 14:34:22 2010 +0100
+++ b/fbs/fontandbitmapserver/group/BLD.INF Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-2010 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"
@@ -49,8 +49,6 @@
../group/FBSERV.MMP
../group/fbsrasterizerlib.mmp
../group/stubrasterizer.mmp
-../group/fbscli_fmm.mmp
-../group/fbserv_fmm.mmp
PRJ_TESTEXPORTS
--- a/fbs/fontandbitmapserver/group/FBSCLI.MMP Wed May 19 14:34:22 2010 +0100
+++ b/fbs/fontandbitmapserver/group/FBSCLI.MMP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1998-2010 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"
@@ -28,7 +28,6 @@
SOURCEPATH ../sfbs
userinclude ../inc
-userinclude ../../../../textandloc/fontservices/fontstore/src
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
--- a/fbs/fontandbitmapserver/group/fbscli_fmm.mmp Wed May 19 14:34:22 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-// Copyright (c) 1998-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:
-// fbscli.dll Font & Bitmap server client-side library
-//
-//
-
-/**
- @file
-*/
-
-target fbscli_fmm.dll
-CAPABILITY All -Tcb
-targettype DLL
-
-UID 0x1000008D 0x10003A15
-VENDORID 0x70000001
-SOURCEPATH ../sfbs
-
-userinclude ../inc
-userinclude ../../../../textandloc/fontservices/fontstore/src
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-
-source BITBMP.CPP
-source BITCOMP.CPP
-source BITBMPEX.CPP
-source BMPASTR.CPP
-source BMPUTIL.CPP
-source FBSBMP.CPP
-source FBSFONT.CPP
-source PILE.CPP
-source SESSION.CPP
-source TFSTORE.CPP
-source FbsRalc.cpp
-source fbshelper.cpp
-source ShiftedFileStore.cpp
-source BitmapCompr.cpp
-source patchableconstantscli.cpp
-
-library euser.lib
-library efsrv.lib
-library estor.lib
-library gdi.lib
-library fntstr.lib
-library scdv.lib
-library palette.lib
-library lookuptable.lib
-library hal.lib
-#if !defined(WINS)
-library fbsrasterizer.lib
-#endif
-
-deffile FBSCLI2.DEF
-
-
-START WINS
-BASEADDRESS 0x41400000
-END
-//configurable value to control bitmap heap management by setting
-//large bitmap threshold (requires rebuild)
-MACRO KMaxLargeBitmapAlloc=0x4000
-//MACRO SYMBIAN_DISABLE_HARDWARE_BITMAP_WHITEFILL // Uncomment this macro to disable whitefill of hardware bitmaps on creation
-
-// KCompressionThreshold is used to determine whether a bitmap gets compressed. Values of 0 -> 256 represent 0% to 100%
-// where 0% = no compression. A value of 205 means that bitmaps are only compressed when the resulting size is 80% or
-// less of the original size.
-MACRO KCompressionThreshold=205
-
-MACRO FNTSTORE_SUPPORT_FMM
-
-UNPAGED
-
-
-SMPSAFE
-
--- a/fbs/fontandbitmapserver/group/fbserv.iby Wed May 19 14:34:22 2010 +0100
+++ b/fbs/fontandbitmapserver/group/fbserv.iby Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1998-2010 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"
@@ -47,8 +47,8 @@
#define FBSERV_PAGEDDATA_CONFIG unpageddata
#endif
- file=ABI_DIR\BUILD_DIR\fbserv_fmm.exe \sys\bin\fbserv.exe FBSERV_PAGEDDATA_CONFIG
- file=ABI_DIR\BUILD_DIR\fbscli_fmm.dll \sys\bin\fbscli.dll
+ file=ABI_DIR\BUILD_DIR\fbserv.exe \sys\bin\fbserv.exe FBSERV_PAGEDDATA_CONFIG
+ file=ABI_DIR\BUILD_DIR\fbscli.dll \sys\bin\fbscli.dll
#else
file=ABI_DIR\DEBUG_DIR\fbserv.exe sys\bin\fbserv.exe
file=ABI_DIR\DEBUG_DIR\fbscli.dll sys\bin\fbscli.dll
--- a/fbs/fontandbitmapserver/group/fbserv_fmm.mmp Wed May 19 14:34:22 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-// Copyright (c) 1998-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:
-// fbserv.exe Font & Bitmap server
-//
-//
-
-/**
- @file
-*/
-
-// Default stack size(8K) is too small and causes stack overflow
-// in the hardware test udeb
-EPOCSTACKSIZE 16384
-EPOCHEAPSIZE 0x10000 0x200000
-
-target fbserv_fmm.exe
-
-EPOCFIXEDPROCESS
-CAPABILITY ProtServ
-targettype exexp
-
-uid 0x1000008C 0x10003A16
-VENDORID 0x70000001
-
-userinclude ../inc
-userinclude ../sfbs
-userinclude ../../../../textandloc/fontservices/fontstore/src
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_ESTLIB_SYSTEMINCLUDE
-
-sourcepath ../sfbs
-
-source FBSCLI.CPP
-source FBSMAIN.CPP
-source FBSTOP.CPP
-source BackGroundCompression.CPP
-source SERVER.CPP
-source FBSMBMC.CPP
-source ShiftedFileStore.cpp
-source HASHMAP.CPP
-source patchableconstants.cpp
-
-library euser.lib
-library efsrv.lib
-library gdi.lib
-library fntstr.lib
-library fbscli.lib
-library estor.lib
-library ecom.lib
-library hal.lib
-
-start wins
-baseaddress 0x41500000
-end
-
-deffile fbserv.def
-
-MACRO KFBSERVInitialHeapSize=0x10000
-MACRO KFBSERVHeapGrowByMultiplier=4
-MACRO KFBSERVSharedBitmapHashTableSizeInBits=12
-MACRO FNTSTORE_SUPPORT_FMM
-UNPAGEDCODE //Configure data paging via fbserv.iby
-
-
-SMPSAFE
--- a/fbs/fontandbitmapserver/sfbs/FBSCLI.CPP Wed May 19 14:34:22 2010 +0100
+++ b/fbs/fontandbitmapserver/sfbs/FBSCLI.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1995-2010 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"
@@ -35,7 +35,7 @@
{
if (aAny && aHeapBase)
{
- return (TInt)aAny - (TInt)aHeapBase;
+ return reinterpret_cast<TInt>(aAny) - aHeapBase;
}
return 0;
}
@@ -47,11 +47,11 @@
@return A pointer relative to the passed heap base.
@see PointerToOffset()
*/
-LOCAL_C TAny* OffsetToPointer(const TInt aOffset, TInt aHeapBase)
+LOCAL_C TAny* OffsetToPointer(TInt aOffset, TInt aHeapBase)
{
if (aOffset && aHeapBase)
{
- return (TAny*)(aOffset + (TInt)aHeapBase);
+ return reinterpret_cast<TAny*>(aOffset + aHeapBase);
}
return NULL;
}
--- a/fbs/fontandbitmapserver/sfbs/FBSFONT.CPP Wed May 19 14:34:22 2010 +0100
+++ b/fbs/fontandbitmapserver/sfbs/FBSFONT.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1995-2010 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"
@@ -38,7 +38,7 @@
{
if (aAny && aHeapBase)
{
- return (TInt)aAny - (TInt)aHeapBase;
+ return reinterpret_cast<TInt>(aAny) - reinterpret_cast<TInt>(aHeapBase);
}
return 0;
}
@@ -50,11 +50,11 @@
@return A pointer relative to the passed heap base.
@see PointerToOffset()
*/
-LOCAL_C TAny* OffsetToPointer(const TInt aOffset, TUint8* aHeapBase)
+LOCAL_C TAny* OffsetToPointer(TInt aOffset, TUint8* aHeapBase)
{
if (aOffset && aHeapBase)
{
- return (TAny*)(aOffset + (TInt)aHeapBase);
+ return reinterpret_cast<TAny*>(aOffset + reinterpret_cast<TInt>(aHeapBase));
}
return NULL;
}
@@ -469,10 +469,10 @@
{
// Translate the offsets sent to the server back to pointers relative to
// the heap base of the current process
- const TOpenFontCharMetrics* temp = (const TOpenFontCharMetrics*)OffsetToPointer(paramsBuf().iMetricsOffset, iFbs->HeapBase());
- if (temp)
+ const TOpenFontCharMetrics* metrics = (const TOpenFontCharMetrics*)OffsetToPointer(paramsBuf().iMetricsOffset, iFbs->HeapBase());
+ if (metrics)
{
- aMetrics = *temp;
+ aMetrics = *metrics;
}
aBitmap = static_cast<TUint8*>(OffsetToPointer(paramsBuf().iBitmapPointerOffset, iFbs->HeapBase()));
}
@@ -587,7 +587,7 @@
EXPORT_C TBool CFbsFont::HasCharacter(TInt aCode) const
{
if (iHandle)
- {
+ {
return iFbs->SendCommand(EFbsMessHasCharacter,iHandle,aCode);
}
return EFalse;
@@ -621,7 +621,7 @@
/** help DoExtendedFunction to perform KFontDeleteShaping function
@param aParam Input parameter block
-@return KErrNone if successful, KErrBadHandle if the font does not have a valid handle.
+@return KErrNone if successful, KErrGeneral if the font does not have a valid handle.
*/
TInt CFbsFont::DoFontDeleteShaping(TFontShapeDeleteFunctionParameters* aParam) const
{
@@ -677,3 +677,4 @@
}
return CFont::DoExtendedFunction(aFunctionId, aParam);
}
+
--- a/fbs/fontandbitmapserver/tfbs/TFBS.CPP Wed May 19 14:34:22 2010 +0100
+++ b/fbs/fontandbitmapserver/tfbs/TFBS.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1995-2010 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"
@@ -84,7 +84,7 @@
void CTFbs::ConstructL()
{
ExpandCleanupStackL();
-
+ User::LeaveIfError(Logger().ShareAuto());
TestConstruction();
AllocScanLineBuf();
@@ -2145,6 +2145,8 @@
are the same, thereby avoiding any unneccessary IPC calls.
@SYMTestActions
+ Try to open a global semaphore called "FBSSessionCacheSemaphore" (this is a temporary measure to
+ ensure successful propagation of ou1cimx1#250526).
Create a large font which consumes a lot of memory.
Create a CFbsBitGc and a CFbsBitmap target.
Use the CFbsBitGc to render some text, thereby filling the font glyph cache.
@@ -2156,6 +2158,7 @@
returned from CBitmapFont::GetCharacterData().
@SYMTestExpectedResults
+ No global semaphore called "FBSSessionCacheSemaphore" should exist.
When using KNullHandle, CharacterNeedsToBeRasterized() with the first character, is expected to pass
proving that the font cache is working as expected when glyphs can fit into it.
When using KNullHandle, CharacterNeedsToBeRasterized() with the last character, it expected to fail,
@@ -2172,6 +2175,11 @@
{
INFO_PRINTF1(_L("Test Font Session-cache Lookup"));
+ // Make sure the global semaphore is gone for good
+ _LIT(KSessionCacheSemaphoreName, "FBSSessionCacheSemaphore");
+ RSemaphore sem;
+ TEST(sem.OpenGlobal(KSessionCacheSemaphoreName) == KErrNotFound);
+
User::LeaveIfError(RFbsSession::Connect());
RFbsSession* fbsSession = RFbsSession::GetSession();
CFbsTypefaceStore* ts = CFbsTypefaceStore::NewL(NULL);
@@ -2273,170 +2281,96 @@
TEST(KErrNone == iFbs->SendCommand(EFbsMessSetTwipsHeight, fontHandle, 49));
// In a second thread, send a IPC command to set the font's height with the
// bitmap's handle. Should panic with FBServ -6.
- TFbsTestThreadInfo threadInfo = {EFbsSecondThreadInvalidHandleInIpcCall};
- TExitCategoryName exitCategoryName(KFbsPanicCategory);
_LIT(KTestName, "TestInvalidHandlesInIpcCall");
- CreateSecondThreadAndCheckPanicL(threadInfo, -6, exitCategoryName, KTestName);
+ CreateSecondThreadAndCheckPanicL(SecondThreadPanicInvalidHandleInIpcCallL, KErrArgument, KFbsPanicCategory, KTestName);
iTs->ReleaseFont(font);
delete bmp;
}
/**
-Creates a second thread and do some panic tests in it.
-@param aTestInfo The information for the tests
-@param aPanicCode The expected panic code
-@param aExitCategory The expected panic category
-@param aThreadName The name of the new thread
-@leave Gets system wide error code
+Second thread function for test GRAPHICS-FBSERV-0650. It should panic with FBSERV -6 if the test is successful.
+ */
+void CTFbs::SecondThreadPanicInvalidHandleInIpcCallL()
+ {
+ User::LeaveIfError(RFbsSession::Connect());
+ RFbsSession* fbs = RFbsSession::GetSession();
+ CFbsBitmapEx* bmp = new(ELeave) CFbsBitmapEx();
+ CleanupStack::PushL(bmp);
+ User::LeaveIfError(bmp->Create(TSize(1,1), EGray2));
+ CFbsTypefaceStore* ts = CFbsTypefaceStore::NewL(NULL);
+ CleanupStack::PushL(ts);
+ CFbsFont* font=NULL;
+ User::LeaveIfError(ts->GetNearestFontToDesignHeightInPixels((CFont*&)font, TFontSpec(KTypefaceName, 15)));
+ TInt bitmapHandle = bmp->BitmapHandle();
+
+ // Send a IPC command to set twips height of font with a bitmap handle
+ (void)fbs->SendCommand(EFbsMessSetTwipsHeight, bitmapHandle, 49);
+
+ ts->ReleaseFont(font);
+ CleanupStack::PopAndDestroy(2);
+ RFbsSession::Disconnect();
+ }
+
+
+struct TFbsTestDelegator
+ {
+ CTFbs* iTestBase;
+ void (CTFbs::*iMethodPtr)();
+ };
+
+/**
+Creates a second thread and checks that it panics.
+@param aMethodL The leaving method of CTFbs that the second thread is going to execute.
+@param aPanicCode The expected panic code.
+@param aPanicCategory The expected panic category.
+@param aThreadName The name of the new thread.
*/
-void CTFbs::CreateSecondThreadAndCheckPanicL(TFbsTestThreadInfo& aTestInfo, TInt aPanicCode, TExitCategoryName aExitCategory, const TDesC &aThreadName)
+void CTFbs::CreateSecondThreadAndCheckPanicL(void (CTFbs::*aMethodL)(), TInt aPanicCode, const TDesC& aPanicCategory, const TDesC& aThreadName)
{
RThread secondThread;
- User::LeaveIfError(secondThread.Create(aThreadName, SecondThreadStart, KDefaultStackSize, 0x1000, 0x1000, &aTestInfo));
+ TFbsTestDelegator delegator;
+ delegator.iTestBase = this;
+ delegator.iMethodPtr = aMethodL;
+ User::LeaveIfError(secondThread.Create(aThreadName, MethodDelegatorThreadFunction, KDefaultStackSize, 0x1000, 0x1000, &delegator));
// Launch second thread
TRequestStatus statusSecondThread;
secondThread.Logon(statusSecondThread);
- secondThread.SetPriority(EPriorityLess);
- secondThread.Resume();
-
+ secondThread.Resume();
+ // Wait until second thread is finished
User::WaitForRequest(statusSecondThread);
-
- if(EExitPanic != secondThread.ExitType())
+ // Check results
+ if (EExitPanic != secondThread.ExitType())
{
- ERR_PRINTF3(_L("Expected exit type: %d, Actual exit type: %d"), EExitPanic, secondThread.ExitType());
+ ERR_PRINTF2(_L("Expected exit type: EExitPanic, actual exit type: %d"), secondThread.ExitType());
TEST(EFalse);
}
-
- if(aPanicCode != secondThread.ExitReason())
+ if (aPanicCode != secondThread.ExitReason())
{
- ERR_PRINTF3(_L("Expected panic code: %d, Actual panic code: %d"), aPanicCode, secondThread.ExitReason());
+ ERR_PRINTF3(_L("Expected exit reason: %d, actual exit reason: %d"), aPanicCode, secondThread.ExitReason());
TEST(EFalse);
}
-
TExitCategoryName secondThreadExitCategory = secondThread.ExitCategory();
- if(aExitCategory != secondThreadExitCategory)
+ if (aPanicCategory != secondThreadExitCategory)
{
- ERR_PRINTF3(_L("Expected panic category: %S, Actual panic category: %S"), &aExitCategory, &secondThreadExitCategory);
+ ERR_PRINTF3(_L("Expected exit category: %S, actual exit category: %S"), &aPanicCategory, &secondThreadExitCategory);
TEST(EFalse);
}
-
- //Close the handle
+ // Dispose of the remains of the second thread
secondThread.Close();
}
-/**
-Second thread entry function.
-*/
-TInt CTFbs::SecondThreadStart(TAny* aTestInfo)
+TInt CTFbs::MethodDelegatorThreadFunction(TAny* aDelegator)
{
-
- __UHEAP_MARK;
- TInt procHandles1 =0;
- TInt threadHandles1=0;
- RThread().HandleCount(procHandles1, threadHandles1);
CTrapCleanup* cleanupStack = CTrapCleanup::New();
-
if (!cleanupStack)
{
- __UHEAP_MARKEND;
return KErrNoMemory;
}
-
- TInt result = KErrNone;
- TRAP(result, SecondThreadMainL(static_cast<TFbsTestThreadInfo*>(aTestInfo)));
-
+ TFbsTestDelegator* delegator = static_cast<TFbsTestDelegator*>(aDelegator);
+ TRAPD(err, (delegator->iTestBase->*delegator->iMethodPtr)());
delete cleanupStack;
-
- TInt procHandles2 =0;
- TInt threadHandles2=0;
- RThread().HandleCount(procHandles2,threadHandles2);
- if (threadHandles1 != threadHandles2)
- {
- result = KErrGeneral; // Thread-owned handles not closed
- }
- __UHEAP_MARKEND;
-
- return result;
- }
-
-/**
-Run the test contained within the TFbsTestThreadInfo object. A new thread is
-created for each test and only one of the cases in the switch statements
-below will be used.
-
-@param aTestInfo The parameters for the test
-@return One of the system wide error codes or an enumeration of passed tests.
- */
-TInt CTFbs::SecondThreadMainL(TFbsTestThreadInfo* aTestInfo)
- {
- TInt result = 0;
- TFbsMultiThreadTestCase testcase = aTestInfo->iTestCase;
-
- //test cases without the need of an initialised driver
- switch (testcase)
- {
- case EFbsSecondThreadInvalidHandleInIpcCall:
- result = SecondThreadPanicInvalidHandleInIpcCall();
- break;
- }
- return result;
- }
-
-/**
-Implementation of SecondThread test EFbsSecondThreadInvalidHandleInIpcCall
-
-@panic FBSERV -6 If the test is successful
-
-@return One of the system wide error codes.
- */
-TInt CTFbs::SecondThreadPanicInvalidHandleInIpcCall()
- {
- TInt result = RFbsSession::Connect();
- if (KErrNone != result)
- {
- return result;
- }
- RFbsSession* fbs = RFbsSession::GetSession();
- CFbsBitmapEx* bmp = new CFbsBitmapEx();
- if (!bmp)
- {
- return KErrGeneral;
- }
- result = bmp->Create(TSize(1,1),EGray2);
- if(KErrNone != result)
- {
- delete bmp;
- return KErrGeneral;
- }
-
- CFbsTypefaceStore* ts = NULL;
- ts = (CFbsTypefaceStore*)CFbsTypefaceStore::NewL(NULL);
- if (!ts)
- {
- delete bmp;
- return KErrGeneral;
- }
-
- CFbsFontEx* font=NULL;
- result = ts->GetNearestFontToDesignHeightInPixels((CFont*&)font, TFontSpec(KTypefaceName, 15));
- if (!font)
- {
- delete bmp;
- delete ts;
- return KErrGeneral;
- }
-
- TInt fontHandle = font->FontHandle();
- TInt bitmapHandle = bmp->BitmapHandle();
-
- // Send a IPC command to set twips height of font with a bitmap handle
- result = fbs->SendCommand(EFbsMessSetTwipsHeight, bitmapHandle, 49);
-
- ts->ReleaseFont(font);
- delete bmp;
- delete ts;
- return result;
+ return err;
}
/**
--- a/fbs/fontandbitmapserver/tfbs/TFBS.H Wed May 19 14:34:22 2010 +0100
+++ b/fbs/fontandbitmapserver/tfbs/TFBS.H Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1995-2010 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"
@@ -20,7 +20,6 @@
#include <gdi.h>
#include <test/fontinjector.h>
#include <test/TGraphicsHarness.h>
-#include "tfbsmultithread.h"
_LIT(KTempFilename,"c:\\temp.mbm");
_LIT(KTestBitmapOnZ,"z:\\system\\data\\tfbs.mbm");
@@ -138,10 +137,9 @@
TInt LoadOpenFontLibraries();
TBool CheckTypefacesSupport(const TTypefaceSupport& aInfo1, const TTypefaceSupport& aInfo2);
void LoadFontsL(const TDesC& aFontsDir);
- void CreateSecondThreadAndCheckPanicL(TFbsTestThreadInfo& aTestCase, TInt aPanicCode, TExitCategoryName aExitCategory, const TDesC &aThreadName);
- static TInt SecondThreadStart(TAny* aTestInfo);
- static TInt SecondThreadMainL(TFbsTestThreadInfo* aTestInfo);
- static TInt SecondThreadPanicInvalidHandleInIpcCall();
+ void SecondThreadPanicInvalidHandleInIpcCallL();
+ void CreateSecondThreadAndCheckPanicL(void (CTFbs::*aMethodL)(), TInt aPanicCode, const TDesC& aPanicCategory, const TDesC &aThreadName);
+ static TInt MethodDelegatorThreadFunction(TAny* aDelegator);
private:
TInt iHandle;
--- a/fbs/fontandbitmapserver/tfbs/tfbsmultithread.h Wed May 19 14:34:22 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-// 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:
-//
-
-#ifndef TFBSMULTITHREAD_H
-#define TFBSMULTITHREAD_H
-
-/**
-* Enums for passing between the test thread and the second thead used in testing,
-* used to define which test should be run on the second thread.
-*/
-enum TFbsMultiThreadTestCase
- {
- EFbsSecondThreadInvalidHandleInIpcCall,
- };
-
-/**
- * Class for passing test info to other threads.
- */
-struct TFbsTestThreadInfo
- {
- TFbsMultiThreadTestCase iTestCase;
- };
-
-#endif // TFBSMULTITHREAD_H
--- a/graphics_plat/m3g_core_api/inc/M3G/m3g_core.h Wed May 19 14:34:22 2010 +0100
+++ b/graphics_plat/m3g_core_api/inc/M3G/m3g_core.h Tue Jun 01 15:04:40 2010 +0100
@@ -31,16 +31,18 @@
* binding layer.
*/
-#if defined (__ARMCC_2_2__)
-# define M3G_API __declspec(dllimport)
-#endif
-
-#if defined(M3G_BUILD_DLL)
-# define M3G_API __declspec(dllexport)
-#endif
-
-#if !defined(M3G_API)
-# define M3G_API
+#if (__ARMCC_VERSION >= 220000)
+# if defined(M3G_BUILD_DLL)
+# define M3G_API __declspec(dllexport)
+# else
+# define M3G_API __declspec(dllimport)
+# endif
+#else
+# if defined(M3G_BUILD_DLL)
+# define M3G_API __declspec(dllexport)
+# else
+# define M3G_API
+# endif
#endif
/*----------------------------------------------------------------------
@@ -916,7 +918,7 @@
M3G_API M3GCamera m3gGetCamera (M3GRenderContext hCtx);
M3G_API void m3gSetAlphaWrite (M3GRenderContext ctx, M3Gbool enable);
M3G_API M3Gbool m3gGetAlphaWrite (M3GRenderContext ctx);
-
+M3G_API void m3gFreeGLESResources (M3GRenderContext ctx);
/* -------- SkinnedMesh -------- */
--- a/graphicsaccelaration/vgi/inc/vg/vgcontext.h Wed May 19 14:34:22 2010 +0100
+++ b/graphicsaccelaration/vgi/inc/vg/vgcontext.h Tue Jun 01 15:04:40 2010 +0100
@@ -44,6 +44,7 @@
VGI_COLOR_BUFFER_FORMAT_RGB888,
VGI_COLOR_BUFFER_FORMAT_XRGB8888,
VGI_COLOR_BUFFER_FORMAT_ARGB8888,
+ VGI_COLOR_BUFFER_FORMAT_ARGB8888_PRE,
VGI_COLOR_BUFFER_FORMAT_XRGB4444,
} VGIColorBufferFormat;
--- a/graphicscomposition/openwfcompositionengine/adaptation/src/Platform/Graphics/symbian/owfnativestreamstub.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfcompositionengine/adaptation/src/Platform/Graphics/symbian/owfnativestreamstub.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-2010 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"
@@ -94,6 +94,11 @@
bytesPerPixel = -8;
b.iAlignment = max(4,format->rowPadding);
break;
+ case OWF_IMAGE_UYVY:
+ b.iPixelFormat = EUidPixelFormatYUV_422Interleaved;
+ bytesPerPixel = 1;
+ b.iAlignment = max(4,format->rowPadding);
+ break;
default:
return surface;
}
@@ -291,6 +296,14 @@
aFormat.rowPadding = 4;
aFormat.pixelFormat = OWF_IMAGE_L1;
break;
+
+ case EUidPixelFormatYUV_422Interleaved :
+ aFormat.linear = OWF_FALSE;
+ aFormat.premultiplied = OWF_FALSE;
+ aFormat.rowPadding = 1;
+ aFormat.pixelFormat = OWF_IMAGE_UYVY;
+ break;
+
default:
aFormat.linear = OWF_FALSE;
aFormat.premultiplied = OWF_FALSE;
--- a/graphicscomposition/openwfcompositionengine/adaptation/src/Platform/Graphics/symbian/owfscreen_displaychannel.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfcompositionengine/adaptation/src/Platform/Graphics/symbian/owfscreen_displaychannel.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-2010 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"
@@ -115,7 +115,7 @@
void COWFScreenDisplayInfo::ConstructL()
{
User::LeaveIfError(iDispChan.Open(iScreenNumber));
-#ifdef __WINS__
+#if defined (__WINS__) || defined (__SYBORG__)
iDefaultRotation = RDisplayChannel::ERotationNormal;
#else
iDefaultRotation = RDisplayChannel::ERotation270CW;
--- a/graphicscomposition/openwfcompositionengine/common/include/owfimage.h Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfcompositionengine/common/include/owfimage.h Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,5 @@
/* Copyright (c) 2009 The Khronos Group Inc.
+ * Portions Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
@@ -31,6 +32,7 @@
typedef void* OWF_DISPCTX;
+#define CLIP(a) if (a < 0) a = 0; else if (a > 255) a = 255;
#undef USE_FLOAT_PIXEL
@@ -66,6 +68,7 @@
#define OWF_BLEND_ROUNDING_VALUE 0.0f
#define OWF_PREMUL_ROUNDING_FACTOR 0.0f
#define OWF_SOURCE_CONVERSION_ROUNDING_VALUE 0.0f
+#define OWF_ALPHA_MIN_STEP_VALUE (1.0f/256.0f)
#else
#undef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
@@ -89,6 +92,7 @@
#define OWF_SOURCE_CONVERSION_ROUNDING_VALUE 0.5f
#define OWF_BLEND_ROUNDING_VALUE (OWF_ALPHA_MAX_VALUE/2)
#define OWF_PREMUL_ROUNDING_FACTOR (OWF_ALPHA_MAX_VALUE/2)
+#define OWF_ALPHA_MIN_STEP_VALUE 1
#endif
@@ -195,10 +199,9 @@
OWF_IMAGE* mask;
OWFsubpixel globalAlpha;
- OWFboolean destinationFullyOpaque;
- OWFpixel* tsColor;
} OWF_BLEND_INFO;
+#define CLIP(a) if (a < 0) a = 0; else if (a > 255) a = 255;
/*!---------------------------------------------------------------------------
* \brief Initialize image object
@@ -304,7 +307,6 @@
OWF_API_CALL void
OWF_Image_SetPixelBuffer(OWF_IMAGE* image, void* buffer);
-
/*!---------------------------------------------------------------------------
* \brief Blit (1:1 copy) pixels from image to another w/ clipping.
*
--- a/graphicscomposition/openwfcompositionengine/common/include/owftypes.h Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfcompositionengine/common/include/owftypes.h Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,5 @@
/* Copyright (c) 2009 The Khronos Group Inc.
+ * Portions Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
@@ -73,6 +74,7 @@
OWF_IMAGE_L16 = 0xA16,
OWF_IMAGE_L8 = 0xA8,
OWF_IMAGE_L1 = 0xA1,
+ OWF_IMAGE_UYVY = 0x422, /* EUidPixelFormatYUV_422Interleaved */
OWF_IMAGE_ARGB_INTERNAL = 0x666 /* OWFpixel rep */
} OWF_PIXEL_FORMAT;
--- a/graphicscomposition/openwfcompositionengine/common/src/owfimage.c Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfcompositionengine/common/src/owfimage.c Tue Jun 01 15:04:40 2010 +0100
@@ -211,7 +211,7 @@
OWF_ASSERT(image->format.pixelFormat==OWF_IMAGE_ARGB_INTERNAL);
OWF_ASSERT(image->width >= 3 && image->height >= 3);
- copyStride = image->width * image->pixelSize;
+ copyStride = OWF_Image_GetStride(image->width, &image->format, 0);
/* top side replication */
srcPtr = (OWFuint8*) image->data;
@@ -252,11 +252,15 @@
void* srcLinePtr;
OWFpixel* dstLinePtr;
OWFboolean replicateEdges = OWF_FALSE;
+#ifndef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
+ OWFint widthBytes;
+#endif
OWF_ASSERT(dst != 0 && dst->data != NULL);
OWF_ASSERT(src != 0 && src->data != NULL);
OWF_ASSERT(dst->format.pixelFormat==OWF_IMAGE_ARGB_INTERNAL);
+ OWF_ASSERT(dst->stride == OWF_Image_GetStride(dst->width, &dst->format, 0));
srcLinePtr = src->data;
dstLinePtr = (OWFpixel*) dst->data;
@@ -285,6 +289,10 @@
return OWF_FALSE;
}
+#ifndef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
+ widthBytes = OWF_Image_GetStride(src->width, &src->format, 0);
+#endif
+
for (countY = src->height; countY; countY--)
{
OWFint count = src->width;
@@ -294,6 +302,7 @@
{
case OWF_IMAGE_ARGB8888:
{
+#ifdef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
OWFuint32* srcPtr = (OWFuint32*) srcLinePtr;
while (count > 0)
@@ -310,6 +319,9 @@
srcPtr ++;
count--;
}
+#else
+ memcpy(dstLinePtr, srcLinePtr, widthBytes);
+#endif
break;
}
@@ -319,6 +331,7 @@
while (count > 0)
{
+#ifdef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
dstPtr->color.alpha = OWF_FULLY_OPAQUE;
dstPtr->color.red = (OWFsubpixel)
OWF_RED_MAX_VALUE * ((*srcPtr & ARGB8888_RED_MASK) >> ARGB8888_RED_SHIFT) / OWF_BYTE_MAX_VALUE;
@@ -326,6 +339,9 @@
OWF_GREEN_MAX_VALUE * ((*srcPtr & ARGB8888_GREEN_MASK) >> ARGB8888_GREEN_SHIFT) / OWF_BYTE_MAX_VALUE;
dstPtr->color.blue = (OWFsubpixel)
OWF_BLUE_MAX_VALUE * ((*srcPtr & ARGB8888_BLUE_MASK) >> ARGB8888_BLUE_SHIFT) / OWF_BYTE_MAX_VALUE;
+#else
+ *(OWFuint32*)dstPtr = *srcPtr | ARGB8888_ALPHA_MASK;
+#endif
dstPtr ++;
srcPtr ++;
count--;
@@ -362,7 +378,50 @@
}
break;
}
-
+
+ case OWF_IMAGE_UYVY:
+ {
+ OWFuint8* srcPtr = (OWFuint8*) srcLinePtr;
+ OWFint y,u,v,r,g,b,x;
+ for (x = 0; x < count; x++)
+ {
+ u = srcPtr[0] - 128;
+ v = srcPtr[2] - 128;
+ y = srcPtr[3] - 16;
+
+ r = ((298 * y + 409 * u) / 256);
+ g = ((298 * y - 100 * v - 208 * u) / 256);
+ b = ((298 * y + 516 * v) / 256);
+
+ CLIP(r);
+ CLIP(g);
+ CLIP(b);
+
+ dstPtr->color.alpha = 255;
+ dstPtr->color.red = r;
+ dstPtr->color.green = g;
+ dstPtr->color.blue = b;
+ dstPtr++;
+
+ y = srcPtr[1] - 16;
+ r = ((298 * y + 409 * u) / 256);
+ g = ((298 * y - 100 * v - 208 * u) / 256);
+ b = ((298 * y + 516 * v) / 256);
+
+ CLIP(r);
+ CLIP(g);
+ CLIP(b);
+
+ dstPtr->color.alpha = 255;
+ dstPtr->color.red = r;
+ dstPtr->color.green = g;
+ dstPtr->color.blue = b;
+ dstPtr++;
+ srcPtr += 4;
+ }
+ break;
+ }
+
default:
{
return OWF_FALSE; /* source format not supported */
@@ -450,10 +509,15 @@
OWFint countY;
OWFuint32* dstPtr;
OWFpixel* srcPtr;
+ OWFuint8* destination;
+#ifndef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
+ OWFint widthBytes;
+#endif
OWF_ASSERT(dst != 0 && dst->data != NULL);
OWF_ASSERT(src != 0 && src->data != NULL);
OWF_ASSERT(src->format.pixelFormat==OWF_IMAGE_ARGB_INTERNAL);
+ /* Note: src->stride cannot be relied upon to be correct. Assume lines are contiguous. */
if (src->format.pixelFormat != OWF_IMAGE_ARGB_INTERNAL)
{
@@ -478,16 +542,21 @@
OWF_Image_UnpremultiplyAlpha(src);
}
+ destination = (OWFuint8*) dst->data;
+#ifndef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
+ widthBytes = OWF_Image_GetStride(src->width, &src->format, 0);
+#endif
+
for (countY = 0; countY < src->height; countY++)
{
- OWFuint8* destination = (OWFuint8*) dst->data;
- destination += countY*dst->stride;
dstPtr = (OWFuint32*) destination;
-
+ destination += dst->stride;
+
switch (dst->format.pixelFormat)
{
case OWF_IMAGE_ARGB8888:
{
+#ifdef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
OWFint countX;
OWFuint32 dstPixel = 0;
@@ -505,6 +574,10 @@
dstPtr ++;
srcPtr ++;
}
+#else
+ memcpy(dstPtr, srcPtr, widthBytes);
+ srcPtr = (OWFpixel*)((OWFuint8*)srcPtr + widthBytes);
+#endif
break;
}
@@ -515,6 +588,7 @@
for (countX = 0; countX < src->width; countX++)
{
+#ifdef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
dstPixel = ARGB8888_ALPHA_MASK;
dstPixel |= ((OWFuint8)(roundSubPixel(OWF_BYTE_MAX_VALUE * srcPtr->color.red / OWF_RED_MAX_VALUE)) <<
ARGB8888_RED_SHIFT);
@@ -522,13 +596,22 @@
ARGB8888_GREEN_SHIFT);
dstPixel |= ((OWFuint8)(roundSubPixel(OWF_BYTE_MAX_VALUE * srcPtr->color.blue / OWF_BLUE_MAX_VALUE)) <<
ARGB8888_BLUE_SHIFT);
+#else
+ dstPixel = *(OWFuint32*)srcPtr | ARGB8888_ALPHA_MASK;
+#endif
*dstPtr = dstPixel;
dstPtr ++;
srcPtr ++;
}
break;
}
-
+#ifdef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
+ case OWF_IMAGE_UYVY:
+ {
+ return OWF_FALSE; /* this is not supported */
+ }
+#endif
+
default:
{
return OWF_FALSE; /* destination format not supported */
@@ -1120,10 +1203,12 @@
OWF_ASSERT(image != 0);
OWF_ASSERT(image->data != 0);
OWF_ASSERT(image->format.pixelFormat == OWF_IMAGE_ARGB_INTERNAL);
+ /* Note: image->stride cannot be relied upon to be correct. Assume lines are contiguous. */
numPixels = image->width * image->height;
pixels = (OWFpixel*) image->data;
+#ifdef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
for (i = 0; i < numPixels; i++)
{
pixels[i].color.red = (OWFsubpixel) red;
@@ -1131,6 +1216,29 @@
pixels[i].color.blue = (OWFsubpixel) blue;
pixels[i].color.alpha = (OWFsubpixel) alpha;
}
+#else
+ if (alpha == red && alpha == green && alpha == blue)
+ {
+ /* If all four bytes are the same, just use memset */
+ OWFuint32 clearBytes = numPixels * sizeof(OWFuint32);
+
+ memset(pixels, alpha, clearBytes);
+ }
+ else
+ {
+ /* Otherwise assign each pixel the packed value */
+ OWFuint32* pixelPtr = (OWFuint32*)pixels;
+ OWFuint32 pixel;
+
+ pixel = (alpha << ARGB8888_ALPHA_SHIFT) | (red << ARGB8888_RED_SHIFT) |
+ (green << ARGB8888_GREEN_SHIFT) | (blue << ARGB8888_BLUE_SHIFT);
+
+ for (i = 0; i < numPixels; i++)
+ {
+ pixelPtr[i] = pixel;
+ }
+ }
+#endif
}
/*----------------------------------------------------------------------------*/
@@ -1397,13 +1505,9 @@
OWFint rowCount = drect.height; \
while (rowCount > 0) { \
OWFint colCount = drect.width; \
- while (colCount > 0) { \
- if (!(blend->tsColor && COLOR_MATCH(SC, TSC))) \
- { \
+ while (colCount > 0) {
#define BLENDER_INNER_LOOP_END \
- DA = blend->destinationFullyOpaque ? OWF_FULLY_OPAQUE : DA; \
- } /* end tsColor check */ \
srcPtr ++; \
dstPtr ++; \
maskPtr++; \
@@ -1414,14 +1518,16 @@
maskPtr += maskLineDelta; \
--rowCount; \
}
-
-#define TSC blend->tsColor->color
-#define SC srcPtr->color
-
-/* Note: actually would be better to compare integer values
- * for TSC match -> eliminate float arithmetic pitfalls
- */
-#define COLOR_MATCH(x, y) (x.red==y.red && x.green==y.green && x.blue==y.blue)
+
+#define BLENDER_INNER_LOOP_END_NO_MASK \
+ srcPtr ++; \
+ dstPtr ++; \
+ --colCount; \
+ } \
+ srcPtr += srcLineDelta; \
+ dstPtr += dstLineDelta; \
+ --rowCount; \
+ }
#define SA srcPtr->color.alpha
#define SR srcPtr->color.red
@@ -1543,6 +1649,7 @@
{
case OWF_TRANSPARENCY_NONE:
{
+#ifdef SLOW_CODE
/*
rgb = src.rgb
alpha = 1
@@ -1552,7 +1659,10 @@
DG = SG;
DB = SB;
DA = OWF_FULLY_OPAQUE;
- BLENDER_INNER_LOOP_END;
+ BLENDER_INNER_LOOP_END_NO_MASK;
+#else
+ memcpy(dstPtr, srcPtr, drect.height*drect.width*4);
+#endif
break;
}
@@ -1571,22 +1681,57 @@
OWF_ALPHA_MAX_VALUE;
DA = GA + (DA * (OWF_FULLY_OPAQUE - GA) + OWF_BLEND_ROUNDING_VALUE) /
OWF_ALPHA_MAX_VALUE;
- BLENDER_INNER_LOOP_END;
+ BLENDER_INNER_LOOP_END_NO_MASK;
break;
}
case OWF_TRANSPARENCY_SOURCE_ALPHA:
{
+#ifndef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
+ OWFuint32 redBlueMask = (ARGB8888_RED_MASK | ARGB8888_BLUE_MASK);
+ OWFuint32 alphaGreenMask = (ARGB8888_ALPHA_MASK | ARGB8888_GREEN_MASK);
+ OWFuint32 halfRedBlue = 0x00800080;
+#endif
/*
rgb = src.rgb + dst.rgb * (1 - src.alpha)
alpha = src.alpha + dst.alpha * (1 - src.alpha)
*/
BLENDER_INNER_LOOP_BEGIN;
- DR = SR + (DR * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE;
- DG = SG + (DG * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE;
- DB = SB + (DB * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE;
- DA = SA + (DA * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE;
- BLENDER_INNER_LOOP_END;
+#ifdef OWF_IMAGE_INTERNAL_PIXEL_IS_FLOAT
+ DR = SR + (DR * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE;
+ DG = SG + (DG * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE;
+ DB = SB + (DB * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE;
+ DA = SA + (DA * (OWF_FULLY_OPAQUE - SA) + OWF_BLEND_ROUNDING_VALUE) / OWF_ALPHA_MAX_VALUE;
+#else
+ {
+ OWFuint32 srcP = *(OWFuint32*)srcPtr;
+ OWFuint8 srcA = srcP >> ARGB8888_ALPHA_SHIFT;
+
+ if (srcA == OWF_ALPHA_MAX_VALUE)
+ {
+ /* Fully opaque source pixel */
+ *(OWFuint32*)dstPtr = srcP;
+ }
+ else
+ {
+ if (srcA)
+ {
+ /* Not fully transparent source pixel. Algorithm after Jim Blinn */
+ OWFuint32 mask = 0xFF - srcA;
+ OWFuint32 dstP = *(OWFuint32*)dstPtr;
+ OWFuint32 blend;
+
+ blend = mask * (dstP & redBlueMask) + halfRedBlue;
+ srcP += ((blend + ((blend >> 8) & redBlueMask) >> 8)) & redBlueMask;
+ blend = mask * ((dstP >> 8) & redBlueMask) + halfRedBlue;
+ srcP += (blend + ((blend >> 8) & redBlueMask)) & alphaGreenMask;
+
+ *(OWFuint32*)dstPtr = srcP;
+ }
+ }
+ }
+#endif
+ BLENDER_INNER_LOOP_END_NO_MASK;
break;
}
@@ -1627,7 +1772,7 @@
OWF_ALPHA_MAX_VALUE;
DA = SAEA + (DA * (OWF_FULLY_OPAQUE - SAEA) + OWF_BLEND_ROUNDING_VALUE) /
OWF_ALPHA_MAX_VALUE;
- BLENDER_INNER_LOOP_END;
+ BLENDER_INNER_LOOP_END_NO_MASK;
break;
}
@@ -1734,6 +1879,7 @@
case OWF_IMAGE_RGB565:
case OWF_IMAGE_L16:
+ case OWF_IMAGE_UYVY:
{
return 2;
}
@@ -1774,6 +1920,7 @@
case OWF_IMAGE_ARGB8888:
case OWF_IMAGE_XRGB8888:
case OWF_IMAGE_L32:
+ case OWF_IMAGE_UYVY:
{
padding = 4;
break;
--- a/graphicscomposition/openwfcompositionengine/composition/src/wfcpipeline.c Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfcompositionengine/composition/src/wfcpipeline.c Tue Jun 01 15:04:40 2010 +0100
@@ -103,10 +103,6 @@
state->blendInfo.mask = state->originalMaskImage ? state->maskImage : NULL;
state->blendInfo.globalAlpha = state->globalAlpha;
- /* composition does not use these values ever */
- state->blendInfo.tsColor = NULL;
- state->blendInfo.destinationFullyOpaque = OWF_FALSE;
-
DPRINT((" globalAplha = %f", state->globalAlpha));
/* no need to check with OWF_ALPHA_MIN_VALUE as it is zero */
OWF_ASSERT(state->blendInfo.globalAlpha <= OWF_ALPHA_MAX_VALUE);
@@ -352,6 +348,21 @@
state->globalAlpha = element->globalAlpha;
state->sourceScaleFilter = element->sourceScaleFilter;
state->transparencyTypes = element->transparencyTypes;
+
+ if (state->transparencyTypes & WFC_TRANSPARENCY_ELEMENT_GLOBAL_ALPHA)
+ {
+ if (state->globalAlpha == OWF_FULLY_TRANSPARENT)
+ {
+ /* Fully transparent element - no contribution. */
+ return NULL;
+ }
+ if (state->globalAlpha == OWF_FULLY_OPAQUE)
+ {
+ /* Fully opaque global alpha - global alpha can be ignored */
+ state->transparencyTypes &= ~WFC_TRANSPARENCY_ELEMENT_GLOBAL_ALPHA;
+ }
+ }
+
/* replicate the source viewport rectangle and target extent rectangle */
for (x = 0; x < 4; x++)
{
--- a/graphicscomposition/openwfcompositionengine/group/bld.inf Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfcompositionengine/group/bld.inf Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-2010 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"
@@ -23,6 +23,7 @@
PRJ_MMPFILES
openwfc.mmp
+openwfchwsyborg.mmp
PRJ_TESTMMPFILES
owfsharect.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicscomposition/openwfcompositionengine/group/openwfc.mmh Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,99 @@
+// Copyright (c) 2010 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:
+// Common project include header for OpenWFC DLL implementations
+// The need for this common header is so that three different versions of the
+// implementation can be generated:
+// 1. WINSCW version
+// 2. ARM version for Nokia Reference Boards
+// 3. Syborg version for Symbian Foundation SVP Reference Platform
+//
+// Note for syborg platform, the dll is aliased to libWFC.dll via rombuild
+//
+//
+
+#include <WF/openwfcuids.hrh>
+
+NOEXPORTLIBRARY
+EPOCALLOWDLLDATA
+
+#ifdef WINS
+deffile SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(def/win32/libWFC.def)
+#else
+deffile SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(def/eabi/libWFC.def)
+#endif
+
+MACRO __KHR_EXPORTS
+TARGETTYPE dll
+CAPABILITY PowerMgmt ReadDeviceData WriteDeviceData ProtServ
+UID 0 KUidOpenWfcDllUidValue
+
+OPTION ARMCC -O3 -Otime --cpu 6
+ALWAYS_BUILD_AS_ARM
+
+OS_LAYER_SYSTEMINCLUDE
+OS_LAYER_LIBC_SYSTEMINCLUDE
+MACRO HG_NO_ALLOCA_H
+MACRO EGL_DLL
+
+USERINCLUDE ../composition/include
+USERINCLUDE ../common/include
+USERINCLUDE ../adaptation/include
+
+LIBRARY libEGL.lib
+LIBRARY euser.lib
+LIBRARY libc.lib
+LIBRARY libpthread.lib
+LIBRARY libm.lib
+LIBRARY hal.lib
+LIBRARY wfcinterop.lib
+LIBRARY surfacemanager.lib
+
+SOURCEPATH ../composition/src
+SOURCE wfcapi.c
+SOURCE wfccontext.c
+SOURCE wfcdevice.c
+SOURCE wfcelement.c
+SOURCE wfcimageprovider.c
+SOURCE wfcscene.c
+SOURCE wfcpipeline.c
+
+SOURCEPATH ../common/src
+SOURCE owfarray.c
+SOURCE owfattributes.c
+SOURCE owfdebug.c
+SOURCE owfimage.c
+SOURCE owflinkedlist.c
+SOURCE owfmemory.c
+SOURCE owfobject.c
+SOURCE owfpool.c
+SOURCE owfutils.c
+
+SOURCEPATH ../adaptation/src/Platform/OS/symbian
+SOURCE owfconsole.cpp
+SOURCE owfmessagequeue.c
+SOURCE owfmutex.c
+SOURCE owfsemaphore.c
+SOURCE owfthread.c
+SOURCE owfextensions.cpp
+
+SOURCEPATH ../adaptation/src/Platform/Graphics/symbian
+SOURCE owfdisplaycontext.cpp
+SOURCE owfscreen_displaychannel.cpp
+SOURCE owfnativestreamstub.cpp
+SOURCE owfnotifications.cpp
+
+
+
+SMPSAFE
+
--- a/graphicscomposition/openwfcompositionengine/group/openwfc.mmp Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfcompositionengine/group/openwfc.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2009-2010 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"
@@ -11,87 +11,18 @@
// Contributors:
//
// Description:
-// libWFC.dll OpenWFC Sample Implementation
-//
+// OpenWFC Sample Implementation
+//
//
-#include <WF/openwfcuids.hrh>
//macros to enable filtering debug log output.
-//DEBUG_LOG must also be defined to enable logging
+//DEBUG_LOG must also be defined to enable logging
//(automatic if _DEBUG is defined, and DEBUG_DONOT_LOG is not defined)
MACRO DEBUG_DONOT_LOG
//MACRO DEBUG_LOG_FUNCTION=WFC_Element_
//MACRO DEBUG_LOG_FILE=owfnotifications.c
-TARGET libWFC.dll
-NOEXPORTLIBRARY
-EPOCALLOWDLLDATA
-
-#ifdef WINS
-deffile SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(def/win32/libWFC.def)
-#else
-deffile SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(def/eabi/libWFC.def)
-#endif
-
-MACRO __KHR_EXPORTS
-TARGETTYPE dll
-CAPABILITY PowerMgmt ReadDeviceData WriteDeviceData ProtServ
-UID 0 KUidOpenWfcDllUidValue
-
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_LIBC_SYSTEMINCLUDE
-MACRO HG_NO_ALLOCA_H
-MACRO EGL_DLL
-
-USERINCLUDE ../composition/include
-USERINCLUDE ../common/include
-USERINCLUDE ../adaptation/include
-
-LIBRARY libEGL.lib
-LIBRARY euser.lib
-LIBRARY libc.lib
-LIBRARY libpthread.lib
-LIBRARY libm.lib
-LIBRARY hal.lib
-LIBRARY wfcinterop.lib
-LIBRARY surfacemanager.lib
+#include "openwfc.mmh"
-SOURCEPATH ../composition/src
-SOURCE wfcapi.c
-SOURCE wfccontext.c
-SOURCE wfcdevice.c
-SOURCE wfcelement.c
-SOURCE wfcimageprovider.c
-SOURCE wfcscene.c
-SOURCE wfcpipeline.c
-
-SOURCEPATH ../common/src
-SOURCE owfarray.c
-SOURCE owfattributes.c
-SOURCE owfdebug.c
-SOURCE owfimage.c
-SOURCE owflinkedlist.c
-SOURCE owfmemory.c
-SOURCE owfobject.c
-SOURCE owfpool.c
-SOURCE owfutils.c
-
-SOURCEPATH ../adaptation/src/Platform/OS/symbian
-SOURCE owfconsole.cpp
-SOURCE owfmessagequeue.c
-SOURCE owfmutex.c
-SOURCE owfsemaphore.c
-SOURCE owfthread.c
-SOURCE owfextensions.cpp
-
-SOURCEPATH ../adaptation/src/Platform/Graphics/symbian
-SOURCE owfdisplaycontext.cpp
-SOURCE owfscreen_displaychannel.cpp
-SOURCE owfnativestreamstub.cpp
-SOURCE owfnotifications.cpp
-
-
-
-SMPSAFE
-
+TARGET libWFC.dll
--- a/graphicscomposition/openwfcompositionengine/group/openwfc_ref.iby Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfcompositionengine/group/openwfc_ref.iby Tue Jun 01 15:04:40 2010 +0100
@@ -19,7 +19,11 @@
#include <egl.iby>
#include <openwfc_support.iby>
-REM OpenWFC SI
-file=ABI_DIR\BUILD_DIR\libWFC.dll \sys\bin\libWFC.dll
+#ifdef __SYBORG__
+file=ABI_DIR\BUILD_DIR\libwfchwsyborg.dll \sys\bin\libwfchwsyborg.dll
+alias \sys\bin\libwfchwsyborg.dll \sys\bin\libWFC.dll
+#else
+file=ABI_DIR\BUILD_DIR\libWFC.dll \sys\bin\libWFC.dll
+#endif
#endif // __OPENWFC_REF_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicscomposition/openwfcompositionengine/group/openwfchwsyborg.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,33 @@
+// Copyright (c) 2009-2010 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:
+// OpenWFC Sample Implementation for Syborg. This is the same as the reference
+// version, but differs in the area of the default screen rotation setting.
+// The reference version rotates the screen 270CW by default; the syborg version
+// does not.
+//
+//
+
+
+//macros to enable filtering debug log output.
+//DEBUG_LOG must also be defined to enable logging
+//(automatic if _DEBUG is defined, and DEBUG_DONOT_LOG is not defined)
+MACRO DEBUG_DONOT_LOG
+//MACRO DEBUG_LOG_FUNCTION=WFC_Element_
+//MACRO DEBUG_LOG_FILE=owfnotifications.c
+
+MACRO __SYBORG__
+
+#include "openwfc.mmh"
+
+TARGET libwfchwsyborg.dll
--- a/graphicscomposition/openwfsupport/inc/streammap.h Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/openwfsupport/inc/streammap.h Tue Jun 01 15:04:40 2010 +0100
@@ -177,7 +177,7 @@
*/
static TUint32 HashFunction(const TSurfaceId& aHashKey);
- static TInt COpenWfcStreamMap::DeleteSingleton(TAny* aData);
+ static TInt DeleteSingleton(TAny* aData);
private:
/**
* Mutex used for controlling the access to the native streams map
--- a/graphicscomposition/surfaceupdate/inc/surfaceupdateclient.h Wed May 19 14:34:22 2010 +0100
+++ b/graphicscomposition/surfaceupdate/inc/surfaceupdateclient.h Tue Jun 01 15:04:40 2010 +0100
@@ -17,6 +17,7 @@
#define __SURFACEUPDATECLIENT_H__
#include <e32std.h>
+#include <graphics/suerror.h>
#ifdef TEST_SURFACE_UPDATE
#include "surfaceupdate.h"
#include "surfaceupdatetest.h"
@@ -88,9 +89,7 @@
@see RSurfaceUpdateSession::NotifyWhenDisplayed
@see RSurfaceUpdateSession::NotifyWhenDisplayedXTimes
- @param aScreen Screen number. Varies from 0 to N-1, where N is a total number of screens
- in the system. If pre-defined constant KAllScreens is passed, the submission will
- be broadcast to all screens.
+ @param aScreen Screen number. KAllScreens is the only allowed parameter.
@param aSurfaceId Secure 128-bit surface unique identifier, which fully specified the
surface. Surface ID must be assigned and registered with the GCE.
@param aBuffer Current buffer for composition. Varies from 0 to N-1, where N is the
--- a/graphicsdeviceinterface/bitgdi/bitgdi_switch/bitgdiswitch.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/bitgdi/bitgdi_switch/bitgdiswitch.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -40,10 +40,16 @@
FARPROC vector[MAX_ORDINAL+1];
+#ifdef _DEBUG
void Stop(char* aErrorMessage)
+#else
+void Stop(char* /*aErrorMessage*/)
+#endif
{
int err = GetLastError();
+#ifdef _DEBUG
RDebug::Printf("%s, (last error = %i)", aErrorMessage, err);
+#endif
_asm int 3;
}
@@ -77,8 +83,10 @@
UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalBoolProperty, (TAny*)"symbian_graphics_use_gce", &gce);
const char* library = gce ? "bitgdi_gce.dll" : "bitgdi_nongce.dll";
+#ifdef _DEBUG
RDebug::Printf("Redirecting bitgdi.dll to \"%s\" ...\n", library);
-
+#endif
+
Emulator::Escape(); // prevent deadlock between EKA2 scheduler and MS kernel
// try to load selected DLL
HINSTANCE instance = LoadLibraryA(library);
@@ -91,7 +99,9 @@
else
{
fill_vector(instance);
+#ifdef _DEBUG
RDebug::Printf("... DLL loaded successfully");
+#endif
}
}
--- a/graphicsdeviceinterface/bitgdi/tbit/scripts/toutlineandshadow.ini Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/bitgdi/tbit/scripts/toutlineandshadow.ini Tue Jun 01 15:04:40 2010 +0100
@@ -1,5 +1,5 @@
// toutlineandshadow.ini
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 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"
@@ -3041,605 +3041,629 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor256_3 = 001100ed0006001b00f300bc00d8002500b800f500c200b900df006000c80034
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor64K_0 = 008100d100fd00c500ed004d0061001c008400b8001d008f00c000e2001c00ef
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor64K_0 = 0053004600f7001400ec004e001b00860009001300f10067002a009200590036
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor64K_0 = 008b006e00b2001e0072009100ae0054009a0020007b0025007b005100f300be
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor64K_0 = 00aa00f9003d004f003e0031006100d60095004c000c00e700d800bd00f600e3
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor64K_0 = 00640068001a00ca000d00540029009000220056003d005a00c800f9008c004c
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor64K_0 = 0079009e0081008a0059002c0030001000f800c8003a00ef00940093006300e3
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor64K_0 = 00a7006c003e00ae00e4008100d800d500a200b100f4004a006a00d800570053
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor64K_0 = 004d004f001f0080008300dc0040007d008a0066001c00db0027004a00310059
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor64K_0 = 009b0090003300fa002f000100b600d60019000200a3009b002b00dd00cf00d9
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor64K_0 = 00b5009300a200f4002c004a00e30085008100da005200ef00d900b400df0066
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor64K_0 = 00c1000d0022004e003c00330064009000190060004c002b00ac0005003c00ae
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor64K_0 = 006900a20037004a00f70098004000d60083004000fd0042009300b7008b0055
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor64K_0 = 00aa003100ea00df0053003200a10085000700980021000d00ca004600c000ef
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor64K_0 = 00e40096006400cb009b0057004400ba00e500db004b000500ab00f90024001f
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor64K_0 = 000a00d0008b003800a8008000ae009a0024003800bd006000ac006400ff00ba
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor64K_0 = 00eb000200fd006b0003006500cc0030003c007600f000b400fd0012003e0022
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor64K_0 = 00c900e9003f00070016004600170068004800b5000f00870062003c00ff0061
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor64K_0 = 001d003c004400bf00310055007800ab002100d9000600fb0022002900f700cd
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor64K_0 = 003e0014000b003c007b00ba00ae00e3005c0079006d00c300e400e5008400e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor64K_0 = 007e004100d700a100e00026001e008e00a2000e00de0085002700ce00ef007b
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor64K_0 = 00fb00ab004d00c300b3006200a700a4005f009c001300dc00b8003100ed00a7
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor64K_0 = 000e009700520069007e007000f600ad003f00570037001e002c00b7007b003b
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor64K_0 = 00e5000200e900ed005900a2003e0089007d001e00d3004c00be00d800b500f5
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor64K_0 = 008900c7007200bf00a800b900670031000300980025003f00fc00b800220094
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor64K_0 = 001400d7004200b6003d004f00cf00c100d5000700d000e700e600d600390020
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor64K_0 = 00bc00f600d10041008f00f6005d007a00c400a5001e001700210075002c0048
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor64K_0 = 00be00270021005c004f00a2000c001b00d4006c0026002700d9009a00df003d
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor64K_0 = 007600480096005b00b5008b005600df00c80087000c009b003700c700c6002e
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor64K_0 = 00ca00b700d100f4009b00cc002600ce00c9009d00a3007c009800c500030035
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor64K_0 = 007e00e50066000b00fe002000da00ef008c00ac00a60097007e006300ad00e2
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor64K_0 = 00b000590018004c009e0057002600a40037001f002d000c00490045004a0073
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor64K_0 = 008400c900290018005300e3004d007f0027005a005c00fc00bb000600c600a7
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor64K_0 = 00a0004b00cc006300ac007a00920018003900ff000800350039007e003300bc
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor64K_0 = 00a60074005900bd00b8008d0072000700c90015000800f300880015000b0028
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor64K_0 = 00d2000600be0058000800b800a400da0001000c00530009004b003700750041
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor64K_0 = 00950044000a0073007700a0009600f2007d007200670040000e007300510053
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor64K_0 = 0011007c0067004200bd004e005f009700d5009200c200e700c700f800f000cc
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor64K_0 = 00790089009200aa0063002d005f008900ed0021005e006300e20020008700fe
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor64K_0 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor64K_0 = 00aa0074006600ad00d400f5001e0008003a0098006900c000410053000500bd
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor64K_0 = 00ea00d500b200cf00e80033004700af00760082003e007f006300b000490008
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor64K_0 = 0049001300f0001b00d800820068008000410090008a00b0005c00c400c50062
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor64K_0 = 00440088000e0089003d00c60048007700ae00db00dd00fd004000e600c90065
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor64K_0 = 006000be00de00c80033002e004500e00074007100330011005200cc00b600e3
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor64K_0 = 0063008d0062004e003f0009000400aa004800f50056003e00df000f00a60085
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor64K_0 = 00c00076004200b900b50049000300bf00bc00fb00c70091009a002a00c300b5
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor64K_0 = 0063001700e100f3004500c50099002b0053009500c600c200fb00b80027002c
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor64K_0 = 00460067008f0009004d00aa00f6008a003400df003700080037005e009600f4
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor64K_0 = 00b6001200550013008f007000e500ee008a003900890003006a00c4006f00a0
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor64K_0 = 0034003200f500ce003c00b4005f00f100ca008d007d006d00e10074002d0002
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor64K_0 = 00ac008400710042001a00a60070003c0044001400bc0016004e008200c7007e
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor64K_0 = 004e002400f10004002d009200fa00c2008b0098004900d500f5008900790085
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor64K_0 = 00e8003a00c10043008c000200b6006000d4000200ce0011002500f4006a0052
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor64K_0 = 004b0028005c000a009f00d0005400c1001b004000f7000000bb000f00d100c3
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor64K_0 = 0067004e00e400c8005100ee00450083007c00ef00e90001000e006f0048000a
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor64K_0 = 00a900080039006d00a300e500aa00550068009b0022006f00be00a700500017
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor64K_0 = 00ae0075002f000800e6004e004400f100a9004c0036008a0076005e0004003e
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor64K_0 = 006900b30016008a00310084000a00b6009b00cd002400fa00d90030000b0018
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor64K_0 = 00160094004400f200b200e2009c007d003e00ba00a300bb004800fe00ca00be
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor64K_0 = 00c100fd00ae003a00cc001c00f5004900ef009500bf00170072001f003b00b1
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor64K_0 = 0012003d002e00b10011002d007b009b0015005400b8008a003500b300730055
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor64K_0 = 004f007a0065004a0084005d0065007f00ee000a00b900c600f800b2008d004a
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor64K_0 = 00ba00ad00ed0014009e00df005d00e20011001a0034003e003300610049006d
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor64K_0 = 00990046001b000e0091008600d5001a005f002b006000a20035005c00fb009f
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor64K_0 = 0033003b00ad005e00150036006a00b500ae0056006800350039005000cb00f2
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor64K_0 = 008b001c008100be008400cc00d2001d003b002c00f900b3005e0091009400b4
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor64K_0 = 00b10067006b004200eb00cd00b000ff009e0017003c002c00bd00ee007c00b5
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor64K_0 = 002d0054000000720030002900d000d200c300cd0043001e0013001c0075005c
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor64K_0 = 005a00ce006f00ab008100e30024006d008800b70056007e00d500ea009b00a8
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor64K_0 = 0095005d00f100c4001c005a00770014005600f9000700be002400af002d00a6
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor64K_0 = 0021005200de00a600fd00e000260062007500ed006a008e0003004f001f00d6
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor64K_0 = 00dc00de00f700d6009900050093004400f400000031004800c500550072005e
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor64K_0 = 00a700ea008a00c7003700a1001e001200df003a009e007900be009a00ee00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor64K_0 = 0071005f0020000400f100c1002900de0053007000a9000f00fa00b900430096
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor64K_0 = 003400d100d3001a00b90019005f005200e7006300bc004400df000500310058
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor64K_0 = 0047008700b500940066005c007100f600f5000b00a300c600f20098003b002a
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor64K_0 = 00cb00a600ad00c1004f00e9006200d3005c0085004e00fb009c005500d50023
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor64K_0 = 00e600bb00e9009200c300bf0037009400ef00650081009500d00070007300ab
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor64K_0 = 0075004c005500c7008e00a800bd009300fc00d4008d00ce0036002d00340037
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor64K_0 = 005d004f005d009f00e100f5002600ee00f7001b0072009e0043002e00e3003c
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor64K_0 = 007a007100d90086008300c300b6004b00670039008c000d00d300d400220060
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor64K_0 = 00e700c00074006d0013009d0092004c00ed002b00db00a700040069004c0052
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor64K_0 = 00ce002e00d400bf004c00ef006c0000002d001d0087006200e0002e00900078
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor64K_0 = 00b6009600e6003c00f7003600460065004300540053009700cf004e002a00d4
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor64K_0 = 000c009500940062002e00c200f10047003000290078005b00b000f500b80006
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor64K_0 = 001700bf008300320007003800ca000b004a00ac004b00e8001c00ce00620029
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor64K_0 = 002300b2003a00e9009300b100a900d90080008e001d007d008f006a00ed00de
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor64K_0 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor64K_0 = 006a007c00af00ea007800c3001800b2003a005900e300d100ae0079009a00ed
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor64K_0 = 008e00e4001400cd004e009100b800f600860074004800c600e400b400840034
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor64K_0 = 0018001a00e10049006700710072007000870022005e00a90088009b0044003f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor64K_0 = 002e006f00ac00ce00ff00a400d1008800b5001e00460015001f00b000300042
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor64K_0 = 0043008a001e006f009a00ff00cb008100900053009400010035004a008b00cf
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor64K_0 = 0007000400f8001a00dc00a4002a0056009f0052007c00a900800041002f0053
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor64K_0 = 0053006e000d0070008a0075005000eb000c00b20007002900f800b4007900fc
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor64K_0 = 00ce00be00b600b1002500e1005900fc00f30070009d00fb00b9002800a500c3
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor64K_0 = 00970016008000f800fd008b00af002d00770075002b007a00f0001f00a000f4
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor64K_0 = 0061006a007900dd00dd002500d000fd008400ba0055004000d700f500330029
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor64K_0 = 004000ed00da0054001b004b00a300a500b900a500de00ab0016002400720060
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor64K_0 = 00bf0047009c00e1005700cb00250086004100c400e000f0003900de001b009b
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor64K_0 = 00b900a70054000400d6002400b5001f00710049003200af0030003300b90026
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor64K_0 = 000900060094009500a2004600a3001600000061008300070006005d001a0018
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor64K_0 = 00ed004a00de00ee00cd000c00d900e90090000900c8008000aa00eb0039008b
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor64K_0 = 000d004900740033008e0025004200be004600c4009800bf00a000ec000000d9
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor64K_0 = 007e0061000300c00018006b0078000500e100410046009a00c1009500b90018
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor64K_0 = 00a7000600d7003d00fe0050001c002c00b7009000390057000800d700490049
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor64K_0 = 00b200d400aa0019008100160099009d00a500a800f100e30070008b00ed0039
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor64K_0 = 004f007a00dd00b300d900d7001500de005c009900a400270062000900fd0003
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor64K_0 = 00ab005400500099007b006b00e800ac00a1003f00df008b00e10050003c003e
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor64K_0 = 0026007200ac0010001400b30086006c00f6001500fe000b007200ae00430038
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor64K_0 = 003500a9004e002400630071005300f70028002e0069006400e3003400ab0064
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor64K_0 = 005900c9000200f800ae0098009a0060002f005c00ee0065000a00f200b80046
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor64K_0 = 00190008000b009f00310083001300de001c005a00a300f3001e00a800ca0063
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor64K_0 = 00f100050022002900d1004600ac003900d7007800b2009a00ec00ab002400db
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor64K_0 = 0001008300ef009300e60074004c006200380014006d006f00cd0012000d00ee
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor64K_0 = 00fb0002006f008700c0004d008300d9005a009c00c40094008e00a6002f00d6
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor64K_0 = 002a001e007000650003001b00d5004200bd00ad00e40055005a000000f000ad
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor64K_0 = 00c4002000d0004b00890086001600f600df00b200710091004c00c00092006f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor64K_0 = 00ec001f00c80037003a007c009900d100b5001a003a005300cc00fb0022000f
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor64K_0 = 00e9005d0057002c005b00e600a700df001400700095005d00d7009f002600fb
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor64K_0 = 001c00e800be003f00bd00aa00f00070006d003b0021002b0084003c00670069
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor64K_0 = 001d001400ec00be00b1009e004300ac002a005f007b00d0001c00b200e600e7
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor64K_0 = 009200e90019009600f600cf00cb00b0008d006700d00041004300d700ba003d
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor64K_0 = 00cc00590084006d0068005400190032000b005500400053002b00e700660044
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor64K_0 = 00a20009008e0088007d009e0092005400470093007b00ca009c004a00790068
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor64K_0 = 00c600e2009000fe006f0030009000df005300a1009c0038002700820026004b
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor64K_0 = 003b004800cf005000af00bb00050006009600f4002c002200fc00a10038006c
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor64K_0 = 00ed008500890075003300f400df009100950012008e00110048006d00e500ac
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor64K_0 = 00900039007800030070006500a2009f0088006700a800a6006700b6006e0029
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor64K_0 = 006d00f900730088005300fb00cc00d700cf00e90075006c00d40027009e0064
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor64K_0 = 000e00c2002300c200a600430040003f00de005200b8006500040010000f0041
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor64K_0 = 00dc007f00c9003900e9001b002900cc00e200630034005600db004a00290004
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor64K_0 = 00b800a9002100bb0097002900a000db009200e0001300050087008600e400fb
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor64K_0 = 00cd00d7007f007100230027000a0014004f0070002d00b300cf00560082007f
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor64K_0 = 00120049000d00cf00ed006400f90037009a00ec00c5002f002700ce000a002e
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor64K_0 = 00b6001600a3004f0032000f00bc005f008f007600b4004900b10049005b00c3
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor64K_0 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor64K_0 = 00d2002200f20023005600e3001e001400cd004800fe001e00220038009c00fd
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor64K_0 = 00c800e0003c00ee0064003d005c005500dc00b3005200fe001000ab005e00dd
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor64K_0 = 004a00b2009f00b3003300530025006c009b008800490084006e00b90052000c
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor64K_0 = 00d200ea006e00610097003200d000bf0038005f0078007900e800b1005b0045
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor64K_1 = 008100d100fd00c500ed004d0061001c008400b8001d008f00c000e2001c00ef
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor64K_1 = 0053004600f7001400ec004e001b00860009001300f10067002a009200590036
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor64K_1 = 008b006e00b2001e0072009100ae0054009a0020007b0025007b005100f300be
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor64K_1 = 00aa00f9003d004f003e0031006100d60095004c000c00e700d800bd00f600e3
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor64K_1 = 00640068001a00ca000d00540029009000220056003d005a00c800f9008c004c
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor64K_1 = 0079009e0081008a0059002c0030001000f800c8003a00ef00940093006300e3
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor64K_1 = 00a7006c003e00ae00e4008100d800d500a200b100f4004a006a00d800570053
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor64K_1 = 004d004f001f0080008300dc0040007d008a0066001c00db0027004a00310059
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor64K_1 = 009b0090003300fa002f000100b600d60019000200a3009b002b00dd00cf00d9
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor64K_1 = 00b5009300a200f4002c004a00e30085008100da005200ef00d900b400df0066
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor64K_1 = 00c1000d0022004e003c00330064009000190060004c002b00ac0005003c00ae
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor64K_1 = 006900a20037004a00f70098004000d60083004000fd0042009300b7008b0055
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor64K_1 = 00aa003100ea00df0053003200a10085000700980021000d00ca004600c000ef
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor64K_1 = 00e40096006400cb009b0057004400ba00e500db004b000500ab00f90024001f
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor64K_1 = 000a00d0008b003800a8008000ae009a0024003800bd006000ac006400ff00ba
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor64K_1 = 00eb000200fd006b0003006500cc0030003c007600f000b400fd0012003e0022
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor64K_1 = 00c900e9003f00070016004600170068004800b5000f00870062003c00ff0061
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor64K_1 = 001d003c004400bf00310055007800ab002100d9000600fb0022002900f700cd
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor64K_0 = 00a20067000d006a005d00d0002c00020076008a00ae00bd000b000d00d90003
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor64K_0 = 000c004d00ac006a00850079001e00a900f100a40034006000dd003c0004001d
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor64K_0 = 003e00ad007600e1003700c2002500f600b7008a00f800ae002300fa00480014
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor64K_0 = 0035007f00000008002a002c00d000c700dc006700ef0006003300d7002f0069
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor64K_0 = 0073007200c600ad007a00ac00e4006e00e500c3005d00d300680095009500ca
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor64K_0 = 005100010034004200e200bd00c0006a003400120049008700e80012000c00fa
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor64K_1 = 003e0014000b003c007b00ba00ae00e3005c0079006d00c300e400e5008400e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor64K_1 = 007e004100d700a100e00026001e008e00a2000e00de0085002700ce00ef007b
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor64K_1 = 00fb00ab004d00c300b3006200a700a4005f009c001300dc00b8003100ed00a7
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor64K_1 = 000e009700520069007e007000f600ad003f00570037001e002c00b7007b003b
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor64K_1 = 00e5000200e900ed005900a2003e0089007d001e00d3004c00be00d800b500f5
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor64K_1 = 008900c7007200bf00a800b900670031000300980025003f00fc00b800220094
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor64K_1 = 001400d7004200b6003d004f00cf00c100d5000700d000e700e600d600390020
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor64K_1 = 00bc00f600d10041008f00f6005d007a00c400a5001e001700210075002c0048
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor64K_1 = 00be00270021005c004f00a2000c001b00d4006c0026002700d9009a00df003d
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor64K_1 = 007600480096005b00b5008b005600df00c80087000c009b003700c700c6002e
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor64K_1 = 00ca00b700d100f4009b00cc002600ce00c9009d00a3007c009800c500030035
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor64K_1 = 007e00e50066000b00fe002000da00ef008c00ac00a60097007e006300ad00e2
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor64K_1 = 00b000590018004c009e0057002600a40037001f002d000c00490045004a0073
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor64K_1 = 008400c900290018005300e3004d007f0027005a005c00fc00bb000600c600a7
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor64K_1 = 00a0004b00cc006300ac007a00920018003900ff000800350039007e003300bc
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor64K_1 = 00a60074005900bd00b8008d0072000700c90015000800f300880015000b0028
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor64K_1 = 00d2000600be0058000800b800a400da0001000c00530009004b003700750041
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor64K_1 = 00950044000a0073007700a0009600f2007d007200670040000e007300510053
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor64K_1 = 0011007c0067004200bd004e005f009700d5009200c200e700c700f800f000cc
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor64K_1 = 00790089009200aa0063002d005f008900ed0021005e006300e20020008700fe
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor64K_1 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor64K_1 = 00aa0074006600ad00d400f5001e0008003a0098006900c000410053000500bd
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor64K_1 = 00ea00d500b200cf00e80033004700af00760082003e007f006300b000490008
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor64K_1 = 0049001300f0001b00d800820068008000410090008a00b0005c00c400c50062
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor64K_1 = 00440088000e0089003d00c60048007700ae00db00dd00fd004000e600c90065
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor64K_1 = 006000be00de00c80033002e004500e00074007100330011005200cc00b600e3
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor64K_1 = 0063008d0062004e003f0009000400aa004800f50056003e00df000f00a60085
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor64K_1 = 00c00076004200b900b50049000300bf00bc00fb00c70091009a002a00c300b5
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor64K_1 = 0063001700e100f3004500c50099002b0053009500c600c200fb00b80027002c
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor64K_1 = 00460067008f0009004d00aa00f6008a003400df003700080037005e009600f4
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor64K_1 = 00b6001200550013008f007000e500ee008a003900890003006a00c4006f00a0
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor64K_1 = 0034003200f500ce003c00b4005f00f100ca008d007d006d00e10074002d0002
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor64K_1 = 00ac008400710042001a00a60070003c0044001400bc0016004e008200c7007e
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor64K_1 = 004e002400f10004002d009200fa00c2008b0098004900d500f5008900790085
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor64K_1 = 00e8003a00c10043008c000200b6006000d4000200ce0011002500f4006a0052
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor64K_1 = 004b0028005c000a009f00d0005400c1001b004000f7000000bb000f00d100c3
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor64K_1 = 0067004e00e400c8005100ee00450083007c00ef00e90001000e006f0048000a
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor64K_1 = 00a900080039006d00a300e500aa00550068009b0022006f00be00a700500017
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor64K_1 = 00ae0075002f000800e6004e004400f100a9004c0036008a0076005e0004003e
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor64K_1 = 006900b30016008a00310084000a00b6009b00cd002400fa00d90030000b0018
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor64K_1 = 00160094004400f200b200e2009c007d003e00ba00a300bb004800fe00ca00be
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor64K_1 = 00c100fd00ae003a00cc001c00f5004900ef009500bf00170072001f003b00b1
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor64K_1 = 0012003d002e00b10011002d007b009b0015005400b8008a003500b300730055
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor64K_1 = 004f007a0065004a0084005d0065007f00ee000a00b900c600f800b2008d004a
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor64K_1 = 00ba00ad00ed0014009e00df005d00e20011001a0034003e003300610049006d
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor64K_1 = 00990046001b000e0091008600d5001a005f002b006000a20035005c00fb009f
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor64K_1 = 0033003b00ad005e00150036006a00b500ae0056006800350039005000cb00f2
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor64K_1 = 008b001c008100be008400cc00d2001d003b002c00f900b3005e0091009400b4
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor64K_1 = 00b10067006b004200eb00cd00b000ff009e0017003c002c00bd00ee007c00b5
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor64K_1 = 002d0054000000720030002900d000d200c300cd0043001e0013001c0075005c
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor64K_1 = 005a00ce006f00ab008100e30024006d008800b70056007e00d500ea009b00a8
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor64K_1 = 0095005d00f100c4001c005a00770014005600f9000700be002400af002d00a6
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor64K_1 = 0021005200de00a600fd00e000260062007500ed006a008e0003004f001f00d6
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor64K_1 = 00dc00de00f700d6009900050093004400f400000031004800c500550072005e
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor64K_1 = 00a700ea008a00c7003700a1001e001200df003a009e007900be009a00ee00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor64K_1 = 0071005f0020000400f100c1002900de0053007000a9000f00fa00b900430096
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor64K_1 = 003400d100d3001a00b90019005f005200e7006300bc004400df000500310058
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor64K_1 = 0047008700b500940066005c007100f600f5000b00a300c600f20098003b002a
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor64K_1 = 00cb00a600ad00c1004f00e9006200d3005c0085004e00fb009c005500d50023
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor64K_1 = 00e600bb00e9009200c300bf0037009400ef00650081009500d00070007300ab
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor64K_1 = 0075004c005500c7008e00a800bd009300fc00d4008d00ce0036002d00340037
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor64K_1 = 005d004f005d009f00e100f5002600ee00f7001b0072009e0043002e00e3003c
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor64K_1 = 007a007100d90086008300c300b6004b00670039008c000d00d300d400220060
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor64K_1 = 00e700c00074006d0013009d0092004c00ed002b00db00a700040069004c0052
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor64K_1 = 00ce002e00d400bf004c00ef006c0000002d001d0087006200e0002e00900078
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor64K_1 = 00b6009600e6003c00f7003600460065004300540053009700cf004e002a00d4
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor64K_1 = 000c009500940062002e00c200f10047003000290078005b00b000f500b80006
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor64K_1 = 001700bf008300320007003800ca000b004a00ac004b00e8001c00ce00620029
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor64K_1 = 002300b2003a00e9009300b100a900d90080008e001d007d008f006a00ed00de
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor64K_1 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor64K_1 = 006a007c00af00ea007800c3001800b2003a005900e300d100ae0079009a00ed
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor64K_1 = 008e00e4001400cd004e009100b800f600860074004800c600e400b400840034
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor64K_1 = 0018001a00e10049006700710072007000870022005e00a90088009b0044003f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor64K_1 = 002e006f00ac00ce00ff00a400d1008800b5001e00460015001f00b000300042
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor64K_1 = 0043008a001e006f009a00ff00cb008100900053009400010035004a008b00cf
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor64K_1 = 0007000400f8001a00dc00a4002a0056009f0052007c00a900800041002f0053
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor64K_1 = 0053006e000d0070008a0075005000eb000c00b20007002900f800b4007900fc
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor64K_1 = 00ce00be00b600b1002500e1005900fc00f30070009d00fb00b9002800a500c3
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor64K_1 = 00970016008000f800fd008b00af002d00770075002b007a00f0001f00a000f4
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor64K_1 = 0061006a007900dd00dd002500d000fd008400ba0055004000d700f500330029
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor64K_1 = 004000ed00da0054001b004b00a300a500b900a500de00ab0016002400720060
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor64K_1 = 00bf0047009c00e1005700cb00250086004100c400e000f0003900de001b009b
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor64K_1 = 00b900a70054000400d6002400b5001f00710049003200af0030003300b90026
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor64K_1 = 000900060094009500a2004600a3001600000061008300070006005d001a0018
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor64K_1 = 00ed004a00de00ee00cd000c00d900e90090000900c8008000aa00eb0039008b
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor64K_1 = 000d004900740033008e0025004200be004600c4009800bf00a000ec000000d9
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor64K_1 = 007e0061000300c00018006b0078000500e100410046009a00c1009500b90018
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor64K_1 = 00a7000600d7003d00fe0050001c002c00b7009000390057000800d700490049
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor64K_1 = 00b200d400aa0019008100160099009d00a500a800f100e30070008b00ed0039
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor64K_1 = 004f007a00dd00b300d900d7001500de005c009900a400270062000900fd0003
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor64K_1 = 00ab005400500099007b006b00e800ac00a1003f00df008b00e10050003c003e
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor64K_1 = 0026007200ac0010001400b30086006c00f6001500fe000b007200ae00430038
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor64K_1 = 003500a9004e002400630071005300f70028002e0069006400e3003400ab0064
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor64K_1 = 005900c9000200f800ae0098009a0060002f005c00ee0065000a00f200b80046
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor64K_1 = 00190008000b009f00310083001300de001c005a00a300f3001e00a800ca0063
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor64K_1 = 00f100050022002900d1004600ac003900d7007800b2009a00ec00ab002400db
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor64K_1 = 0001008300ef009300e60074004c006200380014006d006f00cd0012000d00ee
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor64K_1 = 00fb0002006f008700c0004d008300d9005a009c00c40094008e00a6002f00d6
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor64K_1 = 002a001e007000650003001b00d5004200bd00ad00e40055005a000000f000ad
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor64K_1 = 00c4002000d0004b00890086001600f600df00b200710091004c00c00092006f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor64K_1 = 00ec001f00c80037003a007c009900d100b5001a003a005300cc00fb0022000f
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor64K_1 = 00e9005d0057002c005b00e600a700df001400700095005d00d7009f002600fb
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor64K_1 = 001c00e800be003f00bd00aa00f00070006d003b0021002b0084003c00670069
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor64K_1 = 001d001400ec00be00b1009e004300ac002a005f007b00d0001c00b200e600e7
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor64K_1 = 009200e90019009600f600cf00cb00b0008d006700d00041004300d700ba003d
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor64K_1 = 00cc00590084006d0068005400190032000b005500400053002b00e700660044
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor64K_1 = 00a20009008e0088007d009e0092005400470093007b00ca009c004a00790068
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor64K_1 = 00c600e2009000fe006f0030009000df005300a1009c0038002700820026004b
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor64K_1 = 003b004800cf005000af00bb00050006009600f4002c002200fc00a10038006c
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor64K_1 = 00ed008500890075003300f400df009100950012008e00110048006d00e500ac
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor64K_1 = 00900039007800030070006500a2009f0088006700a800a6006700b6006e0029
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor64K_1 = 006d00f900730088005300fb00cc00d700cf00e90075006c00d40027009e0064
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor64K_1 = 000e00c2002300c200a600430040003f00de005200b8006500040010000f0041
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor64K_1 = 00dc007f00c9003900e9001b002900cc00e200630034005600db004a00290004
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor64K_1 = 00b800a9002100bb0097002900a000db009200e0001300050087008600e400fb
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor64K_1 = 00cd00d7007f007100230027000a0014004f0070002d00b300cf00560082007f
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor64K_1 = 00120049000d00cf00ed006400f90037009a00ec00c5002f002700ce000a002e
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor64K_1 = 00b6001600a3004f0032000f00bc005f008f007600b4004900b10049005b00c3
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor64K_1 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor64K_1 = 00d2002200f20023005600e3001e001400cd004800fe001e00220038009c00fd
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor64K_1 = 00c800e0003c00ee0064003d005c005500dc00b3005200fe001000ab005e00dd
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor64K_1 = 004a00b2009f00b3003300530025006c009b008800490084006e00b90052000c
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor64K_1 = 00d200ea006e00610097003200d000bf0038005f0078007900e800b1005b0045
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor64K_2 = 008100d100fd00c500ed004d0061001c008400b8001d008f00c000e2001c00ef
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor64K_2 = 0053004600f7001400ec004e001b00860009001300f10067002a009200590036
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor64K_2 = 008b006e00b2001e0072009100ae0054009a0020007b0025007b005100f300be
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor64K_2 = 00aa00f9003d004f003e0031006100d60095004c000c00e700d800bd00f600e3
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor64K_2 = 00640068001a00ca000d00540029009000220056003d005a00c800f9008c004c
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor64K_2 = 0079009e0081008a0059002c0030001000f800c8003a00ef00940093006300e3
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor64K_2 = 00a7006c003e00ae00e4008100d800d500a200b100f4004a006a00d800570053
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor64K_2 = 004d004f001f0080008300dc0040007d008a0066001c00db0027004a00310059
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor64K_2 = 009b0090003300fa002f000100b600d60019000200a3009b002b00dd00cf00d9
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor64K_2 = 00b5009300a200f4002c004a00e30085008100da005200ef00d900b400df0066
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor64K_2 = 00c1000d0022004e003c00330064009000190060004c002b00ac0005003c00ae
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor64K_2 = 006900a20037004a00f70098004000d60083004000fd0042009300b7008b0055
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor64K_2 = 00aa003100ea00df0053003200a10085000700980021000d00ca004600c000ef
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor64K_2 = 00e40096006400cb009b0057004400ba00e500db004b000500ab00f90024001f
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor64K_2 = 000a00d0008b003800a8008000ae009a0024003800bd006000ac006400ff00ba
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor64K_2 = 00eb000200fd006b0003006500cc0030003c007600f000b400fd0012003e0022
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor64K_2 = 00c900e9003f00070016004600170068004800b5000f00870062003c00ff0061
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor64K_2 = 001d003c004400bf00310055007800ab002100d9000600fb0022002900f700cd
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor64K_1 = 00a20067000d006a005d00d0002c00020076008a00ae00bd000b000d00d90003
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor64K_1 = 000c004d00ac006a00850079001e00a900f100a40034006000dd003c0004001d
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor64K_1 = 003e00ad007600e1003700c2002500f600b7008a00f800ae002300fa00480014
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor64K_1 = 0035007f00000008002a002c00d000c700dc006700ef0006003300d7002f0069
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor64K_1 = 0073007200c600ad007a00ac00e4006e00e500c3005d00d300680095009500ca
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor64K_1 = 005100010034004200e200bd00c0006a003400120049008700e80012000c00fa
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor64K_2 = 003e0014000b003c007b00ba00ae00e3005c0079006d00c300e400e5008400e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor64K_2 = 007e004100d700a100e00026001e008e00a2000e00de0085002700ce00ef007b
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor64K_2 = 00fb00ab004d00c300b3006200a700a4005f009c001300dc00b8003100ed00a7
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor64K_2 = 000e009700520069007e007000f600ad003f00570037001e002c00b7007b003b
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor64K_2 = 00e5000200e900ed005900a2003e0089007d001e00d3004c00be00d800b500f5
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor64K_2 = 008900c7007200bf00a800b900670031000300980025003f00fc00b800220094
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor64K_2 = 001400d7004200b6003d004f00cf00c100d5000700d000e700e600d600390020
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor64K_2 = 00bc00f600d10041008f00f6005d007a00c400a5001e001700210075002c0048
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor64K_2 = 00be00270021005c004f00a2000c001b00d4006c0026002700d9009a00df003d
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor64K_2 = 007600480096005b00b5008b005600df00c80087000c009b003700c700c6002e
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor64K_2 = 00ca00b700d100f4009b00cc002600ce00c9009d00a3007c009800c500030035
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor64K_2 = 007e00e50066000b00fe002000da00ef008c00ac00a60097007e006300ad00e2
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor64K_2 = 00b000590018004c009e0057002600a40037001f002d000c00490045004a0073
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor64K_2 = 008400c900290018005300e3004d007f0027005a005c00fc00bb000600c600a7
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor64K_2 = 00a0004b00cc006300ac007a00920018003900ff000800350039007e003300bc
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor64K_2 = 00a60074005900bd00b8008d0072000700c90015000800f300880015000b0028
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor64K_2 = 00d2000600be0058000800b800a400da0001000c00530009004b003700750041
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor64K_2 = 00950044000a0073007700a0009600f2007d007200670040000e007300510053
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor64K_2 = 0011007c0067004200bd004e005f009700d5009200c200e700c700f800f000cc
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor64K_2 = 00790089009200aa0063002d005f008900ed0021005e006300e20020008700fe
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor64K_2 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor64K_2 = 00aa0074006600ad00d400f5001e0008003a0098006900c000410053000500bd
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor64K_2 = 00ea00d500b200cf00e80033004700af00760082003e007f006300b000490008
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor64K_2 = 0049001300f0001b00d800820068008000410090008a00b0005c00c400c50062
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor64K_2 = 00440088000e0089003d00c60048007700ae00db00dd00fd004000e600c90065
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor64K_2 = 006000be00de00c80033002e004500e00074007100330011005200cc00b600e3
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor64K_2 = 0063008d0062004e003f0009000400aa004800f50056003e00df000f00a60085
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor64K_2 = 00c00076004200b900b50049000300bf00bc00fb00c70091009a002a00c300b5
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor64K_2 = 0063001700e100f3004500c50099002b0053009500c600c200fb00b80027002c
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor64K_2 = 00460067008f0009004d00aa00f6008a003400df003700080037005e009600f4
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor64K_2 = 00b6001200550013008f007000e500ee008a003900890003006a00c4006f00a0
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor64K_2 = 0034003200f500ce003c00b4005f00f100ca008d007d006d00e10074002d0002
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor64K_2 = 00ac008400710042001a00a60070003c0044001400bc0016004e008200c7007e
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor64K_2 = 004e002400f10004002d009200fa00c2008b0098004900d500f5008900790085
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor64K_2 = 00e8003a00c10043008c000200b6006000d4000200ce0011002500f4006a0052
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor64K_2 = 004b0028005c000a009f00d0005400c1001b004000f7000000bb000f00d100c3
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor64K_2 = 0067004e00e400c8005100ee00450083007c00ef00e90001000e006f0048000a
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor64K_2 = 00a900080039006d00a300e500aa00550068009b0022006f00be00a700500017
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor64K_2 = 00ae0075002f000800e6004e004400f100a9004c0036008a0076005e0004003e
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor64K_2 = 006900b30016008a00310084000a00b6009b00cd002400fa00d90030000b0018
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor64K_2 = 00160094004400f200b200e2009c007d003e00ba00a300bb004800fe00ca00be
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor64K_2 = 00c100fd00ae003a00cc001c00f5004900ef009500bf00170072001f003b00b1
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor64K_2 = 0012003d002e00b10011002d007b009b0015005400b8008a003500b300730055
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor64K_2 = 004f007a0065004a0084005d0065007f00ee000a00b900c600f800b2008d004a
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor64K_2 = 00ba00ad00ed0014009e00df005d00e20011001a0034003e003300610049006d
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor64K_2 = 00990046001b000e0091008600d5001a005f002b006000a20035005c00fb009f
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor64K_2 = 0033003b00ad005e00150036006a00b500ae0056006800350039005000cb00f2
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor64K_2 = 008b001c008100be008400cc00d2001d003b002c00f900b3005e0091009400b4
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor64K_2 = 00b10067006b004200eb00cd00b000ff009e0017003c002c00bd00ee007c00b5
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor64K_2 = 002d0054000000720030002900d000d200c300cd0043001e0013001c0075005c
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor64K_2 = 005a00ce006f00ab008100e30024006d008800b70056007e00d500ea009b00a8
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor64K_2 = 0095005d00f100c4001c005a00770014005600f9000700be002400af002d00a6
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor64K_2 = 0021005200de00a600fd00e000260062007500ed006a008e0003004f001f00d6
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor64K_2 = 00dc00de00f700d6009900050093004400f400000031004800c500550072005e
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor64K_2 = 00a700ea008a00c7003700a1001e001200df003a009e007900be009a00ee00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor64K_2 = 0071005f0020000400f100c1002900de0053007000a9000f00fa00b900430096
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor64K_2 = 003400d100d3001a00b90019005f005200e7006300bc004400df000500310058
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor64K_2 = 0047008700b500940066005c007100f600f5000b00a300c600f20098003b002a
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor64K_2 = 00cb00a600ad00c1004f00e9006200d3005c0085004e00fb009c005500d50023
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor64K_2 = 00e600bb00e9009200c300bf0037009400ef00650081009500d00070007300ab
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor64K_2 = 0075004c005500c7008e00a800bd009300fc00d4008d00ce0036002d00340037
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor64K_2 = 005d004f005d009f00e100f5002600ee00f7001b0072009e0043002e00e3003c
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor64K_2 = 007a007100d90086008300c300b6004b00670039008c000d00d300d400220060
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor64K_2 = 00e700c00074006d0013009d0092004c00ed002b00db00a700040069004c0052
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor64K_2 = 00ce002e00d400bf004c00ef006c0000002d001d0087006200e0002e00900078
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor64K_2 = 00b6009600e6003c00f7003600460065004300540053009700cf004e002a00d4
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor64K_2 = 000c009500940062002e00c200f10047003000290078005b00b000f500b80006
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor64K_2 = 001700bf008300320007003800ca000b004a00ac004b00e8001c00ce00620029
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor64K_2 = 002300b2003a00e9009300b100a900d90080008e001d007d008f006a00ed00de
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor64K_2 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor64K_2 = 006a007c00af00ea007800c3001800b2003a005900e300d100ae0079009a00ed
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor64K_2 = 008e00e4001400cd004e009100b800f600860074004800c600e400b400840034
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor64K_2 = 0018001a00e10049006700710072007000870022005e00a90088009b0044003f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor64K_2 = 002e006f00ac00ce00ff00a400d1008800b5001e00460015001f00b000300042
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor64K_2 = 0043008a001e006f009a00ff00cb008100900053009400010035004a008b00cf
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor64K_2 = 0007000400f8001a00dc00a4002a0056009f0052007c00a900800041002f0053
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor64K_2 = 0053006e000d0070008a0075005000eb000c00b20007002900f800b4007900fc
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor64K_2 = 00ce00be00b600b1002500e1005900fc00f30070009d00fb00b9002800a500c3
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor64K_2 = 00970016008000f800fd008b00af002d00770075002b007a00f0001f00a000f4
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor64K_2 = 0061006a007900dd00dd002500d000fd008400ba0055004000d700f500330029
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor64K_2 = 004000ed00da0054001b004b00a300a500b900a500de00ab0016002400720060
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor64K_2 = 00bf0047009c00e1005700cb00250086004100c400e000f0003900de001b009b
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor64K_2 = 00b900a70054000400d6002400b5001f00710049003200af0030003300b90026
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor64K_2 = 000900060094009500a2004600a3001600000061008300070006005d001a0018
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor64K_2 = 00ed004a00de00ee00cd000c00d900e90090000900c8008000aa00eb0039008b
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor64K_2 = 000d004900740033008e0025004200be004600c4009800bf00a000ec000000d9
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor64K_2 = 007e0061000300c00018006b0078000500e100410046009a00c1009500b90018
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor64K_2 = 00a7000600d7003d00fe0050001c002c00b7009000390057000800d700490049
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor64K_2 = 00b200d400aa0019008100160099009d00a500a800f100e30070008b00ed0039
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor64K_2 = 004f007a00dd00b300d900d7001500de005c009900a400270062000900fd0003
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor64K_2 = 00ab005400500099007b006b00e800ac00a1003f00df008b00e10050003c003e
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor64K_2 = 0026007200ac0010001400b30086006c00f6001500fe000b007200ae00430038
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor64K_2 = 003500a9004e002400630071005300f70028002e0069006400e3003400ab0064
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor64K_2 = 005900c9000200f800ae0098009a0060002f005c00ee0065000a00f200b80046
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor64K_2 = 00190008000b009f00310083001300de001c005a00a300f3001e00a800ca0063
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor64K_2 = 00f100050022002900d1004600ac003900d7007800b2009a00ec00ab002400db
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor64K_2 = 0001008300ef009300e60074004c006200380014006d006f00cd0012000d00ee
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor64K_2 = 00fb0002006f008700c0004d008300d9005a009c00c40094008e00a6002f00d6
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor64K_2 = 002a001e007000650003001b00d5004200bd00ad00e40055005a000000f000ad
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor64K_2 = 00c4002000d0004b00890086001600f600df00b200710091004c00c00092006f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor64K_2 = 00ec001f00c80037003a007c009900d100b5001a003a005300cc00fb0022000f
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor64K_2 = 00e9005d0057002c005b00e600a700df001400700095005d00d7009f002600fb
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor64K_2 = 001c00e800be003f00bd00aa00f00070006d003b0021002b0084003c00670069
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor64K_2 = 001d001400ec00be00b1009e004300ac002a005f007b00d0001c00b200e600e7
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor64K_2 = 009200e90019009600f600cf00cb00b0008d006700d00041004300d700ba003d
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor64K_2 = 00cc00590084006d0068005400190032000b005500400053002b00e700660044
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor64K_2 = 00a20009008e0088007d009e0092005400470093007b00ca009c004a00790068
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor64K_2 = 00c600e2009000fe006f0030009000df005300a1009c0038002700820026004b
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor64K_2 = 003b004800cf005000af00bb00050006009600f4002c002200fc00a10038006c
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor64K_2 = 00ed008500890075003300f400df009100950012008e00110048006d00e500ac
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor64K_2 = 00900039007800030070006500a2009f0088006700a800a6006700b6006e0029
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor64K_2 = 006d00f900730088005300fb00cc00d700cf00e90075006c00d40027009e0064
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor64K_2 = 000e00c2002300c200a600430040003f00de005200b8006500040010000f0041
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor64K_2 = 00dc007f00c9003900e9001b002900cc00e200630034005600db004a00290004
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor64K_2 = 00b800a9002100bb0097002900a000db009200e0001300050087008600e400fb
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor64K_2 = 00cd00d7007f007100230027000a0014004f0070002d00b300cf00560082007f
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor64K_2 = 00120049000d00cf00ed006400f90037009a00ec00c5002f002700ce000a002e
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor64K_2 = 00b6001600a3004f0032000f00bc005f008f007600b4004900b10049005b00c3
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor64K_2 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor64K_2 = 00d2002200f20023005600e3001e001400cd004800fe001e00220038009c00fd
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor64K_2 = 00c800e0003c00ee0064003d005c005500dc00b3005200fe001000ab005e00dd
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor64K_2 = 004a00b2009f00b3003300530025006c009b008800490084006e00b90052000c
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor64K_2 = 00d200ea006e00610097003200d000bf0038005f0078007900e800b1005b0045
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor64K_3 = 008100d100fd00c500ed004d0061001c008400b8001d008f00c000e2001c00ef
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor64K_3 = 0053004600f7001400ec004e001b00860009001300f10067002a009200590036
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor64K_3 = 008b006e00b2001e0072009100ae0054009a0020007b0025007b005100f300be
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor64K_3 = 00aa00f9003d004f003e0031006100d60095004c000c00e700d800bd00f600e3
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor64K_3 = 00640068001a00ca000d00540029009000220056003d005a00c800f9008c004c
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor64K_3 = 0079009e0081008a0059002c0030001000f800c8003a00ef00940093006300e3
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor64K_3 = 00a7006c003e00ae00e4008100d800d500a200b100f4004a006a00d800570053
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor64K_3 = 004d004f001f0080008300dc0040007d008a0066001c00db0027004a00310059
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor64K_3 = 009b0090003300fa002f000100b600d60019000200a3009b002b00dd00cf00d9
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor64K_3 = 00b5009300a200f4002c004a00e30085008100da005200ef00d900b400df0066
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor64K_3 = 00c1000d0022004e003c00330064009000190060004c002b00ac0005003c00ae
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor64K_3 = 006900a20037004a00f70098004000d60083004000fd0042009300b7008b0055
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor64K_3 = 00aa003100ea00df0053003200a10085000700980021000d00ca004600c000ef
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor64K_3 = 00e40096006400cb009b0057004400ba00e500db004b000500ab00f90024001f
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor64K_3 = 000a00d0008b003800a8008000ae009a0024003800bd006000ac006400ff00ba
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor64K_3 = 00eb000200fd006b0003006500cc0030003c007600f000b400fd0012003e0022
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor64K_3 = 00c900e9003f00070016004600170068004800b5000f00870062003c00ff0061
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor64K_3 = 001d003c004400bf00310055007800ab002100d9000600fb0022002900f700cd
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor64K_2 = 00a20067000d006a005d00d0002c00020076008a00ae00bd000b000d00d90003
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor64K_2 = 000c004d00ac006a00850079001e00a900f100a40034006000dd003c0004001d
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor64K_2 = 003e00ad007600e1003700c2002500f600b7008a00f800ae002300fa00480014
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor64K_2 = 0035007f00000008002a002c00d000c700dc006700ef0006003300d7002f0069
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor64K_2 = 0073007200c600ad007a00ac00e4006e00e500c3005d00d300680095009500ca
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor64K_2 = 005100010034004200e200bd00c0006a003400120049008700e80012000c00fa
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor64K_3 = 003e0014000b003c007b00ba00ae00e3005c0079006d00c300e400e5008400e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor64K_3 = 007e004100d700a100e00026001e008e00a2000e00de0085002700ce00ef007b
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor64K_3 = 00fb00ab004d00c300b3006200a700a4005f009c001300dc00b8003100ed00a7
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor64K_3 = 000e009700520069007e007000f600ad003f00570037001e002c00b7007b003b
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor64K_3 = 00e5000200e900ed005900a2003e0089007d001e00d3004c00be00d800b500f5
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor64K_3 = 008900c7007200bf00a800b900670031000300980025003f00fc00b800220094
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor64K_3 = 001400d7004200b6003d004f00cf00c100d5000700d000e700e600d600390020
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor64K_3 = 00bc00f600d10041008f00f6005d007a00c400a5001e001700210075002c0048
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor64K_3 = 00be00270021005c004f00a2000c001b00d4006c0026002700d9009a00df003d
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor64K_3 = 007600480096005b00b5008b005600df00c80087000c009b003700c700c6002e
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor64K_3 = 00ca00b700d100f4009b00cc002600ce00c9009d00a3007c009800c500030035
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor64K_3 = 007e00e50066000b00fe002000da00ef008c00ac00a60097007e006300ad00e2
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor64K_3 = 00b000590018004c009e0057002600a40037001f002d000c00490045004a0073
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor64K_3 = 008400c900290018005300e3004d007f0027005a005c00fc00bb000600c600a7
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor64K_3 = 00a0004b00cc006300ac007a00920018003900ff000800350039007e003300bc
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor64K_3 = 00a60074005900bd00b8008d0072000700c90015000800f300880015000b0028
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor64K_3 = 00d2000600be0058000800b800a400da0001000c00530009004b003700750041
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor64K_3 = 00950044000a0073007700a0009600f2007d007200670040000e007300510053
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor64K_3 = 0011007c0067004200bd004e005f009700d5009200c200e700c700f800f000cc
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor64K_3 = 00790089009200aa0063002d005f008900ed0021005e006300e20020008700fe
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor64K_3 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor64K_3 = 00aa0074006600ad00d400f5001e0008003a0098006900c000410053000500bd
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor64K_3 = 00ea00d500b200cf00e80033004700af00760082003e007f006300b000490008
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor64K_3 = 0049001300f0001b00d800820068008000410090008a00b0005c00c400c50062
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor64K_3 = 00440088000e0089003d00c60048007700ae00db00dd00fd004000e600c90065
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor64K_3 = 006000be00de00c80033002e004500e00074007100330011005200cc00b600e3
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor64K_3 = 0063008d0062004e003f0009000400aa004800f50056003e00df000f00a60085
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor64K_3 = 00c00076004200b900b50049000300bf00bc00fb00c70091009a002a00c300b5
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor64K_3 = 0063001700e100f3004500c50099002b0053009500c600c200fb00b80027002c
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor64K_3 = 00460067008f0009004d00aa00f6008a003400df003700080037005e009600f4
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor64K_3 = 00b6001200550013008f007000e500ee008a003900890003006a00c4006f00a0
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor64K_3 = 0034003200f500ce003c00b4005f00f100ca008d007d006d00e10074002d0002
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor64K_3 = 00ac008400710042001a00a60070003c0044001400bc0016004e008200c7007e
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor64K_3 = 004e002400f10004002d009200fa00c2008b0098004900d500f5008900790085
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor64K_3 = 00e8003a00c10043008c000200b6006000d4000200ce0011002500f4006a0052
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor64K_3 = 004b0028005c000a009f00d0005400c1001b004000f7000000bb000f00d100c3
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor64K_3 = 0067004e00e400c8005100ee00450083007c00ef00e90001000e006f0048000a
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor64K_3 = 00a900080039006d00a300e500aa00550068009b0022006f00be00a700500017
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor64K_3 = 00ae0075002f000800e6004e004400f100a9004c0036008a0076005e0004003e
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor64K_3 = 006900b30016008a00310084000a00b6009b00cd002400fa00d90030000b0018
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor64K_3 = 00160094004400f200b200e2009c007d003e00ba00a300bb004800fe00ca00be
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor64K_3 = 00c100fd00ae003a00cc001c00f5004900ef009500bf00170072001f003b00b1
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor64K_3 = 0012003d002e00b10011002d007b009b0015005400b8008a003500b300730055
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor64K_3 = 004f007a0065004a0084005d0065007f00ee000a00b900c600f800b2008d004a
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor64K_3 = 00ba00ad00ed0014009e00df005d00e20011001a0034003e003300610049006d
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor64K_3 = 00990046001b000e0091008600d5001a005f002b006000a20035005c00fb009f
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor64K_3 = 0033003b00ad005e00150036006a00b500ae0056006800350039005000cb00f2
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor64K_3 = 008b001c008100be008400cc00d2001d003b002c00f900b3005e0091009400b4
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor64K_3 = 00b10067006b004200eb00cd00b000ff009e0017003c002c00bd00ee007c00b5
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor64K_3 = 002d0054000000720030002900d000d200c300cd0043001e0013001c0075005c
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor64K_3 = 005a00ce006f00ab008100e30024006d008800b70056007e00d500ea009b00a8
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor64K_3 = 0095005d00f100c4001c005a00770014005600f9000700be002400af002d00a6
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor64K_3 = 0021005200de00a600fd00e000260062007500ed006a008e0003004f001f00d6
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor64K_3 = 00dc00de00f700d6009900050093004400f400000031004800c500550072005e
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor64K_3 = 00a700ea008a00c7003700a1001e001200df003a009e007900be009a00ee00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor64K_3 = 0071005f0020000400f100c1002900de0053007000a9000f00fa00b900430096
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor64K_3 = 003400d100d3001a00b90019005f005200e7006300bc004400df000500310058
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor64K_3 = 0047008700b500940066005c007100f600f5000b00a300c600f20098003b002a
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor64K_3 = 00cb00a600ad00c1004f00e9006200d3005c0085004e00fb009c005500d50023
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor64K_3 = 00e600bb00e9009200c300bf0037009400ef00650081009500d00070007300ab
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor64K_3 = 0075004c005500c7008e00a800bd009300fc00d4008d00ce0036002d00340037
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor64K_3 = 005d004f005d009f00e100f5002600ee00f7001b0072009e0043002e00e3003c
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor64K_3 = 007a007100d90086008300c300b6004b00670039008c000d00d300d400220060
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor64K_3 = 00e700c00074006d0013009d0092004c00ed002b00db00a700040069004c0052
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor64K_3 = 00ce002e00d400bf004c00ef006c0000002d001d0087006200e0002e00900078
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor64K_3 = 00b6009600e6003c00f7003600460065004300540053009700cf004e002a00d4
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor64K_3 = 000c009500940062002e00c200f10047003000290078005b00b000f500b80006
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor64K_3 = 001700bf008300320007003800ca000b004a00ac004b00e8001c00ce00620029
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor64K_3 = 002300b2003a00e9009300b100a900d90080008e001d007d008f006a00ed00de
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor64K_3 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor64K_3 = 006a007c00af00ea007800c3001800b2003a005900e300d100ae0079009a00ed
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor64K_3 = 008e00e4001400cd004e009100b800f600860074004800c600e400b400840034
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor64K_3 = 0018001a00e10049006700710072007000870022005e00a90088009b0044003f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor64K_3 = 002e006f00ac00ce00ff00a400d1008800b5001e00460015001f00b000300042
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor64K_3 = 0043008a001e006f009a00ff00cb008100900053009400010035004a008b00cf
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor64K_3 = 0007000400f8001a00dc00a4002a0056009f0052007c00a900800041002f0053
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor64K_3 = 0053006e000d0070008a0075005000eb000c00b20007002900f800b4007900fc
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor64K_3 = 00ce00be00b600b1002500e1005900fc00f30070009d00fb00b9002800a500c3
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor64K_3 = 00970016008000f800fd008b00af002d00770075002b007a00f0001f00a000f4
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor64K_3 = 0061006a007900dd00dd002500d000fd008400ba0055004000d700f500330029
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor64K_3 = 004000ed00da0054001b004b00a300a500b900a500de00ab0016002400720060
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor64K_3 = 00bf0047009c00e1005700cb00250086004100c400e000f0003900de001b009b
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor64K_3 = 00b900a70054000400d6002400b5001f00710049003200af0030003300b90026
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor64K_3 = 000900060094009500a2004600a3001600000061008300070006005d001a0018
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor64K_3 = 00ed004a00de00ee00cd000c00d900e90090000900c8008000aa00eb0039008b
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor64K_3 = 000d004900740033008e0025004200be004600c4009800bf00a000ec000000d9
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor64K_3 = 007e0061000300c00018006b0078000500e100410046009a00c1009500b90018
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor64K_3 = 00a7000600d7003d00fe0050001c002c00b7009000390057000800d700490049
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor64K_3 = 00b200d400aa0019008100160099009d00a500a800f100e30070008b00ed0039
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor64K_3 = 004f007a00dd00b300d900d7001500de005c009900a400270062000900fd0003
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor64K_3 = 00ab005400500099007b006b00e800ac00a1003f00df008b00e10050003c003e
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor64K_3 = 0026007200ac0010001400b30086006c00f6001500fe000b007200ae00430038
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor64K_3 = 003500a9004e002400630071005300f70028002e0069006400e3003400ab0064
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor64K_3 = 005900c9000200f800ae0098009a0060002f005c00ee0065000a00f200b80046
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor64K_3 = 00190008000b009f00310083001300de001c005a00a300f3001e00a800ca0063
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor64K_3 = 00f100050022002900d1004600ac003900d7007800b2009a00ec00ab002400db
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor64K_3 = 0001008300ef009300e60074004c006200380014006d006f00cd0012000d00ee
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor64K_3 = 00fb0002006f008700c0004d008300d9005a009c00c40094008e00a6002f00d6
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor64K_3 = 002a001e007000650003001b00d5004200bd00ad00e40055005a000000f000ad
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor64K_3 = 00c4002000d0004b00890086001600f600df00b200710091004c00c00092006f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor64K_3 = 00ec001f00c80037003a007c009900d100b5001a003a005300cc00fb0022000f
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor64K_3 = 00e9005d0057002c005b00e600a700df001400700095005d00d7009f002600fb
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor64K_3 = 001c00e800be003f00bd00aa00f00070006d003b0021002b0084003c00670069
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor64K_3 = 001d001400ec00be00b1009e004300ac002a005f007b00d0001c00b200e600e7
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor64K_3 = 009200e90019009600f600cf00cb00b0008d006700d00041004300d700ba003d
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor64K_3 = 00cc00590084006d0068005400190032000b005500400053002b00e700660044
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor64K_3 = 00a20009008e0088007d009e0092005400470093007b00ca009c004a00790068
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor64K_3 = 00c600e2009000fe006f0030009000df005300a1009c0038002700820026004b
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor64K_3 = 003b004800cf005000af00bb00050006009600f4002c002200fc00a10038006c
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor64K_3 = 00ed008500890075003300f400df009100950012008e00110048006d00e500ac
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor64K_3 = 00900039007800030070006500a2009f0088006700a800a6006700b6006e0029
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor64K_3 = 006d00f900730088005300fb00cc00d700cf00e90075006c00d40027009e0064
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor64K_3 = 000e00c2002300c200a600430040003f00de005200b8006500040010000f0041
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor64K_3 = 00dc007f00c9003900e9001b002900cc00e200630034005600db004a00290004
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor64K_3 = 00b800a9002100bb0097002900a000db009200e0001300050087008600e400fb
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor64K_3 = 00cd00d7007f007100230027000a0014004f0070002d00b300cf00560082007f
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor64K_3 = 00120049000d00cf00ed006400f90037009a00ec00c5002f002700ce000a002e
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor64K_3 = 00b6001600a3004f0032000f00bc005f008f007600b4004900b10049005b00c3
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor64K_3 = 001400e600ed00c600290019000100a4007e0002006800a9006600b400d9009e
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor64K_3 = 00d2002200f20023005600e3001e001400cd004800fe001e00220038009c00fd
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor64K_3 = 00c800e0003c00ee0064003d005c005500dc00b3005200fe001000ab005e00dd
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor64K_3 = 004a00b2009f00b3003300530025006c009b008800490084006e00b90052000c
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor64K_3 = 00d200ea006e00610097003200d000bf0038005f0078007900e800b1005b0045
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor64K_3 = 00a20067000d006a005d00d0002c00020076008a00ae00bd000b000d00d90003
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor64K_3 = 000c004d00ac006a00850079001e00a900f100a40034006000dd003c0004001d
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor64K_3 = 003e00ad007600e1003700c2002500f600b7008a00f800ae002300fa00480014
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor64K_3 = 0035007f00000008002a002c00d000c700dc006700ef0006003300d7002f0069
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor64K_3 = 0073007200c600ad007a00ac00e4006e00e500c3005d00d300680095009500ca
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor64K_3 = 005100010034004200e200bd00c0006a003400120049008700e80012000c00fa
OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16M_0 = 00dd008a00ab001f0013000900a400bf00d7003a000e001f005c000800440018
@@ -3691,6 +3715,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16M_0 = 0043003b007f00a9006d00f400a30063002300880049004e009500e2003500c9
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16M_0 = 009000fe00880077004c007900f30079003e00b600b1003c00ab009f00650037
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16M_0 = 00f200f400a50024006c0018005d00dd00a2005f005f009800cd00bf00df00b4
OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16M_0 = 00c4002a00890059004c005600e000ab0082009f00840094002d00f100f0004c
@@ -3741,6 +3767,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16M_0 = 00b600b500990085000e002700b000d900ed00ff008e00d300e2006400a800fe
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16M_0 = 00150098000600ca00fe00e000070030000a00b800c100f000e400a70090008d
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16M_0 = 00f7005a00b80086006000bf008e00030075002a009f0028008d00dc000700bf
OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16M_0 = 0001000200ad0013000d00ed00db00a4009000b100970005005c009c0019006b
@@ -3791,6 +3819,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16M_0 = 001900a200120089008000c4008100ba004e003f004600290055005c00ac0037
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16M_0 = 00c500e700b1004700ab00a90016006100b9007800c800cd00b900c5002300f3
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16M_1 = 00dd008a00ab001f0013000900a400bf00d7003a000e001f005c000800440018
OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16M_1 = 00ef00cf00ac006f00ca001d00be008c00820090009c005b00660053005400f2
@@ -3841,6 +3871,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16M_1 = 0043003b007f00a9006d00f400a30063002300880049004e009500e2003500c9
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16M_1 = 009000fe00880077004c007900f30079003e00b600b1003c00ab009f00650037
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16M_1 = 00f200f400a50024006c0018005d00dd00a2005f005f009800cd00bf00df00b4
OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16M_1 = 00c4002a00890059004c005600e000ab0082009f00840094002d00f100f0004c
@@ -3891,6 +3923,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16M_1 = 00b600b500990085000e002700b000d900ed00ff008e00d300e2006400a800fe
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16M_1 = 00150098000600ca00fe00e000070030000a00b800c100f000e400a70090008d
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16M_1 = 00f7005a00b80086006000bf008e00030075002a009f0028008d00dc000700bf
OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16M_1 = 0001000200ad0013000d00ed00db00a4009000b100970005005c009c0019006b
@@ -3941,6 +3975,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16M_1 = 001900a200120089008000c4008100ba004e003f004600290055005c00ac0037
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16M_1 = 00c500e700b1004700ab00a90016006100b9007800c800cd00b900c5002300f3
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16M_2 = 00dd008a00ab001f0013000900a400bf00d7003a000e001f005c000800440018
OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16M_2 = 00ef00cf00ac006f00ca001d00be008c00820090009c005b00660053005400f2
@@ -3991,6 +4027,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16M_2 = 0043003b007f00a9006d00f400a30063002300880049004e009500e2003500c9
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16M_2 = 009000fe00880077004c007900f30079003e00b600b1003c00ab009f00650037
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16M_2 = 00f200f400a50024006c0018005d00dd00a2005f005f009800cd00bf00df00b4
OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16M_2 = 00c4002a00890059004c005600e000ab0082009f00840094002d00f100f0004c
@@ -4041,6 +4079,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16M_2 = 00b600b500990085000e002700b000d900ed00ff008e00d300e2006400a800fe
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16M_2 = 00150098000600ca00fe00e000070030000a00b800c100f000e400a70090008d
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16M_2 = 00f7005a00b80086006000bf008e00030075002a009f0028008d00dc000700bf
OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16M_2 = 0001000200ad0013000d00ed00db00a4009000b100970005005c009c0019006b
@@ -4091,6 +4131,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16M_2 = 001900a200120089008000c4008100ba004e003f004600290055005c00ac0037
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16M_2 = 00c500e700b1004700ab00a90016006100b9007800c800cd00b900c5002300f3
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16M_3 = 00dd008a00ab001f0013000900a400bf00d7003a000e001f005c000800440018
OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16M_3 = 00ef00cf00ac006f00ca001d00be008c00820090009c005b00660053005400f2
@@ -4141,6 +4183,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16M_3 = 0043003b007f00a9006d00f400a30063002300880049004e009500e2003500c9
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16M_3 = 009000fe00880077004c007900f30079003e00b600b1003c00ab009f00650037
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16M_3 = 00f200f400a50024006c0018005d00dd00a2005f005f009800cd00bf00df00b4
OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16M_3 = 00c4002a00890059004c005600e000ab0082009f00840094002d00f100f0004c
@@ -4191,6 +4235,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16M_3 = 00b600b500990085000e002700b000d900ed00ff008e00d300e2006400a800fe
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16M_3 = 00150098000600ca00fe00e000070030000a00b800c100f000e400a70090008d
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16M_3 = 00f7005a00b80086006000bf008e00030075002a009f0028008d00dc000700bf
OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16M_3 = 0001000200ad0013000d00ed00db00a4009000b100970005005c009c0019006b
@@ -4241,6 +4287,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16M_3 = 001900a200120089008000c4008100ba004e003f004600290055005c00ac0037
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16M_3 = 00c500e700b1004700ab00a90016006100b9007800c800cd00b900c5002300f3
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor4K_0 = 00b50006009300290010006d006100ab00b000e000c500580007004800ad0024
OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor4K_0 = 0002003a00f9006700f200c3000c00a700bd00a8006400ec008900ff00d800f7
@@ -4291,6 +4339,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor4K_0 = 000d00dc0059001400fa00f600c500ec003c00b900be00b7003b0033000000b0
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor4K_0 = 0060005400930067001d000a00c300b500d100a200e300cd001c00e3000b00c1
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor4K_0 = 00b000fc005100ea00430022002700260034002400de0003005a0031009000f2
OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor4K_0 = 00ff00f7009900ae00e100ab00d900f100c100330069009000b500670009004a
@@ -4341,6 +4391,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor4K_0 = 007e003900dd002b005f00160052002400e6006300fd00660024002900030002
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor4K_0 = 005500a700da009b00540008005d0025001e000200690006006d004e00870099
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor4K_0 = 0033004b00c9008b00f300e8000c00c300dc00d4002a0075000a00bd0071004b
OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor4K_0 = 00bd006800d2001600db00db0000001a003300ab00f1003e005e005500ae008d
@@ -4391,6 +4443,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor4K_0 = 00a6000500a800ab00800024004000bd003000b00098004a00f2004a002200e4
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor4K_0 = 004600ee003f00ea002c000c00520077004e00de00160060009200c600110080
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor4K_1 = 00b50006009300290010006d006100ab00b000e000c500580007004800ad0024
OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor4K_1 = 0002003a00f9006700f200c3000c00a700bd00a8006400ec008900ff00d800f7
@@ -4441,6 +4495,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor4K_1 = 000d00dc0059001400fa00f600c500ec003c00b900be00b7003b0033000000b0
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor4K_1 = 0060005400930067001d000a00c300b500d100a200e300cd001c00e3000b00c1
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor4K_1 = 00b000fc005100ea00430022002700260034002400de0003005a0031009000f2
OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor4K_1 = 00ff00f7009900ae00e100ab00d900f100c100330069009000b500670009004a
@@ -4491,6 +4547,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor4K_1 = 007e003900dd002b005f00160052002400e6006300fd00660024002900030002
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor4K_1 = 005500a700da009b00540008005d0025001e000200690006006d004e00870099
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor4K_1 = 0033004b00c9008b00f300e8000c00c300dc00d4002a0075000a00bd0071004b
OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor4K_1 = 00bd006800d2001600db00db0000001a003300ab00f1003e005e005500ae008d
@@ -4541,6 +4599,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor4K_1 = 00a6000500a800ab00800024004000bd003000b00098004a00f2004a002200e4
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor4K_1 = 004600ee003f00ea002c000c00520077004e00de00160060009200c600110080
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor4K_2 = 00b50006009300290010006d006100ab00b000e000c500580007004800ad0024
OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor4K_2 = 0002003a00f9006700f200c3000c00a700bd00a8006400ec008900ff00d800f7
@@ -4591,6 +4651,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor4K_2 = 000d00dc0059001400fa00f600c500ec003c00b900be00b7003b0033000000b0
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor4K_2 = 0060005400930067001d000a00c300b500d100a200e300cd001c00e3000b00c1
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor4K_2 = 00b000fc005100ea00430022002700260034002400de0003005a0031009000f2
OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor4K_2 = 00ff00f7009900ae00e100ab00d900f100c100330069009000b500670009004a
@@ -4641,6 +4703,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor4K_2 = 007e003900dd002b005f00160052002400e6006300fd00660024002900030002
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor4K_2 = 005500a700da009b00540008005d0025001e000200690006006d004e00870099
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor4K_2 = 0033004b00c9008b00f300e8000c00c300dc00d4002a0075000a00bd0071004b
OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor4K_2 = 00bd006800d2001600db00db0000001a003300ab00f1003e005e005500ae008d
@@ -4691,6 +4755,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor4K_2 = 00a6000500a800ab00800024004000bd003000b00098004a00f2004a002200e4
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor4K_2 = 004600ee003f00ea002c000c00520077004e00de00160060009200c600110080
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor4K_3 = 00b50006009300290010006d006100ab00b000e000c500580007004800ad0024
OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor4K_3 = 0002003a00f9006700f200c3000c00a700bd00a8006400ec008900ff00d800f7
@@ -4741,6 +4807,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor4K_3 = 000d00dc0059001400fa00f600c500ec003c00b900be00b7003b0033000000b0
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor4K_3 = 0060005400930067001d000a00c300b500d100a200e300cd001c00e3000b00c1
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor4K_3 = 00b000fc005100ea00430022002700260034002400de0003005a0031009000f2
OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor4K_3 = 00ff00f7009900ae00e100ab00d900f100c100330069009000b500670009004a
@@ -4791,6 +4859,8 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor4K_3 = 007e003900dd002b005f00160052002400e6006300fd00660024002900030002
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor4K_3 = 005500a700da009b00540008005d0025001e000200690006006d004e00870099
+
OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor4K_3 = 0033004b00c9008b00f300e8000c00c300dc00d4002a0075000a00bd0071004b
OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor4K_3 = 00bd006800d2001600db00db0000001a003300ab00f1003e005e005500ae008d
@@ -4841,1205 +4911,1255 @@
OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor4K_3 = 00a6000500a800ab00800024004000bd003000b00098004a00f2004a002200e4
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MU_0 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MU_0 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MU_0 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MU_0 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MU_0 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MU_0 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MU_0 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MU_0 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MU_0 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MU_0 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MU_0 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MU_0 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MU_0 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MU_0 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MU_0 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MU_0 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MU_0 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MU_0 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor4K_3 = 004600ee003f00ea002c000c00520077004e00de00160060009200c600110080
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MU_0 = 002a00f70002006400b800c3002200480082001c001700e800bc002500fa00fd
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MU_0 = 00e4005a00d100f300920063002b005e005f003400d9002b00fc0036005f00ea
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MU_0 = 000600d600ab00200038009200a600a500aa00cb001d00b3007500f900340026
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MU_0 = 00a20042008a00f00071009500610000007d00f2000f0071007200ea003d001f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MU_0 = 006800cc00b3006700d2002800f6001d00310007004000c700aa001300450082
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MU_0 = 000800c4002d009b009b00bb00190059006000250040001000cc0009001e00f2
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MU_0 = 003f00fb0043008600fa00ec00e3004300cd00a30017003b00a90003008a0076
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MU_0 = 00a800f0003900f500940084002c0094005f000c001700d900b400a200230052
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MU_0 = 00d700820013004b00d800f00065003b0001000f00eb006600e400800087007d
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MU_0 = 002800bf00c40041007e008f00c900ff00850079001b0004000400ea00350069
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MU_0 = 0023007600b500cb007200c2006700db003800dc00a9002200c10034001c00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MU_0 = 0086009b0006009f006c00e9007f000b000800b300830090006f007800a80066
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MU_0 = 00ef001f00c700cc0078006d0051002b003d00bd00100098000d00cc002500ea
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MU_0 = 001e005700f100630040005500cb00f900ca009d008c00ae00800012002b002d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MU_0 = 001d00cd008200240090007e00b700e0007d004a0062007900ad00bc0056002c
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MU_0 = 00e200f800660016001a0050001e0034007700b400f50054004e0087003a0041
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MU_0 = 00ab001b009c00a6008f002100fe00e000fe007500510075004700480059009e
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MU_0 = 00e700ad00f0000c003600c3007b00f2006300e0009300d1005100d1005500c1
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MU_0 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MU_0 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MU_0 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MU_0 = 006300b200d90063000300490034003b00f800fd00e300a5000b0086006b001b
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MU_0 = 00570061000900b10071009d00ae00f0004e009000ec00b8007600a300f200a5
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MU_0 = 009f007500930026002200f2003100b700ee00c100b30070002f008700be0003
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MU_0 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MU_0 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MU_0 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MU_0 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MU_0 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MU_0 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MU_0 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MU_0 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MU_0 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MU_0 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MU_0 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MU_0 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MU_0 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MU_0 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MU_0 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MU_0 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MU_0 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MU_0 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MU_0 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MU_0 = 00a6001900bc00dd00460076000900c9008a00ae00ed00db008b00d000570003
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MU_0 = 00b900ce0075006900f6001f00d600f900a600ce001b000f0041001f006200da
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MU_0 = 003e00ca00e000ba002f00bc002300a800d2009a00d7005f0037007f00880003
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MU_0 = 009600a200bd004c001c00bd00c100b500cd007a00d4003f003d00c3003000b0
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MU_0 = 00490072007d0082004600b6001d00d30019002900e0004e00700033003b004b
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MU_0 = 007c00c500c100b0004a00f500f900bd0020009b003700d400ea00b2009a00bf
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MU_0 = 00e1005a009a00c200d100670069007900a2003a0091007b00b60083006d0098
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MU_0 = 009d00de003d002b001000dd00a4005900da00f6009e00c0005a0059004b00c7
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MU_0 = 003700a300cb00db0036006f00f0005b003400b3008b009900c200fd009a0017
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MU_0 = 00c9004100ff00e30023003600f40047003a00d2000c0076003800a200b4003f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MU_0 = 00d40018001c00bf00a0003e0066002e0097001f00fb00f60030001d000f00fe
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MU_0 = 0091001b0019006500a2003f00cd0066008500f50013008f002900cb00d20025
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MU_0 = 00c90019008b008200ad004100e2005a00a1003000b0007e0071004c00fd00cb
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MU_0 = 000b00bf00d500120030003c0035007500ba001f00240034009c006200b80092
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MU_0 = 00ef004500b200a700e00081000b00bc002200ce0065001900f900dc0035005f
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MU_0 = 006200680007005a00e700570031004d00440022005100c9004f006600eb0045
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MU_0 = 00f8002f00e500010051001c00c50099003900770041000b00d7003a005300e7
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MU_0 = 0034007800d4006200e80064008800ea001500e500cd00d0005b00b100b200fd
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MU_0 = 00a300b9002e007c001e001b0012006600e2009c0017003d00c100b6004b003f
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MU_0 = 0004000a00df006800dc008100d600ad004f00e800d100c800b5006200840021
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MU_0 = 00ea003700750080008b00b100eb00f00022009200a000ed0094009c00f60022
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MU_0 = 002900cb008c003700a500dc00b5007c00df00ef002a002900b600d700820035
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MU_0 = 00a8002f00d2003d003b00ec0092002600410030006400cf00bc0077008e0009
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MU_0 = 00c400d100bc004f00660023005200790010004e0002004d00f300c0004800bb
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MU_0 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MU_0 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MU_0 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MU_0 = 00a5003500ba001c007d006d006f004e00d10002004000bc007c003a005700ad
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MU_0 = 0068009b008a000d009300250096000d007c0034005600b4009700cd003c00d8
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MU_0 = 007600b000e200680085005f000d0074009700f60075006f00ff00f800e2002d
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MU_0 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MU_0 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MU_0 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MU_0 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MU_0 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MU_0 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MU_0 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MU_0 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MU_0 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MU_0 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MU_0 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MU_0 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MU_0 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MU_0 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MU_0 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MU_0 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MU_0 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MU_0 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MU_0 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MU_0 = 007e00b1002a000b0094008900690043004400ca001100190010008f009f0016
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MU_0 = 002d005f000d00e10055002c0081009400e0002000c3003800390012007300c7
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MU_0 = 005a00fe0038005100c40033005300a4003c003a00ff0004008a0043003200c4
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MU_0 = 0070005500ba005f00300082001500e300bc004300c200290038002700c600ac
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MU_0 = 00a400b50084005e002f006900f400e600f000c900ea000f0056007a008b009a
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MU_0 = 00ac006b007700700038001b00700043007000eb002800aa00a20080002f001b
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MU_0 = 009f007000d600c000d70069009c00dd001c00b000c8008e0064003e0040003e
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MU_0 = 004f00f4007600c200eb00b80013001b00d800c900b900c5003b007900ef00f6
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MU_0 = 000f00df00fd003f009f00e100a900f3005100cd0063003b000c006d00a7008b
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MU_0 = 00b60090002000ae00c7006d001500d600f0003d00c600f40020002500180035
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MU_0 = 00ce005c0097004900ed00a4000600790038009300cd0047008600be0033005d
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MU_0 = 003900b9001a00c3007000a200b400df0035003700ce00080045005300e80006
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MU_0 = 00f600000037008e009400ad00b10073004400c5002f00a2009a00c7007b00c1
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MU_0 = 00610033009300d60038009a009d0071006c00dc008100ee005a004700fa00e1
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MU_0 = 008a0093001300c300c1006300f400a100a1008c00680005007500fc00d10096
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MU_0 = 0044003b0011006a00cf00d500ef001b0022004c004a001600850053009700eb
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MU_0 = 008500b000b400d200060072000a001c00c3009c001d0017008400a600290086
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MU_0 = 000e0011005c00b100f30089006e00dc0099000e004c0071005e009d00c60047
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MU_0 = 000800870080005d00ab002e005200a300d8005a0055006c0046009600140035
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MU_0 = 00540083005e00a20055006f000400ab00d600bc0042005d001400750050001d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MU_0 = 00b9009d00ac00e3007e009d00bb00f300ba009f00e6007f005f008d004e00c6
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MU_0 = 00fe0051000a00ff00c10079007c0050001c0092005a00cf00dc0004006b006a
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MU_0 = 000a00aa002a004400d0004c005c009b008000a1007a008a00b100f800010024
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MU_0 = 008e00bf00550029001f0055003b00cb006b004000c60088001c00180074000c
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MU_0 = 00ca008d007600fc00b800630065008d00b300c200c2009e0086005000330034
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MU_0 = 00920028001200f4002d009900e1006000070008009b00eb007400e00066007f
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MU_0 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MU_0 = 0076009700a0007e00f800c800bd00ce0027004e005600df0075002200cc005c
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MU_0 = 0095006c00f6002400fb003d0009007300840031005400e20037002c000e000a
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MU_0 = 001400da000a005b00e6001e0079001500b5001c002900c800be00fc00c9009f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MU_0 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MU_1 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MU_1 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MU_1 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MU_1 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MU_1 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MU_1 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MU_1 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MU_1 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MU_1 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MU_1 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MU_1 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MU_1 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MU_1 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MU_1 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MU_1 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MU_1 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MU_1 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MU_1 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MU_0 = 000000c20069004a00c4008f00f3005b0031009e008a00eb00fe00eb00fc00dc
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MU_0 = 000e0036003d0084006800730007009700ef00e800a40010006a0006000d009b
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MU_0 = 005f0057009600ec00bd00f80056006400c7002b00e900110073007300490072
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MU_0 = 008b00ef00e6008800880036000200f800e3007700bf002b00a000020067004b
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MU_0 = 002e005100d400c400cc00ef00fb009b00470003003500e50001007d000300e6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MU_0 = 0037005b0081000800ff00c2000f00c0004000470072000e007d00d800a70022
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MU_1 = 002a00f70002006400b800c3002200480082001c001700e800bc002500fa00fd
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MU_1 = 00e4005a00d100f300920063002b005e005f003400d9002b00fc0036005f00ea
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MU_1 = 000600d600ab00200038009200a600a500aa00cb001d00b3007500f900340026
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MU_1 = 00a20042008a00f00071009500610000007d00f2000f0071007200ea003d001f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MU_1 = 006800cc00b3006700d2002800f6001d00310007004000c700aa001300450082
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MU_1 = 000800c4002d009b009b00bb00190059006000250040001000cc0009001e00f2
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MU_1 = 003f00fb0043008600fa00ec00e3004300cd00a30017003b00a90003008a0076
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MU_1 = 00a800f0003900f500940084002c0094005f000c001700d900b400a200230052
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MU_1 = 00d700820013004b00d800f00065003b0001000f00eb006600e400800087007d
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MU_1 = 002800bf00c40041007e008f00c900ff00850079001b0004000400ea00350069
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MU_1 = 0023007600b500cb007200c2006700db003800dc00a9002200c10034001c00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MU_1 = 0086009b0006009f006c00e9007f000b000800b300830090006f007800a80066
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MU_1 = 00ef001f00c700cc0078006d0051002b003d00bd00100098000d00cc002500ea
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MU_1 = 001e005700f100630040005500cb00f900ca009d008c00ae00800012002b002d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MU_1 = 001d00cd008200240090007e00b700e0007d004a0062007900ad00bc0056002c
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MU_1 = 00e200f800660016001a0050001e0034007700b400f50054004e0087003a0041
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MU_1 = 00ab001b009c00a6008f002100fe00e000fe007500510075004700480059009e
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MU_1 = 00e700ad00f0000c003600c3007b00f2006300e0009300d1005100d1005500c1
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MU_1 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MU_1 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MU_1 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MU_1 = 006300b200d90063000300490034003b00f800fd00e300a5000b0086006b001b
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MU_1 = 00570061000900b10071009d00ae00f0004e009000ec00b8007600a300f200a5
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MU_1 = 009f007500930026002200f2003100b700ee00c100b30070002f008700be0003
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MU_1 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MU_1 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MU_1 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MU_1 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MU_1 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MU_1 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MU_1 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MU_1 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MU_1 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MU_1 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MU_1 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MU_1 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MU_1 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MU_1 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MU_1 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MU_1 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MU_1 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MU_1 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MU_1 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MU_1 = 00a6001900bc00dd00460076000900c9008a00ae00ed00db008b00d000570003
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MU_1 = 00b900ce0075006900f6001f00d600f900a600ce001b000f0041001f006200da
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MU_1 = 003e00ca00e000ba002f00bc002300a800d2009a00d7005f0037007f00880003
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MU_1 = 009600a200bd004c001c00bd00c100b500cd007a00d4003f003d00c3003000b0
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MU_1 = 00490072007d0082004600b6001d00d30019002900e0004e00700033003b004b
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MU_1 = 007c00c500c100b0004a00f500f900bd0020009b003700d400ea00b2009a00bf
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MU_1 = 00e1005a009a00c200d100670069007900a2003a0091007b00b60083006d0098
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MU_1 = 009d00de003d002b001000dd00a4005900da00f6009e00c0005a0059004b00c7
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MU_1 = 003700a300cb00db0036006f00f0005b003400b3008b009900c200fd009a0017
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MU_1 = 00c9004100ff00e30023003600f40047003a00d2000c0076003800a200b4003f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MU_1 = 00d40018001c00bf00a0003e0066002e0097001f00fb00f60030001d000f00fe
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MU_1 = 0091001b0019006500a2003f00cd0066008500f50013008f002900cb00d20025
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MU_1 = 00c90019008b008200ad004100e2005a00a1003000b0007e0071004c00fd00cb
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MU_1 = 000b00bf00d500120030003c0035007500ba001f00240034009c006200b80092
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MU_1 = 00ef004500b200a700e00081000b00bc002200ce0065001900f900dc0035005f
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MU_1 = 006200680007005a00e700570031004d00440022005100c9004f006600eb0045
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MU_1 = 00f8002f00e500010051001c00c50099003900770041000b00d7003a005300e7
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MU_1 = 0034007800d4006200e80064008800ea001500e500cd00d0005b00b100b200fd
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MU_1 = 00a300b9002e007c001e001b0012006600e2009c0017003d00c100b6004b003f
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MU_1 = 0004000a00df006800dc008100d600ad004f00e800d100c800b5006200840021
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MU_1 = 00ea003700750080008b00b100eb00f00022009200a000ed0094009c00f60022
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MU_1 = 002900cb008c003700a500dc00b5007c00df00ef002a002900b600d700820035
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MU_1 = 00a8002f00d2003d003b00ec0092002600410030006400cf00bc0077008e0009
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MU_1 = 00c400d100bc004f00660023005200790010004e0002004d00f300c0004800bb
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MU_1 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MU_1 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MU_1 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MU_1 = 00a5003500ba001c007d006d006f004e00d10002004000bc007c003a005700ad
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MU_1 = 0068009b008a000d009300250096000d007c0034005600b4009700cd003c00d8
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MU_1 = 007600b000e200680085005f000d0074009700f60075006f00ff00f800e2002d
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MU_1 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MU_1 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MU_1 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MU_1 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MU_1 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MU_1 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MU_1 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MU_1 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MU_1 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MU_1 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MU_1 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MU_1 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MU_1 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MU_1 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MU_1 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MU_1 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MU_1 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MU_1 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MU_1 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MU_1 = 007e00b1002a000b0094008900690043004400ca001100190010008f009f0016
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MU_1 = 002d005f000d00e10055002c0081009400e0002000c3003800390012007300c7
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MU_1 = 005a00fe0038005100c40033005300a4003c003a00ff0004008a0043003200c4
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MU_1 = 0070005500ba005f00300082001500e300bc004300c200290038002700c600ac
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MU_1 = 00a400b50084005e002f006900f400e600f000c900ea000f0056007a008b009a
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MU_1 = 00ac006b007700700038001b00700043007000eb002800aa00a20080002f001b
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MU_1 = 009f007000d600c000d70069009c00dd001c00b000c8008e0064003e0040003e
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MU_1 = 004f00f4007600c200eb00b80013001b00d800c900b900c5003b007900ef00f6
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MU_1 = 000f00df00fd003f009f00e100a900f3005100cd0063003b000c006d00a7008b
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MU_1 = 00b60090002000ae00c7006d001500d600f0003d00c600f40020002500180035
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MU_1 = 00ce005c0097004900ed00a4000600790038009300cd0047008600be0033005d
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MU_1 = 003900b9001a00c3007000a200b400df0035003700ce00080045005300e80006
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MU_1 = 00f600000037008e009400ad00b10073004400c5002f00a2009a00c7007b00c1
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MU_1 = 00610033009300d60038009a009d0071006c00dc008100ee005a004700fa00e1
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MU_1 = 008a0093001300c300c1006300f400a100a1008c00680005007500fc00d10096
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MU_1 = 0044003b0011006a00cf00d500ef001b0022004c004a001600850053009700eb
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MU_1 = 008500b000b400d200060072000a001c00c3009c001d0017008400a600290086
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MU_1 = 000e0011005c00b100f30089006e00dc0099000e004c0071005e009d00c60047
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MU_1 = 000800870080005d00ab002e005200a300d8005a0055006c0046009600140035
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MU_1 = 00540083005e00a20055006f000400ab00d600bc0042005d001400750050001d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MU_1 = 00b9009d00ac00e3007e009d00bb00f300ba009f00e6007f005f008d004e00c6
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MU_1 = 00fe0051000a00ff00c10079007c0050001c0092005a00cf00dc0004006b006a
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MU_1 = 000a00aa002a004400d0004c005c009b008000a1007a008a00b100f800010024
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MU_1 = 008e00bf00550029001f0055003b00cb006b004000c60088001c00180074000c
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MU_1 = 00ca008d007600fc00b800630065008d00b300c200c2009e0086005000330034
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MU_1 = 00920028001200f4002d009900e1006000070008009b00eb007400e00066007f
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MU_1 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MU_1 = 0076009700a0007e00f800c800bd00ce0027004e005600df0075002200cc005c
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MU_1 = 0095006c00f6002400fb003d0009007300840031005400e20037002c000e000a
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MU_1 = 001400da000a005b00e6001e0079001500b5001c002900c800be00fc00c9009f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MU_1 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MU_2 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MU_2 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MU_2 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MU_2 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MU_2 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MU_2 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MU_2 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MU_2 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MU_2 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MU_2 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MU_2 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MU_2 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MU_2 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MU_2 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MU_2 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MU_2 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MU_2 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MU_2 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MU_1 = 000000c20069004a00c4008f00f3005b0031009e008a00eb00fe00eb00fc00dc
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MU_1 = 000e0036003d0084006800730007009700ef00e800a40010006a0006000d009b
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MU_1 = 005f0057009600ec00bd00f80056006400c7002b00e900110073007300490072
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MU_1 = 008b00ef00e6008800880036000200f800e3007700bf002b00a000020067004b
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MU_1 = 002e005100d400c400cc00ef00fb009b00470003003500e50001007d000300e6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MU_1 = 0037005b0081000800ff00c2000f00c0004000470072000e007d00d800a70022
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MU_2 = 002a00f70002006400b800c3002200480082001c001700e800bc002500fa00fd
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MU_2 = 00e4005a00d100f300920063002b005e005f003400d9002b00fc0036005f00ea
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MU_2 = 000600d600ab00200038009200a600a500aa00cb001d00b3007500f900340026
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MU_2 = 00a20042008a00f00071009500610000007d00f2000f0071007200ea003d001f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MU_2 = 006800cc00b3006700d2002800f6001d00310007004000c700aa001300450082
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MU_2 = 000800c4002d009b009b00bb00190059006000250040001000cc0009001e00f2
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MU_2 = 003f00fb0043008600fa00ec00e3004300cd00a30017003b00a90003008a0076
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MU_2 = 00a800f0003900f500940084002c0094005f000c001700d900b400a200230052
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MU_2 = 00d700820013004b00d800f00065003b0001000f00eb006600e400800087007d
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MU_2 = 002800bf00c40041007e008f00c900ff00850079001b0004000400ea00350069
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MU_2 = 0023007600b500cb007200c2006700db003800dc00a9002200c10034001c00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MU_2 = 0086009b0006009f006c00e9007f000b000800b300830090006f007800a80066
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MU_2 = 00ef001f00c700cc0078006d0051002b003d00bd00100098000d00cc002500ea
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MU_2 = 001e005700f100630040005500cb00f900ca009d008c00ae00800012002b002d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MU_2 = 001d00cd008200240090007e00b700e0007d004a0062007900ad00bc0056002c
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MU_2 = 00e200f800660016001a0050001e0034007700b400f50054004e0087003a0041
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MU_2 = 00ab001b009c00a6008f002100fe00e000fe007500510075004700480059009e
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MU_2 = 00e700ad00f0000c003600c3007b00f2006300e0009300d1005100d1005500c1
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MU_2 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MU_2 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MU_2 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MU_2 = 006300b200d90063000300490034003b00f800fd00e300a5000b0086006b001b
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MU_2 = 00570061000900b10071009d00ae00f0004e009000ec00b8007600a300f200a5
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MU_2 = 009f007500930026002200f2003100b700ee00c100b30070002f008700be0003
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MU_2 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MU_2 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MU_2 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MU_2 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MU_2 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MU_2 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MU_2 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MU_2 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MU_2 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MU_2 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MU_2 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MU_2 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MU_2 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MU_2 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MU_2 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MU_2 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MU_2 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MU_2 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MU_2 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MU_2 = 00a6001900bc00dd00460076000900c9008a00ae00ed00db008b00d000570003
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MU_2 = 00b900ce0075006900f6001f00d600f900a600ce001b000f0041001f006200da
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MU_2 = 003e00ca00e000ba002f00bc002300a800d2009a00d7005f0037007f00880003
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MU_2 = 009600a200bd004c001c00bd00c100b500cd007a00d4003f003d00c3003000b0
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MU_2 = 00490072007d0082004600b6001d00d30019002900e0004e00700033003b004b
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MU_2 = 007c00c500c100b0004a00f500f900bd0020009b003700d400ea00b2009a00bf
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MU_2 = 00e1005a009a00c200d100670069007900a2003a0091007b00b60083006d0098
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MU_2 = 009d00de003d002b001000dd00a4005900da00f6009e00c0005a0059004b00c7
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MU_2 = 003700a300cb00db0036006f00f0005b003400b3008b009900c200fd009a0017
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MU_2 = 00c9004100ff00e30023003600f40047003a00d2000c0076003800a200b4003f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MU_2 = 00d40018001c00bf00a0003e0066002e0097001f00fb00f60030001d000f00fe
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MU_2 = 0091001b0019006500a2003f00cd0066008500f50013008f002900cb00d20025
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MU_2 = 00c90019008b008200ad004100e2005a00a1003000b0007e0071004c00fd00cb
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MU_2 = 000b00bf00d500120030003c0035007500ba001f00240034009c006200b80092
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MU_2 = 00ef004500b200a700e00081000b00bc002200ce0065001900f900dc0035005f
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MU_2 = 006200680007005a00e700570031004d00440022005100c9004f006600eb0045
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MU_2 = 00f8002f00e500010051001c00c50099003900770041000b00d7003a005300e7
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MU_2 = 0034007800d4006200e80064008800ea001500e500cd00d0005b00b100b200fd
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MU_2 = 00a300b9002e007c001e001b0012006600e2009c0017003d00c100b6004b003f
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MU_2 = 0004000a00df006800dc008100d600ad004f00e800d100c800b5006200840021
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MU_2 = 00ea003700750080008b00b100eb00f00022009200a000ed0094009c00f60022
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MU_2 = 002900cb008c003700a500dc00b5007c00df00ef002a002900b600d700820035
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MU_2 = 00a8002f00d2003d003b00ec0092002600410030006400cf00bc0077008e0009
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MU_2 = 00c400d100bc004f00660023005200790010004e0002004d00f300c0004800bb
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MU_2 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MU_2 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MU_2 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MU_2 = 00a5003500ba001c007d006d006f004e00d10002004000bc007c003a005700ad
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MU_2 = 0068009b008a000d009300250096000d007c0034005600b4009700cd003c00d8
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MU_2 = 007600b000e200680085005f000d0074009700f60075006f00ff00f800e2002d
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MU_2 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MU_2 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MU_2 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MU_2 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MU_2 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MU_2 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MU_2 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MU_2 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MU_2 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MU_2 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MU_2 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MU_2 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MU_2 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MU_2 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MU_2 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MU_2 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MU_2 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MU_2 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MU_2 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MU_2 = 007e00b1002a000b0094008900690043004400ca001100190010008f009f0016
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MU_2 = 002d005f000d00e10055002c0081009400e0002000c3003800390012007300c7
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MU_2 = 005a00fe0038005100c40033005300a4003c003a00ff0004008a0043003200c4
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MU_2 = 0070005500ba005f00300082001500e300bc004300c200290038002700c600ac
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MU_2 = 00a400b50084005e002f006900f400e600f000c900ea000f0056007a008b009a
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MU_2 = 00ac006b007700700038001b00700043007000eb002800aa00a20080002f001b
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MU_2 = 009f007000d600c000d70069009c00dd001c00b000c8008e0064003e0040003e
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MU_2 = 004f00f4007600c200eb00b80013001b00d800c900b900c5003b007900ef00f6
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MU_2 = 000f00df00fd003f009f00e100a900f3005100cd0063003b000c006d00a7008b
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MU_2 = 00b60090002000ae00c7006d001500d600f0003d00c600f40020002500180035
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MU_2 = 00ce005c0097004900ed00a4000600790038009300cd0047008600be0033005d
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MU_2 = 003900b9001a00c3007000a200b400df0035003700ce00080045005300e80006
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MU_2 = 00f600000037008e009400ad00b10073004400c5002f00a2009a00c7007b00c1
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MU_2 = 00610033009300d60038009a009d0071006c00dc008100ee005a004700fa00e1
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MU_2 = 008a0093001300c300c1006300f400a100a1008c00680005007500fc00d10096
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MU_2 = 0044003b0011006a00cf00d500ef001b0022004c004a001600850053009700eb
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MU_2 = 008500b000b400d200060072000a001c00c3009c001d0017008400a600290086
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MU_2 = 000e0011005c00b100f30089006e00dc0099000e004c0071005e009d00c60047
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MU_2 = 000800870080005d00ab002e005200a300d8005a0055006c0046009600140035
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MU_2 = 00540083005e00a20055006f000400ab00d600bc0042005d001400750050001d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MU_2 = 00b9009d00ac00e3007e009d00bb00f300ba009f00e6007f005f008d004e00c6
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MU_2 = 00fe0051000a00ff00c10079007c0050001c0092005a00cf00dc0004006b006a
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MU_2 = 000a00aa002a004400d0004c005c009b008000a1007a008a00b100f800010024
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MU_2 = 008e00bf00550029001f0055003b00cb006b004000c60088001c00180074000c
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MU_2 = 00ca008d007600fc00b800630065008d00b300c200c2009e0086005000330034
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MU_2 = 00920028001200f4002d009900e1006000070008009b00eb007400e00066007f
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MU_2 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MU_2 = 0076009700a0007e00f800c800bd00ce0027004e005600df0075002200cc005c
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MU_2 = 0095006c00f6002400fb003d0009007300840031005400e20037002c000e000a
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MU_2 = 001400da000a005b00e6001e0079001500b5001c002900c800be00fc00c9009f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MU_2 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MU_3 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MU_3 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MU_3 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MU_3 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MU_3 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MU_3 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MU_3 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MU_3 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MU_3 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MU_3 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MU_3 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MU_3 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MU_3 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MU_3 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MU_3 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MU_3 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MU_3 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MU_3 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MU_2 = 000000c20069004a00c4008f00f3005b0031009e008a00eb00fe00eb00fc00dc
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MU_2 = 000e0036003d0084006800730007009700ef00e800a40010006a0006000d009b
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MU_2 = 005f0057009600ec00bd00f80056006400c7002b00e900110073007300490072
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MU_2 = 008b00ef00e6008800880036000200f800e3007700bf002b00a000020067004b
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MU_2 = 002e005100d400c400cc00ef00fb009b00470003003500e50001007d000300e6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MU_2 = 0037005b0081000800ff00c2000f00c0004000470072000e007d00d800a70022
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MU_3 = 002a00f70002006400b800c3002200480082001c001700e800bc002500fa00fd
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MU_3 = 00e4005a00d100f300920063002b005e005f003400d9002b00fc0036005f00ea
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MU_3 = 000600d600ab00200038009200a600a500aa00cb001d00b3007500f900340026
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MU_3 = 00a20042008a00f00071009500610000007d00f2000f0071007200ea003d001f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MU_3 = 006800cc00b3006700d2002800f6001d00310007004000c700aa001300450082
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MU_3 = 000800c4002d009b009b00bb00190059006000250040001000cc0009001e00f2
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MU_3 = 003f00fb0043008600fa00ec00e3004300cd00a30017003b00a90003008a0076
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MU_3 = 00a800f0003900f500940084002c0094005f000c001700d900b400a200230052
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MU_3 = 00d700820013004b00d800f00065003b0001000f00eb006600e400800087007d
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MU_3 = 002800bf00c40041007e008f00c900ff00850079001b0004000400ea00350069
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MU_3 = 0023007600b500cb007200c2006700db003800dc00a9002200c10034001c00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MU_3 = 0086009b0006009f006c00e9007f000b000800b300830090006f007800a80066
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MU_3 = 00ef001f00c700cc0078006d0051002b003d00bd00100098000d00cc002500ea
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MU_3 = 001e005700f100630040005500cb00f900ca009d008c00ae00800012002b002d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MU_3 = 001d00cd008200240090007e00b700e0007d004a0062007900ad00bc0056002c
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MU_3 = 00e200f800660016001a0050001e0034007700b400f50054004e0087003a0041
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MU_3 = 00ab001b009c00a6008f002100fe00e000fe007500510075004700480059009e
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MU_3 = 00e700ad00f0000c003600c3007b00f2006300e0009300d1005100d1005500c1
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MU_3 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MU_3 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MU_3 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MU_3 = 006300b200d90063000300490034003b00f800fd00e300a5000b0086006b001b
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MU_3 = 00570061000900b10071009d00ae00f0004e009000ec00b8007600a300f200a5
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MU_3 = 009f007500930026002200f2003100b700ee00c100b30070002f008700be0003
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MU_3 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MU_3 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MU_3 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MU_3 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MU_3 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MU_3 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MU_3 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MU_3 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MU_3 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MU_3 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MU_3 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MU_3 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MU_3 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MU_3 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MU_3 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MU_3 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MU_3 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MU_3 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MU_3 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MU_3 = 00a6001900bc00dd00460076000900c9008a00ae00ed00db008b00d000570003
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MU_3 = 00b900ce0075006900f6001f00d600f900a600ce001b000f0041001f006200da
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MU_3 = 003e00ca00e000ba002f00bc002300a800d2009a00d7005f0037007f00880003
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MU_3 = 009600a200bd004c001c00bd00c100b500cd007a00d4003f003d00c3003000b0
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MU_3 = 00490072007d0082004600b6001d00d30019002900e0004e00700033003b004b
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MU_3 = 007c00c500c100b0004a00f500f900bd0020009b003700d400ea00b2009a00bf
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MU_3 = 00e1005a009a00c200d100670069007900a2003a0091007b00b60083006d0098
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MU_3 = 009d00de003d002b001000dd00a4005900da00f6009e00c0005a0059004b00c7
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MU_3 = 003700a300cb00db0036006f00f0005b003400b3008b009900c200fd009a0017
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MU_3 = 00c9004100ff00e30023003600f40047003a00d2000c0076003800a200b4003f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MU_3 = 00d40018001c00bf00a0003e0066002e0097001f00fb00f60030001d000f00fe
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MU_3 = 0091001b0019006500a2003f00cd0066008500f50013008f002900cb00d20025
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MU_3 = 00c90019008b008200ad004100e2005a00a1003000b0007e0071004c00fd00cb
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MU_3 = 000b00bf00d500120030003c0035007500ba001f00240034009c006200b80092
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MU_3 = 00ef004500b200a700e00081000b00bc002200ce0065001900f900dc0035005f
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MU_3 = 006200680007005a00e700570031004d00440022005100c9004f006600eb0045
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MU_3 = 00f8002f00e500010051001c00c50099003900770041000b00d7003a005300e7
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MU_3 = 0034007800d4006200e80064008800ea001500e500cd00d0005b00b100b200fd
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MU_3 = 00a300b9002e007c001e001b0012006600e2009c0017003d00c100b6004b003f
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MU_3 = 0004000a00df006800dc008100d600ad004f00e800d100c800b5006200840021
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MU_3 = 00ea003700750080008b00b100eb00f00022009200a000ed0094009c00f60022
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MU_3 = 002900cb008c003700a500dc00b5007c00df00ef002a002900b600d700820035
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MU_3 = 00a8002f00d2003d003b00ec0092002600410030006400cf00bc0077008e0009
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MU_3 = 00c400d100bc004f00660023005200790010004e0002004d00f300c0004800bb
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MU_3 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MU_3 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MU_3 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MU_3 = 00a5003500ba001c007d006d006f004e00d10002004000bc007c003a005700ad
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MU_3 = 0068009b008a000d009300250096000d007c0034005600b4009700cd003c00d8
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MU_3 = 007600b000e200680085005f000d0074009700f60075006f00ff00f800e2002d
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MU_3 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MU_3 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MU_3 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MU_3 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MU_3 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MU_3 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MU_3 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MU_3 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MU_3 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MU_3 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MU_3 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MU_3 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MU_3 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MU_3 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MU_3 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MU_3 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MU_3 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MU_3 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MU_3 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MU_3 = 007e00b1002a000b0094008900690043004400ca001100190010008f009f0016
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MU_3 = 002d005f000d00e10055002c0081009400e0002000c3003800390012007300c7
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MU_3 = 005a00fe0038005100c40033005300a4003c003a00ff0004008a0043003200c4
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MU_3 = 0070005500ba005f00300082001500e300bc004300c200290038002700c600ac
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MU_3 = 00a400b50084005e002f006900f400e600f000c900ea000f0056007a008b009a
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MU_3 = 00ac006b007700700038001b00700043007000eb002800aa00a20080002f001b
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MU_3 = 009f007000d600c000d70069009c00dd001c00b000c8008e0064003e0040003e
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MU_3 = 004f00f4007600c200eb00b80013001b00d800c900b900c5003b007900ef00f6
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MU_3 = 000f00df00fd003f009f00e100a900f3005100cd0063003b000c006d00a7008b
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MU_3 = 00b60090002000ae00c7006d001500d600f0003d00c600f40020002500180035
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MU_3 = 00ce005c0097004900ed00a4000600790038009300cd0047008600be0033005d
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MU_3 = 003900b9001a00c3007000a200b400df0035003700ce00080045005300e80006
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MU_3 = 00f600000037008e009400ad00b10073004400c5002f00a2009a00c7007b00c1
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MU_3 = 00610033009300d60038009a009d0071006c00dc008100ee005a004700fa00e1
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MU_3 = 008a0093001300c300c1006300f400a100a1008c00680005007500fc00d10096
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MU_3 = 0044003b0011006a00cf00d500ef001b0022004c004a001600850053009700eb
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MU_3 = 008500b000b400d200060072000a001c00c3009c001d0017008400a600290086
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MU_3 = 000e0011005c00b100f30089006e00dc0099000e004c0071005e009d00c60047
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MU_3 = 000800870080005d00ab002e005200a300d8005a0055006c0046009600140035
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MU_3 = 00540083005e00a20055006f000400ab00d600bc0042005d001400750050001d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MU_3 = 00b9009d00ac00e3007e009d00bb00f300ba009f00e6007f005f008d004e00c6
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MU_3 = 00fe0051000a00ff00c10079007c0050001c0092005a00cf00dc0004006b006a
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MU_3 = 000a00aa002a004400d0004c005c009b008000a1007a008a00b100f800010024
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MU_3 = 008e00bf00550029001f0055003b00cb006b004000c60088001c00180074000c
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MU_3 = 00ca008d007600fc00b800630065008d00b300c200c2009e0086005000330034
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MU_3 = 00920028001200f4002d009900e1006000070008009b00eb007400e00066007f
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MU_3 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MU_3 = 0076009700a0007e00f800c800bd00ce0027004e005600df0075002200cc005c
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MU_3 = 0095006c00f6002400fb003d0009007300840031005400e20037002c000e000a
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MU_3 = 001400da000a005b00e6001e0079001500b5001c002900c800be00fc00c9009f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MU_3 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MA_0 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MA_0 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MA_0 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MA_0 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MA_0 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MA_0 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MA_0 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MA_0 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MA_0 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MA_0 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MA_0 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MA_0 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MA_0 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MA_0 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MA_0 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MA_0 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MA_0 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MA_0 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MU_3 = 000000c20069004a00c4008f00f3005b0031009e008a00eb00fe00eb00fc00dc
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MU_3 = 000e0036003d0084006800730007009700ef00e800a40010006a0006000d009b
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MU_3 = 005f0057009600ec00bd00f80056006400c7002b00e900110073007300490072
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MU_3 = 008b00ef00e6008800880036000200f800e3007700bf002b00a000020067004b
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MU_3 = 002e005100d400c400cc00ef00fb009b00470003003500e50001007d000300e6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MU_3 = 0037005b0081000800ff00c2000f00c0004000470072000e007d00d800a70022
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MA_0 = 0017001d00be00db00a70009001000df00d10078005500f1004000100052002f
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MA_0 = 0010002e008800c0000c00e50028002e002a006800a700df009900ed000200dc
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MA_0 = 004a00c7004d00c90021008600f60044001b00cd00ca0018008c001b00840049
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MA_0 = 002300a30069006300100077008800bc0067009d000100ba005600cf006c001a
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MA_0 = 00d6006c005600b9006300fa00d500cc008700a5008900900028007500f700d7
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MA_0 = 009200d500fc002200c700ab006c00bc00ed0059000d007000b90097000a00e6
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MA_0 = 007800fe004600f1005b00bf00c900f3007000fe00f400ff008400fa00a0001a
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MA_0 = 00b300a500aa00fb00d9006a00b1002500c000ec001800a10049003a00260021
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MA_0 = 0085003800ac000c00360018002f00bf0011005100810053003d008b00df00ca
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MA_0 = 00290035004f009a0039001900a00022007300210048007000fa00f7002a00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MA_0 = 00e1003200ab00ed0006008700760073001c00e400c700e8003d00e3002200a4
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MA_0 = 0070002100c200fe008c00cc00030054001b00e000b80071002000fd001b00e0
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MA_0 = 000b0062001400a3002b00fa0085004a000f00ff000c005a00be0032004e0095
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MA_0 = 0093008e00c200ad00c200bb00cc008f008d00f40022002300280050006400dc
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MA_0 = 00c80058008c00f60088001f008a0082009000f2005c00b100e8009e002d0080
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MA_0 = 005800de00fb009d00f70021004a00bc00bb00c1006600a3004a001100ac0065
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MA_0 = 004c00e6003400a8001600ee00720058008e003d0048003b00eb00430099004a
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MA_0 = 003b00c2009a002f00980075003f00bf004c00270051009200250085004a0018
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MA_0 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MA_0 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MA_0 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MA_0 = 002d00c60077008b000900ea000f00cf006100b900320025000e002b00c3008c
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MA_0 = 00d00020002700b900a800c4003b00fb000b004800680020000400e900e300e1
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MA_0 = 009f007500930026002200f2003100b700ee00c100b30070002f008700be0003
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MA_0 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MA_0 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MA_0 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MA_0 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MA_0 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MA_0 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MA_0 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MA_0 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MA_0 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MA_0 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MA_0 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MA_0 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MA_0 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MA_0 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MA_0 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MA_0 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MA_0 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MA_0 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MA_0 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MA_0 = 004000c800c5000a0068006800c200c6009b00c4003d00d3008900cc006f002f
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MA_0 = 00200028008b00b2000800bd0042005700f300b9009f009a00e300d300a9009a
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MA_0 = 000a000800a9004b008b009d0037009a000000d000e800de00fb002200e0001b
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MA_0 = 005700a6006d0004000c009d004600c0006c00bd00f6002a00a4004c00d90093
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MA_0 = 0063004900c000fd004d00ac00e100280068009400e100df001c002600d60006
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MA_0 = 00920038004400fd002700b400d300cc00c000170033005b0072005b001700be
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MA_0 = 002d00ec0000008600d300b3001e003a007d00e5007400e2004d00bd00ff0070
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MA_0 = 006c00c0005b002f001b00d8004400ba00f10010000e00a8005f0060007e00cb
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MA_0 = 005c00e2004400d30013002600b6006f008f0095003100c8004c00b2006d00ea
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MA_0 = 0042002200e000e5001900cd002e008e005800bd006e00af00df00e100c40088
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MA_0 = 00f6004300bf00a300cf00a1005e00f200c70010008800280026009f00f300de
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MA_0 = 006f005f001e00cd00cb00cb0001002500bc004a008d006800710010006100fe
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MA_0 = 00c40007000800dd000f006700e900b700d8006b006c00cb007e0045005e00d2
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MA_0 = 00ab00340090003a0057002500ca00b1004400d40075009e00b2006f00090047
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MA_0 = 004e00e40028009900650092006c00e200ff002200bc00ed0039005900b40050
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MA_0 = 00b700ca00c9009d00ad004100c6005e00f60032007000c0003400e200a000af
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MA_0 = 00590076003700f500310076005900650021005c001700bb0044005900b20074
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MA_0 = 000600150083005b009900f600cb00c200bb004700a200fb00c30064003600de
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MA_0 = 00ee00c1006d00b400c7006100d8007f000400e7002100400006008e008d006b
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MA_0 = 004f004300db0009008b007b001e004d00e5008700e300ae0056001800d10075
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MA_0 = 00c7002f00a800810015005200ca00cd0014005900a700250048002700f9004f
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MA_0 = 00f900350037001b00ef000700f0005b0054002300e0001f009500ee00d30003
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MA_0 = 00eb002500e8009e009300a600250034002c00bb00f60061008100dd00180006
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MA_0 = 00a500c600bc0037007d00d900e7006800db002100cb0018001200a500c20090
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MA_0 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MA_0 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MA_0 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MA_0 = 00e30095007d008f00a700fb00d200e600ff00740053008200c800a8007000b6
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MA_0 = 00c600610015008900d20031005a003a003a00c000e3002e00be004700050043
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MA_0 = 007600b000e200680085005f000d0074009700f60075006f00ff00f800e2002d
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MA_0 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MA_0 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MA_0 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MA_0 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MA_0 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MA_0 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MA_0 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MA_0 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MA_0 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MA_0 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MA_0 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MA_0 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MA_0 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MA_0 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MA_0 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MA_0 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MA_0 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MA_0 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MA_0 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MA_0 = 008f0020004f00a000ba008e00bd0037002800e400e8002400a800db0075001f
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MA_0 = 0074002d00970098001200c00036005900b6009f0095001f008f0074006500a5
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MA_0 = 000f0039007d008400e500fe008c0085001f008a008f002d0041005400270027
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MA_0 = 00ff00ed00680060009f0075004f008300d40080000f00ca003500db00aa0002
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MA_0 = 0041008c003c009800190031006100f3001800dd00d200c800ce00b1002f001d
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MA_0 = 002b00b1000800f1001d0056009c00d9008400a200a900c1003b0024003f0017
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MA_0 = 005200b800ac00f400a3009c009c004b006000e5005d00a80050009700bc0013
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MA_0 = 00d7006500f900a9000c00b60041006f009c0012003a009d002b002e00d9009f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MA_0 = 0097006600e6007700a7006f000400e3002a00230054003100b600ec00d40060
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MA_0 = 006a00c3005f00ce00b900230072009d0021006d007b00970001000f00230088
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MA_0 = 001c00d900c4002e0091003b003a0046008400da009500000099002900590056
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MA_0 = 00d000ce007600c100e80065003c0036001f00ed00ba003b0089005d00400024
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MA_0 = 008800ac00a800350074007700ee00f6009a00330003007c0058007d000e009e
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MA_0 = 006b005d00c0003900cd00e800db008500d10008000a008300b300a5005d00c5
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MA_0 = 00b8006300940025000300fc0060002500c10032008b009400de0099004700f6
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MA_0 = 004500b7001900510086009b0072003b0044004b00680008001800eb002300d8
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MA_0 = 0037007600ce00ca00c2006500ef001000d9009900a7003f005500ee001f00b1
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MA_0 = 00890055002900b400800058002e00c600a400ae002800a200f100fc002400e8
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MA_0 = 00a300350051000d006f00fd004800cb0022000f00fd00c0002300a4007a00c5
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MA_0 = 0092005100d70060007a00dd00ad005d0061001800f0004600cc00ff00a6001d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MA_0 = 00a6008200ea00dc000f0037006b005d00e3006a00f7004800cb009000ba005e
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MA_0 = 00a3009e00ea005300e600c800ea00ef0049000d005300cc00dd00ed000b00d9
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MA_0 = 008c008e00c0001c006300d6007500a900bf00cf003100e8004c005b00130094
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MA_0 = 0069009f009f0034004600a1007c00da00f700d1006400f8003500bd00b400ed
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MA_0 = 002200f8003700db002f003700c2003e002d00c800b1009200f60006002300ce
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MA_0 = 004a008e007000160096004a003d0069009f00f900c6004c00c50050005c00d1
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MA_0 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MA_0 = 00aa00cd00e0003100fc005d006300210090004800e3000a0033008e00a100c9
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MA_0 = 00b30093008f009500b600a70053003000210036000c0036008e00b9008c00d4
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MA_0 = 001400da000a005b00e6001e0079001500b5001c002900c800be00fc00c9009f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MA_0 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MA_1 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MA_1 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MA_1 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MA_1 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MA_1 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MA_1 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MA_1 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MA_1 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MA_1 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MA_1 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MA_1 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MA_1 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MA_1 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MA_1 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MA_1 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MA_1 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MA_1 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MA_1 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MA_0 = 000e00e70028008f0006003e00ec00dc00a100ad004f0041002700fb00a8004c
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MA_0 = 005200fc00cb009100a900f300b800c60085004d00cc00b70061003500110044
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MA_0 = 005c007c002d005d007e00d2006900a5004700a9003700be0014005800f800ca
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MA_0 = 003500f500cd0051006600cf0068009f00d300d000e00006003f003a00e9006b
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MA_0 = 003a00c500f700f900af001a00f70012003400be00d90053009b00e6009400f6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MA_0 = 0050001100e70002009600a600430096002000ee00760014005a005a000a004e
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MA_1 = 0017001d00be00db00a70009001000df00d10078005500f1004000100052002f
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MA_1 = 0010002e008800c0000c00e50028002e002a006800a700df009900ed000200dc
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MA_1 = 004a00c7004d00c90021008600f60044001b00cd00ca0018008c001b00840049
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MA_1 = 002300a30069006300100077008800bc0067009d000100ba005600cf006c001a
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MA_1 = 00d6006c005600b9006300fa00d500cc008700a5008900900028007500f700d7
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MA_1 = 009200d500fc002200c700ab006c00bc00ed0059000d007000b90097000a00e6
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MA_1 = 007800fe004600f1005b00bf00c900f3007000fe00f400ff008400fa00a0001a
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MA_1 = 00b300a500aa00fb00d9006a00b1002500c000ec001800a10049003a00260021
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MA_1 = 0085003800ac000c00360018002f00bf0011005100810053003d008b00df00ca
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MA_1 = 00290035004f009a0039001900a00022007300210048007000fa00f7002a00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MA_1 = 00e1003200ab00ed0006008700760073001c00e400c700e8003d00e3002200a4
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MA_1 = 0070002100c200fe008c00cc00030054001b00e000b80071002000fd001b00e0
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MA_1 = 000b0062001400a3002b00fa0085004a000f00ff000c005a00be0032004e0095
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MA_1 = 0093008e00c200ad00c200bb00cc008f008d00f40022002300280050006400dc
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MA_1 = 00c80058008c00f60088001f008a0082009000f2005c00b100e8009e002d0080
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MA_1 = 005800de00fb009d00f70021004a00bc00bb00c1006600a3004a001100ac0065
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MA_1 = 004c00e6003400a8001600ee00720058008e003d0048003b00eb00430099004a
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MA_1 = 003b00c2009a002f00980075003f00bf004c00270051009200250085004a0018
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MA_1 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MA_1 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MA_1 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MA_1 = 002d00c60077008b000900ea000f00cf006100b900320025000e002b00c3008c
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MA_1 = 00d00020002700b900a800c4003b00fb000b004800680020000400e900e300e1
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MA_1 = 009f007500930026002200f2003100b700ee00c100b30070002f008700be0003
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MA_1 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MA_1 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MA_1 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MA_1 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MA_1 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MA_1 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MA_1 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MA_1 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MA_1 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MA_1 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MA_1 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MA_1 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MA_1 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MA_1 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MA_1 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MA_1 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MA_1 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MA_1 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MA_1 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MA_1 = 004000c800c5000a0068006800c200c6009b00c4003d00d3008900cc006f002f
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MA_1 = 00200028008b00b2000800bd0042005700f300b9009f009a00e300d300a9009a
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MA_1 = 000a000800a9004b008b009d0037009a000000d000e800de00fb002200e0001b
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MA_1 = 005700a6006d0004000c009d004600c0006c00bd00f6002a00a4004c00d90093
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MA_1 = 0063004900c000fd004d00ac00e100280068009400e100df001c002600d60006
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MA_1 = 00920038004400fd002700b400d300cc00c000170033005b0072005b001700be
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MA_1 = 002d00ec0000008600d300b3001e003a007d00e5007400e2004d00bd00ff0070
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MA_1 = 006c00c0005b002f001b00d8004400ba00f10010000e00a8005f0060007e00cb
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MA_1 = 005c00e2004400d30013002600b6006f008f0095003100c8004c00b2006d00ea
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MA_1 = 0042002200e000e5001900cd002e008e005800bd006e00af00df00e100c40088
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MA_1 = 00f6004300bf00a300cf00a1005e00f200c70010008800280026009f00f300de
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MA_1 = 006f005f001e00cd00cb00cb0001002500bc004a008d006800710010006100fe
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MA_1 = 00c40007000800dd000f006700e900b700d8006b006c00cb007e0045005e00d2
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MA_1 = 00ab00340090003a0057002500ca00b1004400d40075009e00b2006f00090047
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MA_1 = 004e00e40028009900650092006c00e200ff002200bc00ed0039005900b40050
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MA_1 = 00b700ca00c9009d00ad004100c6005e00f60032007000c0003400e200a000af
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MA_1 = 00590076003700f500310076005900650021005c001700bb0044005900b20074
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MA_1 = 000600150083005b009900f600cb00c200bb004700a200fb00c30064003600de
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MA_1 = 00ee00c1006d00b400c7006100d8007f000400e7002100400006008e008d006b
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MA_1 = 004f004300db0009008b007b001e004d00e5008700e300ae0056001800d10075
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MA_1 = 00c7002f00a800810015005200ca00cd0014005900a700250048002700f9004f
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MA_1 = 00f900350037001b00ef000700f0005b0054002300e0001f009500ee00d30003
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MA_1 = 00eb002500e8009e009300a600250034002c00bb00f60061008100dd00180006
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MA_1 = 00a500c600bc0037007d00d900e7006800db002100cb0018001200a500c20090
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MA_1 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MA_1 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MA_1 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MA_1 = 00e30095007d008f00a700fb00d200e600ff00740053008200c800a8007000b6
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MA_1 = 00c600610015008900d20031005a003a003a00c000e3002e00be004700050043
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MA_1 = 007600b000e200680085005f000d0074009700f60075006f00ff00f800e2002d
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MA_1 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MA_1 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MA_1 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MA_1 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MA_1 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MA_1 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MA_1 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MA_1 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MA_1 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MA_1 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MA_1 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MA_1 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MA_1 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MA_1 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MA_1 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MA_1 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MA_1 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MA_1 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MA_1 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MA_1 = 008f0020004f00a000ba008e00bd0037002800e400e8002400a800db0075001f
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MA_1 = 0074002d00970098001200c00036005900b6009f0095001f008f0074006500a5
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MA_1 = 000f0039007d008400e500fe008c0085001f008a008f002d0041005400270027
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MA_1 = 00ff00ed00680060009f0075004f008300d40080000f00ca003500db00aa0002
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MA_1 = 0041008c003c009800190031006100f3001800dd00d200c800ce00b1002f001d
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MA_1 = 002b00b1000800f1001d0056009c00d9008400a200a900c1003b0024003f0017
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MA_1 = 005200b800ac00f400a3009c009c004b006000e5005d00a80050009700bc0013
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MA_1 = 00d7006500f900a9000c00b60041006f009c0012003a009d002b002e00d9009f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MA_1 = 0097006600e6007700a7006f000400e3002a00230054003100b600ec00d40060
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MA_1 = 006a00c3005f00ce00b900230072009d0021006d007b00970001000f00230088
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MA_1 = 001c00d900c4002e0091003b003a0046008400da009500000099002900590056
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MA_1 = 00d000ce007600c100e80065003c0036001f00ed00ba003b0089005d00400024
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MA_1 = 008800ac00a800350074007700ee00f6009a00330003007c0058007d000e009e
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MA_1 = 006b005d00c0003900cd00e800db008500d10008000a008300b300a5005d00c5
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MA_1 = 00b8006300940025000300fc0060002500c10032008b009400de0099004700f6
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MA_1 = 004500b7001900510086009b0072003b0044004b00680008001800eb002300d8
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MA_1 = 0037007600ce00ca00c2006500ef001000d9009900a7003f005500ee001f00b1
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MA_1 = 00890055002900b400800058002e00c600a400ae002800a200f100fc002400e8
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MA_1 = 00a300350051000d006f00fd004800cb0022000f00fd00c0002300a4007a00c5
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MA_1 = 0092005100d70060007a00dd00ad005d0061001800f0004600cc00ff00a6001d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MA_1 = 00a6008200ea00dc000f0037006b005d00e3006a00f7004800cb009000ba005e
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MA_1 = 00a3009e00ea005300e600c800ea00ef0049000d005300cc00dd00ed000b00d9
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MA_1 = 008c008e00c0001c006300d6007500a900bf00cf003100e8004c005b00130094
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MA_1 = 0069009f009f0034004600a1007c00da00f700d1006400f8003500bd00b400ed
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MA_1 = 002200f8003700db002f003700c2003e002d00c800b1009200f60006002300ce
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MA_1 = 004a008e007000160096004a003d0069009f00f900c6004c00c50050005c00d1
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MA_1 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MA_1 = 00aa00cd00e0003100fc005d006300210090004800e3000a0033008e00a100c9
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MA_1 = 00b30093008f009500b600a70053003000210036000c0036008e00b9008c00d4
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MA_1 = 001400da000a005b00e6001e0079001500b5001c002900c800be00fc00c9009f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MA_1 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MA_2 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MA_2 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MA_2 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MA_2 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MA_2 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MA_2 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MA_2 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MA_2 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MA_2 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MA_2 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MA_2 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MA_2 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MA_2 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MA_2 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MA_2 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MA_2 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MA_2 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MA_2 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MA_1 = 000e00e70028008f0006003e00ec00dc00a100ad004f0041002700fb00a8004c
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MA_1 = 005200fc00cb009100a900f300b800c60085004d00cc00b70061003500110044
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MA_1 = 005c007c002d005d007e00d2006900a5004700a9003700be0014005800f800ca
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MA_1 = 003500f500cd0051006600cf0068009f00d300d000e00006003f003a00e9006b
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MA_1 = 003a00c500f700f900af001a00f70012003400be00d90053009b00e6009400f6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MA_1 = 0050001100e70002009600a600430096002000ee00760014005a005a000a004e
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MA_2 = 0017001d00be00db00a70009001000df00d10078005500f1004000100052002f
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MA_2 = 0010002e008800c0000c00e50028002e002a006800a700df009900ed000200dc
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MA_2 = 004a00c7004d00c90021008600f60044001b00cd00ca0018008c001b00840049
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MA_2 = 002300a30069006300100077008800bc0067009d000100ba005600cf006c001a
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MA_2 = 00d6006c005600b9006300fa00d500cc008700a5008900900028007500f700d7
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MA_2 = 009200d500fc002200c700ab006c00bc00ed0059000d007000b90097000a00e6
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MA_2 = 007800fe004600f1005b00bf00c900f3007000fe00f400ff008400fa00a0001a
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MA_2 = 00b300a500aa00fb00d9006a00b1002500c000ec001800a10049003a00260021
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MA_2 = 0085003800ac000c00360018002f00bf0011005100810053003d008b00df00ca
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MA_2 = 00290035004f009a0039001900a00022007300210048007000fa00f7002a00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MA_2 = 00e1003200ab00ed0006008700760073001c00e400c700e8003d00e3002200a4
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MA_2 = 0070002100c200fe008c00cc00030054001b00e000b80071002000fd001b00e0
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MA_2 = 000b0062001400a3002b00fa0085004a000f00ff000c005a00be0032004e0095
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MA_2 = 0093008e00c200ad00c200bb00cc008f008d00f40022002300280050006400dc
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MA_2 = 00c80058008c00f60088001f008a0082009000f2005c00b100e8009e002d0080
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MA_2 = 005800de00fb009d00f70021004a00bc00bb00c1006600a3004a001100ac0065
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MA_2 = 004c00e6003400a8001600ee00720058008e003d0048003b00eb00430099004a
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MA_2 = 003b00c2009a002f00980075003f00bf004c00270051009200250085004a0018
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MA_2 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MA_2 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MA_2 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MA_2 = 002d00c60077008b000900ea000f00cf006100b900320025000e002b00c3008c
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MA_2 = 00d00020002700b900a800c4003b00fb000b004800680020000400e900e300e1
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MA_2 = 009f007500930026002200f2003100b700ee00c100b30070002f008700be0003
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MA_2 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MA_2 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MA_2 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MA_2 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MA_2 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MA_2 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MA_2 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MA_2 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MA_2 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MA_2 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MA_2 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MA_2 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MA_2 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MA_2 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MA_2 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MA_2 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MA_2 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MA_2 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MA_2 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MA_2 = 004000c800c5000a0068006800c200c6009b00c4003d00d3008900cc006f002f
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MA_2 = 00200028008b00b2000800bd0042005700f300b9009f009a00e300d300a9009a
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MA_2 = 000a000800a9004b008b009d0037009a000000d000e800de00fb002200e0001b
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MA_2 = 005700a6006d0004000c009d004600c0006c00bd00f6002a00a4004c00d90093
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MA_2 = 0063004900c000fd004d00ac00e100280068009400e100df001c002600d60006
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MA_2 = 00920038004400fd002700b400d300cc00c000170033005b0072005b001700be
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MA_2 = 002d00ec0000008600d300b3001e003a007d00e5007400e2004d00bd00ff0070
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MA_2 = 006c00c0005b002f001b00d8004400ba00f10010000e00a8005f0060007e00cb
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MA_2 = 005c00e2004400d30013002600b6006f008f0095003100c8004c00b2006d00ea
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MA_2 = 0042002200e000e5001900cd002e008e005800bd006e00af00df00e100c40088
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MA_2 = 00f6004300bf00a300cf00a1005e00f200c70010008800280026009f00f300de
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MA_2 = 006f005f001e00cd00cb00cb0001002500bc004a008d006800710010006100fe
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MA_2 = 00c40007000800dd000f006700e900b700d8006b006c00cb007e0045005e00d2
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MA_2 = 00ab00340090003a0057002500ca00b1004400d40075009e00b2006f00090047
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MA_2 = 004e00e40028009900650092006c00e200ff002200bc00ed0039005900b40050
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MA_2 = 00b700ca00c9009d00ad004100c6005e00f60032007000c0003400e200a000af
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MA_2 = 00590076003700f500310076005900650021005c001700bb0044005900b20074
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MA_2 = 000600150083005b009900f600cb00c200bb004700a200fb00c30064003600de
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MA_2 = 00ee00c1006d00b400c7006100d8007f000400e7002100400006008e008d006b
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MA_2 = 004f004300db0009008b007b001e004d00e5008700e300ae0056001800d10075
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MA_2 = 00c7002f00a800810015005200ca00cd0014005900a700250048002700f9004f
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MA_2 = 00f900350037001b00ef000700f0005b0054002300e0001f009500ee00d30003
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MA_2 = 00eb002500e8009e009300a600250034002c00bb00f60061008100dd00180006
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MA_2 = 00a500c600bc0037007d00d900e7006800db002100cb0018001200a500c20090
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MA_2 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MA_2 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MA_2 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MA_2 = 00e30095007d008f00a700fb00d200e600ff00740053008200c800a8007000b6
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MA_2 = 00c600610015008900d20031005a003a003a00c000e3002e00be004700050043
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MA_2 = 007600b000e200680085005f000d0074009700f60075006f00ff00f800e2002d
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MA_2 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MA_2 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MA_2 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MA_2 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MA_2 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MA_2 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MA_2 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MA_2 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MA_2 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MA_2 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MA_2 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MA_2 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MA_2 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MA_2 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MA_2 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MA_2 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MA_2 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MA_2 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MA_2 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MA_2 = 008f0020004f00a000ba008e00bd0037002800e400e8002400a800db0075001f
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MA_2 = 0074002d00970098001200c00036005900b6009f0095001f008f0074006500a5
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MA_2 = 000f0039007d008400e500fe008c0085001f008a008f002d0041005400270027
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MA_2 = 00ff00ed00680060009f0075004f008300d40080000f00ca003500db00aa0002
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MA_2 = 0041008c003c009800190031006100f3001800dd00d200c800ce00b1002f001d
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MA_2 = 002b00b1000800f1001d0056009c00d9008400a200a900c1003b0024003f0017
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MA_2 = 005200b800ac00f400a3009c009c004b006000e5005d00a80050009700bc0013
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MA_2 = 00d7006500f900a9000c00b60041006f009c0012003a009d002b002e00d9009f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MA_2 = 0097006600e6007700a7006f000400e3002a00230054003100b600ec00d40060
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MA_2 = 006a00c3005f00ce00b900230072009d0021006d007b00970001000f00230088
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MA_2 = 001c00d900c4002e0091003b003a0046008400da009500000099002900590056
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MA_2 = 00d000ce007600c100e80065003c0036001f00ed00ba003b0089005d00400024
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MA_2 = 008800ac00a800350074007700ee00f6009a00330003007c0058007d000e009e
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MA_2 = 006b005d00c0003900cd00e800db008500d10008000a008300b300a5005d00c5
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MA_2 = 00b8006300940025000300fc0060002500c10032008b009400de0099004700f6
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MA_2 = 004500b7001900510086009b0072003b0044004b00680008001800eb002300d8
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MA_2 = 0037007600ce00ca00c2006500ef001000d9009900a7003f005500ee001f00b1
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MA_2 = 00890055002900b400800058002e00c600a400ae002800a200f100fc002400e8
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MA_2 = 00a300350051000d006f00fd004800cb0022000f00fd00c0002300a4007a00c5
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MA_2 = 0092005100d70060007a00dd00ad005d0061001800f0004600cc00ff00a6001d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MA_2 = 00a6008200ea00dc000f0037006b005d00e3006a00f7004800cb009000ba005e
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MA_2 = 00a3009e00ea005300e600c800ea00ef0049000d005300cc00dd00ed000b00d9
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MA_2 = 008c008e00c0001c006300d6007500a900bf00cf003100e8004c005b00130094
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MA_2 = 0069009f009f0034004600a1007c00da00f700d1006400f8003500bd00b400ed
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MA_2 = 002200f8003700db002f003700c2003e002d00c800b1009200f60006002300ce
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MA_2 = 004a008e007000160096004a003d0069009f00f900c6004c00c50050005c00d1
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MA_2 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MA_2 = 00aa00cd00e0003100fc005d006300210090004800e3000a0033008e00a100c9
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MA_2 = 00b30093008f009500b600a70053003000210036000c0036008e00b9008c00d4
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MA_2 = 001400da000a005b00e6001e0079001500b5001c002900c800be00fc00c9009f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MA_2 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MA_3 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MA_3 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MA_3 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MA_3 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MA_3 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MA_3 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MA_3 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MA_3 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MA_3 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MA_3 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MA_3 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MA_3 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MA_3 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MA_3 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MA_3 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MA_3 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MA_3 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MA_3 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MA_2 = 000e00e70028008f0006003e00ec00dc00a100ad004f0041002700fb00a8004c
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MA_2 = 005200fc00cb009100a900f300b800c60085004d00cc00b70061003500110044
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MA_2 = 005c007c002d005d007e00d2006900a5004700a9003700be0014005800f800ca
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MA_2 = 003500f500cd0051006600cf0068009f00d300d000e00006003f003a00e9006b
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MA_2 = 003a00c500f700f900af001a00f70012003400be00d90053009b00e6009400f6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MA_2 = 0050001100e70002009600a600430096002000ee00760014005a005a000a004e
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MA_3 = 0017001d00be00db00a70009001000df00d10078005500f1004000100052002f
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MA_3 = 0010002e008800c0000c00e50028002e002a006800a700df009900ed000200dc
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MA_3 = 004a00c7004d00c90021008600f60044001b00cd00ca0018008c001b00840049
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MA_3 = 002300a30069006300100077008800bc0067009d000100ba005600cf006c001a
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MA_3 = 00d6006c005600b9006300fa00d500cc008700a5008900900028007500f700d7
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MA_3 = 009200d500fc002200c700ab006c00bc00ed0059000d007000b90097000a00e6
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MA_3 = 007800fe004600f1005b00bf00c900f3007000fe00f400ff008400fa00a0001a
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MA_3 = 00b300a500aa00fb00d9006a00b1002500c000ec001800a10049003a00260021
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MA_3 = 0085003800ac000c00360018002f00bf0011005100810053003d008b00df00ca
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MA_3 = 00290035004f009a0039001900a00022007300210048007000fa00f7002a00ec
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MA_3 = 00e1003200ab00ed0006008700760073001c00e400c700e8003d00e3002200a4
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MA_3 = 0070002100c200fe008c00cc00030054001b00e000b80071002000fd001b00e0
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MA_3 = 000b0062001400a3002b00fa0085004a000f00ff000c005a00be0032004e0095
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MA_3 = 0093008e00c200ad00c200bb00cc008f008d00f40022002300280050006400dc
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MA_3 = 00c80058008c00f60088001f008a0082009000f2005c00b100e8009e002d0080
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MA_3 = 005800de00fb009d00f70021004a00bc00bb00c1006600a3004a001100ac0065
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MA_3 = 004c00e6003400a8001600ee00720058008e003d0048003b00eb00430099004a
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MA_3 = 003b00c2009a002f00980075003f00bf004c00270051009200250085004a0018
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MA_3 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MA_3 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MA_3 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MA_3 = 002d00c60077008b000900ea000f00cf006100b900320025000e002b00c3008c
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MA_3 = 00d00020002700b900a800c4003b00fb000b004800680020000400e900e300e1
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MA_3 = 009f007500930026002200f2003100b700ee00c100b30070002f008700be0003
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MA_3 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MA_3 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MA_3 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MA_3 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MA_3 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MA_3 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MA_3 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MA_3 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MA_3 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MA_3 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MA_3 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MA_3 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MA_3 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MA_3 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MA_3 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MA_3 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MA_3 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MA_3 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MA_3 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MA_3 = 004000c800c5000a0068006800c200c6009b00c4003d00d3008900cc006f002f
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MA_3 = 00200028008b00b2000800bd0042005700f300b9009f009a00e300d300a9009a
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MA_3 = 000a000800a9004b008b009d0037009a000000d000e800de00fb002200e0001b
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MA_3 = 005700a6006d0004000c009d004600c0006c00bd00f6002a00a4004c00d90093
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MA_3 = 0063004900c000fd004d00ac00e100280068009400e100df001c002600d60006
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MA_3 = 00920038004400fd002700b400d300cc00c000170033005b0072005b001700be
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MA_3 = 002d00ec0000008600d300b3001e003a007d00e5007400e2004d00bd00ff0070
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MA_3 = 006c00c0005b002f001b00d8004400ba00f10010000e00a8005f0060007e00cb
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MA_3 = 005c00e2004400d30013002600b6006f008f0095003100c8004c00b2006d00ea
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MA_3 = 0042002200e000e5001900cd002e008e005800bd006e00af00df00e100c40088
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MA_3 = 00f6004300bf00a300cf00a1005e00f200c70010008800280026009f00f300de
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MA_3 = 006f005f001e00cd00cb00cb0001002500bc004a008d006800710010006100fe
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MA_3 = 00c40007000800dd000f006700e900b700d8006b006c00cb007e0045005e00d2
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MA_3 = 00ab00340090003a0057002500ca00b1004400d40075009e00b2006f00090047
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MA_3 = 004e00e40028009900650092006c00e200ff002200bc00ed0039005900b40050
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MA_3 = 00b700ca00c9009d00ad004100c6005e00f60032007000c0003400e200a000af
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MA_3 = 00590076003700f500310076005900650021005c001700bb0044005900b20074
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MA_3 = 000600150083005b009900f600cb00c200bb004700a200fb00c30064003600de
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MA_3 = 00ee00c1006d00b400c7006100d8007f000400e7002100400006008e008d006b
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MA_3 = 004f004300db0009008b007b001e004d00e5008700e300ae0056001800d10075
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MA_3 = 00c7002f00a800810015005200ca00cd0014005900a700250048002700f9004f
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MA_3 = 00f900350037001b00ef000700f0005b0054002300e0001f009500ee00d30003
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MA_3 = 00eb002500e8009e009300a600250034002c00bb00f60061008100dd00180006
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MA_3 = 00a500c600bc0037007d00d900e7006800db002100cb0018001200a500c20090
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MA_3 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MA_3 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MA_3 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MA_3 = 00e30095007d008f00a700fb00d200e600ff00740053008200c800a8007000b6
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MA_3 = 00c600610015008900d20031005a003a003a00c000e3002e00be004700050043
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MA_3 = 007600b000e200680085005f000d0074009700f60075006f00ff00f800e2002d
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MA_3 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
-
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MA_3 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MA_3 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MA_3 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MA_3 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MA_3 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MA_3 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MA_3 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MA_3 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MA_3 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MA_3 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MA_3 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MA_3 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MA_3 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MA_3 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MA_3 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MA_3 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MA_3 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MA_3 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MA_3 = 008f0020004f00a000ba008e00bd0037002800e400e8002400a800db0075001f
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MA_3 = 0074002d00970098001200c00036005900b6009f0095001f008f0074006500a5
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MA_3 = 000f0039007d008400e500fe008c0085001f008a008f002d0041005400270027
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MA_3 = 00ff00ed00680060009f0075004f008300d40080000f00ca003500db00aa0002
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MA_3 = 0041008c003c009800190031006100f3001800dd00d200c800ce00b1002f001d
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MA_3 = 002b00b1000800f1001d0056009c00d9008400a200a900c1003b0024003f0017
+
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MA_3 = 005200b800ac00f400a3009c009c004b006000e5005d00a80050009700bc0013
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MA_3 = 00d7006500f900a9000c00b60041006f009c0012003a009d002b002e00d9009f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MA_3 = 0097006600e6007700a7006f000400e3002a00230054003100b600ec00d40060
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MA_3 = 006a00c3005f00ce00b900230072009d0021006d007b00970001000f00230088
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MA_3 = 001c00d900c4002e0091003b003a0046008400da009500000099002900590056
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MA_3 = 00d000ce007600c100e80065003c0036001f00ed00ba003b0089005d00400024
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MA_3 = 008800ac00a800350074007700ee00f6009a00330003007c0058007d000e009e
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MA_3 = 006b005d00c0003900cd00e800db008500d10008000a008300b300a5005d00c5
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MA_3 = 00b8006300940025000300fc0060002500c10032008b009400de0099004700f6
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MA_3 = 004500b7001900510086009b0072003b0044004b00680008001800eb002300d8
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MA_3 = 0037007600ce00ca00c2006500ef001000d9009900a7003f005500ee001f00b1
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MA_3 = 00890055002900b400800058002e00c600a400ae002800a200f100fc002400e8
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MA_3 = 00a300350051000d006f00fd004800cb0022000f00fd00c0002300a4007a00c5
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MA_3 = 0092005100d70060007a00dd00ad005d0061001800f0004600cc00ff00a6001d
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MA_3 = 00a6008200ea00dc000f0037006b005d00e3006a00f7004800cb009000ba005e
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MA_3 = 00a3009e00ea005300e600c800ea00ef0049000d005300cc00dd00ed000b00d9
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MA_3 = 008c008e00c0001c006300d6007500a900bf00cf003100e8004c005b00130094
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MA_3 = 0069009f009f0034004600a1007c00da00f700d1006400f8003500bd00b400ed
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MA_3 = 002200f8003700db002f003700c2003e002d00c800b1009200f60006002300ce
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MA_3 = 004a008e007000160096004a003d0069009f00f900c6004c00c50050005c00d1
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MA_3 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MA_3 = 00aa00cd00e0003100fc005d006300210090004800e3000a0033008e00a100c9
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MA_3 = 00b30093008f009500b600a70053003000210036000c0036008e00b9008c00d4
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MA_3 = 001400da000a005b00e6001e0079001500b5001c002900c800be00fc00c9009f
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MA_3 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MA_3 = 000e00e70028008f0006003e00ec00dc00a100ad004f0041002700fb00a8004c
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MA_3 = 005200fc00cb009100a900f300b800c60085004d00cc00b70061003500110044
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MA_3 = 005c007c002d005d007e00d2006900a5004700a9003700be0014005800f800ca
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MA_3 = 003500f500cd0051006600cf0068009f00d300d000e00006003f003a00e9006b
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MA_3 = 003a00c500f700f900af001a00f70012003400be00d90053009b00e6009400f6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MA_3 = 0050001100e70002009600a600430096002000ee00760014005a005a000a004e
OutlineShadowWithDrawTextNormalAndVertical_0_DVSans_EColor16MAP_0 = 003b00560048009a0025002400bb006b008000c5003f005200cf004400c300d8
@@ -6059,55 +6179,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVSans_EColor16MAP_0 = 008400dc002d007f00970069007500b70044001000c200fd009000ad00150080
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MAP_0 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MAP_0 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MAP_0 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MAP_0 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MAP_0 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MAP_0 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MAP_0 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MAP_0 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MAP_0 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MAP_0 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MAP_0 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MAP_0 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MAP_0 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MAP_0 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MAP_0 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MAP_0 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MAP_0 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MAP_0 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MAP_0 = 002e0065005e0057007e00ab00aa005f005d006400c300050044008700ed00e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MAP_0 = 002700a700680064006900500025007d00ee00b100b100b50023008000a400e7
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MAP_0 = 004100be003c00b80043000a0039008300f4005300a400fc0072000d00120060
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MAP_0 = 00f200ab003a00d0000d001e006500f500f8004700db0054008a002b0043000f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MAP_0 = 004500b500cc00fd00770051007000ea00f80028008d00b000930043002000a9
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MAP_0 = 004400e9009200b600300037000e003f0072009200bf00e300a000c000f4007b
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MAP_0 = 00880091000700b900a600b5002500160031000c00a500e50021009a006c0020
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MAP_0 = 00e100cd000700a10086003600a4007c00b4007100ab00f00030003a00df00f8
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MAP_0 = 000b009300c500930006007300bb00e5002a009500f30088000600a100490080
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MAP_0 = 009000ee009b007800bb005e007300100052007b0050003700e200f200cb00dd
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MAP_0 = 009900e700f500f800de003f00460066001b0052006c002300ff0060006800c6
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MAP_0 = 00700097002f00e4002a00b100540057009400cb002400b700f100c70023004e
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MAP_0 = 00f700380084005a006c00ff002b00ae00410030003000bc001a00a900f5001d
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MAP_0 = 00b40035004b002000b300cf00f7003100dc00cb0011001600ef00e900e3001a
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MAP_0 = 00eb00a2006900a500470087002f00a100b1009900e800f70016000a00cf00cf
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MAP_0 = 008b00be0003007b0071007a00e6003a002500100013003500de009d008f004a
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MAP_0 = 002100a1008c00ad00810042002d004700eb00ae00f700c700ef000900b20022
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MAP_0 = 0094000700d2003400d500a100cd0011009e003a00b000ce004f000c0035003f
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MAP_0 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MAP_0 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MAP_0 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MAP_0 = 0017001500ae001a0090009a0099007600e400af0035005800c9007b00840075
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MAP_0 = 007400cb0023002a0057000c0050002d004d00be00e000a200aa00210061007d
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MAP_0 = 00ab006e007900df00770091004200cb00f200dd00d100be009600ae004e00f7
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MAP_0 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MAP_0 = 004d003100c90091009d00cc00de00ff009b009b001200670061008c00980022
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MAP_0 = 0072000b004e005800c2009c006100f0008f00750022009f001d0018001900c4
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MAP_0 = 00ca00af007500c100aa009a00c00088004f000800220039006c00e100a20002
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MAP_0 = 004100eb00c60035003300df00220021005c00fe00ad008f00af00e300560091
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MAP_0 = 00cf00be0011009c001d004000de00f000880099004900c000440037002600c6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MAP_0 = 00ef0069006b00ba00b1009e004d000800f6008f008f00d700aa00c100d30018
OutlineShadowWithDrawTextNormalAndVertical_0_DVMono_EColor16MAP_0 = 00bd00400004000200df007e003800db00a70097008500f700da00cc00f60023
@@ -6127,55 +6249,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVMono_EColor16MAP_0 = 005d00cf002100b1007200b6001a00ee007a00dd003c0038000c004400c800cc
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MAP_0 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MAP_0 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MAP_0 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MAP_0 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MAP_0 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MAP_0 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MAP_0 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MAP_0 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MAP_0 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MAP_0 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MAP_0 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MAP_0 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MAP_0 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MAP_0 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MAP_0 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MAP_0 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MAP_0 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MAP_0 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MAP_0 = 00160044008800f0001c009f00af003200b00099000300b00019001a00d500c0
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MAP_0 = 0078004b0049001a00e7000e0081002f00db0009000000c1007d00b7009d008f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MAP_0 = 00f8008000eb00150061007c0011008b006700d2004b00b100620006008d00a7
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MAP_0 = 004f000a001f00e300c10007005e000900ed0056006300e400c7008d00f60067
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MAP_0 = 000000900065008600a700a7000e000f009400c1000700870000001c00330054
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MAP_0 = 000a00b4002800bf00f000b500e00025005100b2006e0023001000ba00d60043
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MAP_0 = 001c003d00a900e7006600ac007400f500f500b0008300cc00ce000e00230014
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MAP_0 = 009c00ca0033005500cb00e700f9004c00360080004f00da008f005e006e0008
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MAP_0 = 00de009000d1009700cd00f100f200c20053005b0081006c004700fe00760069
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MAP_0 = 008900830090008000fe0099005300e4007c00fe00d800e1006b008c004300b9
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MAP_0 = 0063004a00e7001100d50087002600b400b8007400cc00b800fb008b00e80052
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MAP_0 = 00a3005600c800b0004e005d00bf003800e500b300c200de00e4002700b200f2
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MAP_0 = 007900bc00390089005300dd0026006400160004006e00d9008900a3008800fb
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MAP_0 = 004d0070001c004900ec000d00ec003e00a40007000700ae00bc00c100960020
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MAP_0 = 004e00da00fd00fe00a400bb003300f7000a00f40050007d00680038001e005e
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MAP_0 = 00590077005c005500dd000700b4000000ba007300d8002a00fa00f800d60077
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MAP_0 = 00d90028007f0027003400d9007200e5006000ca00460023003c00ef00e50017
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MAP_0 = 0082003700da0003003900ff001d000a000000430015006800a9000500ce0038
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MAP_0 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MAP_0 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MAP_0 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MAP_0 = 00ae006700fe007d007a008600d6001100fa007500380010005d00ab00bc00b5
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MAP_0 = 00a20028003600250023005500b300be005300ce0058002500b10080003b002c
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MAP_0 = 00e1008500790033006e005200e4006f00ae001100dc007e005e00aa00ce00e3
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MAP_0 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MAP_0 = 007b00f4004b00cd004a00d4004d0061007d00dc00dd003600be00a900110092
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MAP_0 = 00e100ad0017001000e900230083008900da002600d6005a002a00ca004200be
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MAP_0 = 003800c1007e00db00d4009d00f0002000210005001200fa006800540076003c
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MAP_0 = 005400340010000100de007e0050004500a7002b009c004f006a00a4000b0064
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MAP_0 = 006100ab001900f2002d00e1000100860096007e0098009d0051007a00bf0098
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MAP_0 = 0044008500ac006c00ff009a005e009c0075002d0027003e00e6006d00b3006e
OutlineShadowWithDrawTextNormalAndVertical_0_DVSerif_EColor16MAP_0 = 00e3009e00b6005b009a00c000b300e200f00075006b00cf002c00d1003a0087
@@ -6195,55 +6319,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVSerif_EColor16MAP_0 = 00fb00b3003f004c00e7001c005900e400b6008c0015003500b000c1003d0072
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MAP_0 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MAP_0 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MAP_0 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MAP_0 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MAP_0 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MAP_0 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MAP_0 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MAP_0 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MAP_0 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MAP_0 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MAP_0 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MAP_0 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MAP_0 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MAP_0 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MAP_0 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MAP_0 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MAP_0 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MAP_0 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MAP_0 = 0031002300f700c1001e00e1002200ea006f000700c800a50095007e00c500e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MAP_0 = 00eb0044003a007f007000ea00ad00aa00b20015007100dc00b6002f0044009a
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MAP_0 = 00af00be00d20061001c0073007a00c10056008b00fd00a10099006f002200a0
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MAP_0 = 001500c9000e00ef00f900e6000d002d00730050006f00a30000006700a30000
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MAP_0 = 00f3000b00360025003f00f0001f000600ff00b200b500b500b800dd00700062
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MAP_0 = 0089007700fe00bc00c90097009e002b00d700a400af00cc00c800eb00eb00c8
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MAP_0 = 008d00c40090003700d4006500df000c006800b100e5008a00fd00c8001b001e
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MAP_0 = 005b000f006800800002005d005b006b00cf002800ed003000df008b00a300a4
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MAP_0 = 00a6001e00e30020004e002900a400c6004800b000ed006f0020006d009700b5
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MAP_0 = 001a00ec005500ac002f0083009900980025006b00850060002b009c00e50067
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MAP_0 = 00b6001300930077006000be00e700ea002800ab003e00fd006100fa006100f3
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MAP_0 = 00ef00fa004c00b700e800a6006b00d0008800ca000b005c004e009c00ee0070
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MAP_0 = 007e0078009600eb005400de006400f9002e00b700f400ba002100a900810061
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MAP_0 = 006d008f006300f30020008000ea002e00530037009800180096000300c100df
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MAP_0 = 00bd00dc009b0039004b00ba008400e2006300a200570069009100a700ae0090
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MAP_0 = 006900db00ba009100180049006500fe00c200b0008b004800ff00fd000600c5
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MAP_0 = 0004004c004e00c000bc00d700b700e0006c002c003d00c900f900cf0018005a
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MAP_0 = 004400650000005300fd0025009b0080002900e90099008d004e001d00a300e7
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MAP_0 = 00ca008d007600fc00b800630065008d00b300c200c2009e0086005000330034
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MAP_0 = 00920028001200f4002d009900e1006000070008009b00eb007400e00066007f
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MAP_0 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MAP_0 = 002300ec00a900200083005600d700dc0059000900fa003b004100a9004c0078
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MAP_0 = 003d00780004009200bf0087009e00e70065008a0019005b0058008f00bf0048
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MAP_0 = 0098002200d1005b00e8001b007000e5008e006300e800e9001a002100260062
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MAP_0 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MAP_0 = 00af00c20037006400c700c50020008a00450090000e008800ac00b600b80068
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MAP_0 = 00d900cb00ee00f1004a0013001b00e8000100b0001f00d2008f007f002400d3
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MAP_0 = 0053001f00c400db00ae0069008300270088005500e100a100b70043000300e7
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MAP_0 = 0042003200710026005400bb0008003200cc006800c600e4000e00ec007500cf
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MAP_0 = 00c7004000f5006d008300fc00a900590098007f007c0051000900a900d20005
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MAP_0 = 0086001e00e90059004a004a00200035004a009300190062009400cc00340069
OutlineShadowWithDrawTextNormalAndVertical_0_DVSans_EColor16MAP_1 = 003b00560048009a0025002400bb006b008000c5003f005200cf004400c300d8
@@ -6263,55 +6389,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVSans_EColor16MAP_1 = 008400dc002d007f00970069007500b70044001000c200fd009000ad00150080
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MAP_1 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MAP_1 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MAP_1 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MAP_1 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MAP_1 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MAP_1 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MAP_1 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MAP_1 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MAP_1 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MAP_1 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MAP_1 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MAP_1 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MAP_1 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MAP_1 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MAP_1 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MAP_1 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MAP_1 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MAP_1 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MAP_1 = 002e0065005e0057007e00ab00aa005f005d006400c300050044008700ed00e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MAP_1 = 002700a700680064006900500025007d00ee00b100b100b50023008000a400e7
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MAP_1 = 004100be003c00b80043000a0039008300f4005300a400fc0072000d00120060
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MAP_1 = 00f200ab003a00d0000d001e006500f500f8004700db0054008a002b0043000f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MAP_1 = 004500b500cc00fd00770051007000ea00f80028008d00b000930043002000a9
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MAP_1 = 004400e9009200b600300037000e003f0072009200bf00e300a000c000f4007b
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MAP_1 = 00880091000700b900a600b5002500160031000c00a500e50021009a006c0020
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MAP_1 = 00e100cd000700a10086003600a4007c00b4007100ab00f00030003a00df00f8
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MAP_1 = 000b009300c500930006007300bb00e5002a009500f30088000600a100490080
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MAP_1 = 009000ee009b007800bb005e007300100052007b0050003700e200f200cb00dd
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MAP_1 = 009900e700f500f800de003f00460066001b0052006c002300ff0060006800c6
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MAP_1 = 00700097002f00e4002a00b100540057009400cb002400b700f100c70023004e
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MAP_1 = 00f700380084005a006c00ff002b00ae00410030003000bc001a00a900f5001d
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MAP_1 = 00b40035004b002000b300cf00f7003100dc00cb0011001600ef00e900e3001a
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MAP_1 = 00eb00a2006900a500470087002f00a100b1009900e800f70016000a00cf00cf
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MAP_1 = 008b00be0003007b0071007a00e6003a002500100013003500de009d008f004a
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MAP_1 = 002100a1008c00ad00810042002d004700eb00ae00f700c700ef000900b20022
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MAP_1 = 0094000700d2003400d500a100cd0011009e003a00b000ce004f000c0035003f
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MAP_1 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MAP_1 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MAP_1 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MAP_1 = 0017001500ae001a0090009a0099007600e400af0035005800c9007b00840075
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MAP_1 = 007400cb0023002a0057000c0050002d004d00be00e000a200aa00210061007d
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MAP_1 = 00ab006e007900df00770091004200cb00f200dd00d100be009600ae004e00f7
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MAP_1 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MAP_1 = 004d003100c90091009d00cc00de00ff009b009b001200670061008c00980022
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MAP_1 = 0072000b004e005800c2009c006100f0008f00750022009f001d0018001900c4
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MAP_1 = 00ca00af007500c100aa009a00c00088004f000800220039006c00e100a20002
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MAP_1 = 004100eb00c60035003300df00220021005c00fe00ad008f00af00e300560091
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MAP_1 = 00cf00be0011009c001d004000de00f000880099004900c000440037002600c6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MAP_1 = 00ef0069006b00ba00b1009e004d000800f6008f008f00d700aa00c100d30018
OutlineShadowWithDrawTextNormalAndVertical_0_DVMono_EColor16MAP_1 = 00bd00400004000200df007e003800db00a70097008500f700da00cc00f60023
@@ -6331,55 +6459,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVMono_EColor16MAP_1 = 005d00cf002100b1007200b6001a00ee007a00dd003c0038000c004400c800cc
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MAP_1 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MAP_1 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MAP_1 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MAP_1 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MAP_1 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MAP_1 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MAP_1 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MAP_1 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MAP_1 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MAP_1 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MAP_1 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MAP_1 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MAP_1 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MAP_1 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MAP_1 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MAP_1 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MAP_1 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MAP_1 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MAP_1 = 00160044008800f0001c009f00af003200b00099000300b00019001a00d500c0
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MAP_1 = 0078004b0049001a00e7000e0081002f00db0009000000c1007d00b7009d008f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MAP_1 = 00f8008000eb00150061007c0011008b006700d2004b00b100620006008d00a7
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MAP_1 = 004f000a001f00e300c10007005e000900ed0056006300e400c7008d00f60067
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MAP_1 = 000000900065008600a700a7000e000f009400c1000700870000001c00330054
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MAP_1 = 000a00b4002800bf00f000b500e00025005100b2006e0023001000ba00d60043
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MAP_1 = 001c003d00a900e7006600ac007400f500f500b0008300cc00ce000e00230014
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MAP_1 = 009c00ca0033005500cb00e700f9004c00360080004f00da008f005e006e0008
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MAP_1 = 00de009000d1009700cd00f100f200c20053005b0081006c004700fe00760069
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MAP_1 = 008900830090008000fe0099005300e4007c00fe00d800e1006b008c004300b9
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MAP_1 = 0063004a00e7001100d50087002600b400b8007400cc00b800fb008b00e80052
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MAP_1 = 00a3005600c800b0004e005d00bf003800e500b300c200de00e4002700b200f2
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MAP_1 = 007900bc00390089005300dd0026006400160004006e00d9008900a3008800fb
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MAP_1 = 004d0070001c004900ec000d00ec003e00a40007000700ae00bc00c100960020
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MAP_1 = 004e00da00fd00fe00a400bb003300f7000a00f40050007d00680038001e005e
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MAP_1 = 00590077005c005500dd000700b4000000ba007300d8002a00fa00f800d60077
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MAP_1 = 00d90028007f0027003400d9007200e5006000ca00460023003c00ef00e50017
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MAP_1 = 0082003700da0003003900ff001d000a000000430015006800a9000500ce0038
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MAP_1 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MAP_1 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MAP_1 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MAP_1 = 00ae006700fe007d007a008600d6001100fa007500380010005d00ab00bc00b5
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MAP_1 = 00a20028003600250023005500b300be005300ce0058002500b10080003b002c
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MAP_1 = 00e1008500790033006e005200e4006f00ae001100dc007e005e00aa00ce00e3
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MAP_1 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MAP_1 = 007b00f4004b00cd004a00d4004d0061007d00dc00dd003600be00a900110092
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MAP_1 = 00e100ad0017001000e900230083008900da002600d6005a002a00ca004200be
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MAP_1 = 003800c1007e00db00d4009d00f0002000210005001200fa006800540076003c
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MAP_1 = 005400340010000100de007e0050004500a7002b009c004f006a00a4000b0064
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MAP_1 = 006100ab001900f2002d00e1000100860096007e0098009d0051007a00bf0098
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MAP_1 = 0044008500ac006c00ff009a005e009c0075002d0027003e00e6006d00b3006e
OutlineShadowWithDrawTextNormalAndVertical_0_DVSerif_EColor16MAP_1 = 00e3009e00b6005b009a00c000b300e200f00075006b00cf002c00d1003a0087
@@ -6399,55 +6529,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVSerif_EColor16MAP_1 = 00fb00b3003f004c00e7001c005900e400b6008c0015003500b000c1003d0072
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MAP_1 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MAP_1 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MAP_1 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MAP_1 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MAP_1 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MAP_1 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MAP_1 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MAP_1 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MAP_1 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MAP_1 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MAP_1 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MAP_1 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MAP_1 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MAP_1 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MAP_1 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MAP_1 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MAP_1 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MAP_1 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MAP_1 = 0031002300f700c1001e00e1002200ea006f000700c800a50095007e00c500e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MAP_1 = 00eb0044003a007f007000ea00ad00aa00b20015007100dc00b6002f0044009a
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MAP_1 = 00af00be00d20061001c0073007a00c10056008b00fd00a10099006f002200a0
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MAP_1 = 001500c9000e00ef00f900e6000d002d00730050006f00a30000006700a30000
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MAP_1 = 00f3000b00360025003f00f0001f000600ff00b200b500b500b800dd00700062
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MAP_1 = 0089007700fe00bc00c90097009e002b00d700a400af00cc00c800eb00eb00c8
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MAP_1 = 008d00c40090003700d4006500df000c006800b100e5008a00fd00c8001b001e
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MAP_1 = 005b000f006800800002005d005b006b00cf002800ed003000df008b00a300a4
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MAP_1 = 00a6001e00e30020004e002900a400c6004800b000ed006f0020006d009700b5
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MAP_1 = 001a00ec005500ac002f0083009900980025006b00850060002b009c00e50067
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MAP_1 = 00b6001300930077006000be00e700ea002800ab003e00fd006100fa006100f3
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MAP_1 = 00ef00fa004c00b700e800a6006b00d0008800ca000b005c004e009c00ee0070
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MAP_1 = 007e0078009600eb005400de006400f9002e00b700f400ba002100a900810061
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MAP_1 = 006d008f006300f30020008000ea002e00530037009800180096000300c100df
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MAP_1 = 00bd00dc009b0039004b00ba008400e2006300a200570069009100a700ae0090
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MAP_1 = 006900db00ba009100180049006500fe00c200b0008b004800ff00fd000600c5
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MAP_1 = 0004004c004e00c000bc00d700b700e0006c002c003d00c900f900cf0018005a
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MAP_1 = 004400650000005300fd0025009b0080002900e90099008d004e001d00a300e7
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MAP_1 = 00ca008d007600fc00b800630065008d00b300c200c2009e0086005000330034
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MAP_1 = 00920028001200f4002d009900e1006000070008009b00eb007400e00066007f
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MAP_1 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MAP_1 = 002300ec00a900200083005600d700dc0059000900fa003b004100a9004c0078
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MAP_1 = 003d00780004009200bf0087009e00e70065008a0019005b0058008f00bf0048
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MAP_1 = 0098002200d1005b00e8001b007000e5008e006300e800e9001a002100260062
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MAP_1 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MAP_1 = 00af00c20037006400c700c50020008a00450090000e008800ac00b600b80068
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MAP_1 = 00d900cb00ee00f1004a0013001b00e8000100b0001f00d2008f007f002400d3
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MAP_1 = 0053001f00c400db00ae0069008300270088005500e100a100b70043000300e7
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MAP_1 = 0042003200710026005400bb0008003200cc006800c600e4000e00ec007500cf
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MAP_1 = 00c7004000f5006d008300fc00a900590098007f007c0051000900a900d20005
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MAP_1 = 0086001e00e90059004a004a00200035004a009300190062009400cc00340069
OutlineShadowWithDrawTextNormalAndVertical_0_DVSans_EColor16MAP_2 = 003b00560048009a0025002400bb006b008000c5003f005200cf004400c300d8
@@ -6467,55 +6599,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVSans_EColor16MAP_2 = 008400dc002d007f00970069007500b70044001000c200fd009000ad00150080
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MAP_2 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MAP_2 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MAP_2 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MAP_2 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MAP_2 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MAP_2 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MAP_2 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MAP_2 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MAP_2 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MAP_2 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MAP_2 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MAP_2 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MAP_2 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MAP_2 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MAP_2 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MAP_2 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MAP_2 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MAP_2 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MAP_2 = 002e0065005e0057007e00ab00aa005f005d006400c300050044008700ed00e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MAP_2 = 002700a700680064006900500025007d00ee00b100b100b50023008000a400e7
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MAP_2 = 004100be003c00b80043000a0039008300f4005300a400fc0072000d00120060
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MAP_2 = 00f200ab003a00d0000d001e006500f500f8004700db0054008a002b0043000f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MAP_2 = 004500b500cc00fd00770051007000ea00f80028008d00b000930043002000a9
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MAP_2 = 004400e9009200b600300037000e003f0072009200bf00e300a000c000f4007b
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MAP_2 = 00880091000700b900a600b5002500160031000c00a500e50021009a006c0020
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MAP_2 = 00e100cd000700a10086003600a4007c00b4007100ab00f00030003a00df00f8
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MAP_2 = 000b009300c500930006007300bb00e5002a009500f30088000600a100490080
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MAP_2 = 009000ee009b007800bb005e007300100052007b0050003700e200f200cb00dd
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MAP_2 = 009900e700f500f800de003f00460066001b0052006c002300ff0060006800c6
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MAP_2 = 00700097002f00e4002a00b100540057009400cb002400b700f100c70023004e
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MAP_2 = 00f700380084005a006c00ff002b00ae00410030003000bc001a00a900f5001d
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MAP_2 = 00b40035004b002000b300cf00f7003100dc00cb0011001600ef00e900e3001a
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MAP_2 = 00eb00a2006900a500470087002f00a100b1009900e800f70016000a00cf00cf
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MAP_2 = 008b00be0003007b0071007a00e6003a002500100013003500de009d008f004a
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MAP_2 = 002100a1008c00ad00810042002d004700eb00ae00f700c700ef000900b20022
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MAP_2 = 0094000700d2003400d500a100cd0011009e003a00b000ce004f000c0035003f
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MAP_2 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MAP_2 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MAP_2 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MAP_2 = 0017001500ae001a0090009a0099007600e400af0035005800c9007b00840075
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MAP_2 = 007400cb0023002a0057000c0050002d004d00be00e000a200aa00210061007d
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MAP_2 = 00ab006e007900df00770091004200cb00f200dd00d100be009600ae004e00f7
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MAP_2 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MAP_2 = 004d003100c90091009d00cc00de00ff009b009b001200670061008c00980022
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MAP_2 = 0072000b004e005800c2009c006100f0008f00750022009f001d0018001900c4
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MAP_2 = 00ca00af007500c100aa009a00c00088004f000800220039006c00e100a20002
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MAP_2 = 004100eb00c60035003300df00220021005c00fe00ad008f00af00e300560091
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MAP_2 = 00cf00be0011009c001d004000de00f000880099004900c000440037002600c6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MAP_2 = 00ef0069006b00ba00b1009e004d000800f6008f008f00d700aa00c100d30018
OutlineShadowWithDrawTextNormalAndVertical_0_DVMono_EColor16MAP_2 = 00bd00400004000200df007e003800db00a70097008500f700da00cc00f60023
@@ -6535,55 +6669,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVMono_EColor16MAP_2 = 005d00cf002100b1007200b6001a00ee007a00dd003c0038000c004400c800cc
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MAP_2 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MAP_2 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MAP_2 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MAP_2 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MAP_2 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MAP_2 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MAP_2 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MAP_2 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MAP_2 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MAP_2 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MAP_2 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MAP_2 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MAP_2 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MAP_2 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MAP_2 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MAP_2 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MAP_2 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MAP_2 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MAP_2 = 00160044008800f0001c009f00af003200b00099000300b00019001a00d500c0
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MAP_2 = 0078004b0049001a00e7000e0081002f00db0009000000c1007d00b7009d008f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MAP_2 = 00f8008000eb00150061007c0011008b006700d2004b00b100620006008d00a7
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MAP_2 = 004f000a001f00e300c10007005e000900ed0056006300e400c7008d00f60067
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MAP_2 = 000000900065008600a700a7000e000f009400c1000700870000001c00330054
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MAP_2 = 000a00b4002800bf00f000b500e00025005100b2006e0023001000ba00d60043
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MAP_2 = 001c003d00a900e7006600ac007400f500f500b0008300cc00ce000e00230014
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MAP_2 = 009c00ca0033005500cb00e700f9004c00360080004f00da008f005e006e0008
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MAP_2 = 00de009000d1009700cd00f100f200c20053005b0081006c004700fe00760069
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MAP_2 = 008900830090008000fe0099005300e4007c00fe00d800e1006b008c004300b9
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MAP_2 = 0063004a00e7001100d50087002600b400b8007400cc00b800fb008b00e80052
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MAP_2 = 00a3005600c800b0004e005d00bf003800e500b300c200de00e4002700b200f2
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MAP_2 = 007900bc00390089005300dd0026006400160004006e00d9008900a3008800fb
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MAP_2 = 004d0070001c004900ec000d00ec003e00a40007000700ae00bc00c100960020
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MAP_2 = 004e00da00fd00fe00a400bb003300f7000a00f40050007d00680038001e005e
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MAP_2 = 00590077005c005500dd000700b4000000ba007300d8002a00fa00f800d60077
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MAP_2 = 00d90028007f0027003400d9007200e5006000ca00460023003c00ef00e50017
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MAP_2 = 0082003700da0003003900ff001d000a000000430015006800a9000500ce0038
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MAP_2 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MAP_2 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MAP_2 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MAP_2 = 00ae006700fe007d007a008600d6001100fa007500380010005d00ab00bc00b5
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MAP_2 = 00a20028003600250023005500b300be005300ce0058002500b10080003b002c
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MAP_2 = 00e1008500790033006e005200e4006f00ae001100dc007e005e00aa00ce00e3
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MAP_2 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MAP_2 = 007b00f4004b00cd004a00d4004d0061007d00dc00dd003600be00a900110092
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MAP_2 = 00e100ad0017001000e900230083008900da002600d6005a002a00ca004200be
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MAP_2 = 003800c1007e00db00d4009d00f0002000210005001200fa006800540076003c
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MAP_2 = 005400340010000100de007e0050004500a7002b009c004f006a00a4000b0064
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MAP_2 = 006100ab001900f2002d00e1000100860096007e0098009d0051007a00bf0098
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MAP_2 = 0044008500ac006c00ff009a005e009c0075002d0027003e00e6006d00b3006e
OutlineShadowWithDrawTextNormalAndVertical_0_DVSerif_EColor16MAP_2 = 00e3009e00b6005b009a00c000b300e200f00075006b00cf002c00d1003a0087
@@ -6603,55 +6739,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVSerif_EColor16MAP_2 = 00fb00b3003f004c00e7001c005900e400b6008c0015003500b000c1003d0072
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MAP_2 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MAP_2 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MAP_2 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MAP_2 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MAP_2 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MAP_2 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MAP_2 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MAP_2 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MAP_2 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MAP_2 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MAP_2 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MAP_2 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MAP_2 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MAP_2 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MAP_2 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MAP_2 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MAP_2 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MAP_2 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MAP_2 = 0031002300f700c1001e00e1002200ea006f000700c800a50095007e00c500e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MAP_2 = 00eb0044003a007f007000ea00ad00aa00b20015007100dc00b6002f0044009a
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MAP_2 = 00af00be00d20061001c0073007a00c10056008b00fd00a10099006f002200a0
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MAP_2 = 001500c9000e00ef00f900e6000d002d00730050006f00a30000006700a30000
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MAP_2 = 00f3000b00360025003f00f0001f000600ff00b200b500b500b800dd00700062
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MAP_2 = 0089007700fe00bc00c90097009e002b00d700a400af00cc00c800eb00eb00c8
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MAP_2 = 008d00c40090003700d4006500df000c006800b100e5008a00fd00c8001b001e
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MAP_2 = 005b000f006800800002005d005b006b00cf002800ed003000df008b00a300a4
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MAP_2 = 00a6001e00e30020004e002900a400c6004800b000ed006f0020006d009700b5
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MAP_2 = 001a00ec005500ac002f0083009900980025006b00850060002b009c00e50067
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MAP_2 = 00b6001300930077006000be00e700ea002800ab003e00fd006100fa006100f3
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MAP_2 = 00ef00fa004c00b700e800a6006b00d0008800ca000b005c004e009c00ee0070
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MAP_2 = 007e0078009600eb005400de006400f9002e00b700f400ba002100a900810061
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MAP_2 = 006d008f006300f30020008000ea002e00530037009800180096000300c100df
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MAP_2 = 00bd00dc009b0039004b00ba008400e2006300a200570069009100a700ae0090
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MAP_2 = 006900db00ba009100180049006500fe00c200b0008b004800ff00fd000600c5
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MAP_2 = 0004004c004e00c000bc00d700b700e0006c002c003d00c900f900cf0018005a
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MAP_2 = 004400650000005300fd0025009b0080002900e90099008d004e001d00a300e7
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MAP_2 = 00ca008d007600fc00b800630065008d00b300c200c2009e0086005000330034
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MAP_2 = 00920028001200f4002d009900e1006000070008009b00eb007400e00066007f
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MAP_2 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MAP_2 = 002300ec00a900200083005600d700dc0059000900fa003b004100a9004c0078
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MAP_2 = 003d00780004009200bf0087009e00e70065008a0019005b0058008f00bf0048
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MAP_2 = 0098002200d1005b00e8001b007000e5008e006300e800e9001a002100260062
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MAP_2 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MAP_2 = 00af00c20037006400c700c50020008a00450090000e008800ac00b600b80068
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MAP_2 = 00d900cb00ee00f1004a0013001b00e8000100b0001f00d2008f007f002400d3
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MAP_2 = 0053001f00c400db00ae0069008300270088005500e100a100b70043000300e7
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MAP_2 = 0042003200710026005400bb0008003200cc006800c600e4000e00ec007500cf
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MAP_2 = 00c7004000f5006d008300fc00a900590098007f007c0051000900a900d20005
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MAP_2 = 0086001e00e90059004a004a00200035004a009300190062009400cc00340069
OutlineShadowWithDrawTextNormalAndVertical_0_DVSans_EColor16MAP_3 = 003b00560048009a0025002400bb006b008000c5003f005200cf004400c300d8
@@ -6671,55 +6809,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVSans_EColor16MAP_3 = 008400dc002d007f00970069007500b70044001000c200fd009000ad00150080
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MAP_3 = 004600ef0084009900eb00f600ef00320003007800d60086001900b900020086
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MAP_3 = 009f000700860075000a00830097006a00a20096003b0035001f00bc0073004f
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MAP_3 = 0053007300a20081008c009d003600cf00d300c800270078004200da00a000e6
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MAP_3 = 0038001200b6000d00f60014000000260099004000a0002900d100fe00810041
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MAP_3 = 0069002100b200be005800f90027007500b800f5008600c80052006e00240040
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MAP_3 = 00b10026008a008f000e003400b6003900c9008d007f001200b700fa00420007
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MAP_3 = 00a000c000b7006d009900f400b600d9006800f20094004e00b500e5004b0009
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MAP_3 = 00950074000e00290025007c003800ea00770093005900d200a60080001f0037
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MAP_3 = 006a00910044000a00fd000e0021000f00eb0029001600a400720017003700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MAP_3 = 002200da00e400980041008b00aa0081009900e4005200250052006000ed0072
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MAP_3 = 00d800db00d200a5000700aa00eb00350026003c00f2000800f2003d0072007f
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MAP_3 = 00ca0067004700eb008800e20031009800cb0056004f0016003d00f600a200e2
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MAP_3 = 00b600bb00c500660096004100f400a900a500c300a4009a001a0036005a00b7
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MAP_3 = 00720060003a00ea00ea0038000400cb0005000000bd00e00087002300e10035
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MAP_3 = 003700b1006700710066007b0079002100f80000007f007e000800d900880044
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MAP_3 = 00a00025000600c3002a00f6008c00e90024007700d7000f0057007b009c0088
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MAP_3 = 00f70092002f00b40072004b0027003f008300620076006e00b500bd008d0047
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MAP_3 = 00d2003a004e008900f700d80036002300660010002b0096007900d20015000f
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSans_EColor16MAP_3 = 002e0065005e0057007e00ab00aa005f005d006400c300050044008700ed00e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSans_EColor16MAP_3 = 002700a700680064006900500025007d00ee00b100b100b50023008000a400e7
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSans_EColor16MAP_3 = 004100be003c00b80043000a0039008300f4005300a400fc0072000d00120060
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSans_EColor16MAP_3 = 00f200ab003a00d0000d001e006500f500f8004700db0054008a002b0043000f
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSans_EColor16MAP_3 = 004500b500cc00fd00770051007000ea00f80028008d00b000930043002000a9
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSans_EColor16MAP_3 = 004400e9009200b600300037000e003f0072009200bf00e300a000c000f4007b
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSans_EColor16MAP_3 = 00880091000700b900a600b5002500160031000c00a500e50021009a006c0020
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSans_EColor16MAP_3 = 00e100cd000700a10086003600a4007c00b4007100ab00f00030003a00df00f8
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSans_EColor16MAP_3 = 000b009300c500930006007300bb00e5002a009500f30088000600a100490080
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSans_EColor16MAP_3 = 009000ee009b007800bb005e007300100052007b0050003700e200f200cb00dd
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSans_EColor16MAP_3 = 009900e700f500f800de003f00460066001b0052006c002300ff0060006800c6
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSans_EColor16MAP_3 = 00700097002f00e4002a00b100540057009400cb002400b700f100c70023004e
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSans_EColor16MAP_3 = 00f700380084005a006c00ff002b00ae00410030003000bc001a00a900f5001d
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSans_EColor16MAP_3 = 00b40035004b002000b300cf00f7003100dc00cb0011001600ef00e900e3001a
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSans_EColor16MAP_3 = 00eb00a2006900a500470087002f00a100b1009900e800f70016000a00cf00cf
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSans_EColor16MAP_3 = 008b00be0003007b0071007a00e6003a002500100013003500de009d008f004a
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSans_EColor16MAP_3 = 002100a1008c00ad00810042002d004700eb00ae00f700c700ef000900b20022
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSans_EColor16MAP_3 = 0094000700d2003400d500a100cd0011009e003a00b000ce004f000c0035003f
OutlineShadowWithDrawTextNormalAndVertical_27_DVSans_EColor16MAP_3 = 0043006700e900d800d6008700da00be009b001a004800420097002d007800d9
OutlineShadowWithDrawTextNormalAndVertical_28_DVSans_EColor16MAP_3 = 0079005900a40086003900ba0071008f006d0005006b0007009e00c800fa0080
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MAP_3 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MAP_3 = 0017001500ae001a0090009a0099007600e400af0035005800c9007b00840075
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MAP_3 = 007400cb0023002a0057000c0050002d004d00be00e000a200aa00210061007d
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MAP_3 = 00ab006e007900df00770091004200cb00f200dd00d100be009600ae004e00f7
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MAP_3 = 001300390091001700a000fb005800b300b600ad0042008c007100f4009a00c6
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSans_EColor16MAP_3 = 004d003100c90091009d00cc00de00ff009b009b001200670061008c00980022
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSans_EColor16MAP_3 = 0072000b004e005800c2009c006100f0008f00750022009f001d0018001900c4
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSans_EColor16MAP_3 = 00ca00af007500c100aa009a00c00088004f000800220039006c00e100a20002
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSans_EColor16MAP_3 = 004100eb00c60035003300df00220021005c00fe00ad008f00af00e300560091
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSans_EColor16MAP_3 = 00cf00be0011009c001d004000de00f000880099004900c000440037002600c6
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSans_EColor16MAP_3 = 00ef0069006b00ba00b1009e004d000800f6008f008f00d700aa00c100d30018
OutlineShadowWithDrawTextNormalAndVertical_0_DVMono_EColor16MAP_3 = 00bd00400004000200df007e003800db00a70097008500f700da00cc00f60023
@@ -6739,55 +6879,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVMono_EColor16MAP_3 = 005d00cf002100b1007200b6001a00ee007a00dd003c0038000c004400c800cc
-OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MAP_3 = 007200790054002f00c0000a00de009500600024009400e900ad003400af004e
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MAP_3 = 00f500f700660001009700b900fe0007000e00c00071009900ff003400bf0004
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MAP_3 = 0081000d007a006700bf009e00a80055007100e900c000af0023003b00ae0049
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MAP_3 = 005600dc0083006700050060009400ec00f400f5005500fa00a200bc00290040
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MAP_3 = 006f0077001f00a40003004b00e7007d000f008300230044001b00eb004700c3
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MAP_3 = 008a00550092000c00ce0054006300fa006400c600a4007c0035003800f200df
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MAP_3 = 00e700b70039006c000d00fb0070006b009400b900aa0013005c00a900360061
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MAP_3 = 00900005006f001a0066001d003400ca00ea003f00e4005600c1003b00340006
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MAP_3 = 00da0008000b00b8007b000f002800c000a500b100da000d007c005700f8006c
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MAP_3 = 00e600a60059005300430069001a0087004c00f900790005001f000b00a800cc
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MAP_3 = 006a0010002a00fb00ee00e4008700d900a600f800a4004b00840094008200cc
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MAP_3 = 004f000f00b4000b00e20002005000cd00e3004d00220012004800c4000c0034
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MAP_3 = 00a500ab003600f000c60011002500e700e300cf00bd00e400da006f00d700bb
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MAP_3 = 00ea009500c70007002900f500e700a300fc00cf002d00a400a2006900320003
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MAP_3 = 001a00b0004000b800210048003400bd00b200a1005900ab0059001e00b700d6
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MAP_3 = 008d0071003e00d40075006100a7007100fe001b00bb00f900cb008700d1003d
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MAP_3 = 000d00a300e200b500c500b4003a00330075004000c3001600050063005700aa
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MAP_3 = 00d3000300ed000a0089005900f600b500d0004600db00e5006f00b100e300da
+OutlineShadowWithDrawTextNormalAndVertical_9_DVMono_EColor16MAP_3 = 00160044008800f0001c009f00af003200b00099000300b00019001a00d500c0
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVMono_EColor16MAP_3 = 0078004b0049001a00e7000e0081002f00db0009000000c1007d00b7009d008f
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVMono_EColor16MAP_3 = 00f8008000eb00150061007c0011008b006700d2004b00b100620006008d00a7
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVMono_EColor16MAP_3 = 004f000a001f00e300c10007005e000900ed0056006300e400c7008d00f60067
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVMono_EColor16MAP_3 = 000000900065008600a700a7000e000f009400c1000700870000001c00330054
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVMono_EColor16MAP_3 = 000a00b4002800bf00f000b500e00025005100b2006e0023001000ba00d60043
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVMono_EColor16MAP_3 = 001c003d00a900e7006600ac007400f500f500b0008300cc00ce000e00230014
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVMono_EColor16MAP_3 = 009c00ca0033005500cb00e700f9004c00360080004f00da008f005e006e0008
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVMono_EColor16MAP_3 = 00de009000d1009700cd00f100f200c20053005b0081006c004700fe00760069
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVMono_EColor16MAP_3 = 008900830090008000fe0099005300e4007c00fe00d800e1006b008c004300b9
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVMono_EColor16MAP_3 = 0063004a00e7001100d50087002600b400b8007400cc00b800fb008b00e80052
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVMono_EColor16MAP_3 = 00a3005600c800b0004e005d00bf003800e500b300c200de00e4002700b200f2
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVMono_EColor16MAP_3 = 007900bc00390089005300dd0026006400160004006e00d9008900a3008800fb
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVMono_EColor16MAP_3 = 004d0070001c004900ec000d00ec003e00a40007000700ae00bc00c100960020
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVMono_EColor16MAP_3 = 004e00da00fd00fe00a400bb003300f7000a00f40050007d00680038001e005e
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVMono_EColor16MAP_3 = 00590077005c005500dd000700b4000000ba007300d8002a00fa00f800d60077
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVMono_EColor16MAP_3 = 00d90028007f0027003400d9007200e5006000ca00460023003c00ef00e50017
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVMono_EColor16MAP_3 = 0082003700da0003003900ff001d000a000000430015006800a9000500ce0038
OutlineShadowWithDrawTextNormalAndVertical_27_DVMono_EColor16MAP_3 = 0090009d00a500ff009f0042007100c100d900e1004800ef0035008100ef00fd
OutlineShadowWithDrawTextNormalAndVertical_28_DVMono_EColor16MAP_3 = 0017001500af001d0073003600d6003100140088009500b4002a0091001d00f4
-OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MAP_3 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MAP_3 = 00ae006700fe007d007a008600d6001100fa007500380010005d00ab00bc00b5
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MAP_3 = 00a20028003600250023005500b300be005300ce0058002500b10080003b002c
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MAP_3 = 00e1008500790033006e005200e4006f00ae001100dc007e005e00aa00ce00e3
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MAP_3 = 004d00c2006e002c002b00b400360006001200fa00a7009e00f700b3002100c2
+OutlineShadowWithDrawTextNormalAndVertical_29_DVMono_EColor16MAP_3 = 007b00f4004b00cd004a00d4004d0061007d00dc00dd003600be00a900110092
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVMono_EColor16MAP_3 = 00e100ad0017001000e900230083008900da002600d6005a002a00ca004200be
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVMono_EColor16MAP_3 = 003800c1007e00db00d4009d00f0002000210005001200fa006800540076003c
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVMono_EColor16MAP_3 = 005400340010000100de007e0050004500a7002b009c004f006a00a4000b0064
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVMono_EColor16MAP_3 = 006100ab001900f2002d00e1000100860096007e0098009d0051007a00bf0098
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVMono_EColor16MAP_3 = 0044008500ac006c00ff009a005e009c0075002d0027003e00e6006d00b3006e
OutlineShadowWithDrawTextNormalAndVertical_0_DVSerif_EColor16MAP_3 = 00e3009e00b6005b009a00c000b300e200f00075006b00cf002c00d1003a0087
@@ -6807,55 +6949,57 @@
OutlineShadowWithDrawTextNormalAndVertical_8_DVSerif_EColor16MAP_3 = 00fb00b3003f004c00e7001c005900e400b6008c0015003500b000c1003d0072
-OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MAP_3 = 009f001c00a5003f002800cd008f002c00a800250077009d009a00ad00b8004b
-
-OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MAP_3 = 004f009600f500a9001d0008001d0044008200ad00a300ff00c900c400930030
-
-OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MAP_3 = 004900690074009500df003d00be002e0041006900c6002a000700b4004600ad
-
-OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MAP_3 = 00a80028006100b900b4007a00d5007c00ea0045008b0041005c003d00bd00b4
-
-OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MAP_3 = 003d00e80020001e002a0004001e005e0019005800040093009800d600bf00f5
-
-OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MAP_3 = 00600098008e00cf001d0028009200100077001e00ba00b7001a000200180031
-
-OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MAP_3 = 00c000900040007200e200df007e002b00d80067007000a000e7005700180025
-
-OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MAP_3 = 00c3005500f5007300aa00eb007c006800d600ad00080092001800c4004f0000
-
-OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MAP_3 = 004e000b004e008800d7005c00ac0054009e00600074005f007d009300f40073
-
-OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MAP_3 = 00df00bb00e700c800b100fd00a700de00a700be00ac00c4004300d100c700ff
-
-OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MAP_3 = 0078006d009d00f600d5004200bc004a00c7004b006400f1001c002800650035
-
-OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MAP_3 = 007d008f009400fb00720082002800c800390055000f00fd00d3007f004000c4
-
-OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MAP_3 = 0077005f0075007c00df0033007700db0071008c00ef0024005a0022006e00c3
-
-OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MAP_3 = 00ae005400a20092000c009b001b007600310052006800b2007300a10079006c
-
-OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MAP_3 = 003d009300aa00930014005e008300f300c0000e0091004c00d400b9007d00bb
-
-OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MAP_3 = 00f400cc0081002400580089003600cb007c004a0019009f000f002000100035
-
-OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MAP_3 = 007b00b3007e00f10076000f00d1005800cb005d00b4006a00f20012000400ba
-
-OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MAP_3 = 004a00c0002700e500c400ba001f0073005e0027004a002700b100a0007d00e8
+OutlineShadowWithDrawTextNormalAndVertical_9_DVSerif_EColor16MAP_3 = 0031002300f700c1001e00e1002200ea006f000700c800a50095007e00c500e8
+
+OutlineShadowWithDrawTextNormalAndVertical_10_DVSerif_EColor16MAP_3 = 00eb0044003a007f007000ea00ad00aa00b20015007100dc00b6002f0044009a
+
+OutlineShadowWithDrawTextNormalAndVertical_11_DVSerif_EColor16MAP_3 = 00af00be00d20061001c0073007a00c10056008b00fd00a10099006f002200a0
+
+OutlineShadowWithDrawTextNormalAndVertical_12_DVSerif_EColor16MAP_3 = 001500c9000e00ef00f900e6000d002d00730050006f00a30000006700a30000
+
+OutlineShadowWithDrawTextNormalAndVertical_13_DVSerif_EColor16MAP_3 = 00f3000b00360025003f00f0001f000600ff00b200b500b500b800dd00700062
+
+OutlineShadowWithDrawTextNormalAndVertical_14_DVSerif_EColor16MAP_3 = 0089007700fe00bc00c90097009e002b00d700a400af00cc00c800eb00eb00c8
+
+OutlineShadowWithDrawTextNormalAndVertical_15_DVSerif_EColor16MAP_3 = 008d00c40090003700d4006500df000c006800b100e5008a00fd00c8001b001e
+
+OutlineShadowWithDrawTextNormalAndVertical_16_DVSerif_EColor16MAP_3 = 005b000f006800800002005d005b006b00cf002800ed003000df008b00a300a4
+
+OutlineShadowWithDrawTextNormalAndVertical_17_DVSerif_EColor16MAP_3 = 00a6001e00e30020004e002900a400c6004800b000ed006f0020006d009700b5
+
+OutlineShadowWithDrawTextNormalAndVertical_18_DVSerif_EColor16MAP_3 = 001a00ec005500ac002f0083009900980025006b00850060002b009c00e50067
+
+OutlineShadowWithDrawTextNormalAndVertical_19_DVSerif_EColor16MAP_3 = 00b6001300930077006000be00e700ea002800ab003e00fd006100fa006100f3
+
+OutlineShadowWithDrawTextNormalAndVertical_20_DVSerif_EColor16MAP_3 = 00ef00fa004c00b700e800a6006b00d0008800ca000b005c004e009c00ee0070
+
+OutlineShadowWithDrawTextNormalAndVertical_21_DVSerif_EColor16MAP_3 = 007e0078009600eb005400de006400f9002e00b700f400ba002100a900810061
+
+OutlineShadowWithDrawTextNormalAndVertical_22_DVSerif_EColor16MAP_3 = 006d008f006300f30020008000ea002e00530037009800180096000300c100df
+
+OutlineShadowWithDrawTextNormalAndVertical_23_DVSerif_EColor16MAP_3 = 00bd00dc009b0039004b00ba008400e2006300a200570069009100a700ae0090
+
+OutlineShadowWithDrawTextNormalAndVertical_24_DVSerif_EColor16MAP_3 = 006900db00ba009100180049006500fe00c200b0008b004800ff00fd000600c5
+
+OutlineShadowWithDrawTextNormalAndVertical_25_DVSerif_EColor16MAP_3 = 0004004c004e00c000bc00d700b700e0006c002c003d00c900f900cf0018005a
+
+OutlineShadowWithDrawTextNormalAndVertical_26_DVSerif_EColor16MAP_3 = 004400650000005300fd0025009b0080002900e90099008d004e001d00a300e7
OutlineShadowWithDrawTextNormalAndVertical_27_DVSerif_EColor16MAP_3 = 00ca008d007600fc00b800630065008d00b300c200c2009e0086005000330034
OutlineShadowWithDrawTextNormalAndVertical_28_DVSerif_EColor16MAP_3 = 00920028001200f4002d009900e1006000070008009b00eb007400e00066007f
-OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MAP_3 = 00a00014009800ca007c007a00bd00d000de0051006b004f00e400de00260002
-
-OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MAP_3 = 002300ec00a900200083005600d700dc0059000900fa003b004100a9004c0078
-
-OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MAP_3 = 003d00780004009200bf0087009e00e70065008a0019005b0058008f00bf0048
-
-OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MAP_3 = 0098002200d1005b00e8001b007000e5008e006300e800e9001a002100260062
-
-OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MAP_3 = 00ff00ec004800fc00000009009c002f00a100500006008900320066005400b3
+OutlineShadowWithDrawTextNormalAndVertical_29_DVSerif_EColor16MAP_3 = 00af00c20037006400c700c50020008a00450090000e008800ac00b600b80068
+
+OutlineShadowWithDrawTextNormalAndVertical_30_DVSerif_EColor16MAP_3 = 00d900cb00ee00f1004a0013001b00e8000100b0001f00d2008f007f002400d3
+
+OutlineShadowWithDrawTextNormalAndVertical_31_DVSerif_EColor16MAP_3 = 0053001f00c400db00ae0069008300270088005500e100a100b70043000300e7
+
+OutlineShadowWithDrawTextNormalAndVertical_32_DVSerif_EColor16MAP_3 = 0042003200710026005400bb0008003200cc006800c600e4000e00ec007500cf
+
+OutlineShadowWithDrawTextNormalAndVertical_33_DVSerif_EColor16MAP_3 = 00c7004000f5006d008300fc00a900590098007f007c0051000900a900d20005
+
+OutlineShadowWithDrawTextNormalAndVertical_34_DVSerif_EColor16MAP_3 = 0086001e00e90059004a004a00200035004a009300190062009400cc00340069
OutlineShadowWithStrikeThroughBoldAndUnderline_0_DejaVu Sans Condensed_EGray2_0 = 00a5000a000c00b1000400de002500c600d5000d008b00df003b00ea009f0079
@@ -6905,9 +7049,9 @@
OutlineShadowWithStrikeThroughBoldAndUnderline_3_DejaVu Sans Condensed_EColor256_0 = 005f000b00b7007c0019008000850047003a00ce00a60086002e000e0031009d
-OutlineShadowWithStrikeThroughBoldAndUnderline_0_DejaVu Sans Condensed_EColor64K_0 = 00200064009f0060003b00b600aa00b70040006500430013007200d500580013
-
-OutlineShadowWithStrikeThroughBoldAndUnderline_1_DejaVu Sans Condensed_EColor64K_0 = 00a5007a000c003d000900a1004900e2009700f500ab007400e7008100c80069
+OutlineShadowWithStrikeThroughBoldAndUnderline_0_DejaVu Sans Condensed_EColor64K_0 = 00d900cd00b6003f00fe0033007f00f300c40082007d00690017001c004300f9
+
+OutlineShadowWithStrikeThroughBoldAndUnderline_1_DejaVu Sans Condensed_EColor64K_0 = 00ca00ba000300b8006f0025000c00e2005400f300eb00a800e500c900d100f9
OutlineShadowWithStrikeThroughBoldAndUnderline_2_DejaVu Sans Condensed_EColor64K_0 = 00840062009f006e00b9006e0089008700df00e5005b000b00b3007100b3001b
@@ -6929,25 +7073,25 @@
OutlineShadowWithStrikeThroughBoldAndUnderline_3_DejaVu Sans Condensed_EColor4K_0 = 00ca007f004c00a200ae00f500d3000e006400b90034000300ba0050000a0056
-OutlineShadowWithStrikeThroughBoldAndUnderline_0_DejaVu Sans Condensed_EColor16MU_0 = 00d8008900e1003d0094000c009800d30070009300bc00ed00f50045008d003d
-
-OutlineShadowWithStrikeThroughBoldAndUnderline_1_DejaVu Sans Condensed_EColor16MU_0 = 0095009e008100e500a100b300f7008400a10039001900bf004400c900e70051
+OutlineShadowWithStrikeThroughBoldAndUnderline_0_DejaVu Sans Condensed_EColor16MU_0 = 00fd00c8004100b60014005e005400f6003600f0009700a2002a008f000a0038
+
+OutlineShadowWithStrikeThroughBoldAndUnderline_1_DejaVu Sans Condensed_EColor16MU_0 = 006600ce002d00800047006100420035002800bb00b400240064001600210074
OutlineShadowWithStrikeThroughBoldAndUnderline_2_DejaVu Sans Condensed_EColor16MU_0 = 000700f400ae0090005400b900cd00f500c60057001e003d00dd008e00700017
OutlineShadowWithStrikeThroughBoldAndUnderline_3_DejaVu Sans Condensed_EColor16MU_0 = 006b00a90039003700a2001f004b00fc00b8000400df009d002200f000fe0048
-OutlineShadowWithStrikeThroughBoldAndUnderline_0_DejaVu Sans Condensed_EColor16MA_0 = 00d8008900e1003d0094000c009800d30070009300bc00ed00f50045008d003d
-
-OutlineShadowWithStrikeThroughBoldAndUnderline_1_DejaVu Sans Condensed_EColor16MA_0 = 0095009e008100e500a100b300f7008400a10039001900bf004400c900e70051
+OutlineShadowWithStrikeThroughBoldAndUnderline_0_DejaVu Sans Condensed_EColor16MA_0 = 001d0071007d0045005a009c0029004800c200d400dd004d00a300fc00f40035
+
+OutlineShadowWithStrikeThroughBoldAndUnderline_1_DejaVu Sans Condensed_EColor16MA_0 = 00cc001300de00f30045005f00cb00c5000c000300ec006c008f00e7006e0096
OutlineShadowWithStrikeThroughBoldAndUnderline_2_DejaVu Sans Condensed_EColor16MA_0 = 000700f400ae0090005400b900cd00f500c60057001e003d00dd008e00700017
OutlineShadowWithStrikeThroughBoldAndUnderline_3_DejaVu Sans Condensed_EColor16MA_0 = 006b00a90039003700a2001f004b00fc00b8000400df009d002200f000fe0048
-OutlineShadowWithStrikeThroughBoldAndUnderline_0_DejaVu Sans Condensed_EColor16MAP_0 = 00d8008900e1003d0094000c009800d30070009300bc00ed00f50045008d003d
-
-OutlineShadowWithStrikeThroughBoldAndUnderline_1_DejaVu Sans Condensed_EColor16MAP_0 = 0095009e008100e500a100b300f7008400a10039001900bf004400c900e70051
+OutlineShadowWithStrikeThroughBoldAndUnderline_0_DejaVu Sans Condensed_EColor16MAP_0 = 0052008600050042004b008c00ef009300cb005c00ac00b300c3003e00dd00f1
+
+OutlineShadowWithStrikeThroughBoldAndUnderline_1_DejaVu Sans Condensed_EColor16MAP_0 = 00f7003f003d00800021009a005c00ea00c500d900e0006200d1005200f0005e
OutlineShadowWithStrikeThroughBoldAndUnderline_2_DejaVu Sans Condensed_EColor16MAP_0 = 000700f400ae0090005400b900cd00f500c60057001e003d00dd008e00700017
--- a/graphicsdeviceinterface/bitgdi/tbit/toutlineandshadowfonts.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/bitgdi/tbit/toutlineandshadowfonts.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -995,6 +995,19 @@
iGc->SetBrushColor(aSettings.brushColor);
iGc->SetPenColor(aSettings.penColor);
iGc->SetShadowColor(aSettings.shadowColor);
+
+ if (aSettings.backgroundColor != KRgbWhite)
+ {
+ iGc->SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
+ CFbsBitmap* bgBitmap = new CFbsBitmap;
+ bgBitmap->Create(TSize(1, 1), EColor16MA);
+ bgBitmap->BeginDataAccess();
+ Mem::Copy(bgBitmap->DataAddress(), &(aSettings.backgroundColor), 4);
+ bgBitmap->EndDataAccess(EFalse);
+ iGc->DrawBitmap(TRect(TPoint(0, 0), iBitmap->SizeInPixels()), bgBitmap);
+ delete bgBitmap;
+ iGc->SetDrawMode(CGraphicsContext::EDrawModePEN);
+ }
}
}
--- a/graphicsdeviceinterface/bitgdi/tbit/toutlineandshadowfonts.h Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/bitgdi/tbit/toutlineandshadowfonts.h Tue Jun 01 15:04:40 2010 +0100
@@ -129,6 +129,7 @@
TRgb brushColor; //brush colour will set the colour of the fill of the font
TRgb penColor; //pen colour which will set the colour of the outline
TRgb shadowColor; //shadow colour which will set the colour of the shadow
+ TRgb backgroundColor; //colour of the target that the text is rendered onto
} STestFontParameters;
// Test setting for TestOutlineandShadowFontsMetricsL() i.e. for test case 8
@@ -145,50 +146,51 @@
// Test setting for TestDrawTextWithOutlineAndShadowL() i.e. for test case 10
// All test case conditions are defined here and are called to test outline and shadow effects
-// STestFontParameters Format: outline | shadow | bitmaptype, BrushColor, PenColor, ShadowColor
-const TInt KNumberOfSubTestsInTest0010 = 34;
+// STestFontParameters Format: outline | shadow | bitmaptype, BrushColor, PenColor, ShadowColor, BackgroundColor
+const TInt KNumberOfSubTestsInTest0010 = 35;
_LIT(KTestName0010, "OutlineShadowWithDrawTextNormalAndVertical");//test case name to used to generate test case id
const STestFontParameters KTestSettingsToTestOutlineAndShadow[KNumberOfSubTestsInTest0010] =
{
// test with EMonochromeGlyphBitmap and alpha value 255
- {EDropShadowOn | ESetMonochromeGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue},
- {EOutlineOn | ESetMonochromeGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | EOutlineOn | ESetMonochromeGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | ESetMonochromeGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue},
- {EOutlineOn | ESetMonochromeGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | EOutlineOn | ESetMonochromeGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | ESetMonochromeGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue},
- {EOutlineOn | ESetMonochromeGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | EOutlineOn | ESetMonochromeGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue},
+ {EDropShadowOn | ESetMonochromeGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EOutlineOn | ESetMonochromeGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | EOutlineOn | ESetMonochromeGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | ESetMonochromeGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EOutlineOn | ESetMonochromeGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | EOutlineOn | ESetMonochromeGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | ESetMonochromeGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EOutlineOn | ESetMonochromeGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | EOutlineOn | ESetMonochromeGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
// test with EAntiAliasedGlyphBitmap and alpha value 255
- {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue},
- {EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue},
- {EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, KRgbBlack, KRgbYellow},
- {EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, KRgbBlack, KRgbYellow},
- {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, KRgbBlack, KRgbYellow},
- {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbBlue, KRgbBlack, KRgbYellow},
- {EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbBlue, KRgbBlack, KRgbYellow},
- {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbBlue, KRgbBlack, KRgbYellow},
- {EDropShadowOn | ESetAntiAliasedGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue},
- {EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn |EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue},
- {EDropShadowOn | ESetAntiAliasedGlyphBitmap, KRgbBlue, KRgbGreen, KRgbYellow},
- {EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbBlue, KRgbGreen, KRgbYellow},
- {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbBlue, KRgbGreen, KRgbYellow},
- {ESetAntiAliasedGlyphBitmap, KRgbBlue, KRgbGreen, KRgbYellow},
- {ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, KRgbGreen, KRgbYellow},
+ {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, KRgbBlack, KRgbYellow, KRgbWhite},
+ {EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, KRgbBlack, KRgbYellow, KRgbWhite},
+ {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, KRgbBlack, KRgbYellow, KRgbWhite},
+ {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbBlue, KRgbBlack, KRgbYellow, KRgbWhite},
+ {EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbBlue, KRgbBlack, KRgbYellow, KRgbWhite},
+ {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbBlue, KRgbBlack, KRgbYellow, KRgbWhite},
+ {EDropShadowOn | ESetAntiAliasedGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn |EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbGreen, KRgbBlack, KRgbBlue, KRgbWhite},
+ {EDropShadowOn | ESetAntiAliasedGlyphBitmap, KRgbBlue, KRgbGreen, KRgbYellow, KRgbWhite},
+ {EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbBlue, KRgbGreen, KRgbYellow, KRgbWhite},
+ {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbBlue, KRgbGreen, KRgbYellow, KRgbWhite},
+ {ESetAntiAliasedGlyphBitmap, KRgbBlue, KRgbGreen, KRgbYellow, KRgbWhite},
+ {ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, KRgbGreen, KRgbYellow, KRgbWhite},
// test with EAntiAliasedGlyphBitmap and alpha value < 255 (transparency)
- {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, TRgb(128,255,100,0), KRgbMagenta},
- {EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbGreen, TRgb(128,200,100,32), KRgbYellow},
- {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbYellow, TRgb(100,200,100,64), KRgbGray},
- {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbWhite, TRgb(128,200,50,128), KRgbYellow},
- {EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbBlack, TRgb(12,20,50,255), KRgbWhite}
+ {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbBlue, TRgb(128,255,100,0), KRgbMagenta, KRgbWhite},
+ {EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbGreen, TRgb(128,200,100,32), KRgbYellow, KRgbWhite},
+ {EDropShadowOn | EOutlineOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw, KRgbYellow, TRgb(100,200,100,64), KRgbGray, KRgbWhite},
+ {EDropShadowOn | ESetAntiAliasedGlyphBitmap | EVerticalDraw | ERotate90Degrees, KRgbWhite, TRgb(128,200,50,128), KRgbYellow, KRgbWhite},
+ {EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbBlack, TRgb(12,20,50,255), KRgbWhite, KRgbWhite},
+ {EOutlineOn | ESetAntiAliasedGlyphBitmap, KRgbGreen, TRgb(255,0,0,127), KRgbYellow, TRgb(127, 127, 127, 0)}
};
// Test setting for TestDrawTextWithStrikeThroughL() i.e. for test case 11
--- a/graphicsdeviceinterface/gdi/bwins/GDI2U.def Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/gdi/bwins/GDI2U.def Tue Jun 01 15:04:40 2010 +0100
@@ -290,4 +290,34 @@
?DrawTextVertical@CGraphicsContext@@QAEXABVTDesC16@@PBVTTextParameters@1@ABVTPoint@@H@Z @ 289 NONAME ; void CGraphicsContext::DrawTextVertical(class TDesC16 const &, class CGraphicsContext::TTextParameters const *, class TPoint const &, int)
?DrawTextVertical@CGraphicsContext@@QAEXABVTDesC16@@PBVTTextParameters@1@ABVTRect@@HHW4TTextAlign@1@H@Z @ 290 NONAME ; void CGraphicsContext::DrawTextVertical(class TDesC16 const &, class CGraphicsContext::TTextParameters const *, class TRect const &, int, int, enum CGraphicsContext::TTextAlign, int)
?TextWidthInPixels@CFont@@QBEHABVTDesC16@@PBVTMeasureTextInput@1@@Z @ 291 NONAME ; int CFont::TextWidthInPixels(class TDesC16 const &, class CFont::TMeasureTextInput const *) const
+ ?Open@RFontTable@@QAEHAAVCFont@@K@Z @ 292 NONAME ABSENT ; int RFontTable::Open(class CFont &, unsigned long)
+ ?Next@RGlyphOutlineIterator@@QAEHXZ @ 293 NONAME ABSENT ; int RGlyphOutlineIterator::Next(void)
+ ?TableLength@RFontTable@@QBEHXZ @ 294 NONAME ABSENT ; int RFontTable::TableLength(void) const
+ ?OutlineLength@RGlyphOutlineIterator@@QBEHXZ @ 295 NONAME ABSENT ; int RGlyphOutlineIterator::OutlineLength(void) const
+ ?Outline@RGlyphOutlineIterator@@QBEPBEXZ @ 296 NONAME ABSENT ; unsigned char const * RGlyphOutlineIterator::Outline(void) const
+ ?TableContent@RFontTable@@QBEPBEXZ @ 297 NONAME ABSENT ; unsigned char const * RFontTable::TableContent(void) const
+ ?Close@RGlyphOutlineIterator@@QAEXXZ @ 298 NONAME ABSENT ; void RGlyphOutlineIterator::Close(void)
+ ?Close@RFontTable@@QAEXXZ @ 299 NONAME ABSENT ; void RFontTable::Close(void)
+ ??0RGlyphOutlineIterator@@QAE@XZ @ 300 NONAME ABSENT ; RGlyphOutlineIterator::RGlyphOutlineIterator(void)
+ ?Open@RGlyphOutlineIterator@@QAEHAAVCFont@@PAIHH@Z @ 301 NONAME ABSENT ; int RGlyphOutlineIterator::Open(class CFont &, unsigned int *, int, int)
+ ??0RFontTable@@QAE@XZ @ 302 NONAME ABSENT ; RFontTable::RFontTable(void)
+ ?Image@RGlyphDataIterator@@QBEABVRSgImage@@XZ @ 303 NONAME ABSENT ; class RSgImage const & RGlyphDataIterator::Image(void) const
+ ??0RGlyphMetricsArray@@QAE@XZ @ 304 NONAME ABSENT ; RGlyphMetricsArray::RGlyphMetricsArray(void)
+ ?Count@RGlyphMetricsArray@@QBEHXZ @ 305 NONAME ABSENT ; int RGlyphMetricsArray::Count(void) const
+ ?Metrics@RGlyphDataIterator@@QBEABVTOpenFontCharMetrics@@XZ @ 306 NONAME ABSENT ; class TOpenFontCharMetrics const & RGlyphDataIterator::Metrics(void) const
+ ??0RGlyphDataIterator@@QAE@XZ @ 307 NONAME ABSENT ; RGlyphDataIterator::RGlyphDataIterator(void)
+ ??ARGlyphMetricsArray@@QBEABVTOpenFontCharMetrics@@H@Z @ 308 NONAME ABSENT ; class TOpenFontCharMetrics const & RGlyphMetricsArray::operator[](int) const
+ ?GlyphCode@RGlyphDataIterator@@QBEIXZ @ 309 NONAME ABSENT ; unsigned int RGlyphDataIterator::GlyphCode(void) const
+ ?Rect@RGlyphDataIterator@@QBEABVTRect@@XZ @ 310 NONAME ABSENT ; class TRect const & RGlyphDataIterator::Rect(void) const
+ ?Next@RGlyphDataIterator@@QAEHXZ @ 311 NONAME ABSENT ; int RGlyphDataIterator::Next(void)
+ ?Close@RGlyphMetricsArray@@QAEXXZ @ 312 NONAME ABSENT ; void RGlyphMetricsArray::Close(void)
+ ?Get@RGlyphMetricsArray@@QAEHAAVCFont@@PBIH@Z @ 313 NONAME ABSENT ; int RGlyphMetricsArray::Get(class CFont &, unsigned int const *, int)
+ ?Close@RGlyphDataIterator@@QAEXXZ @ 314 NONAME ABSENT ; void RGlyphDataIterator::Close(void)
+ ?Open@RGlyphDataIterator@@QAEHAAVCFont@@PBIH@Z @ 315 NONAME ABSENT ; int RGlyphDataIterator::Open(class CFont &, unsigned int const *, int)
+ ?SetName@TTypeface@@QAEXABVTDesC16@@@Z @ 316 NONAME ; void TTypeface::SetName(class TDesC16 const &)
+ ?Name@TTypeface@@QBEABVTDesC16@@XZ @ 317 NONAME ; class TDesC16 const & TTypeface::Name(void) const
+ ?At@RHexTreeBase@@IBEPAXI@Z @ 318 NONAME ; void * RHexTreeBase::At(unsigned int) const
+ ??0RHexTreeBase@@IAE@PAVRHeap@@@Z @ 319 NONAME ; RHexTreeBase::RHexTreeBase(class RHeap *)
+ ?SetAt@RHexTreeBase@@IAEHIPAX@Z @ 320 NONAME ; int RHexTreeBase::SetAt(unsigned int, void *)
+ ?ResetAndDestroy@RHexTreeBase@@QAEXXZ @ 321 NONAME ; void RHexTreeBase::ResetAndDestroy(void)
--- a/graphicsdeviceinterface/gdi/eabi/GDI2U.def Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/gdi/eabi/GDI2U.def Tue Jun 01 15:04:40 2010 +0100
@@ -361,4 +361,39 @@
_ZN16CGraphicsContext8DrawTextERK7TDesC16PKNS_15TTextParametersERK6TPoint @ 360 NONAME
_ZN16CGraphicsContext8DrawTextERK7TDesC16PKNS_15TTextParametersERK6TPointRKNS_14TDrawTextParamE @ 361 NONAME
_ZNK5CFont17TextWidthInPixelsERK7TDesC16PKNS_17TMeasureTextInputE @ 362 NONAME
+ _ZN10RFontTable4OpenER5CFontm @ 363 NONAME ABSENT
+ _ZN10RFontTable5CloseEv @ 364 NONAME ABSENT
+ _ZN10RFontTableC1Ev @ 365 NONAME ABSENT
+ _ZN10RFontTableC2Ev @ 366 NONAME ABSENT
+ _ZN21RGlyphOutlineIterator4NextEv @ 367 NONAME ABSENT
+ _ZN21RGlyphOutlineIterator4OpenER5CFontPjii @ 368 NONAME ABSENT
+ _ZN21RGlyphOutlineIterator5CloseEv @ 369 NONAME ABSENT
+ _ZN21RGlyphOutlineIteratorC1Ev @ 370 NONAME ABSENT
+ _ZN21RGlyphOutlineIteratorC2Ev @ 371 NONAME ABSENT
+ _ZNK10RFontTable11TableLengthEv @ 372 NONAME ABSENT
+ _ZNK10RFontTable12TableContentEv @ 373 NONAME ABSENT
+ _ZNK21RGlyphOutlineIterator13OutlineLengthEv @ 374 NONAME ABSENT
+ _ZNK21RGlyphOutlineIterator7OutlineEv @ 375 NONAME ABSENT
+ _ZN18RGlyphDataIterator4NextEv @ 376 NONAME ABSENT
+ _ZN18RGlyphDataIterator4OpenER5CFontPKji @ 377 NONAME ABSENT
+ _ZN18RGlyphDataIterator5CloseEv @ 378 NONAME ABSENT
+ _ZN18RGlyphDataIteratorC1Ev @ 379 NONAME ABSENT
+ _ZN18RGlyphDataIteratorC2Ev @ 380 NONAME ABSENT
+ _ZN18RGlyphMetricsArray3GetER5CFontPKji @ 381 NONAME ABSENT
+ _ZN18RGlyphMetricsArray5CloseEv @ 382 NONAME ABSENT
+ _ZN18RGlyphMetricsArrayC1Ev @ 383 NONAME ABSENT
+ _ZN18RGlyphMetricsArrayC2Ev @ 384 NONAME ABSENT
+ _ZNK18RGlyphDataIterator4RectEv @ 385 NONAME ABSENT
+ _ZNK18RGlyphDataIterator5ImageEv @ 386 NONAME ABSENT
+ _ZNK18RGlyphDataIterator7MetricsEv @ 387 NONAME ABSENT
+ _ZNK18RGlyphDataIterator9GlyphCodeEv @ 388 NONAME ABSENT
+ _ZNK18RGlyphMetricsArray5CountEv @ 389 NONAME ABSENT
+ _ZNK18RGlyphMetricsArrayixEi @ 390 NONAME ABSENT
+ _ZN9TTypeface7SetNameERK7TDesC16 @ 391 NONAME
+ _ZNK9TTypeface4NameEv @ 392 NONAME
+ _ZN12RHexTreeBase15ResetAndDestroyEv @ 393 NONAME
+ _ZN12RHexTreeBase5SetAtEjPv @ 394 NONAME
+ _ZN12RHexTreeBaseC1EP5RHeap @ 395 NONAME
+ _ZN12RHexTreeBaseC2EP5RHeap @ 396 NONAME
+ _ZNK12RHexTreeBase2AtEj @ 397 NONAME
--- a/graphicsdeviceinterface/gdi/group/BLD.INF Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/gdi/group/BLD.INF Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-2010 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"
@@ -45,6 +45,9 @@
../inc/gdiconsts.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(graphics/gdi/gdiconsts.h)
../inc/gdiinline.inl SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(graphics/gdi/gdiinline.inl)
+../inc/hextree.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(hextree.h)
+../inc/hextree.inl SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(hextree.inl)
+
../group/gdi.iby /epoc32/rom/include/gdi.iby
--- a/graphicsdeviceinterface/gdi/group/GDI.MMP Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/gdi/group/GDI.MMP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1998-2010 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"
@@ -53,6 +53,7 @@
SOURCE FontIndic.cpp
SOURCE ShaperCli.cpp
SOURCE GDI.CPP
+SOURCE hextree.cpp
LIBRARY euser.lib
LIBRARY efsrv.lib
--- a/graphicsdeviceinterface/gdi/inc/GDI.H Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/gdi/inc/GDI.H Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1998-2010 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"
@@ -140,7 +140,12 @@
/** Insufficient text for successful completion of the method */
EGdiPanic_OutOfText = 2,
/** Internal failure. */
- EGdiPanic_Invariant = 3
+ EGdiPanic_Invariant = 3,
+ /** Reserved panic codes. Not to be used. */
+ EGdiPanic_Reserved1 = 4,
+ EGdiPanic_Reserved2 = 5,
+ /** Setting a typeface name that is too long */
+ EGdiPanic_TypefaceNameOverflow = 6,
};
@@ -560,6 +565,8 @@
IMPORT_C void SetScriptTypeForMetrics(TLanguage aLanguage);
IMPORT_C void SetScriptTypeForMetrics(TInt aScript);
IMPORT_C TInt ScriptTypeForMetrics() const;
+ IMPORT_C void SetName(const TDesC& aName);
+ IMPORT_C const TDesC& Name() const;
private:
void ResetAttributes();
void ResetScriptType();
@@ -2258,14 +2265,16 @@
Note:
- The pen is used to draw lines, the outlines of filled shapes, and text. The
- class provides member functions to set the colour of the pen, the style of
+ The pen is used to draw lines, the outlines of filled shapes, and text. In case
+ of outlined text, the pen is used to draw the outline of the font.
+
+ The class provides member functions to set the colour of the pen, the style of
line and the line size drawn.
@param aColor An RGB colour for the pen.
@see CGraphicsContext::SetDrawMode() */
virtual void SetPenColor(const TRgb& aColor)=0;
-
+
/** Sets the line drawing style for the pen.
There are 6 pen styles. If no pen style is set, then the default is
@@ -2351,8 +2360,9 @@
Notes:
- The brush is used for filling shapes and the background of text boxes. The
- brush has colour, style, pattern and pattern origin parameters.
+ The brush is used for filling shapes and the background of text boxes. In
+ case of outlined text, the brush is used for filling the font. The brush
+ has colour, style, pattern and pattern origin parameters.
If no brush colour has been set, it defaults to white. However the default
brush style is null, so when drawing to a window the default appears to be
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsdeviceinterface/gdi/inc/hextree.h Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,74 @@
+// Copyright (c) 2010 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:
+// Hexadecimal trees - declaration
+//
+
+#ifndef HEXTREE_H
+#define HEXTREE_H
+
+#include <e32std.h>
+
+/**
+Base class that provides the implementation for RHexTree, which is just a thin
+template.
+
+An instance of this class can have up to eight 16-way prefix trees, with heights
+from 1 to 8. All the values are stored in the leaves. To find a value from a
+32-bit key, first the key is decomposed into 8 hexadecimal digits and then the
+prefix tree with height matching the number of digits in the key (ignoring zeros
+to the left) is traversed using the sequence of digits in the key as the
+indexing string. Offsets are internally used instead of pointers to allow
+instances to be placed in a heap shared between several processes.
+*/
+class RHexTreeBase
+ {
+public:
+ IMPORT_C void ResetAndDestroy();
+protected:
+ IMPORT_C RHexTreeBase(RHeap* aHeap);
+ IMPORT_C TInt SetAt(TUint aKey, TAny* aValue);
+ IMPORT_C TAny* At(TUint aKey) const;
+private:
+ TInt SetAt(TUint aKey, TAny* aLeaf, TInt aHeight);
+ TInt SetAt(TUint aKey, TAny* aLeaf, TInt aHeight, TAny* aNode, TInt aLevel);
+ TAny* At(TUint aKey, TInt aHeight) const;
+ void ResetAndDestroy(TInt aHeight, TAny* aNode, TInt aLevel);
+private:
+ enum { EMaxNumHexDigits = 8 };
+private:
+ RHeap* iHeap;
+ TInt iRootOffsets[EMaxNumHexDigits];
+ };
+
+/**
+An associative array implementation optimised for the case where the keys are
+32-bit codes with spatial locality of reference. The values can be of any
+self-contained data type (that is, without destructor or clean-up functions).
+It allows multiple-readers, single-writer concurrent access from different
+processes in an SMP-safe manner without locking, excluding deletion of
+individual key-value pairs.
+*/
+template<class T>
+class RHexTree : public RHexTreeBase
+ {
+public:
+ inline RHexTree(RHeap* aHeap);
+ inline TInt SetAt(TUint aKey, T* aValue);
+ inline const T* At(TUint aKey) const;
+ inline T* At(TUint aKey);
+ };
+
+#include <hextree.inl>
+
+#endif // HEXTREE_H
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsdeviceinterface/gdi/inc/hextree.inl Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,83 @@
+// Copyright (c) 2010 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:
+// Hexadecimal trees - inline functions
+//
+
+#ifndef HEXTREE_INL
+#define HEXTREE_INL
+
+/**
+Constructor. It constructs an associative array with no key-value pairs.
+
+@param aHeap A pointer to the heap to be used by the associative array
+ implementation to allocate memory for internal data structures. This
+ heap can be shared between several processes.
+*/
+template<class T>
+inline RHexTree<T>::RHexTree(RHeap* aHeap)
+ : RHexTreeBase(aHeap)
+ {
+ }
+
+/**
+Adds a key-value pair to this associative array.
+
+@param aKey The 32-bit key to add to this associative array.
+@param aValue A pointer to the value to associate with aKey. It must have been
+ allocated on the same heap as the one used by the associative array
+ implementation to allocate memory for internal data structures. Ownership
+ is transferred to this associative array.
+@return KErrNone if the key-value pair was added successfully. KErrNoMemory if
+ there was not enough memory in the heap for internal data structures.
+ KErrAlreadyExists if an attempt was made to add a duplicate key.
+*/
+template<class T>
+inline TInt RHexTree<T>::SetAt(TUint aKey, T* aValue)
+ {
+ return RHexTreeBase::SetAt(aKey, aValue);
+ }
+
+/**
+Looks up a given key in this associative array and returns a pointer to the
+corresponding value.
+
+@param aKey The 32-bit key to look up.
+@return A pointer to the corresponding value in this associative array, if the
+ given key was found. The value may not be modified via this pointer.
+ NULL if the given key was not found.
+*/
+template<class T>
+inline const T* RHexTree<T>::At(TUint aKey) const
+ {
+ return static_cast<T*>(RHexTreeBase::At(aKey));
+ }
+
+/**
+Looks up a given key in this associative array and returns a pointer to the
+corresponding value. Note that if values are modified after being added to an
+associative array, then the user is responsible for synchronisation when
+concurrent access is needed.
+
+@param aKey The 32-bit key to look up.
+@return A pointer to the corresponding value in this associative array, if the
+ given key was found. The value may be modified via this pointer.
+ NULL if the given key was not found.
+*/
+template<class T>
+inline T* RHexTree<T>::At(TUint aKey)
+ {
+ return static_cast<T*>(RHexTreeBase::At(aKey));
+ }
+
+#endif // HEXTREE_INL
--- a/graphicsdeviceinterface/gdi/sgdi/FONT.CPP Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/gdi/sgdi/FONT.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1998-2010 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"
@@ -345,10 +345,13 @@
The object's font style is set to the default: EPostureUpright, EStrokeWeightNormal,
and EPrintPosNormal.
-@param aTypefaceName The name of the typeface (e.g. "Roman").
-@param aHeight The height of the typeface, in twips. */
+@param aTypefaceName The name of the typeface (e.g. "Roman"). It should be no
+ longer than KMaxTypefaceNameLength characters in length.
+@param aHeight The height of the typeface, in twips.
+@panic GDI 6, if aTypefaceName is more than KMaxTypefaceNameLength characters long.
+*/
{
- iTypeface.iName=aTypefaceName;
+ iTypeface.SetName(aTypefaceName);
}
@@ -605,6 +608,29 @@
return (KTTypefaceMaskScript & iFlags) >> KTTypefaceBitsNumAttrib;
}
+/**
+Sets the name of the typeface. This method should be used rather than
+directly accessing the iName public member.
+@param aName The name of the typeface (e.g. "Roman"). It should be no
+ longer than KMaxTypefaceNameLength characters in length.
+@panic GDI 6, if aName is more than KMaxTypefaceNameLength characters
+ long.
+*/
+EXPORT_C void TTypeface::SetName(const TDesC& aName)
+ {
+ GDI_ASSERT_ALWAYS(aName.Length() <= KMaxTypefaceNameLength, EGdiPanic_TypefaceNameOverflow);
+ iName=aName;
+ }
+
+/**
+Returns the name of the typeface.
+@return The name of the typeface.
+*/
+EXPORT_C const TDesC& TTypeface::Name() const
+ {
+ return iName;
+ }
+
//
// CFont
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsdeviceinterface/gdi/sgdi/hextree.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,195 @@
+// Copyright (c) 2010 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:
+// Hexadecimal trees - implementation
+//
+
+#include <hextree.h>
+#include <e32atomics.h>
+
+EXPORT_C RHexTreeBase::RHexTreeBase(RHeap* aHeap)
+ : iHeap(aHeap)
+ {
+ Mem::FillZ(iRootOffsets, sizeof(iRootOffsets));
+ }
+
+EXPORT_C TInt RHexTreeBase::SetAt(TUint aKey, TAny* aValue)
+ {
+ TUint mask = 0xF0000000;
+ for (TInt height = EMaxNumHexDigits; height > 1; --height)
+ {
+ if ((aKey & mask) != 0)
+ {
+ return SetAt(aKey, aValue, height);
+ }
+ mask >>= 4;
+ }
+ return SetAt(aKey, aValue, 1);
+ }
+
+EXPORT_C TAny* RHexTreeBase::At(TUint aKey) const
+ {
+ TUint mask = 0xF0000000;
+ for (TInt height = EMaxNumHexDigits; height > 1; --height)
+ {
+ if ((aKey & mask) != 0)
+ {
+ return At(aKey, height);
+ }
+ mask >>= 4;
+ }
+ return At(aKey, 1);
+ }
+
+/**
+Empties this associative array and frees all memory allocated both for the
+associative array implementation and for the values that have been added to
+this associative array.
+
+The internal state of this associative array is reset so that it can be reused
+or allowed to go out of scope after a call to this function.
+*/
+EXPORT_C void RHexTreeBase::ResetAndDestroy()
+ {
+ for (TInt height = 1; height <= EMaxNumHexDigits; ++height)
+ {
+ TInt offset = iRootOffsets[height - 1];
+ if (offset != 0)
+ {
+ TAny* root = PtrAdd(this, offset);
+ ResetAndDestroy(height, root, 1);
+ iRootOffsets[height - 1] = 0;
+ }
+ }
+ }
+
+TInt RHexTreeBase::SetAt(TUint aKey, TAny* aLeaf, TInt aHeight)
+ {
+ TInt err;
+ TInt offset = iRootOffsets[aHeight - 1];
+ if (offset == 0)
+ {
+ TAny* root = iHeap->AllocZ(aHeight > 1 ? sizeof(TInt) * 15 : sizeof(TInt) * 16);
+ if (!root)
+ {
+ return KErrNoMemory;
+ }
+ err = SetAt(aKey, aLeaf, aHeight, root, 1);
+ if (err == KErrNone)
+ {
+ __e32_atomic_store_rel32(&iRootOffsets[aHeight - 1], reinterpret_cast<TInt>(root) - reinterpret_cast<TInt>(this));
+ }
+ else
+ {
+ iHeap->Free(root);
+ }
+ }
+ else
+ {
+ TAny* root = PtrAdd(this, offset);
+ err = SetAt(aKey, aLeaf, aHeight, root, 1);
+ }
+ return err;
+ }
+
+TInt RHexTreeBase::SetAt(TUint aKey, TAny* aLeaf, TInt aHeight, TAny* aNode, TInt aLevel)
+ {
+ TInt err = KErrNone;
+ TInt branch = (aKey >> ((aHeight - aLevel) << 2)) & 0xF;
+ if (aLevel == 1 && aHeight > 1)
+ {
+ --branch;
+ }
+ TInt offset = static_cast<TInt*>(aNode)[branch];
+ if (aLevel == aHeight)
+ {
+ if (offset == 0)
+ {
+ __e32_atomic_store_rel32(&static_cast<TInt*>(aNode)[branch], reinterpret_cast<TInt>(aLeaf) - reinterpret_cast<TInt>(aNode));
+ }
+ else
+ {
+ err = KErrAlreadyExists;
+ }
+ }
+ else if (offset == 0)
+ {
+ TAny* newNode = iHeap->AllocZ(sizeof(TInt) * 16);
+ if (!newNode)
+ {
+ return KErrNoMemory;
+ }
+ err = SetAt(aKey, aLeaf, aHeight, newNode, aLevel + 1);
+ if (err == KErrNone)
+ {
+ __e32_atomic_store_rel32(&static_cast<TInt*>(aNode)[branch], reinterpret_cast<TInt>(newNode) - reinterpret_cast<TInt>(aNode));
+ }
+ else
+ {
+ iHeap->Free(newNode);
+ }
+ }
+ else
+ {
+ TAny* nextNode = PtrAdd(aNode, offset);
+ err = SetAt(aKey, aLeaf, aHeight, nextNode, aLevel + 1);
+ }
+ return err;
+ }
+
+TAny* RHexTreeBase::At(TUint aKey, TInt aHeight) const
+ {
+ TInt offset = __e32_atomic_load_acq32(&iRootOffsets[aHeight - 1]);
+ if (offset == 0)
+ {
+ return NULL;
+ }
+ const TAny* node = PtrAdd(this, offset);
+ for (TInt level = 1; level <= aHeight; ++level)
+ {
+ TInt branch = (aKey >> ((aHeight - level) << 2)) & 0xF;
+ if (level == 1 && aHeight > 1)
+ {
+ --branch;
+ }
+ offset = __e32_atomic_load_acq32(&static_cast<const TInt*>(node)[branch]);
+ if (offset == 0)
+ {
+ return NULL;
+ }
+ node = PtrAdd(node, offset);
+ }
+ return const_cast<TAny*>(node);
+ }
+
+void RHexTreeBase::ResetAndDestroy(TInt aHeight, TAny* aNode, TInt aLevel)
+ {
+ TInt maxNumBranches = (aLevel == 1 && aHeight > 1 ? 15 : 16);
+ for (TInt branch = 0; branch < maxNumBranches; ++branch)
+ {
+ TInt offset = static_cast<TInt*>(aNode)[branch];
+ if (offset != 0)
+ {
+ TAny* nextNode = PtrAdd(aNode, offset);
+ if (aLevel == aHeight)
+ {
+ iHeap->Free(nextNode);
+ }
+ else
+ {
+ ResetAndDestroy(aHeight, nextNode, aLevel + 1);
+ }
+ }
+ }
+ iHeap->Free(aNode);
+ }
--- a/graphicsdeviceinterface/screendriver/sbit/BMDRAW16.CPP Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/sbit/BMDRAW16.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-20010 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"
@@ -16,6 +16,7 @@
#include "BMDRAW.H"
#include "BitDrawInterfaceId.h"
#include <graphics/lookuptable.h>
+#include <graphics/blendingalgorithms.h>
#if defined(SYMBIAN_USE_FAST_FADING)
// 16bpp fast fade - half the contrast and brighten
@@ -1427,9 +1428,6 @@
TUint32 aOutlinePenColor, TUint32 aShadowColor,
TUint32 aFillColor, const TUint8* aDataBuffer)
{
- const TInt alpha = aOutlinePenColor >> 24;
- if (alpha==0 || aLength<=0)
- return(KErrNone);
DeOrientate(aX,aY);
TUint16* pixelPtr = PixelAddress(aX,aY);
const TInt pixelPtrInc = LogicalPixelAddressIncrement();
@@ -1437,7 +1435,9 @@
TInt blendedRedColor;
TInt blendedGreenColor;
TInt blendedBlueColor;
+ TUint blendedAlpha;
TUint32 finalColor;
+ const TUint16* normTable = PtrTo16BitNormalisationTable();
//Get red color. Equivalent to TRgb::Red()
const TInt redOutlinePenColor = (aOutlinePenColor & 0xff0000) >> 16;
@@ -1454,69 +1454,58 @@
const TInt blueShadowColor = aShadowColor & 0xff;
const TInt blueFillColor = aFillColor & 0xff;
+ //Get alpha color. Equivalent to TRgb::Alpha()
+ const TUint alphaOutlinePenColor = aOutlinePenColor >> 24;
+ const TUint alphaShadowColor = aShadowColor >> 24;
+ const TUint alphaFillColor = aFillColor >> 24;
+
while (aDataBuffer < dataBufferPtrLimit)
{
TUint8 index = *aDataBuffer++;
-
if (255 == FourColorBlendLookup[index][KBackgroundColorIndex])
{
//background colour
- //No drawing required so move on to next pixel.
- pixelPtr += pixelPtrInc;
- continue;
+ //No drawing required
}
else if (255 == FourColorBlendLookup[index][KFillColorIndex])
{
//Use fill colour to draw
finalColor = aFillColor;
+ *pixelPtr = Blend32To16((finalColor | 0xff000000), alphaFillColor, *pixelPtr);
}
else if (255 == FourColorBlendLookup[index][KShadowColorIndex])
{
//Use shadow colour to draw
finalColor = aShadowColor;
+ *pixelPtr = Blend32To16((finalColor | 0xff000000), alphaShadowColor, *pixelPtr);
}
else if (255 == FourColorBlendLookup[index][KOutlineColorIndex])
{
//Use outline colour to draw
- finalColor = aOutlinePenColor;
+ finalColor = aOutlinePenColor;
+ *pixelPtr = Blend32To16((finalColor | 0xff000000), alphaOutlinePenColor, *pixelPtr);
}
else
{
//Get the background pixel colour. Using the lookup table to convert 16 to 32 bit colour
- blendedRedColor = redOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
- redShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
- redFillColor * FourColorBlendLookup[index][KFillColorIndex];
-
- blendedGreenColor = greenOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
- greenShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
- greenFillColor * FourColorBlendLookup[index][KFillColorIndex];
-
- blendedBlueColor = blueOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
- blueShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
- blueFillColor * FourColorBlendLookup[index][KFillColorIndex];
+ blendedRedColor = (redOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ redShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ redFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedGreenColor = (greenOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ greenShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ greenFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedBlueColor = (blueOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ blueShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ blueFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedAlpha = (alphaOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
+ alphaShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
+ alphaFillColor * FourColorBlendLookup[index][KFillColorIndex]) >> 8;
- TInt backGroundAlpha=FourColorBlendLookup[index][KBackgroundColorIndex];
- if (backGroundAlpha)
- {
- const TUint8* pixelPtr8 = reinterpret_cast<TUint8*>(pixelPtr);
- const TUint8 low = *pixelPtr8++;
- const TUint8 high = *pixelPtr8++;
- TUint32 backgroundColor = (*(Convert16to32bppHigh() + high)) | (*(Convert16to32bppLow() + low));
- blendedRedColor += ((backgroundColor & 0xff0000) >> 16) * backGroundAlpha;
- blendedGreenColor += ((backgroundColor & 0xff00) >> 8) * backGroundAlpha;
- blendedBlueColor += (backgroundColor & 0xff) * backGroundAlpha;
- }
- //Equivalent to TRgb::TRgb(TUint32)
- finalColor = ((blendedRedColor&0xFF00)<<8) | (blendedGreenColor&0xFF00) | (blendedBlueColor>>8);
- }
-
- if (alpha == 0xff)
- {
- *pixelPtr = Conv32To16(finalColor);
- }
- else
- {
- *pixelPtr = Blend32To16NoChecks(finalColor, alpha, *pixelPtr);
+ finalColor = PMA2NonPMAPixel((blendedAlpha << 24) | (blendedRedColor << 16) | (blendedGreenColor << 8) | blendedBlueColor, normTable);
+ *pixelPtr = Blend32To16((finalColor | 0xff000000), blendedAlpha, *pixelPtr);
}
pixelPtr += pixelPtrInc;
}
--- a/graphicsdeviceinterface/screendriver/sbit/BMDRAW24U.CPP Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/sbit/BMDRAW24U.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 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"
@@ -16,6 +16,7 @@
#include "BMDRAW.H"
#include "BitDrawInterfaceId.h"
#include <graphics/lookuptable.h>
+#include <graphics/blendingalgorithms.h>
TInt CDrawUTwentyFourBppBitmap::Construct(TSize aSize)
{
@@ -1184,9 +1185,6 @@
TUint32 aOutlinePenColor, TUint32 aShadowColor,
TUint32 aFillColor, const TUint8* aDataBuffer)
{
- const TInt alpha = aOutlinePenColor >> 24;
- if (alpha==0 || aLength<=0)
- return KErrNone;
DeOrientate(aX,aY);
TUint32* pixelPtr = PixelAddress(aX,aY);
const TInt pixelPtrInc = PixelAddressIncrement();
@@ -1194,8 +1192,10 @@
TInt blendedRedColor;
TInt blendedGreenColor;
TInt blendedBlueColor;
+ TInt blendedAlpha;
TUint8 index = 0;
TUint32 finalColor;
+ const TUint16* normTable = PtrTo16BitNormalisationTable();
//Get red color. Equivalent to TRgb::Red()
const TInt redOutlinePenColor = (aOutlinePenColor & 0xff0000) >> 16;
@@ -1212,72 +1212,58 @@
const TInt blueShadowColor = aShadowColor & 0xff;
const TInt blueFillColor = aFillColor & 0xff;
- const TUint32 mask2 = alpha | (alpha << 16);
+ //Get alpha color. Equivalent to TRgb::Alpha()
+ const TInt alphaOutlinePenColor = aOutlinePenColor >> 24;
+ const TInt alphaShadowColor = aShadowColor >> 24;
+ const TInt alphaFillColor = aFillColor >> 24;
+
while (aDataBuffer < dataBufferPtrLimit)
{
index = *aDataBuffer++;
-
if (255 == FourColorBlendLookup[index][KBackgroundColorIndex])
{
//background colour
- //No drawing required so move on to next pixel.
- pixelPtr += pixelPtrInc;
- continue;
+ //No drawing required
}
else if (255 == FourColorBlendLookup[index][KFillColorIndex])
{
//Use fill colour to draw
finalColor = aFillColor;
+ AlphaBlendPixelToDest((finalColor | 0xff000000), alphaFillColor, pixelPtr);
}
else if (255 == FourColorBlendLookup[index][KShadowColorIndex])
{
//Use shadow colour to draw
finalColor = aShadowColor;
+ AlphaBlendPixelToDest((finalColor | 0xff000000), alphaShadowColor, pixelPtr);
}
else if (255 == FourColorBlendLookup[index][KOutlineColorIndex])
{
//Use outline colour to draw
finalColor = aOutlinePenColor;
+ AlphaBlendPixelToDest((finalColor | 0xff000000), alphaOutlinePenColor, pixelPtr);
}
else
{
- TUint32 backgroundColor = *pixelPtr;
- blendedRedColor = redOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
- redShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
- redFillColor * FourColorBlendLookup[index][KFillColorIndex] +
- ((backgroundColor & 0xff0000) >> 16) * FourColorBlendLookup[index][KBackgroundColorIndex];
+ blendedRedColor = (redOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ redShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ redFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedGreenColor = (greenOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ greenShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ greenFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
- blendedGreenColor = greenOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
- greenShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
- greenFillColor * FourColorBlendLookup[index][KFillColorIndex] +
- ((backgroundColor & 0xff00) >> 8) * FourColorBlendLookup[index][KBackgroundColorIndex];
+ blendedBlueColor = (blueOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ blueShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ blueFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
- blendedBlueColor = blueOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
- blueShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
- blueFillColor * FourColorBlendLookup[index][KFillColorIndex] +
- (backgroundColor & 0xff) * FourColorBlendLookup[index][KBackgroundColorIndex];
+ blendedAlpha = (alphaOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
+ alphaShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
+ alphaFillColor * FourColorBlendLookup[index][KFillColorIndex]) >> 8;
- //Equivalent to TRgb::TRgb(TUint32)
- finalColor = ((blendedRedColor&0xFF00) << 8) | (blendedGreenColor&0xFF00) | (blendedBlueColor>>8);
+ finalColor = PMA2NonPMAPixel((blendedAlpha << 24) | (blendedRedColor << 16) | (blendedGreenColor << 8) | blendedBlueColor, normTable);
+ AlphaBlendPixelToDest(finalColor | 0xff000000, blendedAlpha, pixelPtr);
}
-
- if (alpha != 0xff)
- {
- TUint32 backgroundColor = *pixelPtr;
- //Draw the final colour
-//
- const TUint32 s_rb = finalColor & 0x00FF00FF;
- const TUint32 s_g = (finalColor & 0xFF00) >> 8;
- const TUint32 d_rb = backgroundColor & 0x00FF00FF;
- const TUint32 rb = ((((alpha * ((0x01000100 + s_rb) - d_rb)) >> 8) + d_rb) - mask2) & 0x00FF00FF;
-
- const TInt d_g = (backgroundColor & 0xFF00) >> 8;
- const TInt g = ((alpha * (s_g - d_g)) >> 8) + d_g;
-
- finalColor = rb | (g<<8);
- }
-
- *pixelPtr = (finalColor | 0xff000000);
pixelPtr += pixelPtrInc;
}
return KErrNone;
--- a/graphicsdeviceinterface/screendriver/sbit/BMDRAW32.CPP Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/sbit/BMDRAW32.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -32,6 +32,11 @@
/**Initializes iSize, iDrawRect, iLongWidth, iScanLineBytes, iScanlineWords data members.
It should be called every time when iSize is going to be changed - from Construct().
+ If you are calling SetSize for an offscreen bitmap then this function operates correctly
+ but for hardware bitmaps the calculated values for iScanLineWords and iLongWidth members
+ may not be compatible. For hardware bitmaps you should explicitly set iScanLineWords to
+ a correct value as shown in CGuidScreenDevice<T,guidMode,pixelsPerWord>::SetDeviceOrientation.
+
@param aSize Physical screen size in pixels.
@panic EScreenDriverPanicInvalidSize - Invalid aSize parameter. This might happen if the
--- a/graphicsdeviceinterface/screendriver/sbit/BMDRAW32A.CPP Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/sbit/BMDRAW32A.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2004-2010 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"
@@ -14,6 +14,8 @@
//
#include "BMDRAW.H"
+#include <graphics/lookuptable.h>
+#include <graphics/blendingalgorithms.h>
/**
Performs a blend based on the PD method, with 2* 16 bit in one 32 bit operation optimisation.
@@ -37,6 +39,10 @@
I do this multiply after the CSrc*MulSrc, while I still have a 16bit intermediate result.
It is possible to generate a faster, less accurate result by exhaustively finding
the highest value that can be added instead of rb = rb+((rb>>8)&0x00ff00ff)+0x00800080; without causing an overflow.
+@param aBeneath non-premultiplied color with alpha of the destination
+@param aSrcColor non-premultiplied color with alpha of the source
+@param aMaskBuffer mask
+@return pre multiplied color resulting from the blending operation
*/
FORCEINLINE TUint32 OptimizedBlend32A(TUint32 aBeneath,TUint32 aSrcColor,TUint8 aMaskBuffer)
{
@@ -636,9 +642,11 @@
TInt blendedRedColor;
TInt blendedGreenColor;
TInt blendedBlueColor;
+ TInt blendedAlpha;
TUint8 index = 0;
TUint32 finalColor;
-
+ const TUint16* normTable = PtrTo16BitNormalisationTable();
+
//Get red color. Equivalent to TRgb::Red()
const TInt redOutlinePenColor = (aOutlinePenColor & 0xff0000) >> 16;
const TInt redShadowColor = (aShadowColor & 0xff0000) >> 16;
@@ -653,7 +661,11 @@
const TInt blueOutlinePenColor = aOutlinePenColor & 0xff;
const TInt blueShadowColor = aShadowColor & 0xff;
const TInt blueFillColor = aFillColor & 0xff;
- const TInt alpha = aOutlinePenColor >> 24;
+
+ //Get alpha color. Equivalent to TRgb::Alpha()
+ const TInt alphaOutlinePenColor = aOutlinePenColor >> 24;
+ const TInt alphaShadowColor = aShadowColor >> 24;
+ const TInt alphaFillColor = aFillColor >> 24;
while (aDataBuffer < dataBufferPtrLimit)
{
@@ -661,47 +673,53 @@
if(255 == FourColorBlendLookup[index][KBackgroundColorIndex])
{
//background colour
- //No drawing required so move on to next pixel.
- pixelPtr += pixelPtrInc;
- continue;
+ //No drawing required
}
else if (255 == FourColorBlendLookup[index][KFillColorIndex])
{
//Use fill colour to draw
- finalColor = aFillColor;
+ finalColor = OptimizedBlend32A(*pixelPtr, aFillColor, alphaFillColor);
+ *pixelPtr = PMA2NonPMAPixel(finalColor, normTable);
}
else if (255 == FourColorBlendLookup[index][KShadowColorIndex])
{
//Use shadow colour to draw
- finalColor = aShadowColor;
+ finalColor = OptimizedBlend32A(*pixelPtr, aShadowColor, alphaShadowColor);
+ *pixelPtr = PMA2NonPMAPixel(finalColor, normTable);
}
else if (255 == FourColorBlendLookup[index][KOutlineColorIndex])
{
//Use outline colour to draw
- finalColor = aOutlinePenColor;
+ finalColor = OptimizedBlend32A(*pixelPtr, aOutlinePenColor, alphaOutlinePenColor);
+ *pixelPtr = PMA2NonPMAPixel(finalColor, normTable);
}
else
{
- const TUint32 backgroundColor = *pixelPtr;
-
- blendedRedColor = (redOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
- redShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
- redFillColor * FourColorBlendLookup[index][KFillColorIndex] +
- ((backgroundColor & 0xff0000) >> 16) * FourColorBlendLookup[index][KBackgroundColorIndex]) >> 8;
+ blendedRedColor = (redOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ redShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ redFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedGreenColor = (greenOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ greenShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ greenFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedBlueColor = (blueOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ blueShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ blueFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedAlpha = (alphaOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
+ alphaShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
+ alphaFillColor * FourColorBlendLookup[index][KFillColorIndex]) >> 8;
- blendedGreenColor = (greenOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
- greenShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
- greenFillColor * FourColorBlendLookup[index][KFillColorIndex] +
- ((backgroundColor & 0xff00) >> 8) * FourColorBlendLookup[index][KBackgroundColorIndex]) >> 8;
-
- blendedBlueColor = (blueOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
- blueShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
- blueFillColor * FourColorBlendLookup[index][KFillColorIndex] +
- (backgroundColor & 0xff) * FourColorBlendLookup[index][KBackgroundColorIndex]) >> 8;
-
- finalColor = (blendedRedColor << 16) | (blendedGreenColor << 8) | blendedBlueColor | 0xff000000;
+ // The blended colours have been alpha multiplied, hence the resulting colour is 16MAP
+ // Before doing the OptimizedBlend with the destination, note the following
+ // - The source alpha is set as fully opaque so that the blend is just with the mask
+ // - Input parameters for OptimizedBlend are NON-PRE, hence conversion from PRE to NON-PRE beforehand
+ // - output parameter for OptimizedBlend is PRE, hence conversion from PRE to NON-PRE afterwards
+ finalColor = PMA2NonPMAPixel((blendedAlpha << 24) | (blendedRedColor << 16) | (blendedGreenColor << 8) | blendedBlueColor, normTable);
+ finalColor = OptimizedBlend32A(*pixelPtr, finalColor | 0xff000000, blendedAlpha);
+ *pixelPtr = PMA2NonPMAPixel(finalColor, normTable);
}
- *pixelPtr = OptimizedBlend32A(*pixelPtr, finalColor, alpha);
pixelPtr += pixelPtrInc;
}
return KErrNone;
--- a/graphicsdeviceinterface/screendriver/sbit/BMDRAW32PMA.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/sbit/BMDRAW32PMA.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-2010 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"
@@ -696,10 +696,6 @@
TUint32 aOutlinePenColor, TUint32 aShadowColor,
TUint32 aFillColor, const TUint8* aDataBuffer)
{
- const TUint alphaShifted = aOutlinePenColor & 0xff000000;
- const TUint alpha = alphaShifted>>24;
- if (alpha==0 || aLength<=0)
- return KErrNone;
DeOrientate(aX,aY);
TUint32* pixelPtr = PixelAddress(aX,aY);
const TInt pixelPtrInc = PixelAddressIncrement();
@@ -707,6 +703,7 @@
TInt blendedRedColor;
TInt blendedGreenColor;
TInt blendedBlueColor;
+ TInt blendedAlpha;
TUint8 index = 0;
TUint32 finalColor;
@@ -724,81 +721,63 @@
const TInt blueOutlinePenColor = aOutlinePenColor & 0xff;
const TInt blueShadowColor = aShadowColor & 0xff;
const TInt blueFillColor = aFillColor & 0xff;
- const TUint16* normTable = PtrTo16BitNormalisationTable();
+
+ //Get alpha color. Equivalent to TRgb::Alpha()
+ const TInt alphaOutlinePenColor = aOutlinePenColor >> 24;
+ const TInt alphaShadowColor = aShadowColor >> 24;
+ const TInt alphaFillColor = aFillColor >> 24;
// Calculate PMA values for aFillColor & aOutlinePenColor that we can use for fast blending in the simple cases
// Don't pre calculate PMA version of aShadowColor as it is presumed not to be used enough to make this worthwhile
- const TUint32 pmaFillColor = NonPMA2PMAPixel((aFillColor&0x00FFFFFF)|alphaShifted);
+ const TUint32 pmaFillColor = NonPMA2PMAPixel(aFillColor);
const TUint32 pmaOutlineColor = NonPMA2PMAPixel(aOutlinePenColor);
+
while (aDataBuffer < dataBufferPtrLimit)
{
- TUint backgroundAlpha;
- TUint outlineAlpha;
- TUint shadowAlpha;
- TUint fillAlpha;
index = *aDataBuffer++;
- backgroundAlpha = FourColorBlendLookup[index][KBackgroundColorIndex];
- if (backgroundAlpha == 255)
+ if (255 == FourColorBlendLookup[index][KBackgroundColorIndex])
{
//background colour
- //No drawing required so move on to next pixel.
- pixelPtr += pixelPtrInc;
- continue;
+ //No drawing required
}
- fillAlpha=FourColorBlendLookup[index][KFillColorIndex];
- if (fillAlpha == 255)
+ else if (255 == FourColorBlendLookup[index][KFillColorIndex])
{
//Use fill colour to draw
finalColor = pmaFillColor;
-oneColorBlend:
- if (alpha==0xFF)
- *pixelPtr=finalColor;
- else
- PMABlend_noChecksInplace(*pixelPtr, finalColor, alpha);
- pixelPtr += pixelPtrInc;
- continue;
+ PMAInplaceBlend(*pixelPtr, finalColor);
}
- outlineAlpha = FourColorBlendLookup[index][KOutlineColorIndex];
- if (outlineAlpha == 255)
+ else if (255 == FourColorBlendLookup[index][KOutlineColorIndex])
{
//Use outline colour to draw
finalColor = pmaOutlineColor;
- goto oneColorBlend;
+ PMAInplaceBlend(*pixelPtr, finalColor);
}
- shadowAlpha = FourColorBlendLookup[index][KShadowColorIndex];
- if (shadowAlpha == 255)
+ else if (255 == FourColorBlendLookup[index][KShadowColorIndex])
{
//Use shadow colour to draw
- finalColor = NonPMA2PMAPixel((aShadowColor&0x00FFFFFF)|alphaShifted);
- goto oneColorBlend;
+ finalColor = NonPMA2PMAPixel(aShadowColor);
+ PMAInplaceBlend(*pixelPtr, finalColor);
}
- blendedRedColor = redOutlinePenColor * outlineAlpha +
- redShadowColor * shadowAlpha +
- redFillColor * fillAlpha;
-
- blendedGreenColor = greenOutlinePenColor * outlineAlpha +
- greenShadowColor * shadowAlpha +
- greenFillColor * fillAlpha;
-
- blendedBlueColor = blueOutlinePenColor * outlineAlpha +
- blueShadowColor * shadowAlpha +
- blueFillColor * fillAlpha;
- if (backgroundAlpha)
- {
- const TUint32 backgroundColor = PMA2NonPMAPixel(*pixelPtr, normTable);
- blendedRedColor += ((backgroundColor & 0xff0000) >> 16) * backgroundAlpha;
- blendedGreenColor += ((backgroundColor & 0xff00) >> 8) * backgroundAlpha;
- blendedBlueColor += (backgroundColor & 0xff) * backgroundAlpha;
- }
- finalColor = ((blendedRedColor&0xFF00)<<8) | (blendedGreenColor&0xFF00) | (blendedBlueColor>>8);
-
- if (alpha==0xFF)
- *pixelPtr=finalColor|0xFF000000;
else
{
- //pre-multiply, inplace.
- finalColor = NonPMA2PMAPixel(finalColor|alphaShifted);
- PMABlend_noChecksInplace(*pixelPtr, finalColor, alpha);
+ blendedRedColor = (redOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ redShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ redFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedGreenColor = (greenOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ greenShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ greenFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedBlueColor = (blueOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] * alphaOutlinePenColor +
+ blueShadowColor * FourColorBlendLookup[index][KShadowColorIndex] * alphaShadowColor +
+ blueFillColor * FourColorBlendLookup[index][KFillColorIndex] * alphaFillColor) >> 16;
+
+ blendedAlpha = (alphaOutlinePenColor * FourColorBlendLookup[index][KOutlineColorIndex] +
+ alphaShadowColor * FourColorBlendLookup[index][KShadowColorIndex] +
+ alphaFillColor * FourColorBlendLookup[index][KFillColorIndex]) >> 8;
+
+ finalColor = (blendedAlpha << 24) | (blendedRedColor << 16) | (blendedGreenColor << 8 )| (blendedBlueColor);
+ PMAInplaceBlend(*pixelPtr, finalColor);
}
pixelPtr += pixelPtrInc;
}
--- a/graphicsdeviceinterface/screendriver/sbit/Cdsb.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/sbit/Cdsb.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1998-2010 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"
@@ -17,7 +17,6 @@
#include <cdsb.h>
#include <e32hal.h>
-
#ifdef SYMBIAN_GRAPHICS_GCE
#undef __WINS__
#include "../sgeneric/scdraw.h"
@@ -73,8 +72,6 @@
#ifdef SYMBIAN_GRAPHICS_GCE
CScreenDeviceHelper iSurfaceUpdater;
TUidPixelFormat iPixelFormat;
- TBool iDsaBufferIsBusy;
- TRequestStatus iDsaBufferAvailable;
#endif
TAcceleratedBitmapInfo iBitmapInfo;
TUint32 iSettingsFlags;
@@ -110,9 +107,6 @@
#ifndef __WINS__
iVideoAddress(NULL),
#endif
-#ifdef SYMBIAN_GRAPHICS_GCE
- iDsaBufferIsBusy(EFalse),
-#endif
iBitmapInfo(),
iSettingsFlags(ENone),
iUpdateRect(),
@@ -163,12 +157,16 @@
{
return r;
}
-
+
__ASSERT_ALWAYS(aScreenRect.iTl.iX >= 0 &&
- aScreenRect.iTl.iY >= 0 &&
- aScreenRect.Width() <= screenWidth &&
- aScreenRect.Height() <= screenHeight, Panic(EPanicOutOfBounds));
-
+ aScreenRect.iTl.iY >= 0 &&
+ ((aScreenRect.Width() <= screenWidth &&
+ aScreenRect.Height() <= screenHeight)
+ ||
+ (aScreenRect.Width() <= screenHeight &&
+ aScreenRect.Height() <= screenWidth)),
+ Panic(EPanicOutOfBounds));
+
__ASSERT_ALWAYS(aScreenRect.Width() > 0 &&
aScreenRect.Height() > 0, Panic(EPanicInvalidRect));
@@ -350,9 +348,9 @@
case 24:
case 32:
iBitmapInfo.iPixelShift = 5;
- iBitmapInfo.iDisplayMode = EColor16MAP;
+ iBitmapInfo.iDisplayMode = EColor16MA;
#ifdef SYMBIAN_GRAPHICS_GCE
- iPixelFormat = EUidPixelFormatARGB_8888_PRE;
+ iPixelFormat = EUidPixelFormatARGB_8888;
iBytesPerPixel = 4;
#endif
break;
@@ -529,14 +527,7 @@
#else
TUint8* pD = (TUint8*)iVideoAddress;
const TUint dD = iDisplayOffsetLines;
-#ifdef SYMBIAN_GRAPHICS_GCE
- if (iDsaBufferIsBusy)
- {
- User::WaitForRequest(iDsaBufferAvailable);
- __ASSERT_DEBUG(iDsaBufferAvailable != KRequestPending, Panic(EPanicIncompleteRequest));
- iDsaBufferIsBusy=EFalse;
- }
-#endif
+
for(TInt y=iUpdateRect.Height(); y>0; y--)
{
Mem::Move((void *)pD, (void *)pS, dS);
@@ -546,17 +537,18 @@
#endif
#ifdef SYMBIAN_GRAPHICS_GCE
- iDsaBufferIsBusy=ETrue;
+ // update the region and complete notification on the client's TRequestStatus
+ // This means the backbuffer is held up until the surface update has completed
+ // notification.
iSurfaceUpdater.UpdateRegion(iUpdateRect);
- iDsaBufferAvailable = KRequestPending;
- iSurfaceUpdater.NotifyWhenAvailable(iDsaBufferAvailable);
- iSurfaceUpdater.Update();
+ iSurfaceUpdater.Update(aComplete);
+#else
+ // In the generic implementation, complete the request immediately to allow the client
+ // to render to the back buffer
+ TRequestStatus* pComplete=&aComplete;
+ User::RequestComplete(pComplete,KErrNone);
#endif
- // In the generic implementation, complete the request immediately to allow the client
- // to render to the back buffer
- TRequestStatus* pComplete=&aComplete;
- User::RequestComplete(pComplete,KErrNone);
}
//
@@ -606,15 +598,6 @@
TUint8* pS = iBitmapInfo.iAddress + offX + (offY*dS);
TUint8* pD = (TUint8*)iVideoAddress + offX + (offY*dD);
-#ifdef SYMBIAN_GRAPHICS_GCE
- if (iDsaBufferIsBusy)
- {
- User::WaitForRequest(iDsaBufferAvailable);
- __ASSERT_DEBUG(iDsaBufferAvailable != KRequestPending, Panic(EPanicIncompleteRequest));
- iDsaBufferIsBusy=EFalse;
- }
-#endif
-
for(TInt y=aScreenRect.Height(); y>0; y--)
{
Mem::Move((void *)pD, (void *)pS, bytesToCopy);
@@ -624,16 +607,18 @@
#endif
#ifdef SYMBIAN_GRAPHICS_GCE
- iDsaBufferIsBusy=ETrue;
+ // update the region and complete notification on the client's TRequestStatus
+ // This means the backbuffer is held up until the surface update has completed
+ // notification.
iSurfaceUpdater.UpdateRegion(iUpdateRect);
- iDsaBufferAvailable = KRequestPending;
- iSurfaceUpdater.NotifyWhenAvailable(iDsaBufferAvailable);
- iSurfaceUpdater.Update();
+ iSurfaceUpdater.Update(aComplete);
+#else
+ // In the generic implementation, complete the request immediately to allow the client
+ // to render to the back buffer
+ TRequestStatus* pComplete=&aComplete;
+ User::RequestComplete(pComplete,KErrNone);
#endif
- // In the generic implementation, complete the request immediately.
- TRequestStatus* pComplete=&aComplete;
- User::RequestComplete(pComplete,KErrNone);
}
#ifdef __WINS__
@@ -728,6 +713,7 @@
}
#endif
+
//
// Close - Deallocate resources and cancel outstanding updates
//
@@ -735,6 +721,9 @@
{
if(iCreated)
{
+#ifdef SYMBIAN_GRAPHICS_GCE
+ iSurfaceUpdater.CancelUpdateNotification();
+#endif
User::Free(iBitmapInfo.iAddress);
iBitmapInfo.iAddress = NULL;
iCreated = EFalse;
--- a/graphicsdeviceinterface/screendriver/scdv_switch/scdvswitch.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/scdv_switch/scdvswitch.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -39,11 +39,16 @@
FARPROC vector[MAX_ORDINAL+1];
-
+#ifdef _DEBUG
void Stop(char* aErrorMessage)
+#else
+void Stop(char* /*aErrorMessage*/)
+#endif
{
int err = GetLastError();
+#ifdef _DEBUG
RDebug::Printf("%S, (last error = %i)", aErrorMessage, err);
+#endif
_asm int 3;
}
@@ -77,8 +82,10 @@
UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalBoolProperty, (TAny*)"symbian_graphics_use_gce", &gce);
const char* library = gce ? "_generic_scdv.dll" : "_wins_scdv.dll";
+#ifdef _DEBUG
RDebug::Printf("Redirecting scdv.dll to \"%s\" ...\n", library);
-
+#endif
+
Emulator::Escape(); // prevent deadlock between EKA2 scheduler and MS kernel
// try to load selected DLL
HINSTANCE instance = LoadLibraryA(library);
@@ -91,7 +98,9 @@
else
{
fill_vector(instance);
+#ifdef _DEBUG
RDebug::Printf("... DLL loaded successfully");
+#endif
}
}
--- a/graphicsdeviceinterface/screendriver/sgeneric/scdraw.h Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/sgeneric/scdraw.h Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-2010 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"
@@ -61,10 +61,13 @@
inline TInt ScreenNumber() const { return iSurface.iInternal[TSurfaceId::TScreenSurfaceUsage::EScreenField]; }
void Update();
+ void Update(TRequestStatus& aStatus);
+
void Update(const TRegion& aRegion);
void UpdateRegion(const TRect& aRect);
void ResetUpdateRegion();
void NotifyWhenAvailable(TRequestStatus& aStatus);
+ void CancelUpdateNotification();
void GetSurface(TSurfaceId& aSid) const ;
TUint DeviceOrientationsAvailable(const TSize& aScreenSize) const ;
--- a/graphicsdeviceinterface/screendriver/sgeneric/scdraw.inl Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/sgeneric/scdraw.inl Tue Jun 01 15:04:40 2010 +0100
@@ -49,7 +49,7 @@
{ //Note: This will cause WServ startup to fail. WServ only accepts KErrNotSupported
return KErrHardwareNotAvailable;
}
- TInt ret = CDrawXxxBppBitmap::Construct(aSize);
+ TInt ret = CDrawXxxBppBitmap::Construct(aSize, CDrawXxxBppBitmap::iScanLineWords << 2);
if (ret == KErrNone)
{
CDrawXxxBppBitmap::iBits = (TUint32*)iHelper.AddressFirstPixel();
@@ -175,10 +175,15 @@
}
// Need to update size, scan line size, etc.
+ CGenericScreenDevice::SetSize(newSize);
+
+ // Setting iScanLineWords MUST occur after the call to SetSize because SetSize itself
+ // sets iScanLineBytes to support offscreen bitmaps and may do so incorrectly for hardware devices
+ // as it just uses the width, whereas BytesPerScanline takes into account any extra bytes needed
+ // as defined by the hardware.
CGenericScreenDevice::iScanLineWords = CGenericScreenDevice::iHelper.BytesPerScanline() / 4; //presumption here that BPS is always mod4.
CGenericScreenDevice::iBits = (TUint32*)CGenericScreenDevice::iHelper.AddressFirstPixel();
__ASSERT_ALWAYS(CGenericScreenDevice::iScanLineWords && CGenericScreenDevice::iBits,Panic(EScreenDriverPanicInvalidHalValue));
- CGenericScreenDevice::SetSize(newSize);
return ETrue;
}
@@ -216,10 +221,15 @@
}
// Need to update size, scan line size, etc.
+ CGenericScreenDevice::SetSize(newSize);
+
+ // Setting iScanLineWords MUST occur after the call to SetSize because SetSize itself
+ // sets iScanLineBytes to support offscreen bitmaps and may do so incorrectly for hardware devices
+ // as it just uses the width, whereas BytesPerScanline takes into account any extra bytes needed
+ // as defined by the hardware.
CGenericScreenDevice::iScanLineWords = CGenericScreenDevice::iHelper.BytesPerScanline() / 4; //presumption here that BPS is always mod4.
CGenericScreenDevice::iBits = (TUint32*)CGenericScreenDevice::iHelper.AddressFirstPixel();
__ASSERT_ALWAYS(CGenericScreenDevice::iScanLineWords && CGenericScreenDevice::iBits,Panic(EScreenDriverPanicInvalidHalValue));
- CGenericScreenDevice::SetSize(newSize);
return ETrue;
}
--- a/graphicsdeviceinterface/screendriver/sgeneric/scnew.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/sgeneric/scnew.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-2010 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"
@@ -27,8 +27,7 @@
#include "scdraw.h"
#include "scdraw.inl"
#include <graphics/gdi/gdiconsts.h>
-
-
+#include <graphics/suerror.h>
/**
Creates an instance of CFbsDrawDevice class.
@param aScreenNo Screen number
@@ -277,7 +276,7 @@
*/
EXPORT_C TDisplayMode CFbsDrawDevice::DisplayMode16M()
{
- return EColor16MAP;
+ return EColor16MA;
}
@@ -341,6 +340,11 @@
iSurfaceUpdateSession.NotifyWhenAvailable(aStatus);
}
+void CScreenDeviceHelper::CancelUpdateNotification()
+ {
+ iSurfaceUpdateSession.CancelAllUpdateNotifications();
+ }
+
/**
Implementation of corresponding function in CDrawDevice, utilizing a tracked
update region. Updates the screen from the surface, if the update region is
@@ -348,11 +352,24 @@
*/
void CScreenDeviceHelper::Update()
{
- if (iUpdateRegion.IsEmpty())
- return;
+ TRequestStatus updateComplete = KRequestPending;
+ Update(updateComplete);
+ User::WaitForRequest(updateComplete);
+ }
- iSurfaceUpdateSession.SubmitUpdate(ScreenNumber(), iSurface, 0, &iUpdateRegion);
- iUpdateRegion.Clear();
+void CScreenDeviceHelper::Update(TRequestStatus& aStatus)
+ {
+ if (!iUpdateRegion.IsEmpty())
+ {
+ iSurfaceUpdateSession.NotifyWhenAvailable(aStatus);
+ iSurfaceUpdateSession.SubmitUpdate(KAllScreens, iSurface, 0, &iUpdateRegion);
+ iUpdateRegion.Clear();
+ }
+ else
+ {
+ TRequestStatus* pComplete=&aStatus;
+ User::RequestComplete(pComplete,KErrNone);
+ }
}
/**
--- a/graphicsdeviceinterface/screendriver/tsrc/TDirectScreenBitmap.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/tsrc/TDirectScreenBitmap.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -546,7 +546,7 @@
TRAPD(err,pDev = CFbsDrawDevice::NewScreenDeviceL(0, aDisplayMode));
if (err)
{
- INFO_PRINTF2(_L("Warning: Failed to create screen device for display mode %i - not supported on this config?"),aDisplayMode);
+ INFO_PRINTF2(_L("Note: Failed to create screen device for display mode %i - not supported on this config?"),aDisplayMode);
}
else
@@ -655,7 +655,7 @@
TRAPD(err,pDev = CFbsDrawDevice::NewScreenDeviceL(0, aDisplayMode));
if (err)
{
- INFO_PRINTF2(_L("Warning: Failed to create screen device for display mode %i - not supported on this config?"),iDispMode);
+ INFO_PRINTF2(_L("Note: Failed to create screen device for display mode %i - not supported on this config?"),iDispMode);
}
else
@@ -786,7 +786,7 @@
TRAPD(err,pDev = CFbsDrawDevice::NewScreenDeviceL(0, aDisplayMode));
if (err)
{
- INFO_PRINTF2(_L("Warning: Failed to create screen device for display mode %i - not supported on this config?"),iDispMode);
+ INFO_PRINTF2(_L("Note: Failed to create screen device for display mode %i - not supported on this config?"),iDispMode);
}
else
{
@@ -936,7 +936,7 @@
TRAPD(err,pDev = CFbsDrawDevice::NewScreenDeviceL(0,aDrawDeviceDispMode));
if (err !=KErrNone)
{
- INFO_PRINTF2(_L("Warning: Failed to create screen device for display mode %i - not supported on this config?"),iDispMode);
+ INFO_PRINTF2(_L("Note: Failed to create screen device for display mode %i - not supported on this config?"),iDispMode);
}
else
{
--- a/graphicsdeviceinterface/screendriver/tsrc/TLLD.CPP Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/tsrc/TLLD.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -670,7 +670,7 @@
iReportIteration = 1;
iTotalReportIterations = KNumBlendingColors;
((CTLowLevelStep*)iStep)->SetTestStepID(_L("GRAPHICS-SCREENDRIVER-0002"));
- TestWriteRgbOutlineAndShadow();
+ //TestWriteRgbOutlineAndShadow(); // commented out pending case resolution #327407
TRAP(err,((CTLowLevelStep*)iStep)->RecordTestResultL(););
if (err!=KErrNone)
INFO_PRINTF1(_L("Failed to record test result"));
--- a/graphicsdeviceinterface/screendriver/tsrc/scripts/mnt.cmd Wed May 19 14:34:22 2010 +0100
+++ b/graphicsdeviceinterface/screendriver/tsrc/scripts/mnt.cmd Tue Jun 01 15:04:40 2010 +0100
@@ -39,6 +39,11 @@
if "%1"=="" goto help
if "%EPOCROOT%"=="" echo error: Variable Epocroot must be defined
if "%EPOCROOT%"=="" goto help
+
+if not defined EPOC_INI (
+ set EPOC_INI=%EPOCROOT%epoc32\data\epoc.ini
+)
+
goto %1
goto help
@@ -46,15 +51,15 @@
:install
echo Backing up EPOC.INI.
-if not exist %EPOCROOT%epoc32\data\epoc.bak copy %EPOCROOT%epoc32\data\epoc.ini %EPOCROOT%epoc32\data\epoc.bak >nul
+if not exist %EPOC_INI%.scdvbak copy %EPOC_INI% %EPOC_INI%.scdvbak >nul
rem add line to epoc.ini so that the system starter will start the emulator in the specified display mode
-echo SYMBIAN_GRAPHICS_USE_GCE ON >> %EPOCROOT%epoc32\data\epoc.ini
-echo SYMBIAN_BASE_USE_GCE ON >> %EPOCROOT%epoc32\data\epoc.ini
-echo ColorDepth Color16M >> %EPOCROOT%epoc32\data\epoc.ini
+echo SYMBIAN_GRAPHICS_USE_GCE ON >> %EPOC_INI%
+echo SYMBIAN_BASE_USE_GCE ON >> %EPOC_INI%
+echo ColorDepth Color16M >> %EPOC_INI%
-echo === New EPOC.INI -- %EPOCROOT%epoc32\data\epoc.ini ===
-type %EPOCROOT%epoc32\data\epoc.ini
+echo === New EPOC.INI -- %EPOC_INI% ===
+type %EPOC_INI%
echo ======================================================
goto :EOF
@@ -63,14 +68,14 @@
rem ================ Installonb ==============
:installonb
echo Backing up EPOC.INI.
-if not exist %EPOCROOT%epoc32\data\epoc.bak copy %EPOCROOT%epoc32\data\epoc.ini %EPOCROOT%epoc32\data\epoc.bak >nul
+if not exist %EPOC_INI%.scdvbak copy %EPOC_INI% %EPOC_INI%.scdvbak >nul
rem For ONB system only add line to epoc.ini so that the system starter will start the emulator in the specified display mode
-echo. >> %EPOCROOT%epoc32\data\epoc.ini
-echo ColorDepth Color16M >> %EPOCROOT%epoc32\data\epoc.ini
+echo. >> %EPOC_INI%
+echo ColorDepth Color16M >> %EPOC_INI%
-echo === New EPOC.INI -- %EPOCROOT%epoc32\data\epoc.ini ===
-type %EPOCROOT%epoc32\data\epoc.ini
+echo === New EPOC.INI -- %EPOC_INI% ===
+type %EPOC_INI%
echo ======================================================
goto :EOF
@@ -79,7 +84,7 @@
:uninstall
echo Restoring EPOC.INI.
-if exist %EPOCROOT%epoc32\data\epoc.bak xcopy /r /y %EPOCROOT%epoc32\data\epoc.bak %EPOCROOT%epoc32\data\epoc.ini >nul
+if exist %EPOC_INI%.scdvbak xcopy /r /y %EPOC_INI%.scdvbak %EPOC_INI% >nul
goto :EOF
--- a/graphicstest/graphicstestharness/automation/graphicssystemgui.sysdef.tb92.xml Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/automation/graphicssystemgui.sysdef.tb92.xml Tue Jun 01 15:04:40 2010 +0100
@@ -199,6 +199,18 @@
<component name="Surface Update">
<unit bldFile="sf\os\graphics\graphicscomposition\surfaceupdate\group" mrp="sf\os\graphics\graphicscomposition\surfaceupdate\group\graphics_surfaceupdate.mrp"/>
</component>
+ <component name="OpenWF Support">
+ <unit bldFile="sf\os\graphics\graphicscomposition\openwfsupport\group" mrp="sf\os\graphics\graphicscomposition\openwfsupport\group\graphics_openwfsupport.mrp"/>
+ </component>
+ <component name="OpenWF Composition Conformance Tests">
+ <unit bldFile="sf\os\graphics\graphicscomposition\openwfconformancetest\group" mrp="sf\os\graphics\graphicscomposition\openwfconformancetest\CT_PortingLayer\src\Platform\Symbian\group\graphics_openwfconformancetest.mrp"/>
+ </component>
+ <component name="OpenWF Composition Interface">
+ <unit bldFile="sf\os\graphics\graphicscomposition\openwfcinterface\group" mrp="sf\os\graphics\graphicscomposition\openwfcinterface\group\graphics_openwfcinterface.mrp"/>
+ </component>
+ <component name="OpenWF Composition Engine">
+ <unit bldFile="sf\os\graphics\graphicscomposition\openwfcompositionengine\group" mrp="sf\os\graphics\graphicscomposition\openwfcompositionengine\group\graphics_openwfcompositionengine.mrp"/>
+ </component>
</collection>
<collection name="Graphics Device Interface">
<component name="BitGDI">
--- a/graphicstest/graphicstestharness/automation/h4/roms.tb92.txt Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/automation/h4/roms.tb92.txt Tue Jun 01 15:04:40 2010 +0100
@@ -13,7 +13,7 @@
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby te_uibench_s60.iby egl.iby opengles.iby openvg.iby internaltestfonts.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>"','h4hrp_uibench_s60_armv5_dpdef','Graphics Test ROM UIBench S60 DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_uibench_s60.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics7_armv5_dpdef','Graphics Test ROM (7) DP Default','\epoc32\data\z\graphics\wsini_integ_color64k.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_07.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec t_wservinteg.iby opengles.iby graphics_testharness.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics8_armv5_dpdef','Graphics Test ROM (8) - WServ Integ DP Default','\epoc32\data\z\graphics\wsini_integ.ini,\epoc32\data\z\system\data\wsini.ini;\epoc32\data\z\system\data\testexecute_modified.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_08.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DGRAPHICS_TEST_GCE','h4hrp_graphics9_armv5_dpdef','Graphics Test ROM (9) - Hybrid GCE DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_09.txt','')
+RomAndAutoRom('armv5','h4hrp pagedrom textshell platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','h4hrp_graphics9_armv5_dpdef','Graphics Test ROM (9) - Hybrid GCE DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_09.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby directgditest.iby ityperast.iby graphicsresourcetest.iby opengles.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE','h4hrp_graphics11_armv5_dpdef','Graphics Test ROM (11) - Graphics Resource DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_11.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby directgditest.iby ityperast.iby graphicsresourcetest.iby opengles.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE','h4hrp_graphics11a_armv5_dpdef','Graphics Test ROM (11a) - DirectGDI tests (requiring USB/Memory Card support) DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_11a.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics12_armv5_dpdef','Graphics Test ROM (12) DP Default','\epoc32\data\z\graphics\wsini_integ_color16ma.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_12.txt','')
--- a/graphicstest/graphicstestharness/automation/h4/roms.txt Wed May 19 14:34:22 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics0a_armv5_dpdef','Graphics Test ROM (0a) DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_00a.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby outlineshadow.iby FntStoreRebootTests.iby','-DGRAPHICS_MISTRAL_ROM -D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE','h4hrp_graphics0b_armv5_dpdef','Graphics Test ROM (0b) - Outline Shadow DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_00b.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>"','h4hrp_graphics0c_armv5_dpdef','Graphics Test ROM (0c) - Example Rasterizer Included DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_00c.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test1.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics1_armv5_dpdef','Graphics Test ROM (1) DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_01.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test1.iby fbsrasterizertests.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>"','h4hrp_graphics1a_armv5_dpdef','Graphics Test ROM (1a) - FbsRasterizer DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_01a.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby internaltestfonts.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics2_armv5_dpdef','Graphics Test ROM (2) DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_02.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby openvgtest.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics3_armv5_dpdef','Graphics Test ROM (3) - OpenVG DP Default','\epoc32\data\z\graphics\wsini_integ.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_03.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby supplieropenvgtest.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics3a_armv5_dpdef','Graphics Test ROM (3a) - OpenVG tests requiring USB/Memory Card support DP Default','\epoc32\data\z\graphics\wsini_integ.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_03a.txt' ,'')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec wserv.oby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics4_armv5_dpdef','Graphics Test ROM (4) - WServ DP Default','\epoc32\data\z\system\data\ws_test.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_04.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec wserv.oby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics4ct_armv5_dpdef','Graphics Test ROM (4ct) - WServ Change Tracking DP Default','\epoc32\data\z\system\data\ws_test_changetracking.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_04ct.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby te_uibench.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>"','h4hrp_graphics5a_armv5_dpdef','Graphics Test ROM (5a) - UIBench DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_05a.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby internaltestfonts.iby te_outlineshadow.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE','h4hrp_graphics5b_armv5_dpdef','Graphics Test ROM (5b) - UIBench - Outline Shadow DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_05b.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby te_uibench_s60.iby egl.iby opengles.iby openvg.iby internaltestfonts.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>"','h4hrp_uibench_s60_armv5_dpdef','Graphics Test ROM UIBench S60 DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_uibench_s60.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics7_armv5_dpdef','Graphics Test ROM (7) DP Default','\epoc32\data\z\graphics\wsini_integ_color64k.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_07.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec t_wservinteg.iby opengles.iby graphics_testharness.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics8_armv5_dpdef','Graphics Test ROM (8) - WServ Integ DP Default','\epoc32\data\z\graphics\wsini_integ.ini,\epoc32\data\z\system\data\wsini.ini;\epoc32\data\z\system\data\testexecute_modified.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_08.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DGRAPHICS_TEST_GCE','h4hrp_graphics9_armv5_dpdef','Graphics Test ROM (9) - Hybrid GCE DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_09.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics12_armv5_dpdef','Graphics Test ROM (12) DP Default','\epoc32\data\z\graphics\wsini_integ_color16ma.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_12.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby t_wservgenericplugin.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics13_armv5_dpdef','Graphics Test ROM (13) - Generic Plugin DP Default','\epoc32\data\z\wstest\genericplugin\wsini_nga.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_13.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby twservstresstest.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','h4hrp_graphics15_armv5_dpdef','Graphics Test ROM (15) - Stress DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_15.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby t_extendedbitmaprenderstage.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','h4hrp_graphics16_armv5_dpdef','Graphics Test ROM (16) - Extended Bitmap Render Stage DP Default','\epoc32\data\z\wstest\textendedbitmap\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_16.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby t_ratelimiter.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','h4hrp_graphics17_armv5_dpdef','Graphics Test ROM (17) - Rate Limiter DP Default','\epoc32\data\z\wstest\ratelimiter\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_17.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom minigui platsec graphics_testharness.iby csc_plugin.iby tcsc.iby openvgtest.iby surfaceupdatetest_integ.iby t_gcenotification.iby graphics_test2.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','h4hrp_graphics18_armv5_dpdef','Graphics Test ROM (18) - Composited Screen Capture DP Default','\epoc32\data\z\wstest\wsini_csc_nga_qvga.ini,\epoc32\data\z\wsini_minigui.ini;\epoc32\data\z\graphicstest\testexecute_minigui.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_18.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom minigui platsec graphics_testharness.iby csc_plugin.iby tcsc.iby egltesthybrid.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','h4hrp_graphicseglhybrid_armv5_dpdef','Graphics Test ROM (eglhybrid) - EGL Hybrid Graphics Implementation DP Default','\epoc32\data\z\wstest\wsini_csc_nga_qvga.ini,\epoc32\data\z\wsini_minigui.ini;\epoc32\data\z\graphicstest\testexecute_minigui.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_eglhybrid.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom minigui platsec graphics_testharness.iby csc_plugin.iby tcsc.iby egltestref.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_USE_EGL_REF','h4hrp_graphicseglref_armv5_dpdef','Graphics Test ROM (eglref) - EGL Reference Graphics Implementation DP Default','\epoc32\data\z\wstest\wsini_csc_nga_qvga.ini,\epoc32\data\z\wsini_minigui.ini;\epoc32\data\z\graphicstest\testexecute_minigui.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_eglref.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby talf.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','h4hrp_graphics23_armv5_dpdef','Graphics Test ROM (23) - ALF/ChangeTracking DP Default','\epoc32\data\z\talf\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_23.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby t_eventchecker.iby t_bitgdirenderstage.iby wserv.oby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DRVT','h4hrp_graphics24_armv5_dpdef','Graphics Test ROM (24) - BitGDI Renderstage DP Default','\epoc32\data\z\wstest\tbitgdirenderstage\arm\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_24.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec wserv.oby graphics_testharness.iby talf.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics25_armv5_dpdef','Graphics Test ROM (25) - ALF/ChangeTracking per screen DP Default','\epoc32\data\z\talf\wsini_ct_per_screen.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_25.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby tlayercompositiontest.iby tcsc.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics29a_armv5_dpdef','Graphics Test ROM (29a) - Layer Composition DP Default','\epoc32\data\z\tlayercomposition\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_29a.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby tlayercompositiontest.iby tcsc.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphics29b_armv5_dpdef','Graphics Test ROM (29b) - Layer Composition, No Autoclear DP Default','\epoc32\data\z\tlayercomposition\wsini_noautoclear.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_29b.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec appfwk_test.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_DEBUG','h4hrp_uiframeworks_armv5_dpdef','UI Frameworks DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_uif.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby sgresourcetest.iby opengles.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','h4hrp_graphicsresource_armv5_dpdef','Graphics Test ROM (GRI) - Graphics Resource DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_gri.txt','')
-Rom('armv5', 'h4hrp minigui', '-nosymbols -DUSE_SDIO_SD_MMC', 'h4hrp_minigui', 'MiniGUI ROM', '' )
--- a/graphicstest/graphicstestharness/automation/h4/roms.wdp.tb92.txt Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/automation/h4/roms.wdp.tb92.txt Tue Jun 01 15:04:40 2010 +0100
@@ -13,7 +13,7 @@
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby te_uibench_s60.iby egl.iby opengles.iby openvg.iby internaltestfonts.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>" -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_uibench_s60_armv5_wdp','Graphics Test ROM UIBench S60 WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_uibench_s60.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics7_armv5_wdp','Graphics Test ROM (7) WDP','\epoc32\data\z\graphics\wsini_integ_color64k.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_07.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec t_wservinteg.iby opengles.iby graphics_testharness.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics8_armv5_wdp','Graphics Test ROM (8) - WServ Integ WDP','\epoc32\data\z\graphics\wsini_integ.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_08.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DGRAPHICS_TEST_GCE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics9_armv5_wdp','Graphics Test ROM (9) - Hybrid GCE WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_09.txt','')
+RomAndAutoRom('armv5','h4hrp pagedrom textshell platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics9_armv5_wdp','Graphics Test ROM (9) - Hybrid GCE WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_09.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby directgditest.iby ityperast.iby graphicsresourcetest.iby opengles.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics11_armv5_wdp','Graphics Test ROM (11) - Graphics Resource WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_11.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby directgditest.iby ityperast.iby graphicsresourcetest.iby opengles.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics11a_armv5_wdp','Graphics Test ROM (11a) - DirectGDI tests (requiring USB/Memory Card support) WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_11a.txt','')
RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics12_armv5_wdp','Graphics Test ROM (12) WDP','\epoc32\data\z\graphics\wsini_integ_color16ma.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_12.txt','')
--- a/graphicstest/graphicstestharness/automation/h4/roms.wdp.txt Wed May 19 14:34:22 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics0a_armv5_wdp','Graphics Test ROM (0a) WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_00a.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby outlineshadow.iby FntStoreRebootTests.iby dptestcons.oby','-DGRAPHICS_MISTRAL_ROM -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics0b_armv5_wdp','Graphics Test ROM (0b) - Outline Shadow WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_00b.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>" -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics0c_armv5_wdp','Graphics Test ROM (0c) - Example Rasterizer Included WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_00c.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test1.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics1_armv5_wdp','Graphics Test ROM (1) WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_01.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test1.iby fbsrasterizertests.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>" -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics1a_armv5_wdp','Graphics Test ROM (1a) - FbsRasterizer WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_01a.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby internaltestfonts.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics2_armv5_wdp','Graphics Test ROM (2) WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_02.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby openvgtest.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics3_armv5_wdp','Graphics Test ROM (3) - OpenVG WDP','\epoc32\data\z\graphics\wsini_integ.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_03.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby supplieropenvgtest.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics3a_armv5_wdp','Graphics Test ROM (3a) - OpenVG tests requiring USB/Memory Card support WDP','\epoc32\data\z\graphics\wsini_integ.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_03a.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec wserv.oby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics4_armv5_wdp','Graphics Test ROM (4) - WServ WDP','\epoc32\data\z\system\data\ws_test.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_04.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec wserv.oby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics4ct_armv5_wdp','Graphics Test ROM (4ct) - WServ Change Tracking WDP','\epoc32\data\z\system\data\ws_test_changetracking.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_04ct.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby te_uibench.iby internaltestfonts.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>" -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics5a_armv5_wdp','Graphics Test ROM (5a) - UIBench WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_05a.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby internaltestfonts.iby te_outlineshadow.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics5b_armv5_wdp','Graphics Test ROM (5b) - UIBench - Outline Shadow WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_05b.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby te_uibench_s60.iby egl.iby opengles.iby openvg.iby internaltestfonts.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>" -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_uibench_s60_armv5_wdp','Graphics Test ROM UIBench S60 WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_uibench_s60.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics7_armv5_wdp','Graphics Test ROM (7) WDP','\epoc32\data\z\graphics\wsini_integ_color64k.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_07.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec t_wservinteg.iby opengles.iby graphics_testharness.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics8_armv5_wdp','Graphics Test ROM (8) - WServ Integ WDP','\epoc32\data\z\graphics\wsini_integ.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_08.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DGRAPHICS_TEST_GCE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics9_armv5_wdp','Graphics Test ROM (9) - Hybrid GCE WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_09.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics12_armv5_wdp','Graphics Test ROM (12) WDP','\epoc32\data\z\graphics\wsini_integ_color16ma.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_12.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby t_wservgenericplugin.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics13_armv5_wdp','Graphics Test ROM (13) - Generic Plugin WDP','\epoc32\data\z\wstest\genericplugin\wsini_nga.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_13.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby twservstresstest.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics15_armv5_wdp','Graphics Test ROM (15) - Stress WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_15.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby t_extendedbitmaprenderstage.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics16_armv5_wdp','Graphics Test ROM (16) - Extended Bitmap Render Stage WDP','\epoc32\data\z\wstest\textendedbitmap\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_16.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby t_ratelimiter.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics17_armv5_wdp','Graphics Test ROM (17) - Rate Limiter WDP','\epoc32\data\z\wstest\ratelimiter\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_17.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom minigui platsec graphics_testharness.iby csc_plugin.iby tcsc.iby t_gcenotification.iby openvgtest.iby surfaceupdatetest_integ.iby graphics_test2.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics18_armv5_wdp','Graphics Test ROM (18) - Composited Screen Capture WDP','\epoc32\data\z\wstest\wsini_csc_nga_qvga.ini,\epoc32\data\z\wsini_minigui.ini;\epoc32\data\z\graphicstest\testexecute_minigui.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_18.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom minigui platsec graphics_testharness.iby csc_plugin.iby tcsc.iby egltesthybrid.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphicseglhybrid_armv5_wdp','Graphics Test ROM (eglhybrid) - EGL Hybrid Graphics Implementation WDP','\epoc32\data\z\wstest\wsini_csc_nga_qvga.ini,\epoc32\data\z\wsini_minigui.ini;\epoc32\data\z\graphicstest\testexecute_minigui.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_eglhybrid.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom minigui platsec graphics_testharness.iby csc_plugin.iby tcsc.iby egltestref.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_USE_EGL_REF -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphicseglref_armv5_wdp','Graphics Test ROM (eglref) - EGL Reference Implementation WDP','\epoc32\data\z\wstest\wsini_csc_nga_qvga.ini,\epoc32\data\z\wsini_minigui.ini;\epoc32\data\z\graphicstest\testexecute_minigui.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_eglref.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test1.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DSYMBIAN_GRAPHICS_FBSERV_PAGEDDATA -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics19_armv5_wdp','Graphics Test ROM (19) WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_19.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test1.iby t_wdp.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DSYMBIAN_GRAPHICS_FBSERV_UNPAGEDDATA -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics20_armv5_wdp','Graphics Test ROM (20) WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_20.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test1.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DSYMBIAN_GRAPHICS_FBSERV_PAGE_BITMAP_DATA_ONLY -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics21_armv5_wdp','Graphics Test ROM (21) WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_21.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_test1.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DSYMBIAN_GRAPHICS_FBSERV_PAGE_BITMAP_DATA_AND_SHARED_HEAP_ONLY -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics22_armv5_wdp','Graphics Test ROM (22) WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_22.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby talf.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics23_armv5_wdp','Graphics Test ROM (23) - ALF/ChangeTracking WDP','\epoc32\data\z\talf\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_23.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby t_eventchecker.iby t_bitgdirenderstage.iby wserv.oby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DRVT -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics24_armv5_wdp','Graphics Test ROM (24) - BitGDI Renderstage WDP','\epoc32\data\z\wstest\tbitgdirenderstage\arm\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_24.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec wserv.oby graphics_testharness.iby talf.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics25_armv5_wdp','Graphics Test ROM (25) - ALF/ChangeTracking per screen configuration WDP','\epoc32\data\z\talf\wsini_ct_per_screen.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_25.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby tlayercompositiontest.iby tcsc.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics29a_armv5_wdp','Graphics Test ROM (29a) - Layer Composition WDP','\epoc32\data\z\tlayercomposition\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_29a.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby tlayercompositiontest.iby tcsc.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphics29b_armv5_wdp','Graphics Test ROM (29b) - Layer Composition, No Autoclear WDP','\epoc32\data\z\tlayercomposition\wsini_noautoclear.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_29b.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec appfwk_test.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_DEBUG -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_uiframeworks_armv5_wdp','UI Frameworks WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_uif.txt','')
-RomAndAutoRom('armv5','h4hrp pagedrom techview platsec graphics_testharness.iby sgresourcetest.iby opengles.iby dptestcons.oby','-DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -D_SSMSTARTUPMODE=5 -DWITH_FLEXIBLE_MM -D_INTERNAL_MMC -DUSE_DATA_PAGING','h4hrp_graphicsresource_armv5_wdp','Graphics Test ROM (GRI) - Graphics Resource WDP','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h4\tests_gri.txt','')
--- a/graphicstest/graphicstestharness/automation/h4/runroms.cmd Wed May 19 14:34:22 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem
-
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics0a_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics0b_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics0c_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics1_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics1a_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics2_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics3_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics3a_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600 --sendFiles "stress_tests,stress_tests;functional_tests,functional_tests" --retrieveFiles "functional_results_copy/test_results,functional_results/test_results;functional_tests,functional_results/functional_tests;stress_results_copy/test_results,stress_results/test_results"
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics4_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics4ct_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics5a_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics5b_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_uibench_s60_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics7_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics8_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics9_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics12_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics13_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics15_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics16_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics17_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics18_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphicseglhybrid_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphicseglref_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics23_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics24_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics25_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics29a_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics29b_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_uiframeworks_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphicsresource_armv5_dpdef_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
--- a/graphicstest/graphicstestharness/automation/h4/runroms.wdp.cmd Wed May 19 14:34:22 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description:
-rem
-
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics0a_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics0b_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics0c_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics1_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics1a_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics2_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics3_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics3a_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600 --sendFiles "stress_tests,stress_tests;functional_tests,functional_tests" --retrieveFiles "functional_results_copy/test_results,functional_results/test_results;functional_tests,functional_results/functional_tests;stress_results_copy/test_results,stress_results/test_results"
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics4_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400 --timeout 240
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics4ct_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400 --timeout 240
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics5a_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics5b_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_uibench_s60_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics7_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics8_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400 --timeout 240
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics9_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics12_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics13_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics15_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics16_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics17_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics18_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphicseglhybrid_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphicseglref_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics19_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics20_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics21_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics22_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics23_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics24_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics25_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics29a_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphics29b_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 3600
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_uiframeworks_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
-call ec-perl w:\scripts\rom\runrom.pl --romDirectory "roms/h4hrp_graphicsresource_armv5_wdp_auto" --nandLoader %1 --resource %2 --jobId %3 --listenTimeout 2400
\ No newline at end of file
--- a/graphicstest/graphicstestharness/automation/h4/tests_05a.txt Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/automation/h4/tests_05a.txt Tue Jun 01 15:04:40 2010 +0100
@@ -1,5 +1,5 @@
# tests_05a.txt
-# Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 1995-2010 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"
--- a/graphicstest/graphicstestharness/automation/h4/tests_07.txt Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/automation/h4/tests_07.txt Tue Jun 01 15:04:40 2010 +0100
@@ -43,3 +43,6 @@
# WServ
TESTEXECUTE, \logs\testexecute\wsgcetests_hw_color64k_screen1.htm, , z:\wstest\wsgcetests_hw_color64k_screen1.script, 800
+
+# WServ
+TESTEXECUTE, \logs\testexecute\graphics-wserv-nativeorientation-test.htm, , z:\wstest\tnativeorientation\graphics-wserv-nativeorientation-test.script, 800
--- a/graphicstest/graphicstestharness/automation/h6/roms.tb92.txt Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/automation/h6/roms.tb92.txt Tue Jun 01 15:04:40 2010 +0100
@@ -13,7 +13,7 @@
RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec graphics_testharness.iby te_uibench_s60.iby egl.iby opengles.iby openvg.iby internaltestfonts.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24UBPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>"','34xx_sdp_uibench_s60_armv5_dpdef','Graphics Test ROM UIBench S60 DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_uibench_s60.txt','')
RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','34xx_sdp_graphics7_armv5_dpdef','Graphics Test ROM (7) DP Default','\epoc32\data\z\graphics\wsini_integ_h6_color64k.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_07.txt','')
RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec t_wservinteg.iby opengles.iby graphics_testharness.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','34xx_sdp_graphics8_armv5_dpdef','Graphics Test ROM (8) - WServ Integ DP Default','\epoc32\data\z\graphics\wsini_integ.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_08.txt','')
-RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DGRAPHICS_TEST_GCE','34xx_sdp_graphics9_armv5_dpdef','Graphics Test ROM (9) - Hybrid GCE DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_09.txt','')
+RomAndAutoRom('armv5','34xx_sdp pagedrom textshell platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','34xx_sdp_graphics9_armv5_dpdef','Graphics Test ROM (9) - Hybrid GCE DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_09.txt','')
RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec graphics_testharness.iby directgditest.iby ityperast.iby graphicsresourcetest.iby opengles.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE','34xx_sdp_graphics11_armv5_dpdef','Graphics Test ROM (11) - Graphics Resource DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_11.txt','')
RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec graphics_testharness.iby directgditest.iby ityperast.iby graphicsresourcetest.iby opengles.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE','34xx_sdp_graphics11a_armv5_dpdef','Graphics Test ROM (11a) - DirectGDI tests (requiring USB/Memory Card support) DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_11a.txt','')
RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','34xx_sdp_graphics12_armv5_dpdef','Graphics Test ROM (12) DP Default','\epoc32\data\z\graphics\wsini_integ_h6_color16ma.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_12.txt','')
@@ -26,7 +26,7 @@
RomAndAutoRom('armv5','34xx_sdp pagedrom minigui platsec graphics_testharness.iby csc_plugin.iby tcsc.iby egltesthybrid.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','34xx_sdp_graphicseglhybrid_armv5_dpdef','Graphics Test ROM (eglhybrid) - EGL Hybrid Graphics Implementation DP Default','\epoc32\data\z\wstest\wsini_csc_nga_h6.ini,\epoc32\data\z\wsini_minigui.ini;\epoc32\data\z\graphicstest\testexecute_minigui.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_eglhybrid.txt','')
RomAndAutoRom('armv5','34xx_sdp pagedrom minigui platsec graphics_testharness.iby csc_plugin.iby tcsc.iby egltestref.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_USE_EGL_REF','34xx_sdp_graphicseglref_armv5_dpdef','Graphics Test ROM (eglref) - EGL Reference Graphics Implementation DP Default','\epoc32\data\z\wstest\wsini_csc_nga_h6.ini,\epoc32\data\z\wsini_minigui.ini;\epoc32\data\z\graphicstest\testexecute_minigui.ini,\epoc32\data\z\system\data\testexecute.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_eglref.txt','')
RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec graphics_testharness.iby talf.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','34xx_sdp_graphics23_armv5_dpdef','Graphics Test ROM (23) - ALF/ChangeTracking DP Default','\epoc32\data\z\talf\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_23.txt','')
-RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec graphics_testharness.iby t_eventchecker.iby t_bitgdirenderstage.iby wserv.oby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DRVT','34xx_sdp_graphics24_armv5_dpdef','Graphics Test ROM (24) - BitGDI Renderstage DP Default','\epoc32\data\z\wstest\tbitgdirenderstage\arm\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_24.txt','')
+RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec graphics_testharness.iby t_eventchecker.iby t_bitgdirenderstage.iby wserv.oby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT_TV -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DRVT','34xx_sdp_graphics24_armv5_dpdef','Graphics Test ROM (24) - BitGDI Renderstage DP Default','\epoc32\data\z\wstest\tbitgdirenderstage\arm\wsini.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_24.txt','')
RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec wserv.oby graphics_testharness.iby talf.iby','-D_NAND2 -DWITH_TVOUT -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','34xx_sdp_graphics25_armv5_dpdef','Graphics Test ROM (25) - ALF/ChangeTracking per screen DP Default','\epoc32\data\z\talf\wsini_ct_recovery.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_25.txt','')
RomAndAutoRom('armv5','34xx_sdp pagedrom techview platsec appfwk_test.iby','-D_NAND2 -DUSE_SDIO_SD_MMC -DWITH_TVOUT -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -D_DEBUG','34xx_sdp_uiframeworks_armv5_dpdef','UI Frameworks DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\h6\tests_uif.txt','')
Rom('armv5', '34xx_sdp minigui', '-nosymbols -DUSE_SDIO_SD_MMC', '34xx_sdp_minigui', 'MiniGUI ROM', '' )
--- a/graphicstest/graphicstestharness/automation/h6/tests_07.txt Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/automation/h6/tests_07.txt Tue Jun 01 15:04:40 2010 +0100
@@ -43,3 +43,6 @@
# WServ
TESTEXECUTE, \logs\testexecute\wsgcetests_hw_color64k_screen1.htm, , z:\wstest\wsgcetests_hw_color64k_screen1.script, 800
+
+# WServ
+TESTEXECUTE, \logs\testexecute\graphics-wserv-nativeorientation-test.htm, , z:\wstest\tnativeorientation\graphics-wserv-nativeorientation-test.script, 800
\ No newline at end of file
--- a/graphicstest/graphicstestharness/automation/ne1/roms.tb92.txt Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/automation/ne1/roms.tb92.txt Tue Jun 01 15:04:40 2010 +0100
@@ -11,7 +11,7 @@
RomAndAutoRom('armv5','naviengine techview platsec graphics_testharness.iby te_uibench_s60.iby egl.iby opengles.iby openvg.iby internaltestfonts.iby','-DUSE_SDIO_SD_MMC -DSMP -DUSE_24UBPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DFBSRASTERIZER_DRV="^<"fbsrasterizer_test.iby"^>"','naviengine_uibench_s60_armv5','Graphics Test ROM UIBench S60 DP Default','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\ne1\tests_uibench_s60.txt','')
RomAndAutoRom('armv5','naviengine techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby','-DUSE_SDIO_SD_MMC -DSMP -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','naviengine_graphics7_armv5','Graphics Test ROM (7)','\epoc32\data\z\graphics\wsini_integ_naviengine_color64k.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\ne1\tests_07.txt','')
RomAndAutoRom('armv5','naviengine techview platsec t_wservinteg.iby opengles.iby graphics_testharness.iby','-DUSE_SDIO_SD_MMC -DSMP -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','naviengine_graphics8_armv5','Graphics Test ROM (8) - WServ Integ','\epoc32\data\z\graphics\wsini_integ_norotation.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\ne1\tests_08.txt','')
-RomAndAutoRom('armv5','naviengine techview platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby','-DUSE_SDIO_SD_MMC -DSMP -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DGRAPHICS_TEST_GCE','naviengine_graphics9_armv5','Graphics Test ROM (9) - Hybrid GCE','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\ne1\tests_09.txt','')
+RomAndAutoRom('armv5','naviengine textshell platsec surfacemanagertest.iby wservtest.iby gce_tests.iby tdisplaychannel.iby','-DUSE_SDIO_SD_MMC -DSMP -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE','naviengine_graphics9_armv5','Graphics Test ROM (9) - Hybrid GCE','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\ne1\tests_09.txt','')
RomAndAutoRom('armv5','naviengine techview platsec graphics_testharness.iby directgditest.iby ityperast.iby graphicsresourcetest.iby opengles.iby','-DUSE_SDIO_SD_MMC -DSMP -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW -DGRAPHICS_EXCLUDE_FREETYPE','naviengine_graphics11_armv5','Graphics Test ROM (11) - Graphics Resource','','..\sf\os\graphics\graphicstest\graphicstestharness\automation\ne1\tests_11.txt','')
RomAndAutoRom('armv5','naviengine techview platsec graphics_test2.iby wservtest.iby csc_plugin.iby','-DUSE_SDIO_SD_MMC -DSMP -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','naviengine_graphics12_armv5','Graphics Test ROM (12)','\epoc32\data\z\graphics\wsini_integ_naviengine_color16ma.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\ne1\tests_12.txt','')
RomAndAutoRom('armv5','naviengine techview platsec graphics_testharness.iby t_wservgenericplugin.iby','-DUSE_SDIO_SD_MMC -DSMP -DUSE_24BPP_DISPLAY_VARIANT -DSYMBIAN_BASE_USE_GCE -DSYMBIAN_GRAPHICS_USE_GCE -DSYMBIAN_GRAPHICS_ADAPTATION=SGA_SW','naviengine_graphics13_armv5','Graphics Test ROM (13) - Generic Plugin','\epoc32\data\z\wstest\genericplugin\wsini_nga_onescreen.ini,\epoc32\data\z\system\data\wsini.ini','..\sf\os\graphics\graphicstest\graphicstestharness\automation\ne1\tests_13.txt','')
--- a/graphicstest/graphicstestharness/automation/ne1/tests_07.txt Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/automation/ne1/tests_07.txt Tue Jun 01 15:04:40 2010 +0100
@@ -30,3 +30,6 @@
# Surface Update
TESTEXECUTE, \logs\testexecute\surfaceupdate.htm, , z:\surfaceupdate\surfaceupdate.script, 800
+
+# WServ
+TESTEXECUTE, \logs\testexecute\graphics-wserv-nativeorientation-test.htm, , z:\wstest\tnativeorientation\graphics-wserv-nativeorientation-test.script, 800
\ No newline at end of file
--- a/graphicstest/graphicstestharness/batch/replace.py Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/batch/replace.py Tue Jun 01 15:04:40 2010 +0100
@@ -14,7 +14,7 @@
# Description:
#
-import sys
+import sys
# first argument is path to file to modify
filePath=sys.argv[1]
outFile=filePath
--- a/graphicstest/graphicstestharness/group/graphicsimagecomparison.mmp Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/group/graphicsimagecomparison.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -16,14 +16,13 @@
/**
@file
@test
- @internalComponent - Internal Symbian test code
*/
TARGET graphicsimagecomparison.dll
TARGETTYPE dll
-CAPABILITY none
+CAPABILITY All -Tcb
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
MW_LAYER_SYSTEMINCLUDE_SYMBIAN
--- a/graphicstest/graphicstestharness/group/graphicsscreencomparison.mmp Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/group/graphicsscreencomparison.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -16,14 +16,13 @@
/**
@file
@test
- @internalComponent - Internal Symbian test code
*/
TARGET graphicsscreencomparison.dll
TARGETTYPE dll
-CAPABILITY none
+CAPABILITY All -Tcb
OS_LAYER_SYSTEMINCLUDE_SYMBIAN
MW_LAYER_SYSTEMINCLUDE_SYMBIAN
--- a/graphicstest/graphicstestharness/group/tprofiler.mmp Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/group/tprofiler.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -22,7 +22,7 @@
SOURCE tprofiler.cpp
USERINCLUDE ../inc
-SYSTEMINCLUDE /epoc32/include
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
LIBRARY euser.lib testexecuteutils.lib testexecutelogclient.lib hal.lib
--- a/graphicstest/graphicstestharness/rom/graphics_test2.iby Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/rom/graphics_test2.iby Tue Jun 01 15:04:40 2010 +0100
@@ -29,6 +29,13 @@
#include <surfaceupdatetest.iby>
#include <graphics_screencomparison.iby>
#include <graphics_imagecomparison.iby>
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+#include <t_nativeorientation.iby>
#endif
+#endif
+
+
+
#endif
\ No newline at end of file
--- a/graphicstest/graphicstestharness/src/TTMSGraphicsStep.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/src/TTMSGraphicsStep.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -32,20 +32,19 @@
void CTTMSGraphicsStep::CleanUpAndWriteResults()
{
TBuf<256> testID;
- TBuf<8> unusableTestResult; //In graphicstestharness it is not known whether the test was started with
- //!Result=Fail or !Error=KErrSomething given as paramenter to RUN_TEST_STEP
+ TBuf<8> testResult;
for (TInt iArrayIndex=0; iArrayIndex < iArrayTMSData.Count(); iArrayIndex++)
{
CTMSDataColumn columnData = iArrayTMSData[iArrayIndex];
testID.Copy(columnData.iTheID);
- unusableTestResult.Copy(columnData.iTheResult); //unusable because we don't know if the test is expected to pass or fail
+ testResult.Copy(columnData.iTheResult);
INFO_PRINTF2(_L("START_TESTCASE %S"),&testID);
INFO_PRINTF2(_L("Line = 1 Command = START_TESTCASE %S"),&testID);
INFO_PRINTF2(_L("END_TESTCASE %S"),&testID);
- INFO_PRINTF2(_L("Line = 1 Command = END_TESTCASE %S"),&testID);
+ INFO_PRINTF3(_L("Line = 1 Command = END_TESTCASE %S ***TestCaseResult = %S"),&testID,&testResult);
}
iArrayTMSData.Close();
--- a/graphicstest/graphicstestharness/src/thashreferenceimages.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/graphicstestharness/src/thashreferenceimages.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -136,7 +136,7 @@
{
//cannot use the macro //TEST((hashFromConfig.Compare(hexString)) == 0); since iStep needs to be
//referenced
- iStep->testBooleanTrue((hashFromConfig.Compare(hexString)) == 0, (TText8*)__FILE__, __LINE__);
+ iStep->testBooleanTrue((hashFromConfig.Compare(hexString)) == 0, (TText8*)__FILE__, __LINE__, ETrue);
}
else
{
@@ -204,6 +204,7 @@
CleanupStack::PushL(device);
CFbsBitGc *gc;
User::LeaveIfError(device->CreateContext(gc));
+ gc->SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
gc->BitBlt(TPoint(), iBitmap, rect);
TFileName mbmFile;
mbmFile.Format(iPath->Des(), &aHashIndex);
--- a/graphicstest/uibench/group/te_uibench.iby Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/uibench/group/te_uibench.iby Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-2010 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"
@@ -23,7 +23,6 @@
// MCL profiler is not built for SMP
#include <profiler.iby>
#endif
-#include <dummyfonts.iby>
#ifdef SYMBIAN_GRAPHICS_USE_GCE
#include <directgdi.iby>
#include <directgdiadapter.iby>
@@ -61,6 +60,10 @@
REM test font files for fbsfonthandleperf.cpp
data=DATAZ_\PlatTest\Graphics\TestData\ceurope.gdr \PlatTest\Graphics\TestData\ceurope.gdr
+data=DATAZ_\PlatTest\Graphics\TestData\dummy_fonts\dummyFont \PlatTest\Graphics\TestData\dummy_fonts\dummyFont
+data=DATAZ_\PlatTest\Graphics\TestData\dummy_fonts\dummyFont_b \PlatTest\Graphics\TestData\dummy_fonts\dummyFont_b
+data=DATAZ_\PlatTest\Graphics\TestData\dummy_fonts\dummyFont_i \PlatTest\Graphics\TestData\dummy_fonts\dummyFont_i
+data=DATAZ_\PlatTest\Graphics\TestData\dummy_fonts\dummyFont_bi \PlatTest\Graphics\TestData\dummy_fonts\dummyFont_bi
REM sprite animation dll file for sprite performance tests
file=ABI_DIR\DEBUG_DIR\te_spriteanimdll.dll system\libs\te_spriteanimdll.dll
--- a/graphicstest/uibench/s60/group/glplanets.mmp Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/uibench/s60/group/glplanets.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -22,8 +22,7 @@
userinclude .
userinclude ../src
userinclude ../src/tests_zorder
-systeminclude /epoc32/include
-systeminclude /epoc32/include/stdapis
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
sourcepath .
START resource glplanets_reg.rss
--- a/graphicstest/uibench/s60/group/multiplesurfaces.mmp Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/uibench/s60/group/multiplesurfaces.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -25,8 +25,7 @@
userinclude ..\src\tests_zorder
userinclude ..\src\windows
-systeminclude /epoc32/include
-systeminclude /epoc32/include/stdapis
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
sourcepath .
START resource multiplesurfaces_reg.rss
--- a/graphicstest/uibench/s60/group/te_uibench_s60.mmp Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/uibench/s60/group/te_uibench_s60.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -93,7 +93,7 @@
USERINCLUDE ../src/tests_egl
//system includes
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
OS_LAYER_LIBC_SYSTEMINCLUDE
START BITMAP videoplay2.mbm
--- a/graphicstest/uibench/src/tfbsfonthandleperf.cpp Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/uibench/src/tfbsfonthandleperf.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-2010 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"
@@ -790,6 +790,7 @@
SetTestStepID(_L("GRAPHICS-UI-BENCH-0140"));
AliasedFontCreationL();
RecordTestResultL();
+ CloseTMSGraphicsStep();
return TestStepResult();
}
@@ -857,46 +858,24 @@
CleanupStack::PushL(dummyRasterizer);
fontStore->InstallRasterizerL(dummyRasterizer);
CleanupStack::Pop();
-
+
+ // Check font files exist before testing
+ TRAPD(err, DoAddAndRemoveFilesL(aTestOpenFont, fontStore));
+ if (err != KErrNone)
+ {
+ _LIT(KLog,"Failed to load font files. Error code: %d");
+ INFO_PRINTF2(KLog,err);
+ User::Leave(err);
+ }
+
+ // Perform the iterations to test
iProfiler->InitResults();
for(TInt count=KIterationsToTest; count>=0; --count)
{
- if (aTestOpenFont)
- {
- //Add font files to fontstore
- TUid id1 = fontStore->AddFileL(KFontDummy);
- TUid id2 = fontStore->AddFileL(KFontDummy_b);
- TUid id3 = fontStore->AddFileL(KFontDummy_i);
- TUid id4 = fontStore->AddFileL(KFontDummy_bi);
- //Remove font files from fontstore
- fontStore->RemoveFile(id1);
- fontStore->RemoveFile(id2);
- fontStore->RemoveFile(id3);
- fontStore->RemoveFile(id4);
- }
- else
- {
- //Add & remove font file to fontstore
- TUid id1=TUid::Null();
- TRAPD(err,id1=fontStore->AddFileL(KBitmapFont));
- if (err!=KErrNone)
- {
- _LIT(KLog,"Loading font file %S gave error %d");
- INFO_PRINTF3(KLog,&KBitmapFont,err);
- User::Leave(err);
- }
- fontStore->RemoveFile(id1);
- // total of 4 times, for comparison with Open Font test
- TUid id2 = fontStore->AddFileL(KBitmapFont);
- fontStore->RemoveFile(id2);
- TUid id3 = fontStore->AddFileL(KBitmapFont);
- fontStore->RemoveFile(id3);
- TUid id4 = fontStore->AddFileL(KBitmapFont);
- fontStore->RemoveFile(id4);
- }
-
+ DoAddAndRemoveFilesL(aTestOpenFont, fontStore);
iProfiler->MarkResultSetL();
}
+
TInt64 duration=iProfiler->GetTrimedMean();
if (aTestOpenFont)
{
@@ -911,6 +890,36 @@
heap->Close();
}
+// Do the add and removing files.
+void CTFbsFontHandlePerf::DoAddAndRemoveFilesL(TBool aTestOpenFont, CFontStore* aFontStore)
+ {
+ if (aTestOpenFont)
+ {
+ //Add font files to fontstore
+ TUid id1 = aFontStore->AddFileL(KFontDummy);
+ TUid id2 = aFontStore->AddFileL(KFontDummy_b);
+ TUid id3 = aFontStore->AddFileL(KFontDummy_i);
+ TUid id4 = aFontStore->AddFileL(KFontDummy_bi);
+ //Remove font files from fontstore
+ aFontStore->RemoveFile(id1);
+ aFontStore->RemoveFile(id2);
+ aFontStore->RemoveFile(id3);
+ aFontStore->RemoveFile(id4);
+ }
+ else
+ {
+ //Add & remove font file to fontstore a total of 4 times, for comparison with Open Font test
+ TUid id1 = aFontStore->AddFileL(KBitmapFont);
+ aFontStore->RemoveFile(id1);
+ TUid id2 = aFontStore->AddFileL(KBitmapFont);
+ aFontStore->RemoveFile(id2);
+ TUid id3 = aFontStore->AddFileL(KBitmapFont);
+ aFontStore->RemoveFile(id3);
+ TUid id4 = aFontStore->AddFileL(KBitmapFont);
+ aFontStore->RemoveFile(id4);
+ }
+ }
+
// Add fontfile that is already opened.
void CTFbsFontHandlePerf::AddingOpenedFontFilesL(TBool aTestOpenFont)
{
--- a/graphicstest/uibench/src/tfbsfonthandleperf.h Wed May 19 14:34:22 2010 +0100
+++ b/graphicstest/uibench/src/tfbsfonthandleperf.h Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-2010 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"
@@ -80,6 +80,7 @@
void FontDuplicateL();
void FontGetNearestFontToDesignHeightInPixelsL(const TDesC& aFontName, const TDesC& aTestName);
void AddAndRemoveFilesL(TBool aTestOpenFont);
+ void DoAddAndRemoveFilesL(TBool aTestOpenFont, CFontStore* aFontStore);
void AddingOpenedFontFilesL(TBool aTestOpenFont);
void FontDrawTextGlyphCacheL(const TDesC& aFontName, const TDesC& aTestName, const TDesC& aOutputText);
void FontDrawStringWithoutGlyphCacheL(const TDesC& aFontName, const TDesC& aTestName, TInt aFontHeight,const TDesC& aOutputString);
--- a/graphicstools/bitmapfonttools/group/BLD.INF Wed May 19 14:34:22 2010 +0100
+++ b/graphicstools/bitmapfonttools/group/BLD.INF Tue Jun 01 15:04:40 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 1999-2010 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"
@@ -61,7 +61,9 @@
#ifdef SYMBIAN_OLD_EXPORT_LOCATION
../inc/FNTREADR.H
#endif
-../inc/PDRRECRD.H SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(PDRRECRD.H)
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+../inc/PDRRECRD.H
+#endif
#ifdef SYMBIAN_OLD_EXPORT_LOCATION
../inc/PDRREADR.H
#endif
--- a/graphicsutils/commongraphicsheaders/rom/graphics_adaptation.hby Wed May 19 14:34:22 2010 +0100
+++ b/graphicsutils/commongraphicsheaders/rom/graphics_adaptation.hby Tue Jun 01 15:04:40 2010 +0100
@@ -133,6 +133,13 @@
# define OPENWFCLIB_DRV <openwfc_ref.iby>
# endif
#endif
+
+ #ifdef SYMBIAN_GRAPHICS_USE_OPENWF
+ # ifndef OPENWFCLIB_DRV
+ # define OPENWFCLIB_DRV <openwfc_ref.iby>
+ # endif
+ #endif
+
#elif SYMBIAN_GRAPHICS_ADAPTATION == SGA_MBX
// Imagination's MBX drivers used as default
@@ -237,5 +244,6 @@
REM "DIRECTGDI DRV" : DIRECTGDI_DRV
REM "FBSRASTERIZER DRV" : FBSRASTERIZER_DRV
REM "SRGREOURCE DRV" : SGRESOURCE_DRV
+REM "OPENWFCLIB_DRV" : OPENWFCLIB_DRV
#endif // __GRAPHICS_ADAPTATION_HBY__
--- a/m3g/m3gcore11/BWINS/m3gcoreU.DEF Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/BWINS/m3gcoreU.DEF Tue Jun 01 15:04:40 2010 +0100
@@ -342,4 +342,5 @@
m3gSetAlphaWrite @ 341 NONAME
m3gGetAlphaWrite @ 342 NONAME
m3gInvalidateMemoryTarget @ 343 NONAME
+ m3gFreeGLESResources @ 344 NONAME
--- a/m3g/m3gcore11/EABI/m3gcoreU.DEF Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/EABI/m3gcoreU.DEF Tue Jun 01 15:04:40 2010 +0100
@@ -342,4 +342,5 @@
m3gSetAlphaWrite @ 341 NONAME
m3gGetAlphaWrite @ 342 NONAME
m3gInvalidateMemoryTarget @ 343 NONAME
+ m3gFreeGLESResources @ 344 NONAME
--- a/m3g/m3gcore11/group/m3g.mmp Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/group/m3g.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -26,14 +26,14 @@
CAPABILITY CAP_GENERAL_DLL
// Modify default options to optimize for speed over size in this module.
-OPTION ARMCC -O3
-OPTION ARMCC -Otime
+OPTION ARMCC -O3 -Otime
ALWAYS_BUILD_AS_ARM
// Uncomment the following flags to enable ARMv6 and/or VFP optimizations.
-//#define __ARMV6_SUPPORT
-//#define __VFPV2_SUPPORT
+#define __ARMV6_SUPPORT
+#define __VFPV2_SUPPORT
+#ifdef ARMCC
#ifdef __ARMV6_SUPPORT
MACRO M3G_HW_ARMV6
OPTION_REPLACE ARMCC --cpu 6
@@ -44,6 +44,7 @@
MACRO M3G_HW_FLOAT_VFPV2
OPTION_REPLACE ARMCC --fpu softvfp+vfpv2 --fpmode fast
#endif
+#endif
#if defined(UDEB)
@@ -69,3 +70,5 @@
LIBRARY euser.lib estlib.lib fbscli.lib
LIBRARY efsrv.lib ws32.lib
LIBRARY libGLESv1_CM.lib ezlib.lib libEGL.lib
+
+SMPSAFE
--- a/m3g/m3gcore11/inc/m3g_appearance.h Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/inc/m3g_appearance.h Tue Jun 01 15:04:40 2010 +0100
@@ -125,28 +125,32 @@
*/
static M3G_INLINE M3Guint m3gGetAppearanceSortKey(const Appearance *appearance)
{
- M3Guint key = appearance ? appearance->sortKey : 0;
+ if (appearance) {
+ M3Guint key = appearance->sortKey;
- /* The blending state bit is set dynamically, as it may change
- * without changing the appearance (we have no signaling from
- * CompositingMode for that) */
-
- if (appearance->compositingMode != NULL
- && appearance->compositingMode->blendingMode != M3G_REPLACE) {
- key |= (1u << (32 - M3G_APPEARANCE_HARD_SORT_BITS));
- }
+ /* The blending state bit is set dynamically, as it may change
+ * without changing the appearance (we have no signaling from
+ * CompositingMode for that) */
+
+ if (appearance->compositingMode != NULL
+ && appearance->compositingMode->blendingMode != M3G_REPLACE) {
+ key |= (1u << (32 - M3G_APPEARANCE_HARD_SORT_BITS));
+ }
- if (m3gGetColorMaskWorkaround(M3G_INTERFACE(appearance))) {
- /* Override the top 2 bits of the sorting key so that ColorMask
- * changes are minimized */
- if (appearance) {
- key &= ~(0x03 << 22);
- key |= (((M3Guint) m3gColorMask(appearance)) & 1) << 23;
- key |= (((M3Guint) m3gAlphaMask(appearance)) & 1) << 22;
+ if (m3gGetColorMaskWorkaround(M3G_INTERFACE(appearance))) {
+ /* Override the top 2 bits of the sorting key so that ColorMask
+ * changes are minimized */
+ if (appearance) {
+ key &= ~(0x03 << 22);
+ key |= (((M3Guint) m3gColorMask(appearance)) & 1) << 23;
+ key |= (((M3Guint) m3gAlphaMask(appearance)) & 1) << 22;
+ }
}
- }
- return key;
+ return key;
+ }
+
+ return M3G_FALSE;
}
/*!
--- a/m3g/m3gcore11/inc/m3g_config.h Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/inc/m3g_config.h Tue Jun 01 15:04:40 2010 +0100
@@ -32,6 +32,21 @@
/* Support antialiasing */
#define M3G_SUPPORT_ANTIALIASING M3G_TRUE
+/*!
+ * \internal
+ * \def M3G_ENABLE_GLES_RESOURCE_HANDLING
+ * \brief Allow GLES resource freeing
+ *
+ * This feature can be used with HW renderers with external memory architecture
+ * to free all graphics resources allocated by M3G.
+ *
+ * Enabling this feature is likely to increase host memory consumption (a copy of
+ * all texture image data has to be kept kept in host memory), so it's advised to
+ * undefine the flag when using SW GLES or HW GLES with unified memory architecture.
+ */
+#define M3G_ENABLE_GLES_RESOURCE_HANDLING
+
+
#if defined(M3G_DEBUG)
/*
#define M3G_ENABLE_PROFILING
--- a/m3g/m3gcore11/inc/m3g_interface.h Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/inc/m3g_interface.h Tue Jun 01 15:04:40 2010 +0100
@@ -132,8 +132,11 @@
* Other internal functions
*------------------------------------------------------------------*/
-static void m3gAddChildObject(Interface *m3g);
-static void m3gDelChildObject(Interface *m3g);
+static void m3gAddChildObject(Interface *m3g, Object *obj);
+static void m3gDelChildObject(Interface *m3g, Object *obj);
+
+#include "m3g_array.h"
+static void m3gGetObjectsWithClassID(Interface *m3g, M3GClass classID, PointerArray* objects);
#if !defined(M3G_NGL_TEXTURE_API)
static void m3gDeleteGLTextures(Interface *m3g, M3Gsizei n, M3Guint *t);
--- a/m3g/m3gcore11/src/m3g_appearance.c Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/src/m3g_appearance.c Tue Jun 01 15:04:40 2010 +0100
@@ -427,9 +427,8 @@
if (appearance != NULL) {
m3gInitObject(&appearance->object, m3g, M3G_CLASS_APPEARANCE);
+ m3gRegenerateSortKey(appearance);
}
-
- m3gRegenerateSortKey(appearance);
return (M3GAppearance) appearance;
}
--- a/m3g/m3gcore11/src/m3g_fog.c Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/src/m3g_fog.c Tue Jun 01 15:04:40 2010 +0100
@@ -197,9 +197,10 @@
M3G_ASSERT_GL;
}
+#ifdef M3G_USE_NGL_API
/*!
* \internal
- * \brief Applies fog to OpenGL. This is used for
+ * \brief Applies fog to NGL. This is used for
* Sprite3D objects only.
*
* \param self Fog object
@@ -232,12 +233,9 @@
glEnable(GL_FOG);
glFogf(GL_FOG_MODE, GL_LINEAR);
-#ifdef M3G_USE_NGL_API
+
/* NGL works differently in fog calculation */
glFogf(GL_FOG_START, -m3gDiv(finalZ, fogValue));
-#else
- glFogf(GL_FOG_START, m3gAbs(m3gDiv(finalZ, fogValue)));
-#endif
glFogf(GL_FOG_END, 0.f);
glFogxv(GL_FOG_COLOR, temp);
}
@@ -245,7 +243,7 @@
glDisable(GL_FOG);
}
}
-
+#endif
/*----------------------------------------------------------------------
* Virtual function table
*--------------------------------------------------------------------*/
--- a/m3g/m3gcore11/src/m3g_image.c Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/src/m3g_image.c Tue Jun 01 15:04:40 2010 +0100
@@ -835,22 +835,33 @@
M3Gsizei count)
{
M3Guint temp[SPAN_BUFFER_SIZE];
+ const char endianTest[4] = { 1, 0, 0, 0 };
M3Guint srcBpp = m3gBytesPerPixel(srcFormat);
M3Guint dstBpp = m3gBytesPerPixel(dstFormat);
M3G_ASSERT(srcBpp > 0 && dstBpp > 0);
while (count > 0) {
- M3Gsizei n = (count < SPAN_BUFFER_SIZE) ? count : SPAN_BUFFER_SIZE;
- if (srcFormat == M3G_ARGB8 && dstFormat != M3G_ARGB8) {
+ M3Gsizei n = count;
+
+ /* Check the source and destination formats to avoid
+ the intermediate ARGB format conversion. */
+ if (((srcFormat == M3G_RGBA8 && (dstFormat == M3G_BGRA8 || dstFormat == M3G_BGR8_32))
+ || (dstFormat == M3G_RGBA8 && (srcFormat == M3G_BGRA8 || srcFormat == M3G_BGR8_32)))
+ && (n > 2) && ((*(const int *)endianTest) == 1)) {
+ /* use fast path for RGBA<->BGRA conversion */
+ fastConvertBGRAToRGBA(src, n * srcBpp, n, 1, dst);
+ } else if (srcFormat == M3G_ARGB8 && dstFormat != M3G_ARGB8) {
convertFromARGB((M3Guint*)src, n, dstFormat, dst);
} else if (srcFormat != M3G_ARGB8 && dstFormat == M3G_ARGB8) {
convertToARGB(srcFormat, src, n, (M3Guint*)dst);
} else {
+ /* no luck, do the conversion via ARGB (source format -> ARGB -> destination format) */
+ n = (count < SPAN_BUFFER_SIZE) ? count : SPAN_BUFFER_SIZE;
convertToARGB(srcFormat, src, n, temp);
convertFromARGB(temp, n, dstFormat, dst);
}
- count -= SPAN_BUFFER_SIZE; /* \note may go negative */
+ count -= n;
src += n * srcBpp;
dst += n * dstBpp;
}
@@ -1302,6 +1313,12 @@
return NULL;
}
+#ifdef M3G_ENABLE_GLES_RESOURCE_HANDLING
+ /* If GLES resource freeing (see function m3gFreeGLESResources)
+ is enabled, the GL texture might get deleted at any point, so
+ a copy of the texture data has to be always kept in memory. */
+ img->pinned = M3G_TRUE;
+#else
/* Lock the image data in memory if the image is dynamic,
* or the format has alpha information; otherwise, we'll
* be able to get rid of an extra copy when generating a
@@ -1312,7 +1329,7 @@
img->format != M3G_LUMINANCE)) {
img->pinned = M3G_TRUE;
}
-
+#endif
/* If the image can be used as a rendering target, clear
* to opaque white by default */
@@ -1368,13 +1385,14 @@
image->flags = flags;
+#ifndef M3G_ENABLE_GLES_RESOURCE_HANDLING
/* If the image format has no alpha information, we can discard
* the image data under suitable conditions */
if (image->format == M3G_RGB || image->format == M3G_LUMINANCE) {
image->pinned = M3G_FALSE;
}
-
+#endif
M3G_LOG1(M3G_LOG_IMAGES, "Image 0x%08X made immutable\n",
(unsigned) image);
}
--- a/m3g/m3gcore11/src/m3g_indexbuffer.c Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/src/m3g_indexbuffer.c Tue Jun 01 15:04:40 2010 +0100
@@ -483,7 +483,7 @@
M3Gint *indices)
{
M3Gint i, j, tri = 0;
- M3Gint triIndices[4];
+ M3Gint triIndices[4] = {0, 0, 0, 0};
M3G_VALIDATE_OBJECT(buffer);
M3G_UNREF(batchIndex);
--- a/m3g/m3gcore11/src/m3g_interface.c Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/src/m3g_interface.c Tue Jun 01 15:04:40 2010 +0100
@@ -68,8 +68,6 @@
/*@shared@*/ m3gReleaseTargetFunc *releaseTarget;
} func;
- /*Object *objects;*/
-
/*! \internal \brief Latest error code for this interface */
M3Genum error;
@@ -90,6 +88,8 @@
M3Gint glRefCount;
# endif
+ /* \internal \brief List of live objects */
+ PointerArray objects;
/*! \internal \brief Number of objects registered for this interface */
M3Gint objCount;
@@ -946,20 +946,26 @@
* \internal
* \brief
*/
-static void m3gAddChildObject(Interface *m3g)
+static void m3gAddChildObject(Interface *m3g, Object *obj)
{
M3G_ASSERT(!m3g->shutdown);
M3G_ASSERT(m3gInRange(m3g->objCount, 0, 0x7FFFFFFF));
++m3g->objCount;
+
+ /* Add the object to the list of live objects */
+ m3gArrayAppend(&m3g->objects, obj, m3g);
}
/*!
* \internal
* \brief
*/
-static void m3gDelChildObject(Interface *m3g)
+static void m3gDelChildObject(Interface *m3g, Object *obj)
{
M3G_ASSERT(m3g->objCount > 0);
+
+ /* Remove the object from the list of live objects */
+ m3gArrayDelete(&m3g->objects, m3gArrayFind(&m3g->objects, obj));
if (--m3g->objCount == 0 && m3g->shutdown) {
m3gDeleteInterface(m3g);
}
@@ -968,6 +974,19 @@
#if !defined(M3G_NGL_TEXTURE_API)
/*!
* \internal
+ * \brief Get a list of live objects with matching class ID
+ */
+static void m3gGetObjectsWithClassID(Interface *m3g, M3GClass classID, PointerArray* objects)
+{
+ M3Gsizei i = m3gArraySize(&m3g->objects);
+ while (i > 0) {
+ M3GObject obj = (M3GObject)m3gGetArrayElement(&m3g->objects, --i);
+ if (m3gGetClass(obj) == classID)
+ m3gArrayAppend(objects, obj, m3g);
+ }
+}
+/*!
+ * \internal
* \brief Queue OpenGL texture objects for deletion
*
* The objects will be deleted when a GL context is next made current.
@@ -1661,6 +1680,7 @@
/* All done! Now we can allocate the more trival stuff */
m3g->tcache = m3gCreateTransformCache(m3g);
+ m3gInitArray(&m3g->objects);
M3G_LOG1(M3G_LOG_INTERFACE,
"Interface 0x%08X initialized\n", (unsigned) m3g);
@@ -1690,6 +1710,7 @@
return;
}
+ m3gDestroyArray(&m3g->objects, m3g);
# if !defined(M3G_NGL_TEXTURE_API)
/* Free the list of dead GL objects (those will have been deleted
* along with the owning contexts by now) */
--- a/m3g/m3gcore11/src/m3g_math.c Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/src/m3g_math.c Tue Jun 01 15:04:40 2010 +0100
@@ -1016,7 +1016,6 @@
M3G_ASSERT(dst != NULL && left != NULL && right != NULL);
{
-
# if defined(M3G_HW_FLOAT)
if (!left->complete) {
m3gFillClassifiedMatrix((Matrix*)left);
@@ -1025,7 +1024,6 @@
m3gFillClassifiedMatrix((Matrix*)right);
}
# else
- int row;
const unsigned lmask = left->mask;
const unsigned rmask = right->mask;
# endif
@@ -1033,25 +1031,29 @@
#if defined(M3G_HW_FLOAT_VFPV2)
_m3gGenericMatrixProduct(dst, left, right);
#else
- for (row = 0; row < 4; ++row) {
- int col;
- for (col = 0; col < 4; ++col) {
- int k;
- M3Gfloat a = 0;
- for (k = 0; k < 4; ++k) {
- M3Gint lidx = MELEM(row, k);
- M3Gint ridx = MELEM(k, col);
-# if defined(M3G_HW_FLOAT)
- a = m3gMadd(left->elem[lidx], right->elem[ridx], a);
-# else
- a = m3gClassifiedMadd((lmask >> (2 * lidx)) & 3,
- &left->elem[lidx],
- (rmask >> (2 * ridx)) & 3,
- &right->elem[ridx],
- a);
-# endif /*!M3G_HW_FLOAT*/
+ {
+ int row;
+
+ for (row = 0; row < 4; ++row) {
+ int col;
+ for (col = 0; col < 4; ++col) {
+ int k;
+ M3Gfloat a = 0;
+ for (k = 0; k < 4; ++k) {
+ M3Gint lidx = MELEM(row, k);
+ M3Gint ridx = MELEM(k, col);
+# if defined(M3G_HW_FLOAT)
+ a = m3gMadd(left->elem[lidx], right->elem[ridx], a);
+# else
+ a = m3gClassifiedMadd((lmask >> (2 * lidx)) & 3,
+ &left->elem[lidx],
+ (rmask >> (2 * ridx)) & 3,
+ &right->elem[ridx],
+ a);
+# endif /*!M3G_HW_FLOAT*/
+ }
+ M44F(dst, row, col) = a;
}
- M44F(dst, row, col) = a;
}
}
#endif /*!M3G_HW_FLOAT_VFPV2*/
@@ -1840,7 +1842,7 @@
*/
#if defined(M3G_HW_FLOAT_VFPV2)
-M3G_API __asm void m3gLerp(M3Gint size,
+__weak __asm void m3gLerp(M3Gint size,
M3Gfloat *vec,
M3Gfloat s,
const M3Gfloat *start, const M3Gfloat *end)
@@ -1851,6 +1853,7 @@
// r3 = *start
// sp[0] = *end
+ EXPORT m3gLerp[DYNAMIC]
CODE32
/*
M3Gfloat sCompl = 1.0 - s;
@@ -3011,8 +3014,6 @@
return;
}
else {
- Vec4 v = *vec;
- int i;
int n = m3gIsWUnity(mtx) ? 3 : 4;
if (!mtx->complete) {
@@ -3021,12 +3022,17 @@
#if defined(M3G_HW_FLOAT_VFPV2)
_m3gTransformVec4(mtx, vec, n);
#else
- for (i = 0; i < n; ++i) {
- M3Gfloat d = m3gMul(M44F(mtx, i, 0), v.x);
- d = m3gMadd(M44F(mtx, i, 1), v.y, d);
- d = m3gMadd(M44F(mtx, i, 2), v.z, d);
- d = m3gMadd(M44F(mtx, i, 3), v.w, d);
- (&vec->x)[i] = d;
+ {
+ Vec4 v = *vec;
+ int i;
+
+ for (i = 0; i < n; ++i) {
+ M3Gfloat d = m3gMul(M44F(mtx, i, 0), v.x);
+ d = m3gMadd(M44F(mtx, i, 1), v.y, d);
+ d = m3gMadd(M44F(mtx, i, 2), v.z, d);
+ d = m3gMadd(M44F(mtx, i, 3), v.w, d);
+ (&vec->x)[i] = d;
+ }
}
#endif
}
--- a/m3g/m3gcore11/src/m3g_object.c Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/src/m3g_object.c Tue Jun 01 15:04:40 2010 +0100
@@ -56,7 +56,7 @@
M3G_VALIDATE_OBJECT(obj);
- m3gAddChildObject(interface);
+ m3gAddChildObject(interface, obj);
m3gMarkObject(obj);
m3gIncStat(M3G_INTERFACE(obj), M3G_STAT_OBJECTS, 1);
@@ -86,7 +86,7 @@
m3gFree(obj->interface, obj->animTracks);
}
- m3gDelChildObject(obj->interface);
+ m3gDelChildObject(obj->interface, obj);
m3gUnmarkObject(obj);
m3gIncStat(M3G_INTERFACE(obj), M3G_STAT_OBJECTS, -1);
--- a/m3g/m3gcore11/src/m3g_rendercontext.c Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/src/m3g_rendercontext.c Tue Jun 01 15:04:40 2010 +0100
@@ -403,6 +403,69 @@
return ctx->alphaWrite;
}
+/*!
+ * \brief Frees all GLES resources allocated by the M3G API
+ * (EGL surfaces, contexts and texture objects).
+ *
+ * \note M3G must not be bound to any target when calling this.
+ *
+ */
+M3G_API void m3gFreeGLESResources(M3GRenderContext ctx)
+{
+#ifdef M3G_ENABLE_GLES_RESOURCE_HANDLING
+
+ PointerArray image2DObjects;
+ M3Gint i;
+
+ /* M3G must not be bound to a rendering target at this point. */
+ if (ctx->target.type != SURFACE_NONE) {
+ m3gRaiseError(M3G_INTERFACE(ctx), M3G_INVALID_OPERATION);
+ }
+
+ /* EGL might not be initialized yet, so do it here just in case. */
+ eglInitialize(eglGetDisplay(EGL_DEFAULT_DISPLAY), NULL, NULL);
+ eglMakeCurrent(eglGetDisplay(EGL_DEFAULT_DISPLAY), NULL, NULL, NULL);
+
+ /* Delete EGL surfaces */
+ for (i = 0; i < M3G_MAX_GL_SURFACES; ++i) {
+ GLSurfaceRecord *surf = &ctx->glSurface[i];
+ if (surf->handle) {
+ m3gDeleteGLSurface(surf->handle);
+ }
+ m3gZero(surf, sizeof(GLSurfaceRecord));
+ }
+ if (ctx->backBuffer.glSurface != NULL) {
+ m3gDeleteGLSurface(ctx->backBuffer.glSurface);
+ m3gZero(&ctx->backBuffer, sizeof(BackBuffer));
+ }
+
+ /* Delete EGL contexts */
+ for (i = 0; i < M3G_MAX_GL_CONTEXTS; ++i) {
+ GLContextRecord *context = &ctx->glContext[i];
+ if (context->handle) {
+ m3gDeleteGLContext(context->handle);
+ }
+ m3gZero(context, sizeof(GLContextRecord));
+ }
+
+ /* Delete references to GLES texture objects from all live Image2D objects.
+ Texture objects themselves have already been destroyed with the last GL context. */
+
+ m3gInitArray(&image2DObjects);
+ m3gGetObjectsWithClassID(M3G_INTERFACE(ctx), M3G_CLASS_IMAGE, &image2DObjects);
+
+ i = m3gArraySize(&image2DObjects);
+
+ while (i > 0) {
+ Image *image = (Image*)m3gGetArrayElement(&image2DObjects, --i);
+
+ m3gInvalidateImage(image);
+ image->texObject = 0;
+ }
+ m3gDestroyArray(&image2DObjects, M3G_INTERFACE(ctx));
+#endif
+}
+
/*!
* \internal
--- a/m3g/m3gcore11/src/m3g_sprite.c Wed May 19 14:34:22 2010 +0100
+++ b/m3g/m3gcore11/src/m3g_sprite.c Tue Jun 01 15:04:40 2010 +0100
@@ -278,7 +278,10 @@
m3gTransformVec4(projMatrix, &x);
m3gTransformVec4(projMatrix, &y);
}
-
+#ifndef M3G_USE_NGL_API
+ /* Store w after projection */
+ eyeSpace->w = ot.w;
+#endif
m3gScaleVec4(&ot, m3gRcp(ot.w));
m3gScaleVec4(&x, m3gRcp(x.w));
m3gScaleVec4(&y, m3gRcp(y.w));
@@ -331,12 +334,12 @@
x.x = m3gMul(x.x, (M3Gfloat) rIsect.width);
y.y = m3gMul(y.y, (M3Gfloat) rIsect.height);
}
-
+#ifdef M3G_USE_NGL_API
/* Store final Z */
if (eyeSpace != NULL) {
eyeSpace->w = ot.z;
}
-
+#endif
/* Set up positions */
vert[0 * 3 + 0] = (M3Gint) m3gMul(65536, m3gSub(ot.x, x.x));
vert[0 * 3 + 1] = m3gRoundToInt(m3gAdd(m3gMul(65536, m3gAdd(ot.y, y.y)), 0.5f));
@@ -464,7 +467,11 @@
glMatrixMode(GL_MODELVIEW);
/* Apply fog and compositing mode */
+#ifdef M3G_USE_NGL_API
m3gApplySpriteFog(sprite->appearance->fog, eyeSpace.z, eyeSpace.w);
+#else
+ m3gApplyFog(sprite->appearance->fog);
+#endif
m3gApplyCompositingMode(sprite->appearance->compositingMode, ctx);
{
@@ -484,6 +491,32 @@
m3gPushScreenSpace(ctx, M3G_FALSE);
+#ifndef M3G_USE_NGL_API
+ /* Transform the sprite vertices (in NDC) back to eye coordinates, so that
+ the fog distance will be calculated correctly in the OpenGL pipeline. */
+ {
+ GLfloat transform[16];
+ GLfloat scaleW[16] = { 0.f, 0.f, 0.f, 0.f,
+ 0.f, 0.f, 0.f, 0.f,
+ 0.f, 0.f, 0.f, 0.f,
+ 0.f, 0.f, 0.f, 0.f };
+ Matrix invProjMatrix;
+ const Matrix *projMatrix = m3gProjectionMatrix(m3gGetCurrentCamera(ctx));
+
+ m3gMatrixInverse(&invProjMatrix, projMatrix);
+ m3gGetMatrixColumns(&invProjMatrix, transform);
+
+ glMatrixMode(GL_MODELVIEW);
+ glMultMatrixf(transform);
+ scaleW[0] = scaleW[5] = scaleW[10] = scaleW[15] = eyeSpace.w;
+ glMultMatrixf(scaleW);
+
+ glMatrixMode(GL_PROJECTION);
+ m3gGetMatrixColumns(projMatrix, transform);
+ glLoadMatrixf(transform);
+ }
+#endif
+
/* Load indices -> draws the sprite */
M3G_BEGIN_PROFILE(M3G_INTERFACE(ctx), M3G_PROFILE_NGL_DRAW);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
--- a/openvg/openvgrefimplementation/sfopenvg/group/sfopenvg.mmp Wed May 19 14:34:22 2010 +0100
+++ b/openvg/openvgrefimplementation/sfopenvg/group/sfopenvg.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -63,6 +63,9 @@
source riPixelPipe.cpp
source riRasterizer.cpp
source riVGU.cpp
+source riUtils.cpp
+// source sfEGLInterface.cpp is skipped because this contains adaptation to
+// use Nokia Platsim interfaces to provide EGL services
//for EGL
SOURCEPATH ..\sfopenvg\symbian
--- a/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riDefs.h Wed May 19 14:34:22 2010 +0100
+++ b/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riDefs.h Tue Jun 01 15:04:40 2010 +0100
@@ -45,8 +45,6 @@
#include <e32std.h>
#endif
-namespace OpenVGRI
-{
//make for-clause scope c++ standard compliant on msvc
#if defined (_MSC_VER)
@@ -59,8 +57,12 @@
#pragma warning(disable:4714) //disable function not __forceinlined warning
#endif // _MSC_VER
+namespace OpenVGRI
+{
//=======================================================================
+typedef long long RIint64;
+typedef unsigned long long RIuint64;
typedef int RIint32;
typedef unsigned int RIuint32;
typedef short RIint16;
@@ -121,17 +123,31 @@
#define RI_MAX_GAUSSIAN_STD_DEVIATION 16.0f
#define RI_MAX_SCISSOR_RECTANGLES 256
#define RI_MAX_EDGES 262144
-#define RI_MAX_SAMPLES 32
-#define RI_NUM_TESSELLATED_SEGMENTS 256
+#define RI_MAX_SAMPLES 1
+#define RI_NUM_TESSELLATED_SEGMENTS_QUAD 8
+#define RI_NUM_TESSELLATED_SEGMENTS_CUBIC 8
+#define RI_NUM_TESSELLATED_SEGMENTS_ARC 8
+#if defined(__GNUC__) && !defined(SF_PROFILE)
+# ifndef NDEBUG
+# define _DEBUG 1
+# endif
+#endif
+#if _DEBUG
#define RI_DEBUG
+#endif
#ifdef RI_DEBUG
-# define RI_ASSERT assert
+# define RI_ASSERT(X) assert(X)
#else
-# define RI_ASSERT
+# define RI_ASSERT(X) (void(0))
#endif
+#if defined(RI_DEBUG)
+# define RI_PRINTF(...) printf(__VA_ARGS__)
+#else
+# define RI_PRINTF(...)
+#endif
#define RI_UNREF(X) ((void)(X))
#define RI_APIENTRY EXPORT_C
@@ -147,7 +163,16 @@
bool isValidImageFormat(int format);
bool isValidImageFormat(EGLNativePixmapType f);
-
+RI_INLINE void RI_MEM_ZERO(void *dst, size_t n)
+{
+ RI_ASSERT(n > 0);
+ RI_ASSERT((n & 0x3) == 0);
+ RIuint32 *ptr = (RIuint32*)dst;
+ for(size_t i = 0; i < (n>>2); i++)
+ {
+ *ptr++ = 0;
+ }
+}
//=======================================================================
} //namespace OpenVGRI
--- a/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riMath.cpp Wed May 19 14:34:22 2010 +0100
+++ b/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riMath.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -4,6 +4,7 @@
* -----------------------------------
*
* Copyright (c) 2007 The Khronos Group Inc.
+ * Portions Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and /or associated documentation files
@@ -33,6 +34,20 @@
#include "riDefs.h"
#include "riMath.h"
+#if 0
+#include <stdio.h>
+
+static void printMatrix(const Matrix3x3& m)
+{
+ // For tracing a bug in matrix inverse in release-builds.
+ for(int i = 0; i < 3; i++)
+ {
+ printf("[%.4f %.4f %.4f]\n", m[i][0], m[i][1], m[i][2]);
+ }
+}
+
+#endif
+
namespace OpenVGRI
{
@@ -45,6 +60,7 @@
bool Matrix3x3::invert()
{
+ // \todo Save computation on affine matrices?
bool affine = isAffine();
RIfloat det00 = matrix[1][1]*matrix[2][2] - matrix[2][1]*matrix[1][2];
RIfloat det01 = matrix[2][0]*matrix[1][2] - matrix[1][0]*matrix[2][2];
@@ -55,15 +71,26 @@
d = 1.0f / d;
Matrix3x3 t;
- t[0][0] = d * det00;
- t[1][0] = d * det01;
- t[2][0] = d * det02;
- t[0][1] = d * (matrix[2][1]*matrix[0][2] - matrix[0][1]*matrix[2][2]);
- t[1][1] = d * (matrix[0][0]*matrix[2][2] - matrix[2][0]*matrix[0][2]);
- t[2][1] = d * (matrix[2][0]*matrix[0][1] - matrix[0][0]*matrix[2][1]);
- t[0][2] = d * (matrix[0][1]*matrix[1][2] - matrix[1][1]*matrix[0][2]);
- t[1][2] = d * (matrix[1][0]*matrix[0][2] - matrix[0][0]*matrix[1][2]);
- t[2][2] = d * (matrix[0][0]*matrix[1][1] - matrix[1][0]*matrix[0][1]);
+
+ // \note There is some bug (in GCC?) in accessing matrix elements: If data
+ // is accessed like: t[i][j], then the following will produce incorrect
+ // resulst on optimized builds. If the data is accessed through t.matrix,
+ // then the output is correct. Debug build works correctly, and if print
+ // calls are inserted, the code also works correctly. The context to get
+ // this bug appear are fill paints (linear and radial gradient test
+ // functions).
+
+ t.matrix[0][0] = d * det00;
+ t.matrix[1][0] = d * det01;
+ t.matrix[2][0] = d * det02;
+ //printf("t\n");
+ //printMatrix(t);
+ t.matrix[0][1] = d * (matrix[2][1]*matrix[0][2] - matrix[0][1]*matrix[2][2]);
+ t.matrix[1][1] = d * (matrix[0][0]*matrix[2][2] - matrix[2][0]*matrix[0][2]);
+ t.matrix[2][1] = d * (matrix[2][0]*matrix[0][1] - matrix[0][0]*matrix[2][1]);
+ t.matrix[0][2] = d * (matrix[0][1]*matrix[1][2] - matrix[1][1]*matrix[0][2]);
+ t.matrix[1][2] = d * (matrix[1][0]*matrix[0][2] - matrix[0][0]*matrix[1][2]);
+ t.matrix[2][2] = d * (matrix[0][0]*matrix[1][1] - matrix[1][0]*matrix[0][1]);
if(affine)
t[2].set(0,0,1); //affine matrix stays affine
*this = t;
--- a/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riMath.h Wed May 19 14:34:22 2010 +0100
+++ b/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riMath.h Tue Jun 01 15:04:40 2010 +0100
@@ -7,6 +7,7 @@
* -----------------------------------
*
* Copyright (c) 2007 The Khronos Group Inc.
+ * Portions Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and /or associated documentation files
@@ -14,10 +15,10 @@
* including without limitation the rights to use, copy, modify, merge,
* publish, 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:
+ * 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 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
@@ -30,7 +31,7 @@
*//**
* \file
* \brief Math functions, Vector and Matrix classes.
- * \note
+ * \note
*//*-------------------------------------------------------------------*/
#ifndef __RIDEFS_H
@@ -43,21 +44,21 @@
{
/*-------------------------------------------------------------------*//*!
-* \brief
-* \param
-* \return
-* \note
+* \brief
+* \param
+* \return
+* \note
*//*-------------------------------------------------------------------*/
RI_INLINE int RI_ISNAN(float a)
{
- RIfloatInt p;
- p.f = a;
- unsigned int exponent = (p.i>>23) & 0xff;
- unsigned int mantissa = p.i & 0x7fffff;
- if(exponent == 255 && mantissa)
- return 1;
- return 0;
+ RIfloatInt p;
+ p.f = a;
+ unsigned int exponent = (p.i>>23) & 0xff;
+ unsigned int mantissa = p.i & 0x7fffff;
+ if(exponent == 255 && mantissa)
+ return 1;
+ return 0;
}
#if (RI_MANTISSA_BITS > 23)
@@ -69,77 +70,77 @@
class RIfloat
{
public:
- RIfloat() : v(0.0f) { removeBits(); }
- RIfloat(float a) : v(a) { removeBits(); }
- RIfloat(double a) : v((float)a) { removeBits(); }
- RIfloat(int a) : v((float)a) { removeBits(); }
- RIfloat(unsigned int a) : v((float)a) { removeBits(); }
- RIfloat& operator=(const RIfloat &a) { v = a.v; removeBits(); return *this; }
- RIfloat& operator+=(const RIfloat &a){ v += a.v; removeBits(); return *this; }
- RIfloat& operator-=(const RIfloat &a){ v -= a.v; removeBits(); return *this; }
- RIfloat& operator*=(const RIfloat &a){ v *= a.v; removeBits(); return *this; }
- RIfloat& operator/=(const RIfloat &a){ v /= a.v; removeBits(); return *this; }
- RIfloat operator-() const { return -v; }
- operator float() const { return v; }
- operator double() const { return (double)v; }
- operator int() const { return (int)v; }
+ RIfloat() : v(0.0f) { removeBits(); }
+ RIfloat(float a) : v(a) { removeBits(); }
+ RIfloat(double a) : v((float)a) { removeBits(); }
+ RIfloat(int a) : v((float)a) { removeBits(); }
+ RIfloat(unsigned int a) : v((float)a) { removeBits(); }
+ RIfloat& operator=(const RIfloat &a) { v = a.v; removeBits(); return *this; }
+ RIfloat& operator+=(const RIfloat &a){ v += a.v; removeBits(); return *this; }
+ RIfloat& operator-=(const RIfloat &a){ v -= a.v; removeBits(); return *this; }
+ RIfloat& operator*=(const RIfloat &a){ v *= a.v; removeBits(); return *this; }
+ RIfloat& operator/=(const RIfloat &a){ v /= a.v; removeBits(); return *this; }
+ RIfloat operator-() const { return -v; }
+ operator float() const { return v; }
+ operator double() const { return (double)v; }
+ operator int() const { return (int)v; }
- friend RIfloat operator+(const RIfloat &a, const RIfloat &b);
- friend RIfloat operator+(float a, const RIfloat &b);
- friend RIfloat operator+(const RIfloat &a, float b);
- friend RIfloat operator-(const RIfloat &a, const RIfloat &b);
- friend RIfloat operator-(float a, const RIfloat &b);
- friend RIfloat operator-(const RIfloat &a, float b);
- friend RIfloat operator*(const RIfloat &a, const RIfloat &b);
- friend RIfloat operator*(float a, const RIfloat &b);
- friend RIfloat operator*(const RIfloat &a, float b);
- friend RIfloat operator/(const RIfloat &a, const RIfloat &b);
- friend RIfloat operator/(float a, const RIfloat &b);
- friend RIfloat operator/(const RIfloat &a, float b);
+ friend RIfloat operator+(const RIfloat &a, const RIfloat &b);
+ friend RIfloat operator+(float a, const RIfloat &b);
+ friend RIfloat operator+(const RIfloat &a, float b);
+ friend RIfloat operator-(const RIfloat &a, const RIfloat &b);
+ friend RIfloat operator-(float a, const RIfloat &b);
+ friend RIfloat operator-(const RIfloat &a, float b);
+ friend RIfloat operator*(const RIfloat &a, const RIfloat &b);
+ friend RIfloat operator*(float a, const RIfloat &b);
+ friend RIfloat operator*(const RIfloat &a, float b);
+ friend RIfloat operator/(const RIfloat &a, const RIfloat &b);
+ friend RIfloat operator/(float a, const RIfloat &b);
+ friend RIfloat operator/(const RIfloat &a, float b);
- friend bool operator<(const RIfloat &a, const RIfloat &b);
- friend bool operator<(float a, const RIfloat &b);
- friend bool operator<(const RIfloat &a, float b);
- friend bool operator>(const RIfloat &a, const RIfloat &b);
- friend bool operator>(float a, const RIfloat &b);
- friend bool operator>(const RIfloat &a, float b);
- friend bool operator<=(const RIfloat &a, const RIfloat &b);
- friend bool operator<=(float a, const RIfloat &b);
- friend bool operator<=(const RIfloat &a, float b);
- friend bool operator>=(const RIfloat &a, const RIfloat &b);
- friend bool operator>=(float a, const RIfloat &b);
- friend bool operator>=(const RIfloat &a, float b);
- friend bool operator==(const RIfloat &a, const RIfloat &b);
- friend bool operator==(float a, const RIfloat &b);
- friend bool operator==(const RIfloat &a, float b);
- friend bool operator!=(const RIfloat &a, const RIfloat &b);
- friend bool operator!=(float a, const RIfloat &b);
- friend bool operator!=(const RIfloat &a, float b);
+ friend bool operator<(const RIfloat &a, const RIfloat &b);
+ friend bool operator<(float a, const RIfloat &b);
+ friend bool operator<(const RIfloat &a, float b);
+ friend bool operator>(const RIfloat &a, const RIfloat &b);
+ friend bool operator>(float a, const RIfloat &b);
+ friend bool operator>(const RIfloat &a, float b);
+ friend bool operator<=(const RIfloat &a, const RIfloat &b);
+ friend bool operator<=(float a, const RIfloat &b);
+ friend bool operator<=(const RIfloat &a, float b);
+ friend bool operator>=(const RIfloat &a, const RIfloat &b);
+ friend bool operator>=(float a, const RIfloat &b);
+ friend bool operator>=(const RIfloat &a, float b);
+ friend bool operator==(const RIfloat &a, const RIfloat &b);
+ friend bool operator==(float a, const RIfloat &b);
+ friend bool operator==(const RIfloat &a, float b);
+ friend bool operator!=(const RIfloat &a, const RIfloat &b);
+ friend bool operator!=(float a, const RIfloat &b);
+ friend bool operator!=(const RIfloat &a, float b);
private:
- void removeBits()
- {
- RIfloatInt p;
- p.f = v;
- unsigned int exponent = (p.i>>23) & 0xff;
- if(exponent == 0 || exponent == 255)
- return; //zero, denormal, infinite, or NaN
+ void removeBits()
+ {
+ RIfloatInt p;
+ p.f = v;
+ unsigned int exponent = (p.i>>23) & 0xff;
+ if(exponent == 0 || exponent == 255)
+ return; //zero, denormal, infinite, or NaN
- p.i &= ~((1<<(23-RI_MANTISSA_BITS))-1);
+ p.i &= ~((1<<(23-RI_MANTISSA_BITS))-1);
#if (RI_EXPONENT_BITS != 8)
- if (exponent > 127 + (1 << (RI_EXPONENT_BITS-1)))
- exponent = 127 + (1 << (RI_EXPONENT_BITS-1));
+ if (exponent > 127 + (1 << (RI_EXPONENT_BITS-1)))
+ exponent = 127 + (1 << (RI_EXPONENT_BITS-1));
- if (exponent < 127 + 1 - (1 << (RI_EXPONENT_BITS-1)))
- exponent = 127 + 1 - (1 << (RI_EXPONENT_BITS-1));
+ if (exponent < 127 + 1 - (1 << (RI_EXPONENT_BITS-1)))
+ exponent = 127 + 1 - (1 << (RI_EXPONENT_BITS-1));
- p.i &= ~(0xff<<23);
- p.i |= exponent<<23;
+ p.i &= ~(0xff<<23);
+ p.i |= exponent<<23;
#endif
- v = p.f;
- }
+ v = p.f;
+ }
- float v;
+ float v;
};
RI_INLINE RIfloat operator+(const RIfloat &a, const RIfloat &b) { return RIfloat(a.v+b.v); }
@@ -180,8 +181,11 @@
#define PI 3.141592654f
+RI_INLINE int RI_ROUND_TO_INT(RIfloat v) { return (v >= 0.0f) ? (int)(v+0.5f) : (int)(v-0.5f); }
RI_INLINE RIfloat RI_MAX(RIfloat a, RIfloat b) { return (a > b) ? a : b; }
+RI_INLINE int RI_MAX(int a, int b) { return (a > b) ? a : b; }
RI_INLINE RIfloat RI_MIN(RIfloat a, RIfloat b) { return (a < b) ? a : b; }
+RI_INLINE int RI_MIN(int a, int b) { return (a < b) ? a : b; }
RI_INLINE RIfloat RI_CLAMP(RIfloat a, RIfloat l, RIfloat h) { if(RI_ISNAN(a)) return l; RI_ASSERT(l <= h); return (a < l) ? l : (a > h) ? h : a; }
RI_INLINE void RI_SWAP(RIfloat &a, RIfloat &b) { RIfloat tmp = a; a = b; b = tmp; }
RI_INLINE RIfloat RI_ABS(RIfloat a) { return (a < 0.0f) ? -a : a; }
@@ -190,12 +194,32 @@
RI_INLINE RIfloat RI_RAD_TO_DEG(RIfloat a) { return a * 180.0f/ PI; }
RI_INLINE RIfloat RI_MOD(RIfloat a, RIfloat b) { if(RI_ISNAN(a) || RI_ISNAN(b)) return 0.0f; RI_ASSERT(b >= 0.0f); if(b == 0.0f) return 0.0f; RIfloat f = (RIfloat)fmod(a, b); if(f < 0.0f) f += b; RI_ASSERT(f >= 0.0f && f <= b); return f; }
+#define RI_ANY_SWAP(type, a, b) {type tmp = a; a = b; b = tmp;}
+
+RI_INLINE void RI_INT16_SWAP(RIint16 &a, RIint16 &b) {RIint16 tmp = a; a = b; b = tmp;}
+RI_INLINE int RI_INT_ABS(int a) { return (a >= 0) ? a : -a; }
RI_INLINE int RI_INT_MAX(int a, int b) { return (a > b) ? a : b; }
RI_INLINE int RI_INT_MIN(int a, int b) { return (a < b) ? a : b; }
+RI_INLINE int RI_INT_CLAMP(int a, int l, int h) { return (a < l) ? l : (a > h) ? h : a; }
RI_INLINE void RI_INT_SWAP(int &a, int &b) { int tmp = a; a = b; b = tmp; }
RI_INLINE int RI_INT_MOD(int a, int b) { RI_ASSERT(b >= 0); if(!b) return 0; int i = a % b; if(i < 0) i += b; RI_ASSERT(i >= 0 && i < b); return i; }
RI_INLINE int RI_INT_ADDSATURATE(int a, int b) { RI_ASSERT(b >= 0); int r = a + b; return (r >= a) ? r : RI_INT32_MAX; }
+RI_INLINE int RI_SHL(int a, int sh)
+{
+ RI_ASSERT(sh >= 0 && sh <= 31);
+ int r = a << sh;
+ RI_ASSERT(a >= 0 ? (r >= 0) : (r < 0));
+ return r;
+}
+
+RI_INLINE int RI_SHR(int a, int sh)
+{
+ RI_ASSERT(sh >= 0 && sh <= 31);
+ int r = a >> sh;
+ return r;
+}
+
class Matrix3x3;
class Vector2;
class Vector3;
@@ -209,31 +233,31 @@
class Matrix3x3
{
public:
- RI_INLINE Matrix3x3 (); //initialized to identity
- RI_INLINE Matrix3x3 ( const Matrix3x3& m );
- RI_INLINE Matrix3x3 ( RIfloat m00, RIfloat m01, RIfloat m02, RIfloat m10, RIfloat m11, RIfloat m12, RIfloat m20, RIfloat m21, RIfloat m22 );
- RI_INLINE ~Matrix3x3 ();
- RI_INLINE Matrix3x3& operator= ( const Matrix3x3& m );
- RI_INLINE Vector3& operator[] ( int i ); //returns a row vector
- RI_INLINE const Vector3& operator[] ( int i ) const;
- RI_INLINE void set ( RIfloat m00, RIfloat m01, RIfloat m02, RIfloat m10, RIfloat m11, RIfloat m12, RIfloat m20, RIfloat m21, RIfloat m22 );
- RI_INLINE const Vector3 getRow ( int i ) const;
- RI_INLINE const Vector3 getColumn ( int i ) const;
- RI_INLINE void setRow ( int i, const Vector3& v );
- RI_INLINE void setColumn ( int i, const Vector3& v );
- RI_INLINE void operator*= ( const Matrix3x3& m );
- RI_INLINE void operator*= ( RIfloat f );
- RI_INLINE void operator+= ( const Matrix3x3& m );
- RI_INLINE void operator-= ( const Matrix3x3& m );
- RI_INLINE const Matrix3x3 operator- () const;
- RI_INLINE void identity ();
- RI_INLINE void transpose ();
- bool invert (); //if the matrix is singular, returns false and leaves it unmodified
- RI_INLINE RIfloat det () const;
- RI_INLINE bool isAffine () const;
+ RI_INLINE Matrix3x3 (); //initialized to identity
+ RI_INLINE Matrix3x3 ( const Matrix3x3& m );
+ RI_INLINE Matrix3x3 ( RIfloat m00, RIfloat m01, RIfloat m02, RIfloat m10, RIfloat m11, RIfloat m12, RIfloat m20, RIfloat m21, RIfloat m22 );
+ RI_INLINE ~Matrix3x3 ();
+ RI_INLINE Matrix3x3& operator= ( const Matrix3x3& m );
+ RI_INLINE Vector3& operator[] ( int i ); //returns a row vector
+ RI_INLINE const Vector3& operator[] ( int i ) const;
+ RI_INLINE void set ( RIfloat m00, RIfloat m01, RIfloat m02, RIfloat m10, RIfloat m11, RIfloat m12, RIfloat m20, RIfloat m21, RIfloat m22 );
+ RI_INLINE const Vector3 getRow ( int i ) const;
+ RI_INLINE const Vector3 getColumn ( int i ) const;
+ RI_INLINE void setRow ( int i, const Vector3& v );
+ RI_INLINE void setColumn ( int i, const Vector3& v );
+ RI_INLINE void operator*= ( const Matrix3x3& m );
+ RI_INLINE void operator*= ( RIfloat f );
+ RI_INLINE void operator+= ( const Matrix3x3& m );
+ RI_INLINE void operator-= ( const Matrix3x3& m );
+ RI_INLINE const Matrix3x3 operator- () const;
+ RI_INLINE void identity ();
+ RI_INLINE void transpose ();
+ bool invert (); //if the matrix is singular, returns false and leaves it unmodified
+ RI_INLINE RIfloat det () const;
+ RI_INLINE bool isAffine () const;
private:
- RIfloat matrix[3][3];
+ RIfloat matrix[3][3];
};
//==============================================================================================
@@ -241,25 +265,25 @@
class Vector2
{
public:
- RI_INLINE Vector2 () : x(0.0f), y(0.0f) {}
- RI_INLINE Vector2 ( const Vector2& v ) : x(v.x), y(v.y) {}
- RI_INLINE Vector2 ( RIfloat fx, RIfloat fy ) : x(fx), y(fy) {}
- RI_INLINE ~Vector2 () {}
- RI_INLINE Vector2& operator= ( const Vector2& v ) { x = v.x; y = v.y; return *this; }
- RI_INLINE RIfloat& operator[] ( int i ) { RI_ASSERT(i>=0&&i<2); return (&x)[i]; }
- RI_INLINE const RIfloat& operator[] ( int i ) const { RI_ASSERT(i>=0&&i<2); return (&x)[i]; }
- RI_INLINE void set ( RIfloat fx, RIfloat fy ) { x = fx; y = fy; }
- RI_INLINE void operator*= ( RIfloat f ) { x *= f; y *= f; }
- RI_INLINE void operator+= ( const Vector2& v ) { x += v.x; y += v.y; }
- RI_INLINE void operator-= ( const Vector2& v ) { x -= v.x; y -= v.y; }
- RI_INLINE const Vector2 operator- () const { return Vector2(-x,-y); }
- //if the vector is zero, returns false and leaves it unmodified
- RI_INLINE bool normalize () { double l = (double)x*(double)x+(double)y*(double)y; if( l == 0.0 ) return false; l = 1.0 / sqrt(l); x = (RIfloat)((double)x * l); y = (RIfloat)((double)y * l); return true; }
- RI_INLINE RIfloat length () const { return (RIfloat)sqrt((double)x*(double)x+(double)y*(double)y); }
- RI_INLINE void scale ( const Vector2& v ) { x *= v.x; y *= v.y; } //component-wise scale
- RI_INLINE void negate () { x = -x; y = -y; }
+ RI_INLINE Vector2 () : x(0.0f), y(0.0f) {}
+ RI_INLINE Vector2 ( const Vector2& v ) : x(v.x), y(v.y) {}
+ RI_INLINE Vector2 ( RIfloat fx, RIfloat fy ) : x(fx), y(fy) {}
+ RI_INLINE ~Vector2 () {}
+ RI_INLINE Vector2& operator= ( const Vector2& v ) { x = v.x; y = v.y; return *this; }
+ RI_INLINE RIfloat& operator[] ( int i ) { RI_ASSERT(i>=0&&i<2); return (&x)[i]; }
+ RI_INLINE const RIfloat& operator[] ( int i ) const { RI_ASSERT(i>=0&&i<2); return (&x)[i]; }
+ RI_INLINE void set ( RIfloat fx, RIfloat fy ) { x = fx; y = fy; }
+ RI_INLINE void operator*= ( RIfloat f ) { x *= f; y *= f; }
+ RI_INLINE void operator+= ( const Vector2& v ) { x += v.x; y += v.y; }
+ RI_INLINE void operator-= ( const Vector2& v ) { x -= v.x; y -= v.y; }
+ RI_INLINE const Vector2 operator- () const { return Vector2(-x,-y); }
+ //if the vector is zero, returns false and leaves it unmodified
+ RI_INLINE bool normalize () { double l = (double)x*(double)x+(double)y*(double)y; if( l == 0.0 ) return false; l = 1.0 / sqrt(l); x = (RIfloat)((double)x * l); y = (RIfloat)((double)y * l); return true; }
+ RI_INLINE RIfloat length () const { return (RIfloat)sqrt((double)x*(double)x+(double)y*(double)y); }
+ RI_INLINE void scale ( const Vector2& v ) { x *= v.x; y *= v.y; } //component-wise scale
+ RI_INLINE void negate () { x = -x; y = -y; }
- RIfloat x,y;
+ RIfloat x,y;
};
//==============================================================================================
@@ -267,25 +291,25 @@
class Vector3
{
public:
- RI_INLINE Vector3 () : x(0.0f), y(0.0f), z(0.0f) {}
- RI_INLINE Vector3 ( const Vector3& v ) : x(v.x), y(v.y), z(v.z) {}
- RI_INLINE Vector3 ( RIfloat fx, RIfloat fy, RIfloat fz ) : x(fx), y(fy), z(fz) {}
- RI_INLINE ~Vector3 () {}
- RI_INLINE Vector3& operator= ( const Vector3& v ) { x = v.x; y = v.y; z = v.z; return *this; }
- RI_INLINE RIfloat& operator[] ( int i ) { RI_ASSERT(i>=0&&i<3); return (&x)[i]; }
- RI_INLINE const RIfloat& operator[] ( int i ) const { RI_ASSERT(i>=0&&i<3); return (&x)[i]; }
- RI_INLINE void set ( RIfloat fx, RIfloat fy, RIfloat fz ){ x = fx; y = fy; z = fz; }
- RI_INLINE void operator*= ( RIfloat f ) { x *= f; y *= f; z *= f; }
- RI_INLINE void operator+= ( const Vector3& v ) { x += v.x; y += v.y; z += v.z; }
- RI_INLINE void operator-= ( const Vector3& v ) { x -= v.x; y -= v.y; z -= v.z; }
- RI_INLINE const Vector3 operator- () const { return Vector3(-x,-y,-z); }
- //if the vector is zero, returns false and leaves it unmodified
- RI_INLINE bool normalize () { double l = (double)x*(double)x+(double)y*(double)y+(double)z*(double)z; if( l == 0.0 ) return false; l = 1.0 / sqrt(l); x = (RIfloat)((double)x * l); y = (RIfloat)((double)y * l); z = (RIfloat)((double)z * l); return true; }
- RI_INLINE RIfloat length () const { return (RIfloat)sqrt((double)x*(double)x+(double)y*(double)y+(double)z*(double)z); }
- RI_INLINE void scale ( const Vector3& v ) { x *= v.x; y *= v.y; z *= v.z; } //component-wise scale
- RI_INLINE void negate () { x = -x; y = -y; z = -z; }
+ RI_INLINE Vector3 () : x(0.0f), y(0.0f), z(0.0f) {}
+ RI_INLINE Vector3 ( const Vector3& v ) : x(v.x), y(v.y), z(v.z) {}
+ RI_INLINE Vector3 ( RIfloat fx, RIfloat fy, RIfloat fz ) : x(fx), y(fy), z(fz) {}
+ RI_INLINE ~Vector3 () {}
+ RI_INLINE Vector3& operator= ( const Vector3& v ) { x = v.x; y = v.y; z = v.z; return *this; }
+ RI_INLINE RIfloat& operator[] ( int i ) { RI_ASSERT(i>=0&&i<3); return (&x)[i]; }
+ RI_INLINE const RIfloat& operator[] ( int i ) const { RI_ASSERT(i>=0&&i<3); return (&x)[i]; }
+ RI_INLINE void set ( RIfloat fx, RIfloat fy, RIfloat fz ){ x = fx; y = fy; z = fz; }
+ RI_INLINE void operator*= ( RIfloat f ) { x *= f; y *= f; z *= f; }
+ RI_INLINE void operator+= ( const Vector3& v ) { x += v.x; y += v.y; z += v.z; }
+ RI_INLINE void operator-= ( const Vector3& v ) { x -= v.x; y -= v.y; z -= v.z; }
+ RI_INLINE const Vector3 operator- () const { return Vector3(-x,-y,-z); }
+ //if the vector is zero, returns false and leaves it unmodified
+ RI_INLINE bool normalize () { double l = (double)x*(double)x+(double)y*(double)y+(double)z*(double)z; if( l == 0.0 ) return false; l = 1.0 / sqrt(l); x = (RIfloat)((double)x * l); y = (RIfloat)((double)y * l); z = (RIfloat)((double)z * l); return true; }
+ RI_INLINE RIfloat length () const { return (RIfloat)sqrt((double)x*(double)x+(double)y*(double)y+(double)z*(double)z); }
+ RI_INLINE void scale ( const Vector3& v ) { x *= v.x; y *= v.y; z *= v.z; } //component-wise scale
+ RI_INLINE void negate () { x = -x; y = -y; z = -z; }
- RIfloat x,y,z;
+ RIfloat x,y,z;
};
//==============================================================================================
--- a/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riPath.cpp Wed May 19 14:34:22 2010 +0100
+++ b/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riPath.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -2009,7 +2009,7 @@
if(!subpathHasGeometry)
startFlags |= START_SUBPATH;
- const int segments = RI_NUM_TESSELLATED_SEGMENTS;
+ const int segments = RI_NUM_TESSELLATED_SEGMENTS_QUAD;
Vector2 pp = p0;
Vector2 tp = incomingTangent;
unsigned int prevFlags = startFlags;
@@ -2073,7 +2073,7 @@
if(!subpathHasGeometry)
startFlags |= START_SUBPATH;
- const int segments = RI_NUM_TESSELLATED_SEGMENTS;
+ const int segments = RI_NUM_TESSELLATED_SEGMENTS_CUBIC;
Vector2 pp = p0;
Vector2 tp = incomingTangent;
unsigned int prevFlags = startFlags;
@@ -2241,7 +2241,7 @@
outgoingTangent = normalize(outgoingTangent);
RI_ASSERT(!isZero(incomingTangent) && !isZero(outgoingTangent));
- const int segments = RI_NUM_TESSELLATED_SEGMENTS;
+ const int segments = RI_NUM_TESSELLATED_SEGMENTS_ARC;
Vector2 pp = p0;
Vector2 tp = incomingTangent;
unsigned int prevFlags = startFlags;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riUtils.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,113 @@
+/*------------------------------------------------------------------------
+ *
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * 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 without limitation the rights to use, copy, modify, merge,
+ * publish, 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.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
+ * THE USE OR OTHER DEALINGS IN THE MATERIALS.
+ *
+ *//*-------------------------------------------------------------------*/
+
+#ifndef __RIUTILS_H_
+# include "riUtils.h"
+#endif
+
+#include <string.h>
+
+namespace OpenVGRI
+{
+
+/**
+ * \brief Sets mem areas to byte(s) in c.
+ * \param dst Destination pointer.
+ * \param c Data to set into dst.
+ * \param nElements Amount of elements to set.
+ * \param nBytesPerElement Amount of bytes for each element.
+ * \note This is moslty an image-settings support function. It is assumed that several
+ * bytes / elements can be set at once, especially in 3-byte case.
+ */
+void riMemSet32(void* dst, RIuint32 c, size_t nElements, size_t nBytesPerElement)
+{
+ // \todo This function should be called from a function that handles npot element sizes.
+ // \todo Investigate the status of (open) std::fill implementations. Some of that code
+ // did not _seem_ to bundle sets or use SSE, etc.
+ // \todo Use SSE instructions on Intel?
+
+ RI_ASSERT(dst);
+ RI_ASSERT(nElements);
+
+ switch(nBytesPerElement)
+ {
+ case 4:
+ {
+ RIuint32* ptr = (RIuint32*)dst;
+ do {
+ *ptr++ = c;
+ } while(--nElements);
+ break;
+ }
+ case 3:
+ {
+ // \todo Endianness.
+ RIuint8* ptr = (RIuint8*)dst;
+ RIuint8 b[3];
+ b[0] = c & 0xff;
+ b[1] = (c >> 8)&0xff;
+ b[2] = (c >> 16)&0xff;
+ do {
+ *ptr++ = b[0];
+ *ptr++ = b[1];
+ *ptr++ = b[2];
+ } while(--nElements);
+ break;
+ }
+ case 2:
+ {
+ size_t dws = nElements / 2;
+ if (dws)
+ {
+ RIuint32* ptr32 = (RIuint32*)dst;
+ dst = (void*)(((RIuint8*)dst + dws * 4));
+ RIuint32 dw = c | (c<<16);
+ do {
+ *ptr32++ = dw;
+ } while(--dws);
+ nElements &= 0x01;
+ }
+ if (nElements)
+ {
+ RIuint16 *ptr16 = (RIuint16*)dst;
+ const RIuint16 w = (RIuint16)c;
+ do {
+ *ptr16++ = w;
+ } while(--nElements);
+ }
+ }
+ case 1:
+ {
+ memset(dst, c, nElements);
+ break;
+ }
+ default:
+ RI_ASSERT(false);
+ }
+
+}
+
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/openvg/openvgrefimplementation/sfopenvg/sfopenvg/riUtils.h Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,46 @@
+/*------------------------------------------------------------------------
+ *
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * 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 without limitation the rights to use, copy, modify, merge,
+ * publish, 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.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR
+ * THE USE OR OTHER DEALINGS IN THE MATERIALS.
+ *
+ *//*-------------------------------------------------------------------*/
+
+#ifndef __RIUTILS_H_
+#define __RIUTILS_H_
+
+#ifndef __RIDEFS_H
+# include "riDefs.h"
+#endif
+
+// This file contains "utility" functions that did not "fit" into existing RI files.
+// Once more functionality is accumulated, the corresponding functions/classes should be
+// moved to proper files asap. For example, the memcopy functions could go into file
+// "riMemory.xxx".
+
+namespace OpenVGRI
+{
+
+void riMemSet32(void* dst, RIuint32 c, size_t nElements, size_t nBytesPerElement);
+
+}
+
+#endif
+
--- a/printingservices/printerdriversupport/inc/pdrtext.h Wed May 19 14:34:22 2010 +0100
+++ b/printingservices/printerdriversupport/inc/pdrtext.h Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 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"
@@ -34,6 +34,8 @@
class CInfoFont;
class CTypefaceFonts;
class TTextFormat;
+class CPdrControl;
+class CFbsFont;
class CPdrResources : public CBase
--- a/printingservices/printerdriversupport/src/FBSDRV.CPP Wed May 19 14:34:22 2010 +0100
+++ b/printingservices/printerdriversupport/src/FBSDRV.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1997-2010 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"
@@ -390,7 +390,7 @@
EXPORT_C TBool CFbsDrvControl::TransformBuffer()
{
TInt i;
- for (i = iScanLine->Des().Length() - 1; (i >= 0) && (iScanLine->Des()[i] == 0xFF); i--)
+ for (i = iScanLine->Length() - 1; (i >= 0) && (iScanLine->Des()[i] == 0xFF); i--)
{
}
TInt length = i + 1;
--- a/windowing/windowserver/Anim/MINANIM.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/Anim/MINANIM.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1999-2010 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"
@@ -11,7 +11,6 @@
// Contributors:
//
// Description:
-// MBMANIM.CPP
// Template for writing Anim DLL's
//
//
@@ -39,16 +38,14 @@
{
case EMinAnimWindow:
return new(ELeave) CMinWindowAnim();
+
case EMinAnimHandwriting:
return new(ELeave) CMinHandAnim();
- default:; //To stop a warning
+
+ default:
+ User::Leave(KErrArgument);
}
- }
-
-
-/*CMinWindowAnim*/
-
- iAnimator->Animate();
+ return NULL; // dummy return to prevent compiler error
}
@@ -96,12 +93,6 @@
void CAnimateMbm::Redraw()
{
iGc->BitBlt(TPoint(),iBitmap);
- /*if (1>0)
- {
- iGc->SetBrushStyle(CGraphicsContext::ESolidBrush);
- iGc->SetBrushColor(TRgb::Gray16(iIndex));
- iGc->DrawRect(TRect(5,5,300,300));
- }*/
}
void CAnimateMbm::Command(TInt aOpcode,TAny *aParams)
@@ -126,7 +117,6 @@
case EMbmOpSetFileName:
iName=*STATIC_CAST(TBuf<32>*,aParams);
iIndex=0;
- //User::LeaveIfError(LoadBitmap());
break;
default:
iFunctions->Panic();
@@ -139,10 +129,5 @@
TInt CAnimateMbm::CommandReplyL(TInt /*aOpcode*/,TAny* /*aParams*/)
{
- /*switch (aOpcode)
- {
- default:
- iFunctions->Panic();
- }*/
return KErrNone;
}
--- a/windowing/windowserver/SERVER/openwfc/panics.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/SERVER/openwfc/panics.h Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2003-2010 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"
@@ -162,6 +162,7 @@
EWsPanicInvalidRotation = 127, //Invalid rotation used
EWsPanicInvalidPointerOffset = 128, //The pointer offset value in wsini.ini is invalid.
EWsPanicArrayInsertFailed = 129, //Array insert failed.
+ EWsPanicCompleteNullMessage = 130, //RMessage2 is NULL prior to calling Complete().
};
void Panic(TWservPanic aPanic);
--- a/windowing/windowserver/SERVER/w32cmd.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/SERVER/w32cmd.h Tue Jun 01 15:04:40 2010 +0100
@@ -426,8 +426,11 @@
EWsWinOpScreenNumber,
EWsWinOpEnableAdvancedPointers,
#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
- EWsWinOpSetSurfaceTransparency,
+ EWsWinOpSetSurfaceTransparency=EWsWinOpEnableAdvancedPointers+1, // Explicit offset to prevent clash with EWsWinOpFixNativeOrientation
#endif
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ EWsWinOpFixNativeOrientation=EWsWinOpEnableAdvancedPointers+2, // Offset to prevent clash with EWsWinOpSetSurfaceTransparency
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
EWsWinOpTestLowPriorityRedraw=0x2000, //Specific opcode for testing redraw queue priorities
};
@@ -1915,13 +1918,17 @@
enum TW32Assert // used for w32 code errors
{
- EW32AssertOddLengthData,
- EW32AssertNotImplemented,
- EW32AssertIllegalOpcode,
- EW32AssertDirectMisuse,
- EW32AssertBufferLogic,
- EW32AssertUnexpectedOutOfRangePointerNumber, // Used for an out-of-range pointer number error within the old API's which doesn't take a pointer number.
- EW32AssertWindowSizeCacheFailure,
+ EW32AssertOddLengthData=0,
+ EW32AssertNotImplemented=1,
+ EW32AssertIllegalOpcode=2,
+ EW32AssertDirectMisuse=3,
+ EW32AssertBufferLogic=4,
+ EW32AssertUnexpectedOutOfRangePointerNumber=5, // Used for an out-of-range pointer number error within the old API's which doesn't take a pointer number.
+ EW32AssertWindowSizeCacheFailure=6,
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ EW32AssertWindowNativeSizeCacheFailure=7,
+ EW32AssertInvalidOrientation=8,
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
};
enum TW32Panic // used for application errors
@@ -2073,6 +2080,9 @@
EWservPanicWrongScreen=82, // Child apps can only be constructed on the same screen as their parent. See RWindowGroup::ConstructChildApp
EWservPanicScreenCaptureInvalidRequest=83, // With Screen Capture disabled, an unexpected invalid request has been received
EWservPanicInvalidDisplayConfiguration=84, // Use of a display configuration without valid members
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ EWservPanicFixNativeOrientation=85, // Invalid use of FixNativeOrientation()
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
};
#if defined(__WINS__)
--- a/windowing/windowserver/bwins/RemoteGcSwitchU.def Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/bwins/RemoteGcSwitchU.def Tue Jun 01 15:04:40 2010 +0100
@@ -1,19 +1,19 @@
-EXPORTS
- call_vector_1 @ 1 NONAME ; CCommandBuffer::~CCommandBuffer(void)
- call_vector_2 @ 2 NONAME ; CRemoteGc::~CRemoteGc(void)
- call_vector_3 @ 3 NONAME ; void CRemoteGc::ExternalizeL(class RWsGraphicMsgBuf &, int)
- call_vector_4 @ 4 NONAME ; void CCommandBuffer::InternalizeL(class TDesC8 const &)
- call_vector_5 @ 5 NONAME ; class CCommandBuffer * CCommandBuffer::NewL(void)
- call_vector_6 @ 6 NONAME ; class CRemoteGc * CRemoteGc::NewL(class CWsScreenDevice *)
- call_vector_7 @ 7 NONAME ; int CCommandBuffer::Play(class TPoint const &, class TRect const &, class MWsGraphicResolver const &, class CBitmapContext &)
- call_vector_8 @ 8 NONAME ; void CRemoteGc::ResetCommandBuffer(void)
- call_vector_9 @ 9 NONAME ; void CRemoteGc::SetCommandBufferObserver(class MCommandBufferObserver *)
- call_vector_10 @ 10 NONAME ; void CRemoteGc::BeginDraw(class TRect const &)
- call_vector_11 @ 11 NONAME ; void CRemoteGc::EndDraw(void)
- call_vector_12 @ 12 NONAME ; void CCommandBuffer::InternalizeAppendL(class TDesC8 const &)
- call_vector_13 @ 13 NONAME ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class MWsGraphicResolver const &, class CBitmapContext &)
- call_vector_14 @ 14 NONAME ; class TRegion const & CCommandBuffer::ClippingRegion(void) const
- call_vector_15 @ 15 NONAME ; int CCommandBuffer::IsIdentical(class CCommandBuffer const &) const
- call_vector_16 @ 16 NONAME ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class RWsSession &, class CWindowGc &)
- call_vector_17 @ 17 NONAME ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class MWsGraphicResolver const &, class MWsGraphicsContext &)
-
+EXPORTS
+ call_vector_1 @ 1 NONAME ; CCommandBuffer::~CCommandBuffer(void)
+ call_vector_2 @ 2 NONAME ; CRemoteGc::~CRemoteGc(void)
+ call_vector_3 @ 3 NONAME ; void CRemoteGc::ExternalizeL(class RWsGraphicMsgBuf &, int)
+ call_vector_4 @ 4 NONAME ; void CCommandBuffer::InternalizeL(class TDesC8 const &)
+ call_vector_5 @ 5 NONAME ; class CCommandBuffer * CCommandBuffer::NewL(void)
+ call_vector_6 @ 6 NONAME ; class CRemoteGc * CRemoteGc::NewL(class CWsScreenDevice *)
+ call_vector_7 @ 7 NONAME ; int CCommandBuffer::Play(class TPoint const &, class TRect const &, class MWsGraphicResolver const &, class CBitmapContext &)
+ call_vector_8 @ 8 NONAME ; void CRemoteGc::ResetCommandBuffer(void)
+ call_vector_9 @ 9 NONAME ; void CRemoteGc::SetCommandBufferObserver(class MCommandBufferObserver *)
+ call_vector_10 @ 10 NONAME ; void CRemoteGc::BeginDraw(class TRect const &)
+ call_vector_11 @ 11 NONAME ; void CRemoteGc::EndDraw(void)
+ call_vector_12 @ 12 NONAME ; void CCommandBuffer::InternalizeAppendL(class TDesC8 const &)
+ call_vector_13 @ 13 NONAME ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class MWsGraphicResolver const &, class CBitmapContext &)
+ call_vector_14 @ 14 NONAME ; class TRegion const & CCommandBuffer::ClippingRegion(void) const
+ call_vector_15 @ 15 NONAME ; int CCommandBuffer::IsIdentical(class CCommandBuffer const &) const
+ call_vector_16 @ 16 NONAME ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class RWsSession &, class CWindowGc &)
+ call_vector_17 @ 17 NONAME ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class MWsGraphicResolver const &, class MWsGraphicsContext &)
+
--- a/windowing/windowserver/bwins/WS322U.DEF Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/bwins/WS322U.DEF Tue Jun 01 15:04:40 2010 +0100
@@ -574,4 +574,7 @@
?Session@RWindowTreeNode@@QBEPAVRWsSession@@XZ @ 573 NONAME ; class RWsSession * RWindowTreeNode::Session(void) const
?HeapSetBurstFail@RWsSession@@QAEXHHH@Z @ 574 NONAME ; void RWsSession::HeapSetBurstFail(int, int, int)
?EnableWindowSizeCacheL@RWsSession@@QAEXXZ @ 575 NONAME ; void RWsSession::EnableWindowSizeCacheL(void)
- ?SetSurfaceTransparency@RWindowBase@@QAEXH@Z @ 576 NONAME ; void RWindowBase::SetSurfaceTransparency(int)
+ ?SetSurfaceTransparency@RWindowBase@@QAEXH@Z @ 576 NONAME ; void RWindowBase::SetSurfaceTransparency(int)
+ ?SizeForEgl@RWindowBase@@QBE?AVTSize@@XZ @ 577 NONAME ; class TSize RWindowBase::SizeForEgl(void) const
+ ?FixNativeOrientation@RWindowBase@@QAEHXZ @ 578 NONAME ; int RWindowBase::FixNativeOrientation(void)
+
--- a/windowing/windowserver/bwins/WsGraphicDrawerSwitchU.def Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/bwins/WsGraphicDrawerSwitchU.def Tue Jun 01 15:04:40 2010 +0100
@@ -1,86 +1,86 @@
-EXPORTS
- call_vector_1 @ 1 NONAME ; CWsGraphicDrawer::CWsGraphicDrawer(void)
- call_vector_2 @ 2 NONAME ; TWsGraphicMsgAnimation::TWsGraphicMsgAnimation(void)
- call_vector_3 @ 3 NONAME ; TWsGraphicMsgBufParser::TWsGraphicMsgBufParser(class TDesC8 const &)
- call_vector_4 @ 4 NONAME ; CWsGraphicDrawer::~CWsGraphicDrawer(void)
- call_vector_5 @ 5 NONAME ; void CWsGraphicDrawerArray::AddLC(class CWsGraphicDrawer *)
- call_vector_6 @ 6 NONAME ; void MWsAnimationScheduler::Animate(class MWsScreen &)
- call_vector_7 @ 7 NONAME ; class TTimeIntervalMicroSeconds TWsGraphicMsgAnimation::AnimationTime(class TTime const &, class TTimeIntervalMicroSeconds const &) const
- call_vector_8 @ 8 NONAME ; void CWsGraphicDrawer::BaseConstructL(class MWsGraphicDrawerEnvironment &, struct TGraphicDrawerId const &, class MWsClient &)
- call_vector_9 @ 9 NONAME ; void CWsGraphicDrawerArray::Close(void)
- call_vector_10 @ 10 NONAME ; int TGraphicDrawerId::Compare(struct TGraphicDrawerId const &) const
- call_vector_11 @ 11 NONAME ; int TGraphicDrawerId::Compare(struct TGraphicDrawerId const &, struct TGraphicDrawerId const &)
- call_vector_12 @ 12 NONAME ; int CWsGraphicDrawer::Contains(class TArray<struct TGraphicDrawerId> const &) const
- call_vector_13 @ 13 NONAME ; int TWsGraphicMsgBufParser::Count(void) const
- call_vector_14 @ 14 NONAME ; class CWsGraphicDrawer * WsGraphicDrawer::CreateLC(class TUid, class MWsGraphicDrawerEnvironment &, struct TGraphicDrawerId const &, class MWsClient &, class TDesC8 const &)
- call_vector_15 @ 15 NONAME ; class TPtrC8 TWsGraphicMsgBufParser::Data(int) const
- call_vector_16 @ 16 NONAME ; void CWsGraphicDrawer::Draw(class MWsGc &, class TRect const &, class TDesC8 const &) const
- call_vector_17 @ 17 NONAME ; class MWsGraphicDrawerEnvironment & CWsGraphicDrawer::Env(void)
- call_vector_18 @ 18 NONAME ; int TWsGraphicMsgBufParser::Find(class TUid, int) const
- call_vector_19 @ 19 NONAME ; int CWsGraphicDrawer::HasAsChild(class TArray<struct TGraphicDrawerId> const &) const
- call_vector_20 @ 20 NONAME ; struct TGraphicDrawerId const & CWsGraphicDrawer::Id(void) const
- call_vector_21 @ 21 NONAME ; void CWsGraphicDrawer::Invalidate(void)
- call_vector_22 @ 22 NONAME ; int CWsGraphicDrawerArray::IsEmpty(void) const
- call_vector_23 @ 23 NONAME ; int TWsGraphicMsgAnimation::IsPlaying(class TTime const &, class TTimeIntervalMicroSeconds const &) const
- call_vector_24 @ 24 NONAME ; int CWsGraphicDrawer::IsSharedWith(class TSecureId) const
- call_vector_25 @ 25 NONAME ; int TWsGraphicMsgAnimation::Load(class TWsGraphicMsgBufParser const &)
- call_vector_26 @ 26 NONAME ; int TWsGraphicMsgAnimation::Load(class TWsGraphicMsgBufParser const &, int)
- call_vector_27 @ 27 NONAME ; class MWsClient const & CWsGraphicDrawer::Owner(void) const
- call_vector_28 @ 28 NONAME ; void MWsAnimationScheduler::Redraw(class MWsScreen &)
- call_vector_29 @ 29 NONAME ; int MWsAnimationScheduler::RedrawInvalid(class MWsScreen &, class TArray<struct TGraphicDrawerId> const &)
- call_vector_30 @ 30 NONAME ; int CWsGraphicDrawerArray::Remove(struct TGraphicDrawerId const &)
- call_vector_31 @ 31 NONAME ; int CWsGraphicDrawerArray::RemoveAll(class MWsClient const &)
- call_vector_32 @ 32 NONAME ; int CWsGraphicDrawerArray::RemoveAndDestroy(struct TGraphicDrawerId const &)
- call_vector_33 @ 33 NONAME ; int CWsGraphicDrawerArray::RemoveAndDestroyAll(class MWsClient const &)
- call_vector_34 @ 34 NONAME ; void CWsGraphicDrawerArray::ResetAndDestroy(void)
- call_vector_35 @ 35 NONAME ; class CWsGraphicDrawer const * CWsGraphicDrawerArray::ResolveGraphic(struct TGraphicDrawerId const &) const
- call_vector_36 @ 36 NONAME ; void * MWsObjectProvider::ResolveObjectInterface(unsigned int)
- call_vector_37 @ 37 NONAME ; int CWsGraphicDrawer::SendMessage(class TDesC8 const &)
- call_vector_38 @ 38 NONAME ; int CWsGraphicDrawer::Share(class TSecureId)
- call_vector_39 @ 39 NONAME ; int CWsGraphicDrawer::ShareGlobally(void)
- call_vector_40 @ 40 NONAME ; int CWsGraphicDrawerArray::SwapLC(class CWsGraphicDrawer *)
- call_vector_41 @ 41 NONAME ; class TUid TWsGraphicMsgBufParser::Uid(int) const
- call_vector_42 @ 42 NONAME ; int CWsGraphicDrawer::UnShare(class TSecureId)
- call_vector_43 @ 43 NONAME ; int CWsGraphicDrawer::UnShareGlobally(void)
- call_vector_44 @ 44 NONAME ; int TWsGraphicMsgBufParser::Verify(void) const
- call_vector_45 @ 45 NONAME ; class MWsGraphicDrawerEnvironment const & CWsGraphicDrawer::Env(void) const
- call_vector_46 @ 46 NONAME ; void CWsGraphicDrawer::HandleEvent(struct TWservCrEvent const &)
- call_vector_47 @ 47 NONAME ; int CWsGraphicDrawer::HasEventHandler(void) const
- call_vector_48 @ 48 NONAME ; void CWsGraphicDrawer::SetEventHandler(class MWsEventHandler *)
- call_vector_49 @ 49 NONAME ; TWservCrEvent::TWservCrEvent(unsigned long)
- call_vector_50 @ 50 NONAME ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long)
- call_vector_51 @ 51 NONAME ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long, void *)
- call_vector_52 @ 52 NONAME ; int TWservCrEvent::SizeMode(void) const
- call_vector_53 @ 53 NONAME ; unsigned long TWservCrEvent::Type(void) const
- call_vector_54 @ 54 NONAME ; class RRegion const * TWservCrEvent::VisibleRegion(void) const
- call_vector_55 @ 55 NONAME ; int TWservCrEvent::ScreenNumber(void) const
- call_vector_56 @ 56 NONAME ; int TWsGraphicMsgBufParser::LoadFixed(class TUid, void *, int, int) const
- call_vector_57 @ 57 NONAME ; int CWsGraphicDrawer::SendMessage(class CWsMessageData &)
- call_vector_58 @ 58 NONAME ; class TRegion const * TWservCrEvent::DrawingRegion(void) const
- call_vector_59 @ 59 NONAME ; int TWservCrEvent::WindowGroupIdentifier(void) const
- call_vector_60 @ 60 NONAME ; int CWsGraphicDrawerArray::Add(class CWsGraphicDrawer *)
- call_vector_61 @ 61 NONAME ; class CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::AddTLC(class CWsGraphicDrawer *)
- call_vector_62 @ 62 NONAME ; void CWsGraphicDrawerArray::CommitP(class CWsGraphicDrawerArray::XRollBackBase *)
- call_vector_63 @ 63 NONAME ; class CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::RemoveTLC(struct TGraphicDrawerId const &)
- call_vector_64 @ 64 NONAME ; int CWsGraphicDrawerArray::Swap(class CWsGraphicDrawer *)
- call_vector_65 @ 65 NONAME ; class CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::SwapTLC(class CWsGraphicDrawer *)
- call_vector_66 @ 66 NONAME ; enum CFbsBitGc::TGraphicsOrientation TWservCrEvent::Orientation(void) const
- call_vector_67 @ 67 NONAME ; void WsGraphicDrawer::FinalClose(void)
- call_vector_68 @ 68 NONAME ; int TWservCrEvent::WasVisible(void) const
- call_vector_69 @ 69 NONAME ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long, void *, class MWsWindow *)
- call_vector_70 @ 70 NONAME ; class MWsWindow * TWservCrEvent::Window(void) const
- call_vector_71 @ 71 NONAME ; CWsPlugin::CWsPlugin(void)
- call_vector_72 @ 72 NONAME ; CWsRenderStage::CWsRenderStage(void)
- call_vector_73 @ 73 NONAME ; CWsPlugin::~CWsPlugin(void)
- call_vector_74 @ 74 NONAME ; CWsRenderStage::~CWsRenderStage(void)
- call_vector_75 @ 75 NONAME ; void CWsPlugin::BaseConstructL(class MWsGraphicDrawerEnvironment &)
- call_vector_76 @ 76 NONAME ; void CWsRenderStage::BaseConstructL(void)
- call_vector_77 @ 77 NONAME ; class MWsGraphicDrawerEnvironment & CWsPlugin::Env(void)
- call_vector_78 @ 78 NONAME ; class MWsGraphicDrawerEnvironment const & CWsPlugin::Env(void) const
- call_vector_79 @ 79 NONAME ; class CWsRenderStage * CWsRenderStage::Next(void)
- call_vector_80 @ 80 NONAME ; class TDesC16 const & CWsPlugin::PluginName(void) const
- call_vector_81 @ 81 NONAME ; void * CWsRenderStage::ResolveObjectInterface(unsigned int)
- call_vector_82 @ 82 NONAME ; void CWsRenderStage::SetNext(class CWsRenderStage *)
- call_vector_83 @ 83 NONAME ; class TSurfaceId const * TWservCrEvent::SurfaceId(void) const
- call_vector_84 @ 84 NONAME ; void MWsAnimationScheduler::Animate(class MWsScreen &, class TRequestStatus *)
-
+EXPORTS
+ call_vector_1 @ 1 NONAME ; CWsGraphicDrawer::CWsGraphicDrawer(void)
+ call_vector_2 @ 2 NONAME ; TWsGraphicMsgAnimation::TWsGraphicMsgAnimation(void)
+ call_vector_3 @ 3 NONAME ; TWsGraphicMsgBufParser::TWsGraphicMsgBufParser(class TDesC8 const &)
+ call_vector_4 @ 4 NONAME ; CWsGraphicDrawer::~CWsGraphicDrawer(void)
+ call_vector_5 @ 5 NONAME ; void CWsGraphicDrawerArray::AddLC(class CWsGraphicDrawer *)
+ call_vector_6 @ 6 NONAME ; void MWsAnimationScheduler::Animate(class MWsScreen &)
+ call_vector_7 @ 7 NONAME ; class TTimeIntervalMicroSeconds TWsGraphicMsgAnimation::AnimationTime(class TTime const &, class TTimeIntervalMicroSeconds const &) const
+ call_vector_8 @ 8 NONAME ; void CWsGraphicDrawer::BaseConstructL(class MWsGraphicDrawerEnvironment &, struct TGraphicDrawerId const &, class MWsClient &)
+ call_vector_9 @ 9 NONAME ; void CWsGraphicDrawerArray::Close(void)
+ call_vector_10 @ 10 NONAME ; int TGraphicDrawerId::Compare(struct TGraphicDrawerId const &) const
+ call_vector_11 @ 11 NONAME ; int TGraphicDrawerId::Compare(struct TGraphicDrawerId const &, struct TGraphicDrawerId const &)
+ call_vector_12 @ 12 NONAME ; int CWsGraphicDrawer::Contains(class TArray<struct TGraphicDrawerId> const &) const
+ call_vector_13 @ 13 NONAME ; int TWsGraphicMsgBufParser::Count(void) const
+ call_vector_14 @ 14 NONAME ; class CWsGraphicDrawer * WsGraphicDrawer::CreateLC(class TUid, class MWsGraphicDrawerEnvironment &, struct TGraphicDrawerId const &, class MWsClient &, class TDesC8 const &)
+ call_vector_15 @ 15 NONAME ; class TPtrC8 TWsGraphicMsgBufParser::Data(int) const
+ call_vector_16 @ 16 NONAME ; void CWsGraphicDrawer::Draw(class MWsGc &, class TRect const &, class TDesC8 const &) const
+ call_vector_17 @ 17 NONAME ; class MWsGraphicDrawerEnvironment & CWsGraphicDrawer::Env(void)
+ call_vector_18 @ 18 NONAME ; int TWsGraphicMsgBufParser::Find(class TUid, int) const
+ call_vector_19 @ 19 NONAME ; int CWsGraphicDrawer::HasAsChild(class TArray<struct TGraphicDrawerId> const &) const
+ call_vector_20 @ 20 NONAME ; struct TGraphicDrawerId const & CWsGraphicDrawer::Id(void) const
+ call_vector_21 @ 21 NONAME ; void CWsGraphicDrawer::Invalidate(void)
+ call_vector_22 @ 22 NONAME ; int CWsGraphicDrawerArray::IsEmpty(void) const
+ call_vector_23 @ 23 NONAME ; int TWsGraphicMsgAnimation::IsPlaying(class TTime const &, class TTimeIntervalMicroSeconds const &) const
+ call_vector_24 @ 24 NONAME ; int CWsGraphicDrawer::IsSharedWith(class TSecureId) const
+ call_vector_25 @ 25 NONAME ; int TWsGraphicMsgAnimation::Load(class TWsGraphicMsgBufParser const &)
+ call_vector_26 @ 26 NONAME ; int TWsGraphicMsgAnimation::Load(class TWsGraphicMsgBufParser const &, int)
+ call_vector_27 @ 27 NONAME ; class MWsClient const & CWsGraphicDrawer::Owner(void) const
+ call_vector_28 @ 28 NONAME ; void MWsAnimationScheduler::Redraw(class MWsScreen &)
+ call_vector_29 @ 29 NONAME ; int MWsAnimationScheduler::RedrawInvalid(class MWsScreen &, class TArray<struct TGraphicDrawerId> const &)
+ call_vector_30 @ 30 NONAME ; int CWsGraphicDrawerArray::Remove(struct TGraphicDrawerId const &)
+ call_vector_31 @ 31 NONAME ; int CWsGraphicDrawerArray::RemoveAll(class MWsClient const &)
+ call_vector_32 @ 32 NONAME ; int CWsGraphicDrawerArray::RemoveAndDestroy(struct TGraphicDrawerId const &)
+ call_vector_33 @ 33 NONAME ; int CWsGraphicDrawerArray::RemoveAndDestroyAll(class MWsClient const &)
+ call_vector_34 @ 34 NONAME ; void CWsGraphicDrawerArray::ResetAndDestroy(void)
+ call_vector_35 @ 35 NONAME ; class CWsGraphicDrawer const * CWsGraphicDrawerArray::ResolveGraphic(struct TGraphicDrawerId const &) const
+ call_vector_36 @ 36 NONAME ; void * MWsObjectProvider::ResolveObjectInterface(unsigned int)
+ call_vector_37 @ 37 NONAME ; int CWsGraphicDrawer::SendMessage(class TDesC8 const &)
+ call_vector_38 @ 38 NONAME ; int CWsGraphicDrawer::Share(class TSecureId)
+ call_vector_39 @ 39 NONAME ; int CWsGraphicDrawer::ShareGlobally(void)
+ call_vector_40 @ 40 NONAME ; int CWsGraphicDrawerArray::SwapLC(class CWsGraphicDrawer *)
+ call_vector_41 @ 41 NONAME ; class TUid TWsGraphicMsgBufParser::Uid(int) const
+ call_vector_42 @ 42 NONAME ; int CWsGraphicDrawer::UnShare(class TSecureId)
+ call_vector_43 @ 43 NONAME ; int CWsGraphicDrawer::UnShareGlobally(void)
+ call_vector_44 @ 44 NONAME ; int TWsGraphicMsgBufParser::Verify(void) const
+ call_vector_45 @ 45 NONAME ; class MWsGraphicDrawerEnvironment const & CWsGraphicDrawer::Env(void) const
+ call_vector_46 @ 46 NONAME ; void CWsGraphicDrawer::HandleEvent(struct TWservCrEvent const &)
+ call_vector_47 @ 47 NONAME ; int CWsGraphicDrawer::HasEventHandler(void) const
+ call_vector_48 @ 48 NONAME ; void CWsGraphicDrawer::SetEventHandler(class MWsEventHandler *)
+ call_vector_49 @ 49 NONAME ; TWservCrEvent::TWservCrEvent(unsigned long)
+ call_vector_50 @ 50 NONAME ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long)
+ call_vector_51 @ 51 NONAME ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long, void *)
+ call_vector_52 @ 52 NONAME ; int TWservCrEvent::SizeMode(void) const
+ call_vector_53 @ 53 NONAME ; unsigned long TWservCrEvent::Type(void) const
+ call_vector_54 @ 54 NONAME ; class RRegion const * TWservCrEvent::VisibleRegion(void) const
+ call_vector_55 @ 55 NONAME ; int TWservCrEvent::ScreenNumber(void) const
+ call_vector_56 @ 56 NONAME ; int TWsGraphicMsgBufParser::LoadFixed(class TUid, void *, int, int) const
+ call_vector_57 @ 57 NONAME ; int CWsGraphicDrawer::SendMessage(class CWsMessageData &)
+ call_vector_58 @ 58 NONAME ; class TRegion const * TWservCrEvent::DrawingRegion(void) const
+ call_vector_59 @ 59 NONAME ; int TWservCrEvent::WindowGroupIdentifier(void) const
+ call_vector_60 @ 60 NONAME ; int CWsGraphicDrawerArray::Add(class CWsGraphicDrawer *)
+ call_vector_61 @ 61 NONAME ; struct CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::AddTLC(class CWsGraphicDrawer *)
+ call_vector_62 @ 62 NONAME ; void CWsGraphicDrawerArray::CommitP(struct CWsGraphicDrawerArray::XRollBackBase *)
+ call_vector_63 @ 63 NONAME ; struct CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::RemoveTLC(struct TGraphicDrawerId const &)
+ call_vector_64 @ 64 NONAME ; int CWsGraphicDrawerArray::Swap(class CWsGraphicDrawer *)
+ call_vector_65 @ 65 NONAME ; struct CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::SwapTLC(class CWsGraphicDrawer *)
+ call_vector_66 @ 66 NONAME ; enum CFbsBitGc::TGraphicsOrientation TWservCrEvent::Orientation(void) const
+ call_vector_67 @ 67 NONAME ; void WsGraphicDrawer::FinalClose(void)
+ call_vector_68 @ 68 NONAME ; int TWservCrEvent::WasVisible(void) const
+ call_vector_69 @ 69 NONAME ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long, void *, class MWsWindow *)
+ call_vector_70 @ 70 NONAME ; class MWsWindow * TWservCrEvent::Window(void) const
+ call_vector_71 @ 71 NONAME ; CWsPlugin::CWsPlugin(void)
+ call_vector_72 @ 72 NONAME ; CWsRenderStage::CWsRenderStage(void)
+ call_vector_73 @ 73 NONAME ; CWsPlugin::~CWsPlugin(void)
+ call_vector_74 @ 74 NONAME ; CWsRenderStage::~CWsRenderStage(void)
+ call_vector_75 @ 75 NONAME ; void CWsPlugin::BaseConstructL(class MWsGraphicDrawerEnvironment &)
+ call_vector_76 @ 76 NONAME ; void CWsRenderStage::BaseConstructL(void)
+ call_vector_77 @ 77 NONAME ; class MWsGraphicDrawerEnvironment & CWsPlugin::Env(void)
+ call_vector_78 @ 78 NONAME ; class MWsGraphicDrawerEnvironment const & CWsPlugin::Env(void) const
+ call_vector_79 @ 79 NONAME ; class CWsRenderStage * CWsRenderStage::Next(void)
+ call_vector_80 @ 80 NONAME ; class TDesC16 const & CWsPlugin::PluginName(void) const
+ call_vector_81 @ 81 NONAME ; void * CWsRenderStage::ResolveObjectInterface(unsigned int)
+ call_vector_82 @ 82 NONAME ; void CWsRenderStage::SetNext(class CWsRenderStage *)
+ call_vector_83 @ 83 NONAME ; class TSurfaceId const * TWservCrEvent::SurfaceId(void) const
+ call_vector_84 @ 84 NONAME ; void MWsAnimationScheduler::Animate(class MWsScreen &, class TRequestStatus *)
+
--- a/windowing/windowserver/bwins/ws32switchu.def Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/bwins/ws32switchu.def Tue Jun 01 15:04:40 2010 +0100
@@ -1,577 +1,581 @@
-EXPORTS
- call_vector_1 @ 1 NONAME ; public: __thiscall CWindowGc::CWindowGc(class CWsScreenDevice *)
- call_vector_2 @ 2 NONAME ; public: __thiscall CWsBitmap::CWsBitmap(class RWsSession &)
- call_vector_3 @ 3 NONAME ; public: __thiscall CWsBitmap::CWsBitmap(void)
- call_vector_4 @ 4 NONAME ; public: __thiscall CWsScreenDevice::CWsScreenDevice(class RWsSession &)
- call_vector_5 @ 5 NONAME ; public: __thiscall CWsScreenDevice::CWsScreenDevice(void)
- call_vector_6 @ 6 NONAME ; protected: __thiscall RAnim::RAnim(class RAnimDll &)
- call_vector_7 @ 7 NONAME ; protected: __thiscall RAnim::RAnim(void)
- call_vector_8 @ 8 NONAME ; public: __thiscall RAnimDll::RAnimDll(class RWsSession &)
- call_vector_9 @ 9 NONAME ; public: __thiscall RAnimDll::RAnimDll(void)
- call_vector_10 @ 10 NONAME ; public: __thiscall RBackedUpWindow::RBackedUpWindow(class RWsSession &)
- call_vector_11 @ 11 NONAME ; public: __thiscall RBackedUpWindow::RBackedUpWindow(void)
- call_vector_12 @ 12 NONAME ; public: __thiscall RBlankWindow::RBlankWindow(class RWsSession &)
- call_vector_13 @ 13 NONAME ; public: __thiscall RBlankWindow::RBlankWindow(void)
- call_vector_14 @ 14 NONAME ; public: __thiscall RWindow::RWindow(class RWsSession &)
- call_vector_15 @ 15 NONAME ; public: __thiscall RWindow::RWindow(void)
- call_vector_16 @ 16 NONAME ; public: __thiscall RWindowGroup::RWindowGroup(class RWsSession &)
- call_vector_17 @ 17 NONAME ; public: __thiscall RWindowGroup::RWindowGroup(void)
- call_vector_18 @ 18 NONAME ; public: __thiscall RWsPointerCursor::RWsPointerCursor(class RWsSession &)
- call_vector_19 @ 19 NONAME ; public: __thiscall RWsPointerCursor::RWsPointerCursor(void)
- call_vector_20 @ 20 NONAME ; public: __thiscall RWsSession::RWsSession(void)
- call_vector_21 @ 21 NONAME ; public: __thiscall RWsSprite::RWsSprite(class RWsSession &)
- call_vector_22 @ 22 NONAME ; public: __thiscall RWsSprite::RWsSprite(void)
- call_vector_23 @ 23 NONAME ; protected: __thiscall RWsSpriteBase::RWsSpriteBase(class RWsSession &)
- call_vector_24 @ 24 NONAME ; protected: __thiscall RWsSpriteBase::RWsSpriteBase(void)
- call_vector_25 @ 25 NONAME ; public: virtual __thiscall CWindowGc::~CWindowGc(void)
- call_vector_26 @ 26 NONAME ; public: virtual __thiscall CWsBitmap::~CWsBitmap(void)
- call_vector_27 @ 27 NONAME ; public: virtual __thiscall CWsScreenDevice::~CWsScreenDevice(void)
- call_vector_28 @ 28 NONAME ; public: virtual __thiscall RAnim::~RAnim(void)
- call_vector_29 @ 29 NONAME ; public: virtual __thiscall RAnimDll::~RAnimDll(void)
- call_vector_30 @ 30 NONAME ; public: virtual void __thiscall CWindowGc::Activate(class RDrawableWindow &)
- call_vector_31 @ 31 NONAME ; public: void __thiscall RWindowBase::Activate(void)
- call_vector_32 @ 32 NONAME ; public: int __thiscall RWsSpriteBase::Activate(void)
- call_vector_33 @ 33 NONAME ; public: virtual int __thiscall CWsScreenDevice::AddFile(class TDesC16 const &,int &)
- call_vector_34 @ 34 NONAME ; public: int __thiscall RWindowBase::AddKeyRect(class TRect const &,int,int)
- call_vector_35 @ 35 NONAME ; public: int __thiscall RWindowGroup::AddPriorityKey(unsigned int,unsigned int,unsigned int)
- call_vector_36 @ 36 NONAME ; public: int __thiscall RWindowBase::AllocPointerMoveBuffer(int,unsigned int)
- call_vector_37 @ 37 NONAME ; public: int __thiscall RWsSpriteBase::AppendMember(struct TSpriteMember const &)
- call_vector_38 @ 38 NONAME ; public: void __thiscall RWindowGroup::AutoForeground(int)
- call_vector_39 @ 39 NONAME ; public: void __thiscall RWindow::BeginRedraw(class TRect const &)
- call_vector_40 @ 40 NONAME ; public: void __thiscall RWindow::BeginRedraw(void)
- call_vector_41 @ 41 NONAME ; public: virtual void __thiscall CWindowGc::BitBlt(class TPoint const &,class CFbsBitmap const *)
- call_vector_42 @ 42 NONAME ; public: virtual void __thiscall CWindowGc::BitBlt(class TPoint const &,class CFbsBitmap const *,class TRect const &)
- call_vector_43 @ 43 NONAME ; public: virtual void __thiscall CWindowGc::BitBlt(class TPoint const &,class CWsBitmap const *)
- call_vector_44 @ 44 NONAME ; public: virtual void __thiscall CWindowGc::BitBlt(class TPoint const &,class CWsBitmap const *,class TRect const &)
- call_vector_45 @ 45 NONAME ; public: virtual void __thiscall CWindowGc::BitBltMasked(class TPoint const &,class CFbsBitmap const *,class TRect const &,class CFbsBitmap const *,int)
- call_vector_46 @ 46 NONAME ; public: virtual void __thiscall CWindowGc::BitBltMasked(class TPoint const &,class CWsBitmap const *,class TRect const &,class CWsBitmap const *,int)
- call_vector_47 @ 47 NONAME ; int RBackedUpWindow::BitmapHandle(void) const
- call_vector_48 @ 48 NONAME ; public: void __thiscall RWindowGroup::CancelCaptureKey(long)
- call_vector_49 @ 49 NONAME ; public: void __thiscall RWindowGroup::CancelCaptureKeyUpAndDowns(long)
- call_vector_50 @ 50 NONAME ; public: virtual void __thiscall CWindowGc::CancelClippingRect(void)
- call_vector_51 @ 51 NONAME ; public: virtual void __thiscall CWindowGc::CancelClippingRegion(void)
- call_vector_52 @ 52 NONAME ; public: void __thiscall RWindowBase::CancelPointerRepeatEventRequest(void)
- call_vector_53 @ 53 NONAME ; public: void __thiscall RWindowGroup::CancelTextCursor(void)
- call_vector_54 @ 54 NONAME ; public: long __thiscall RWindowGroup::CaptureKey(unsigned int,unsigned int,unsigned int)
- call_vector_55 @ 55 NONAME ; public: long __thiscall RWindowGroup::CaptureKeyUpAndDowns(unsigned int,unsigned int,unsigned int)
- call_vector_56 @ 56 NONAME ; public: unsigned long __thiscall RWindowTreeNode::Child(void)const
- call_vector_57 @ 57 NONAME ; public: void __thiscall RWindowBase::ClaimPointerGrab(int)
- call_vector_58 @ 58 NONAME ; public: int __thiscall RWsSession::ClaimSystemPointerCursorList(void)
- call_vector_59 @ 59 NONAME ; public: virtual void __thiscall CWindowGc::Clear(class TRect const &)
- call_vector_60 @ 60 NONAME ; public: virtual void __thiscall CWindowGc::Clear(void)
- call_vector_61 @ 61 NONAME ; public: int __thiscall RWsSession::ClearHotKeys(enum THotKey)
- call_vector_62 @ 62 NONAME ; public: void __thiscall RWsSession::ClearSystemPointerCursor(int)
- call_vector_63 @ 63 NONAME ; public: virtual void __thiscall RAnim::Close(void)
- call_vector_64 @ 64 NONAME ; public: virtual void __thiscall RAnimDll::Close(void)
- call_vector_65 @ 65 NONAME ; public: void __thiscall RWindowTreeNode::Close(void)
- call_vector_66 @ 66 NONAME ; public: void __thiscall RWsSpriteBase::Close(void)
- call_vector_67 @ 67 NONAME ; protected: void __thiscall RAnim::Command(int)
- call_vector_68 @ 68 NONAME ; protected: void __thiscall RAnim::Command(int,class TPtrC8 const &)
- call_vector_69 @ 69 NONAME ; protected: int __thiscall RAnim::CommandReply(int)
- call_vector_70 @ 70 NONAME ; protected: int __thiscall RAnim::CommandReply(int,class TPtrC8 const &)
- call_vector_71 @ 71 NONAME ; public: void __thiscall RWsSession::ComputeMode(enum RWsSession::TComputeMode)
- call_vector_72 @ 72 NONAME ; public: int __thiscall RWsSession::Connect(void)
- call_vector_73 @ 73 NONAME ; public: virtual int __thiscall CWindowGc::Construct(void)
- call_vector_74 @ 74 NONAME ; public: int __thiscall CWsScreenDevice::Construct(void)
- call_vector_75 @ 75 NONAME ; protected: int __thiscall RAnim::Construct(class RWindowBase const &,int,class TDesC8 const &)
- call_vector_76 @ 76 NONAME ; public: int __thiscall RBackedUpWindow::Construct(class RWindowTreeNode const &,enum TDisplayMode,unsigned long)
- call_vector_77 @ 77 NONAME ; public: int __thiscall RBlankWindow::Construct(class RWindowTreeNode const &,unsigned long)
- call_vector_78 @ 78 NONAME ; public: int __thiscall RWindow::Construct(class RWindowTreeNode const &,unsigned long)
- call_vector_79 @ 79 NONAME ; public: int __thiscall RWindowGroup::Construct(unsigned long)
- call_vector_80 @ 80 NONAME ; public: int __thiscall RWindowGroup::Construct(unsigned long,int)
- call_vector_81 @ 81 NONAME ; public: int __thiscall RWsPointerCursor::Construct(int)
- call_vector_82 @ 82 NONAME ; public: int __thiscall RWsSprite::Construct(class RWindowTreeNode &,class TPoint const &,int)
- call_vector_83 @ 83 NONAME ; public: virtual void __thiscall CWindowGc::CopyRect(class TPoint const &,class TRect const &)
- call_vector_84 @ 84 NONAME ; public: int __thiscall CWsScreenDevice::CopyScreenToBitmap(class CFbsBitmap const *)const
- call_vector_85 @ 85 NONAME ; public: int __thiscall CWsScreenDevice::CopyScreenToBitmap(class CFbsBitmap const *,class TRect const &)const
- call_vector_86 @ 86 NONAME ; public: int __thiscall CWsBitmap::Create(class TSize const &,enum TDisplayMode)
- call_vector_87 @ 87 NONAME ; public: virtual int __thiscall CWsScreenDevice::CreateContext(class CGraphicsContext * &)
- call_vector_88 @ 88 NONAME ; public: virtual void __thiscall CWindowGc::Deactivate(void)
- call_vector_89 @ 89 NONAME ; public: void __thiscall RWindowGroup::DefaultOwningWindow(void)
- call_vector_90 @ 90 NONAME ; public: void __thiscall RAnim::Destroy(void)
- call_vector_91 @ 91 NONAME ; public: void __thiscall RAnimDll::Destroy(void)
- call_vector_92 @ 92 NONAME ; public: void __thiscall RWindowTreeNode::Destroy(void)
- call_vector_93 @ 93 NONAME ; public: virtual class CGraphicsDevice * __thiscall CWindowGc::Device(void)const
- call_vector_94 @ 94 NONAME ; public: void __thiscall RWindowTreeNode::DisableGroupChangeEvents(void)
- call_vector_95 @ 95 NONAME ; public: void __thiscall RWindowGroup::DisableKeyClick(int)
- call_vector_96 @ 96 NONAME ; public: void __thiscall RWindowTreeNode::DisableModifierChangedEvents(void)
- call_vector_97 @ 97 NONAME ; public: void __thiscall RWindowTreeNode::DisableOnEvents(void)
- call_vector_98 @ 98 NONAME ; public: void __thiscall RWindowTreeNode::DisableErrorMessages(void)
- call_vector_99 @ 99 NONAME ; public: void __thiscall RWindowBase::DisablePointerMoveBuffer(void)
- call_vector_100 @ 100 NONAME ; public: virtual void __thiscall CWindowGc::DiscardBrushPattern(void)
- call_vector_101 @ 101 NONAME ; public: virtual void __thiscall CWindowGc::DiscardFont(void)
- call_vector_102 @ 102 NONAME ; public: void __thiscall RWindowBase::DiscardPointerMoveBuffer(void)
- call_vector_103 @ 103 NONAME ; public: void __thiscall RWsSession::Close(void)
- call_vector_104 @ 104 NONAME ; public: virtual enum TDisplayMode __thiscall CWsScreenDevice::DisplayMode(void)const
- call_vector_105 @ 105 NONAME ; public: virtual void __thiscall CWindowGc::DrawArc(class TRect const &,class TPoint const &,class TPoint const &)
- call_vector_106 @ 106 NONAME ; public: virtual void __thiscall CWindowGc::DrawBitmap(class TPoint const &,class CFbsBitmap const *)
- call_vector_107 @ 107 NONAME ; public: virtual void __thiscall CWindowGc::DrawBitmap(class TRect const &,class CFbsBitmap const *,class TRect const &)
- call_vector_108 @ 108 NONAME ; public: virtual void __thiscall CWindowGc::DrawBitmap(class TRect const &,class CFbsBitmap const *)
- call_vector_109 @ 109 NONAME ; public: virtual void __thiscall CWindowGc::DrawEllipse(class TRect const &)
- call_vector_110 @ 110 NONAME ; public: virtual void __thiscall CWindowGc::DrawLine(class TPoint const &,class TPoint const &)
- call_vector_111 @ 111 NONAME ; public: virtual void __thiscall CWindowGc::DrawLineBy(class TPoint const &)
- call_vector_112 @ 112 NONAME ; public: virtual void __thiscall CWindowGc::DrawLineTo(class TPoint const &)
- call_vector_113 @ 113 NONAME ; public: virtual void __thiscall CWindowGc::DrawPie(class TRect const &,class TPoint const &,class TPoint const &)
- call_vector_114 @ 114 NONAME ; public: virtual void __thiscall CWindowGc::DrawPolyLine(class CArrayFix<class TPoint> const *)
- call_vector_115 @ 115 NONAME ; public: virtual void __thiscall CWindowGc::DrawPolyLine(class TPoint const *,int)
- call_vector_116 @ 116 NONAME ; public: virtual int __thiscall CWindowGc::DrawPolygon(class CArrayFix<class TPoint> const *,enum CGraphicsContext::TFillRule)
- call_vector_117 @ 117 NONAME ; public: virtual int __thiscall CWindowGc::DrawPolygon(class TPoint const *,int,enum CGraphicsContext::TFillRule)
- call_vector_118 @ 118 NONAME ; public: virtual void __thiscall CWindowGc::DrawRect(class TRect const &)
- call_vector_119 @ 119 NONAME ; public: virtual void __thiscall CWindowGc::DrawRoundRect(class TRect const &,class TSize const &)
- call_vector_120 @ 120 NONAME ; public: virtual void __thiscall CWindowGc::DrawText(class TDesC16 const &,class TPoint const &)
- call_vector_121 @ 121 NONAME ; public: virtual void __thiscall CWindowGc::DrawText(class TDesC16 const &,class TRect const &,int,enum CGraphicsContext::TTextAlign,int)
- call_vector_122 @ 122 NONAME ; public: virtual void __thiscall CWindowGc::DrawTextVertical(class TDesC16 const &,class TPoint const &,int)
- call_vector_123 @ 123 NONAME ; public: virtual void __thiscall CWindowGc::DrawTextVertical(class TDesC16 const &,class TRect const &,int,int,enum CGraphicsContext::TTextAlign,int)
- call_vector_124 @ 124 NONAME ; public: int __thiscall CWsBitmap::Duplicate(int)
- call_vector_125 @ 125 NONAME ; public: void __thiscall RWindowBase::EnableBackup(unsigned int)
- call_vector_126 @ 126 NONAME ; public: int __thiscall RWindowTreeNode::EnableGroupChangeEvents(void)
- call_vector_127 @ 127 NONAME ; public: int __thiscall RWindowTreeNode::EnableModifierChangedEvents(unsigned int,enum TEventControl)
- call_vector_128 @ 128 NONAME ; public: int __thiscall RWindowTreeNode::EnableOnEvents(enum TEventControl)
- call_vector_129 @ 129 NONAME ; public: int __thiscall RWindowTreeNode::EnableErrorMessages(enum TEventControl)
- call_vector_130 @ 130 NONAME ; public: void __thiscall RWindowBase::EnablePointerMoveBuffer(void)
- call_vector_131 @ 131 NONAME ; public: void __thiscall RWindowGroup::EnableReceiptOfFocus(int)
- call_vector_132 @ 132 NONAME ; public: void __thiscall RWindow::EndRedraw(void)
- call_vector_133 @ 133 NONAME ; public: void __thiscall RWsSession::EventReady(class TRequestStatus *)
- call_vector_134 @ 134 NONAME ; public: void __thiscall RWsSession::EventReadyCancel(void)
- call_vector_135 @ 135 NONAME ; int RWsSession::FetchMessage(class TUid &, class TPtr8 &, class TWsEvent const &) const
- call_vector_136 @ 136 NONAME ; int RWsSession::FindWindowGroupIdentifier(int, class TDesC16 const &, int) const
- call_vector_137 @ 137 NONAME ; int RWsSession::FindWindowGroupIdentifier(int, class TThreadId) const
- call_vector_138 @ 138 NONAME ; public: void __thiscall RWsSession::Flush(void)
- call_vector_139 @ 139 NONAME ; public: virtual int __thiscall CWsScreenDevice::FontHeightInPixels(int,int)const
- call_vector_140 @ 140 NONAME ; public: virtual int __thiscall CWsScreenDevice::FontHeightInTwips(int,int)const
- call_vector_141 @ 141 NONAME ; public: void __thiscall RWindowBase::FreePointerMoveBuffer(void)
- call_vector_142 @ 142 NONAME ; public: void __thiscall RWsSession::FreeSystemPointerCursorList(void)
- call_vector_143 @ 143 NONAME ; public: int __thiscall RWindowTreeNode::FullOrdinalPosition(void)const
- call_vector_144 @ 144 NONAME ; public: class TRgb __thiscall RWsSession::GetBackgroundColor(void)const
- call_vector_145 @ 145 NONAME ; int RWsSession::GetDefaultOwningWindow(void) const
- call_vector_146 @ 146 NONAME ; void RWsSession::GetDoubleClickSettings(class TTimeIntervalMicroSeconds32 &, int &) const
- call_vector_147 @ 147 NONAME ; void RWsSession::GetEvent(class TWsEvent &) const
- call_vector_148 @ 148 NONAME ; int RWsSession::GetFocusWindowGroup(void) const
- call_vector_149 @ 149 NONAME ; public: int __thiscall CWsScreenDevice::GetFontById(class CFont * &,class TUid,class TAlgStyle const &)
- call_vector_150 @ 150 NONAME ; void RWindow::GetInvalidRegion(class RRegion &) const
- call_vector_151 @ 151 NONAME ; void RWsSession::GetKeyboardRepeatRate(class TTimeIntervalMicroSeconds32 &, class TTimeIntervalMicroSeconds32 &) const
- call_vector_152 @ 152 NONAME ; public: int __thiscall RWsSession::GetModifierState(void)const
- call_vector_153 @ 153 NONAME ; public: virtual int __thiscall CWsScreenDevice::GetNearestFontInPixels(class CFont * &,class TFontSpec const &)
- call_vector_154 @ 154 NONAME ; public: virtual int __thiscall CWsScreenDevice::GetNearestFontInTwips(class CFont * &,class TFontSpec const &)
- call_vector_155 @ 155 NONAME ; public: virtual int __thiscall CWsScreenDevice::GetPalette(class CPalette * &)const
- call_vector_156 @ 156 NONAME ; public: virtual void __thiscall CWsScreenDevice::GetPixel(class TRgb &,class TPoint const &)const
- call_vector_157 @ 157 NONAME ; void RWsSession::GetPriorityKey(class TWsPriorityKeyEvent &) const
- call_vector_158 @ 158 NONAME ; public: void __thiscall RWsSession::GetRedraw(class TWsRedrawEvent &)
- call_vector_159 @ 159 NONAME ; public: virtual void __thiscall CWsScreenDevice::GetScanLine(class TDes8 &,class TPoint const &,int,enum TDisplayMode)const
- call_vector_160 @ 160 NONAME ; int RWsSession::GetWindowGroupClientThreadId(int, class TThreadId &) const
- call_vector_161 @ 161 NONAME ; int RWsSession::GetWindowGroupHandle(int) const
- call_vector_162 @ 162 NONAME ; int RWsSession::GetWindowGroupNameFromIdentifier(int, class TDes16 &) const
- call_vector_163 @ 163 NONAME ; int RWsSession::GetWindowGroupOrdinalPriority(int) const
- call_vector_164 @ 164 NONAME ; public: int __thiscall RWsSession::HeapCount(void)const
- call_vector_165 @ 165 NONAME ; public: void __thiscall RWsSession::HeapSetFail(int,int)
- call_vector_166 @ 166 NONAME ; public: virtual int __thiscall CWsScreenDevice::HorizontalPixelsToTwips(int)const
- call_vector_167 @ 167 NONAME ; public: virtual int __thiscall CWsScreenDevice::HorizontalTwipsToPixels(int)const
- call_vector_168 @ 168 NONAME ; public: int __thiscall RWindowGroup::Identifier(void)const
- call_vector_169 @ 169 NONAME ; public: class TPoint __thiscall RWindowBase::InquireOffset(class RWindowTreeNode const &)const
- call_vector_170 @ 170 NONAME ; public: void __thiscall CWsBitmap::InternalizeL(class RReadStream &)
- call_vector_171 @ 171 NONAME ; public: void __thiscall RWindow::Invalidate(class TRect const &)
- call_vector_172 @ 172 NONAME ; public: void __thiscall RWindow::Invalidate(void)
- call_vector_173 @ 173 NONAME ; public: int __thiscall CWsBitmap::Load(class TDesC16 const &,long,int)
- call_vector_174 @ 174 NONAME ; public: int __thiscall RAnimDll::Load(class TDesC16 const &)
- call_vector_175 @ 175 NONAME ; public: void __thiscall RWsSession::LogMessage(class TBuf<128> const &)
- call_vector_176 @ 176 NONAME ; public: void __thiscall RBackedUpWindow::MaintainBackup(void)
- call_vector_177 @ 177 NONAME ; public: virtual void __thiscall CWindowGc::MapColors(class TRect const &,class TRgb const *,int,int)
- call_vector_178 @ 178 NONAME ; public: virtual void __thiscall CWindowGc::MoveBy(class TPoint const &)
- call_vector_179 @ 179 NONAME ; public: virtual void __thiscall CWindowGc::MoveTo(class TPoint const &)
- call_vector_180 @ 180 NONAME ; public: int __thiscall RWindowGroup::Name(class TDes16 &)const
- call_vector_181 @ 181 NONAME ; public: unsigned long __thiscall RWindowTreeNode::NextSibling(void)const
- call_vector_182 @ 182 NONAME ; public: virtual int __thiscall CWsScreenDevice::NumTypefaces(void)const
- call_vector_183 @ 183 NONAME ; public: int __thiscall RWsSession::NumWindowGroups(int)const
- call_vector_184 @ 184 NONAME ; public: int __thiscall RWsSession::NumWindowGroups(void)const
- call_vector_185 @ 185 NONAME ; public: int __thiscall RWindowTreeNode::OrdinalPosition(void)const
- call_vector_186 @ 186 NONAME ; public: virtual void __thiscall CWsScreenDevice::PaletteAttributes(int &,int &)const
- call_vector_187 @ 187 NONAME ; public: unsigned long __thiscall RWindowTreeNode::Parent(void)const
- call_vector_188 @ 188 NONAME ; public: void __thiscall RWsSession::PasswordEntered(void)
- call_vector_189 @ 189 NONAME ; public: int __thiscall RWindowBase::PasswordWindow(enum TPasswordMode)
- call_vector_190 @ 190 NONAME ; public: virtual void __thiscall CWindowGc::Plot(class TPoint const &)
- call_vector_191 @ 191 NONAME ; public: void __thiscall RWindowBase::PointerFilter(unsigned long,unsigned long)
- call_vector_192 @ 192 NONAME ; public: class TRect __thiscall CWsScreenDevice::PointerRect(void)const
- call_vector_193 @ 193 NONAME ; public: class TPoint __thiscall RWindowBase::Position(void)const
- call_vector_194 @ 194 NONAME ; public: unsigned long __thiscall RWindowTreeNode::PrevSibling(void)const
- call_vector_195 @ 195 NONAME ; public: void __thiscall RWsSession::PriorityKeyReady(class TRequestStatus *)
- call_vector_196 @ 196 NONAME ; public: void __thiscall RWsSession::PriorityKeyReadyCancel(void)
- call_vector_197 @ 197 NONAME ; public: void __thiscall RWsSession::PurgePointerEvents(void)
- call_vector_198 @ 198 NONAME ; int CWsScreenDevice::RectCompare(class TRect const &, class TRect const &) const
- call_vector_199 @ 199 NONAME ; public: void __thiscall RWsSession::RedrawReady(class TRequestStatus *)
- call_vector_200 @ 200 NONAME ; public: void __thiscall RWsSession::RedrawReadyCancel(void)
- call_vector_201 @ 201 NONAME ; public: virtual void __thiscall CWsScreenDevice::ReleaseFont(class CFont *)
- call_vector_202 @ 202 NONAME ; public: void __thiscall RWindowBase::RemoveAllKeyRects(void)
- call_vector_203 @ 203 NONAME ; public: virtual void __thiscall CWsScreenDevice::RemoveFile(int)
- call_vector_204 @ 204 NONAME ; public: void __thiscall RWindowGroup::RemovePriorityKey(unsigned int,unsigned int,unsigned int)
- call_vector_205 @ 205 NONAME ; public: void __thiscall RWindowBase::RequestPointerRepeatEvent(class TTimeIntervalMicroSeconds32,class TRect const &)
- call_vector_206 @ 206 NONAME ; public: virtual void __thiscall CWindowGc::Reset(void)
- call_vector_207 @ 207 NONAME ; public: void __thiscall CWsBitmap::Reset(void)
- call_vector_208 @ 208 NONAME ; int RWsSession::ResourceCount(void) const
- call_vector_209 @ 209 NONAME ; public: int __thiscall RWsSession::RestoreDefaultHotKey(enum THotKey)
- call_vector_210 @ 210 NONAME ; int RWindowBase::RetrievePointerMoveBuffer(class TDes8 &) const
- call_vector_211 @ 211 NONAME ; public: void __thiscall RDrawableWindow::Scroll(class TPoint const &)
- call_vector_212 @ 212 NONAME ; public: void __thiscall RDrawableWindow::Scroll(class TPoint const &,class TRect const &)
- call_vector_213 @ 213 NONAME ; public: void __thiscall RDrawableWindow::Scroll(class TRect const &,class TPoint const &,class TRect const &)
- call_vector_214 @ 214 NONAME ; public: void __thiscall RDrawableWindow::Scroll(class TRect const &,class TPoint const &)
- call_vector_215 @ 215 NONAME ; public: int __thiscall RWsSession::SendEventToWindowGroup(int,class TWsEvent const &)
- call_vector_216 @ 216 NONAME ; public: int __thiscall RWsSession::SendMessageToWindowGroup(int,class TUid,class TDesC8 const &)
- call_vector_217 @ 217 NONAME ; public: int __thiscall RWsSession::SetAutoFlush(int)
- call_vector_218 @ 218 NONAME ; public: void __thiscall RWindow::SetBackgroundColor(class TRgb)
- call_vector_219 @ 219 NONAME ; public: void __thiscall RWindow::SetBackgroundColor(void)
- call_vector_220 @ 220 NONAME ; public: void __thiscall RWsSession::SetBackgroundColor(class TRgb)
- call_vector_221 @ 221 NONAME ; public: virtual void __thiscall CWindowGc::SetBrushColor(class TRgb const &)
- call_vector_222 @ 222 NONAME ; public: virtual void __thiscall CWindowGc::SetBrushOrigin(class TPoint const &)
- call_vector_223 @ 223 NONAME ; public: virtual void __thiscall CWindowGc::SetBrushStyle(enum CGraphicsContext::TBrushStyle)
- call_vector_224 @ 224 NONAME ; public: virtual void __thiscall CWindowGc::SetCharJustification(int,int)
- call_vector_225 @ 225 NONAME ; public: virtual void __thiscall CWindowGc::SetClippingRect(class TRect const &)
- call_vector_226 @ 226 NONAME ; public: virtual int __thiscall CWindowGc::SetClippingRegion(class TRegion const &)
- call_vector_227 @ 227 NONAME ; public: void __thiscall RBlankWindow::SetColor(class TRgb)
- call_vector_228 @ 228 NONAME ; public: int __thiscall RWindowBase::SetCornerType(enum TCornerType,int)
- call_vector_229 @ 229 NONAME ; public: void __thiscall RWindowTreeNode::SetCustomPointerCursor(class RWsPointerCursor const &)
- call_vector_230 @ 230 NONAME ; public: virtual void __thiscall CWindowGc::SetDitherOrigin(class TPoint const &)
- call_vector_231 @ 231 NONAME ; public: int __thiscall RWsSession::SetDoubleClick(class TTimeIntervalMicroSeconds32 const &,int)
- call_vector_232 @ 232 NONAME ; public: virtual void __thiscall CWindowGc::SetDrawMode(enum CGraphicsContext::TDrawMode)
- call_vector_233 @ 233 NONAME ; public: void __thiscall RBlankWindow::SetExtent(class TPoint const &,class TSize const &)
- call_vector_234 @ 234 NONAME ; public: void __thiscall RWindow::SetExtent(class TPoint const &,class TSize const &)
- call_vector_235 @ 235 NONAME ; public: int __thiscall RWindowBase::SetExtentErr(class TPoint const &,class TSize const &)
- call_vector_236 @ 236 NONAME ; public: int __thiscall RWsSession::SetHotKey(enum THotKey,unsigned int,unsigned int,unsigned int)
- call_vector_237 @ 237 NONAME ; public: int __thiscall RWsSession::SetKeyboardRepeatRate(class TTimeIntervalMicroSeconds32 const &,class TTimeIntervalMicroSeconds32 const &)
- call_vector_238 @ 238 NONAME ; public: int __thiscall RWsSession::SetModifierState(enum TEventModifier,enum TModifierState)
- call_vector_239 @ 239 NONAME ; public: int __thiscall RWindowGroup::SetName(class TDesC16 const &)
- call_vector_240 @ 240 NONAME ; public: void __thiscall RWindowTreeNode::SetOrdinalPosition(int)
- call_vector_241 @ 241 NONAME ; public: void __thiscall RWindowTreeNode::SetOrdinalPosition(int,int)
- call_vector_242 @ 242 NONAME ; public: void __thiscall RWindowGroup::SetOrdinalPriorityAdjust(int)
- call_vector_243 @ 243 NONAME ; public: virtual void __thiscall CWindowGc::SetOrigin(class TPoint const &)
- call_vector_244 @ 244 NONAME ; public: void __thiscall RWindowGroup::SetOwningWindowGroup(int)
- call_vector_245 @ 245 NONAME ; public: virtual void __thiscall CWsScreenDevice::SetPalette(class CPalette *)
- call_vector_246 @ 246 NONAME ; public: virtual void __thiscall CWindowGc::SetPenColor(class TRgb const &)
- call_vector_247 @ 247 NONAME ; public: virtual void __thiscall CWindowGc::SetPenSize(class TSize const &)
- call_vector_248 @ 248 NONAME ; public: virtual void __thiscall CWindowGc::SetPenStyle(enum CGraphicsContext::TPenStyle)
- call_vector_249 @ 249 NONAME ; public: void __thiscall RWindowBase::SetPointerCapture(int)
- call_vector_250 @ 250 NONAME ; public: int __thiscall RWindowTreeNode::SetPointerCursor(int)
- call_vector_251 @ 251 NONAME ; public: void __thiscall RWindowBase::SetPointerGrab(int)
- call_vector_252 @ 252 NONAME ; public: void __thiscall RWindowBase::SetPosition(class TPoint const &)
- call_vector_253 @ 253 NONAME ; public: void __thiscall RWsSprite::SetPosition(class TPoint const &)
- call_vector_254 @ 254 NONAME ; public: int __thiscall RWindowBase::SetRequiredDisplayMode(enum TDisplayMode)
- call_vector_255 @ 255 NONAME ; public: void __thiscall RWindowBase::SetShadowDisabled(int)
- call_vector_256 @ 256 NONAME ; public: void __thiscall RWindowBase::SetShadowHeight(int)
- call_vector_257 @ 257 NONAME ; public: void __thiscall RWsSession::SetShadowVector(class TPoint const &)
- call_vector_258 @ 258 NONAME ; public: int __thiscall RWindowBase::SetShape(class TRegion const &)
- call_vector_259 @ 259 NONAME ; public: void __thiscall RBlankWindow::SetSize(class TSize const &)
- call_vector_260 @ 260 NONAME ; public: void __thiscall RWindow::SetSize(class TSize const &)
- call_vector_261 @ 261 NONAME ; public: int __thiscall RWindowBase::SetSizeErr(class TSize const &)
- call_vector_262 @ 262 NONAME ; public: virtual void __thiscall CWindowGc::SetStrikethroughStyle(enum TFontStrikethrough)
- call_vector_263 @ 263 NONAME ; public: int __thiscall RWsSession::SetSystemPointerCursor(class RWsPointerCursor const &,int)
- call_vector_264 @ 264 NONAME ; public: void __thiscall RWindowGroup::SetTextCursor(class RWindowBase &,class TPoint const &,struct TTextCursor const &)
- call_vector_265 @ 265 NONAME ; public: void __thiscall RWindowGroup::SetTextCursor(class RWindowBase &,class TPoint const &,struct TTextCursor const &,class TRect const &)
- call_vector_266 @ 266 NONAME ; public: virtual void __thiscall CWindowGc::SetUnderlineStyle(enum TFontUnderline)
- call_vector_267 @ 267 NONAME ; public: void __thiscall RWindowBase::SetVisible(int)
- call_vector_268 @ 268 NONAME ; public: int __thiscall RWsSession::SetWindowGroupOrdinalPosition(int,int)
- call_vector_269 @ 269 NONAME ; public: virtual void __thiscall CWindowGc::SetWordJustification(int,int)
- call_vector_270 @ 270 NONAME ; public: class TPoint __thiscall RWsSession::ShadowVector(void)const
- call_vector_271 @ 271 NONAME ; public: void __thiscall RWsSession::SimulateRawEvent(class TRawEvent)
- call_vector_272 @ 272 NONAME ; public: class TSize __thiscall RWindowBase::Size(void)const
- call_vector_273 @ 273 NONAME ; public: virtual class TSize __thiscall CWsScreenDevice::SizeInPixels(void)const
- call_vector_274 @ 274 NONAME ; public: virtual class TSize __thiscall CWsScreenDevice::SizeInTwips(void)const
- call_vector_275 @ 275 NONAME ; public: void __thiscall RWsSession::SystemInfo(int &,struct RWsSession::SSystemInfo &)
- call_vector_276 @ 276 NONAME ; public: void __thiscall RWsSession::TestWrite(int,int,void const *,int)
- call_vector_277 @ 277 NONAME ; public: void __thiscall RWsSession::TestWriteReply(int,int,void const *,int)
- call_vector_278 @ 278 NONAME ; public: void __thiscall RWsSession::TestWriteReplyP(int,int,void const *,int,class TDes8 *)
- call_vector_279 @ 279 NONAME ; public: virtual void __thiscall CWsScreenDevice::TypefaceSupport(class TTypefaceSupport &,int)const
- call_vector_280 @ 280 NONAME ; public: void __thiscall RBackedUpWindow::UpdateBackupBitmap(void)
- call_vector_281 @ 281 NONAME ; public: int __thiscall RWsSpriteBase::UpdateMember(int,struct TSpriteMember const &)
- call_vector_282 @ 282 NONAME ; public: void __thiscall RWsSpriteBase::UpdateMember(int)
- call_vector_283 @ 283 NONAME ; public: void __thiscall RBackedUpWindow::UpdateScreen(class TRegion const &)
- call_vector_284 @ 284 NONAME ; public: void __thiscall RBackedUpWindow::UpdateScreen(void)
- call_vector_285 @ 285 NONAME ; public: virtual void __thiscall CWindowGc::UseBrushPattern(class CFbsBitmap const *)
- call_vector_286 @ 286 NONAME ; public: virtual void __thiscall CWindowGc::UseFont(class CFont const *)
- call_vector_287 @ 287 NONAME ; class TVersion RWsSession::Version(void) const
- call_vector_288 @ 288 NONAME ; public: virtual int __thiscall CWsScreenDevice::VerticalPixelsToTwips(int)const
- call_vector_289 @ 289 NONAME ; public: virtual int __thiscall CWsScreenDevice::VerticalTwipsToPixels(int)const
- call_vector_290 @ 290 NONAME ; int RWsSession::WindowGroupList(int, class CArrayFixFlat<int> *) const
- call_vector_291 @ 291 NONAME ; int RWsSession::WindowGroupList(class CArrayFixFlat<int> *) const
- call_vector_292 @ 292 NONAME ; public: int __thiscall RWsSession::RequestOffEvents(int,class RWindowTreeNode *)
- call_vector_293 @ 293 NONAME ; public: void __thiscall RWindowTreeNode::__DbgTestInvariant(void)const
- call_vector_294 @ 294 NONAME ; public: void __thiscall RWindowGroup::DisableScreenChangeEvents(void)
- call_vector_295 @ 295 NONAME ; public: int __thiscall RWindowGroup::EnableScreenChangeEvents(void)
- call_vector_296 @ 296 NONAME ; public: void __thiscall RWindowBase::FadeBehind(int)
- call_vector_297 @ 297 NONAME ; public: void __thiscall CWsScreenDevice::GetDefaultScreenSizeAndRotation(struct TPixelsAndRotation &)const
- call_vector_298 @ 298 NONAME ; public: void __thiscall CWsScreenDevice::GetDefaultScreenSizeAndRotation(struct TPixelsTwipsAndRotation &)const
- call_vector_299 @ 299 NONAME ; enum TDisplayMode RWindowBase::DisplayMode(void) const
- call_vector_300 @ 300 NONAME ; public: enum TDisplayMode __thiscall RWsSession::GetDefModeMaxNumColors(int &,int &)const
- call_vector_301 @ 301 NONAME ; public: void __thiscall CWsScreenDevice::GetScreenModeSizeAndRotation(int,struct TPixelsAndRotation &)const
- call_vector_302 @ 302 NONAME ; public: void __thiscall CWsScreenDevice::GetScreenModeSizeAndRotation(int,struct TPixelsTwipsAndRotation &)const
- call_vector_303 @ 303 NONAME ; public: int __thiscall CWsScreenDevice::NumScreenModes(void)const
- call_vector_304 @ 304 NONAME ; public: enum TScreenModeEnforcement __thiscall CWsScreenDevice::ScreenModeEnforcement(void)const
- call_vector_305 @ 305 NONAME ; public: virtual void __thiscall CWindowGc::SetFaded(int)
- call_vector_306 @ 306 NONAME ; public: void __thiscall RWindowTreeNode::SetFaded(int,enum RWindowTreeNode::TFadeControl)
- call_vector_307 @ 307 NONAME ; public: void __thiscall RWindowTreeNode::SetNonFading(int)
- call_vector_308 @ 308 NONAME ; public: void __thiscall CWsScreenDevice::SetScreenMode(int)
- call_vector_309 @ 309 NONAME ; public: void __thiscall CWsScreenDevice::SetScreenModeEnforcement(enum TScreenModeEnforcement)const
- call_vector_310 @ 310 NONAME ; public: void __thiscall CWsScreenDevice::SetScreenSizeAndRotation(struct TPixelsAndRotation const &)
- call_vector_311 @ 311 NONAME ; public: void __thiscall CWsScreenDevice::SetScreenSizeAndRotation(struct TPixelsTwipsAndRotation const &)
- call_vector_312 @ 312 NONAME ; public: void __thiscall RWindowGroup::SimulatePointerEvent(class TRawEvent)
- call_vector_313 @ 313 NONAME ; public: int __thiscall RWsSession::GetColorModeList(class CArrayFixFlat<int> *)const
- call_vector_314 @ 314 NONAME ; int RWindowBase::IsFaded(void) const
- call_vector_315 @ 315 NONAME ; int RWindowBase::IsNonFading(void) const
- call_vector_316 @ 316 NONAME ; protected: int __thiscall RAnim::Construct(class RWsSprite const &,int,class TDesC8 const &)
- call_vector_317 @ 317 NONAME ; public: int __thiscall CWsScreenDevice::GetRotationsList(int,class CArrayFixFlat<int> *)const
- call_vector_318 @ 318 NONAME ; public: int __thiscall RWindowTreeNode::OrdinalPriority(void)const
- call_vector_319 @ 319 NONAME ; public: int __thiscall RWsSession::SendEventToAllWindowGroups(class TWsEvent const &)
- call_vector_320 @ 320 NONAME ; public: int __thiscall RWsSession::SendEventToAllWindowGroups(int,class TWsEvent const &)
- call_vector_321 @ 321 NONAME ; public: void __thiscall CWsScreenDevice::SetCurrentRotations(int,enum CFbsBitGc::TGraphicsOrientation)const
- call_vector_322 @ 322 NONAME ; public: void __thiscall RWsSession::SimulateKeyEvent(struct TKeyEvent)
- call_vector_323 @ 323 NONAME ; public: void __thiscall RWsSession::SetRemoveKeyCode(int)
- call_vector_324 @ 324 NONAME ; public: void __thiscall RWsSession::ClearDefaultSystemPointerCursor(void)
- call_vector_325 @ 325 NONAME ; public: void __thiscall RWindowTreeNode::ClearPointerCursor(void)
- call_vector_326 @ 326 NONAME ; public: class TRect __thiscall RWsSession::PointerCursorArea(int)const
- call_vector_327 @ 327 NONAME ; public: class TRect __thiscall RWsSession::PointerCursorArea(void)const
- call_vector_328 @ 328 NONAME ; public: enum TPointerCursorMode __thiscall RWsSession::PointerCursorMode(void)const
- call_vector_329 @ 329 NONAME ; public: class TPoint __thiscall RWsSession::PointerCursorPosition(void)const
- call_vector_330 @ 330 NONAME ; public: void __thiscall RWsSession::SetDefaultSystemPointerCursor(int)
- call_vector_331 @ 331 NONAME ; public: void __thiscall RWsSession::SetPointerCursorArea(class TRect const &)
- call_vector_332 @ 332 NONAME ; public: void __thiscall RWsSession::SetPointerCursorArea(int,class TRect const &)
- call_vector_333 @ 333 NONAME ; public: void __thiscall RWsSession::SetPointerCursorMode(enum TPointerCursorMode)
- call_vector_334 @ 334 NONAME ; public: int __thiscall RWsSession::SetPointerCursorPosition(class TPoint const &)
- call_vector_335 @ 335 NONAME ; public: void __thiscall RWsSession::SimulateXyInputType(enum TXYInputType)
- call_vector_336 @ 336 NONAME ; public: int __thiscall RWindowBase::MoveToGroup(int)
- call_vector_337 @ 337 NONAME ; public: int __thiscall RWsSession::SendMessageToAllWindowGroups(int,class TUid,class TDesC8 const &)
- call_vector_338 @ 338 NONAME ; public: int __thiscall RWsSession::SendMessageToAllWindowGroups(class TUid,class TDesC8 const &)
- call_vector_339 @ 339 NONAME ; public: void __thiscall RWindowTreeNode::DisableFocusChangeEvents(void)
- call_vector_340 @ 340 NONAME ; public: int __thiscall RWindowTreeNode::EnableFocusChangeEvents(void)
- call_vector_341 @ 341 NONAME ; public: void __thiscall RWsSession::SetDefaultFadingParameters(unsigned char,unsigned char)
- call_vector_342 @ 342 NONAME ; public: void __thiscall RWindowTreeNode::SetFaded(int,enum RWindowTreeNode::TFadeControl,unsigned char,unsigned char)
- call_vector_343 @ 343 NONAME ; public: virtual void __thiscall CWindowGc::SetFadingParameters(unsigned char,unsigned char)
- call_vector_344 @ 344 NONAME ; public: void __thiscall RWsSession::PrepareForSwitchOff(void)
- call_vector_345 @ 345 NONAME ; public: int __thiscall CWsScreenDevice::SetCustomPalette(class CPalette const *)
- call_vector_346 @ 346 NONAME ; public: __thiscall RDirectScreenAccess::RDirectScreenAccess(class RWsSession &)
- call_vector_347 @ 347 NONAME ; public: __thiscall RDirectScreenAccess::RDirectScreenAccess(void)
- call_vector_348 @ 348 NONAME ; public: void __thiscall RDirectScreenAccess::Cancel(void)
- call_vector_349 @ 349 NONAME ; public: void __thiscall RDirectScreenAccess::Close(void)
- call_vector_350 @ 350 NONAME ; public: void __thiscall RDirectScreenAccess::Completed(void)
- call_vector_351 @ 351 NONAME ; public: int __thiscall RDirectScreenAccess::Construct(void)
- call_vector_352 @ 352 NONAME ; public: static class CDirectScreenAccess * __cdecl CDirectScreenAccess::NewL(class RWsSession &,class CWsScreenDevice &,class RWindowBase &,class MDirectScreenAccess &)
- call_vector_353 @ 353 NONAME ; public: int __thiscall RDirectScreenAccess::Request(class RRegion * &,class TRequestStatus &,class RWindowBase const &)
- call_vector_354 @ 354 NONAME ; public: void __thiscall CDirectScreenAccess::StartL(void)
- call_vector_355 @ 355 NONAME ; public: void __thiscall RWsSession::SetBufferSizeL(int)
- call_vector_356 @ 356 NONAME ; public: int __thiscall RWsSession::SetSystemFaded(int)
- call_vector_357 @ 357 NONAME ; public: int __thiscall RWsSession::SetSystemFaded(int,unsigned char,unsigned char)
- call_vector_358 @ 358 NONAME ; public: void __thiscall RWindowTreeNode::DisableGroupListChangeEvents(void)
- call_vector_359 @ 359 NONAME ; public: int __thiscall RWindowTreeNode::EnableGroupListChangeEvents(void)
- call_vector_360 @ 360 NONAME ; public: int __thiscall RSoundPlugIn::Construct(class TUid)
- call_vector_361 @ 361 NONAME ; public: void __thiscall RSoundPlugIn::Destroy(void)
- call_vector_362 @ 362 NONAME ; int RSoundPlugIn::IsLoaded(int &) const
- call_vector_363 @ 363 NONAME ; public: int __thiscall RSoundPlugIn::Load(class TDesC16 const &)
- call_vector_364 @ 364 NONAME ; public: int __thiscall RSoundPlugIn::Unload(void)
- call_vector_365 @ 365 NONAME ; public: int __thiscall CWsScreenDevice::CurrentScreenMode(void)const
- call_vector_366 @ 366 NONAME ; public: void __thiscall RWindowGroup::CancelCaptureLongKey(long)
- call_vector_367 @ 367 NONAME ; public: long __thiscall RWindowGroup::CaptureLongKey(unsigned int,unsigned int,unsigned int,unsigned int,int,unsigned int)
- call_vector_368 @ 368 NONAME ; public: long __thiscall RWindowGroup::CaptureLongKey(class TTimeIntervalMicroSeconds32,unsigned int,unsigned int,unsigned int,unsigned int,int,unsigned int)
- call_vector_369 @ 369 NONAME ; public: int __thiscall RWsSession::SendEventToOneWindowGroupsPerClient(class TWsEvent const &)
- call_vector_370 @ 370 NONAME ; int RSoundPlugIn::KeyClickEnabled(void) const
- call_vector_371 @ 371 NONAME ; int RSoundPlugIn::PenClickEnabled(void) const
- call_vector_372 @ 372 NONAME ; public: void __thiscall RSoundPlugIn::SetKeyClick(int)
- call_vector_373 @ 373 NONAME ; public: void __thiscall RSoundPlugIn::SetPenClick(int)
- call_vector_374 @ 374 NONAME ; public: long __thiscall RWindowGroup::CaptureKey(unsigned int,unsigned int,unsigned int,int)
- call_vector_375 @ 375 NONAME ; public: long __thiscall RWindowGroup::CaptureKeyUpAndDowns(unsigned int,unsigned int,unsigned int,int)
- call_vector_376 @ 376 NONAME ; public: void __thiscall RWsSession::LogCommand(enum RWsSession::TLoggingCommand)
- call_vector_377 @ 377 NONAME ; public: __thiscall RSoundPlugIn::RSoundPlugIn(class RWsSession &)
- call_vector_378 @ 378 NONAME ; public: __thiscall RSoundPlugIn::RSoundPlugIn(void)
- call_vector_379 @ 379 NONAME ; public: void __thiscall RSoundPlugIn::Close(void)
- call_vector_380 @ 380 NONAME ; public: int __thiscall RSoundPlugIn::CommandReply(int,class TPtrC8 const &)
- call_vector_381 @ 381 NONAME ; public: int __thiscall RWsSession::SetCustomTextCursor(int,class TArray<struct TSpriteMember> const &,unsigned int,enum RWsSession::TCustomTextCursorAlignment)
- call_vector_382 @ 382 NONAME ; public: void __thiscall RWindow::HandleTransparencyUpdate(void)
- call_vector_383 @ 383 NONAME ; public: int __thiscall RWindow::SetTransparencyBitmap(class CFbsBitmap const &)
- call_vector_384 @ 384 NONAME ; public: int __thiscall RWindow::SetTransparencyFactor(class TRgb const &)
- call_vector_385 @ 385 NONAME ; public: void __thiscall RWindow::SetNonTransparent(void)
- call_vector_386 @ 386 NONAME ; public: int __thiscall RWsSession::TestWriteReplyByProvidingRemoteReadAccess(int,int,class TDesC8 const &,class TDesC16 const &)
- call_vector_387 @ 387 NONAME ; public: int __thiscall RWsSession::TestWriteReplyByProvidingRemoteReadAccess(int,int,class TDesC8 const &,class TDesC8 const &)
- call_vector_388 @ 388 NONAME ; int RAnim::CommandReply(int, class TDesC8 const &, class TIpcArgs const &)
- call_vector_389 @ 389 NONAME ; int RAnim::Construct(class RWindowBase const &, int, class TDesC8 const &, class TIpcArgs const &)
- call_vector_390 @ 390 NONAME ; int RAnim::Construct(class RWsSprite const &, int, class TDesC8 const &, class TIpcArgs const &)
- call_vector_391 @ 391 NONAME ; void RAnim::AsyncCommandReply(class TRequestStatus &, int, class TIpcArgs const &)
- call_vector_392 @ 392 NONAME ; public: class TPoint __thiscall RWindowBase::AbsPosition(void)const
- call_vector_393 @ 393 NONAME ; public: int __thiscall CWsScreenDevice::RectCompare(class TRect const &,class TRect const &,unsigned int)const
- call_vector_394 @ 394 NONAME ; public: class TPoint __thiscall CWsScreenDevice::GetDefaultScreenModeOrigin(void)const
- call_vector_395 @ 395 NONAME ; public: class TPoint __thiscall CWsScreenDevice::GetScreenModeOrigin(int)const
- call_vector_396 @ 396 NONAME ; void RWindow::EnableRedrawStore(int)
- call_vector_397 @ 397 NONAME ; void CWindowGc::AlphaBlendBitmaps(class TPoint const &, class CFbsBitmap const *, class TRect const &, class CFbsBitmap const *, class TPoint const &)
- call_vector_398 @ 398 NONAME ; void CWindowGc::AlphaBlendBitmaps(class TPoint const &, class CWsBitmap const *, class TRect const &, class CWsBitmap const *, class TPoint const &)
- call_vector_399 @ 399 NONAME ; void CWindowGc::SetOpaque(int)
- call_vector_400 @ 400 NONAME ; public: class TSizeMode __thiscall CWsScreenDevice::GetCurrentScreenModeAttributes(void)const
- call_vector_401 @ 401 NONAME ; public: class TPoint __thiscall CWsScreenDevice::GetCurrentScreenModeScaledOrigin(void)const
- call_vector_402 @ 402 NONAME ; public: class TSize __thiscall CWsScreenDevice::GetCurrentScreenModeScale(void)const
- call_vector_403 @ 403 NONAME ; public: class TPoint __thiscall CWsScreenDevice::GetScreenModeScaledOrigin(int)const
- call_vector_404 @ 404 NONAME ; public: class TSize __thiscall CWsScreenDevice::GetScreenModeScale(int)const
- call_vector_405 @ 405 NONAME ; public: void __thiscall CWsScreenDevice::SetAppScreenMode(int)
- call_vector_406 @ 406 NONAME ; public: void __thiscall CWsScreenDevice::SetCurrentScreenModeAttributes(class TSizeMode const &)
- call_vector_407 @ 407 NONAME ; void CWindowGc::DrawBitmapMasked(class TRect const &, class CFbsBitmap const *, class TRect const &, class CFbsBitmap const *, int)
- call_vector_408 @ 408 NONAME ; int CWsScreenDevice::Construct(int)
- call_vector_409 @ 409 NONAME ; int CWsScreenDevice::GetScreenNumber(void) const
- call_vector_410 @ 410 NONAME ; int RWsSession::GetFocusScreen(void) const
- call_vector_411 @ 411 NONAME ; int RWsSession::SetFocusScreen(int)
- call_vector_412 @ 412 NONAME ; public: int __thiscall RWindowGroup::ConstructChildApp(int,unsigned long)
- call_vector_413 @ 413 NONAME ; public: int __thiscall RWindowGroup::ConstructChildApp(int,unsigned long,int)
- call_vector_414 @ 414 NONAME ; int RWsSession::WindowGroupList(int, class RArray<struct RWsSession::TWindowGroupChainInfo> *) const
- call_vector_415 @ 415 NONAME ; int RWsSession::WindowGroupList(class RArray<struct RWsSession::TWindowGroupChainInfo> *) const
- call_vector_416 @ 416 NONAME ; public: void __thiscall RWindowGroup::AllowProcessToCreateChildWindowGroups(class TUid)
- call_vector_417 @ 417 NONAME ; public: int __thiscall RWindow::SetTransparencyWsBitmap(class CWsBitmap const &)
- call_vector_418 @ 418 NONAME ; int CWsScreenDevice::GetScreenSizeModeList(class RArray<int> *) const
- call_vector_419 @ 419 NONAME ; int CWsScreenDevice::GetNearestFontToDesignHeightInPixels(class CFont * &, class TFontSpec const &)
- call_vector_420 @ 420 NONAME ; int CWsScreenDevice::GetNearestFontToDesignHeightInTwips(class CFont * &, class TFontSpec const &)
- call_vector_421 @ 421 NONAME ; int CWsScreenDevice::GetNearestFontToMaxHeightInPixels(class CFont * &, class TFontSpec const &, int)
- call_vector_422 @ 422 NONAME ; int CWsScreenDevice::GetNearestFontToMaxHeightInTwips(class CFont * &, class TFontSpec const &, int)
- call_vector_423 @ 423 NONAME ; void RWindowTreeNode::DisableVisibilityChangeEvents(void)
- call_vector_424 @ 424 NONAME ; int RWindowTreeNode::EnableVisibilityChangeEvents(void)
- call_vector_425 @ 425 NONAME ; int RWindow::SetTransparencyAlphaChannel(void)
- call_vector_426 @ 426 NONAME ; void RBlankWindow::SetColor(void)
- call_vector_427 @ 427 NONAME ; int RWsSession::SetClientCursorMode(enum TPointerCursorMode)
- call_vector_428 @ 428 NONAME ; class TRect RDrawableWindow::GetDrawRect(void) const
- call_vector_429 @ 429 NONAME
- call_vector_430 @ 430 NONAME
- call_vector_431 @ 431 NONAME ; void CWindowGc::Reserved_CWindowGc_3(void)
- call_vector_432 @ 432 NONAME ; void CWindowGc::Reserved_CWindowGc_4(void)
- call_vector_433 @ 433 NONAME ; void CWindowGc::Reserved_CWindowGc_5(void)
- call_vector_434 @ 434 NONAME ; void CWindowGc::Reserved_CBitmapContext_1(void)
- call_vector_435 @ 435 NONAME ; void CWindowGc::Reserved_CBitmapContext_2(void)
- call_vector_436 @ 436 NONAME ; void CWindowGc::Reserved_CBitmapContext_3(void)
- call_vector_437 @ 437 NONAME ; int CWindowGc::APIExtension(class TUid, int*&, int *)
- call_vector_438 @ 438 NONAME ; void CWindowGc::Reserved_CGraphicsContext_2(void)
- call_vector_439 @ 439 NONAME ; void CWindowGc::DrawBitmapMasked(class TRect const &, class CWsBitmap const *, class TRect const &, class CWsBitmap const *, int)
- call_vector_440 @ 440 NONAME ; int RWsSession::Connect(class RFs &)
- call_vector_441 @ 441 NONAME ; enum TDisplayMode CWsScreenDevice::GetScreenModeDisplayMode(int const &) const
- call_vector_442 @ 442 NONAME ; public: void __thiscall RWsSession::ClearAllRedrawStores(void)
- call_vector_443 @ 443 NONAME ; int RWindowTreeNode::WindowGroupId(void) const
- call_vector_444 @ 444 NONAME ; int RWindowBase::GetPointerCapturePriority(void) const
- call_vector_445 @ 445 NONAME ; void RWindowBase::SetPointerCapturePriority(int)
- call_vector_446 @ 446 NONAME ; int RWindow::SetTransparentRegion(class TRegion const &)
- call_vector_447 @ 447 NONAME ; int RWindow::SetTransparencyPolicy(enum TWsTransparencyPolicy)
- call_vector_448 @ 448 NONAME ; int RWindow::IsRedrawStoreEnabled(void) const
- call_vector_449 @ 449 NONAME ; int CWsScreenDevice::SetBackLight(int)
- call_vector_450 @ 450 NONAME ; int RWindowGroup::SetOrdinalPositionErr(int, int)
- call_vector_451 @ 451 NONAME ; int RWindowGroup::ClearChildGroup(void)
- call_vector_452 @ 452 NONAME ; int RWindowGroup::SetChildGroup(int)
- call_vector_453 @ 453 NONAME ; class TUid TWsGraphicId::Uid(void) const
- call_vector_454 @ 454 NONAME ; CWsGraphic::CWsGraphic(void)
- call_vector_455 @ 455 NONAME ; RWsGraphicMsgBuf::RWsGraphicMsgBuf(void)
- call_vector_456 @ 456 NONAME ; TWsGraphicMsgFixedBase::TWsGraphicMsgFixedBase(class TUid, int)
- call_vector_457 @ 457 NONAME ; CWsGraphic::~CWsGraphic(void)
- call_vector_458 @ 458 NONAME ; int RWsGraphicMsgBuf::Append(class TWsGraphicMsgFixedBase const &)
- call_vector_459 @ 459 NONAME ; int RWsGraphicMsgBuf::Append(class TUid, class TDesC16 const &)
- call_vector_460 @ 460 NONAME ; int RWsGraphicMsgBuf::Append(class TUid, class TDesC8 const &)
- call_vector_461 @ 461 NONAME ; int RWsGraphicMsgBuf::Append(class TUid, int, class TPtr8 &)
- call_vector_462 @ 462 NONAME ; void CWsGraphic::BaseConstructL(class TWsGraphicId const &, class TUid, class TDesC8 const &)
- call_vector_463 @ 463 NONAME ; void CWsGraphic::BaseConstructL(class TUid, class TUid, class TDesC8 const &)
- call_vector_464 @ 464 NONAME ; void CWsGraphic::BaseConstructL(class TUid, class TDesC8 const &)
- call_vector_465 @ 465 NONAME ; int CWsGraphic::CWsGraphic_Reserved1(void)
- call_vector_466 @ 466 NONAME ; int CWsGraphic::CWsGraphic_Reserved2(void)
- call_vector_467 @ 467 NONAME ; int CWsGraphic::CWsGraphic_Reserved3(void)
- call_vector_468 @ 468 NONAME ; int TWsGraphicId::Compare(class TWsGraphicId const &) const
- call_vector_469 @ 469 NONAME ; int RWsGraphicMsgBuf::Count(void) const
- call_vector_470 @ 470 NONAME ; class TPtrC8 RWsGraphicMsgBuf::Data(int) const
- call_vector_471 @ 471 NONAME ; void CWsGraphic::Destroy(void)
- call_vector_472 @ 472 NONAME ; void RWsGraphicMsgBuf::GetFixedMsg(class TWsGraphicMsgFixedBase &, int) const
- call_vector_473 @ 473 NONAME ; class TWsGraphicId const & CWsGraphic::Id(void) const
- call_vector_474 @ 474 NONAME ; int CWsGraphic::IsActive(void) const
- call_vector_475 @ 475 NONAME ; int TWsGraphicId::IsId(void) const
- call_vector_476 @ 476 NONAME ; void CWsGraphic::OnClientClose(void)
- call_vector_477 @ 477 NONAME ; class TDesC8 const & RWsGraphicMsgBuf::Pckg(void) const
- call_vector_478 @ 478 NONAME ; class TPtrC8 TWsGraphicMsgFixedBase::Pckg(void) const
- call_vector_479 @ 479 NONAME ; void RWsGraphicMsgBuf::Remove(int)
- call_vector_480 @ 480 NONAME ; void CWsGraphic::SendMessage(class TDesC8 const &) const
- call_vector_481 @ 481 NONAME ; void TWsGraphicId::Set(int)
- call_vector_482 @ 482 NONAME ; void TWsGraphicId::Set(class TUid)
- call_vector_483 @ 483 NONAME ; int CWsGraphic::Share(class TSecureId)
- call_vector_484 @ 484 NONAME ; int CWsGraphic::ShareGlobally(void)
- call_vector_485 @ 485 NONAME ; int TWsGraphicMsgFixedBase::Size(void) const
- call_vector_486 @ 486 NONAME ; class TUid RWsGraphicMsgBuf::TypeId(int) const
- call_vector_487 @ 487 NONAME ; class TUid TWsGraphicMsgFixedBase::TypeId(void) const
- call_vector_488 @ 488 NONAME ; int CWsGraphic::UnShare(class TSecureId)
- call_vector_489 @ 489 NONAME ; int CWsGraphic::UnShareGlobally(void)
- call_vector_490 @ 490 NONAME ; class TPtr8 RWsGraphicMsgBuf::Data(int)
- call_vector_491 @ 491 NONAME ; TWsGraphicId::TWsGraphicId(class TWsGraphicId const &)
- call_vector_492 @ 492 NONAME ; TWsGraphicId::TWsGraphicId(int)
- call_vector_493 @ 493 NONAME ; int CWsGraphic::Flush(void) const
- call_vector_494 @ 494 NONAME ; int RWindowGroup::Construct(unsigned long, int, class CWsScreenDevice *)
- call_vector_495 @ 495 NONAME ; int RWindowGroup::Construct(unsigned long, class CWsScreenDevice *)
- call_vector_496 @ 496 NONAME ; int RWsSession::GetColorModeList(int, class CArrayFixFlat<int> *) const
- call_vector_497 @ 497 NONAME ; enum TDisplayMode RWsSession::GetDefModeMaxNumColors(int, int &, int &) const
- call_vector_498 @ 498 NONAME ; int RWsSession::GetDefaultOwningWindow(int) const
- call_vector_499 @ 499 NONAME ; int RWsSession::GetFocusWindowGroup(int) const
- call_vector_500 @ 500 NONAME ; int RWsSession::NumWindowGroups(int, int) const
- call_vector_501 @ 501 NONAME ; int RWsSession::NumberOfScreens(void) const
- call_vector_502 @ 502 NONAME ; int RWsSession::WindowGroupList(class CArrayFixFlat<int> *, int, int) const
- call_vector_503 @ 503 NONAME ; TWsGraphicId::TWsGraphicId(class TUid)
- call_vector_504 @ 504 NONAME ; public: void __thiscall RWsSession::SetMaxBufferSizeL(int)
- call_vector_505 @ 505 NONAME ; void RWindow::EnableOSB(int)
- call_vector_506 @ 506 NONAME ; int TWsGraphicId::Id(void) const
- call_vector_507 @ 507 NONAME ; int TWsGraphicId::IsUid(void) const
- call_vector_508 @ 508 NONAME ; void CWsGraphic::SetGraphicExtension(class MWsObjectProvider *)
- call_vector_509 @ 509 NONAME ; int CWsGraphic::SendSynchronMessage(class TDesC8 const &) const
- call_vector_510 @ 510 NONAME ; int RWsSession::DebugInfo(int, class TDes8 &, int) const
- call_vector_511 @ 511 NONAME ; int RWsSession::DebugInfo(int, int) const
- call_vector_512 @ 512 NONAME ; unsigned long RWindowTreeNode::ClientHandle(void) const
- call_vector_513 @ 513 NONAME ; int RWindowBase::SetBackgroundSurface(class TSurfaceId const &)
- call_vector_514 @ 514 NONAME
- call_vector_515 @ 515 NONAME ; class TRgb RWindowBase::KeyColor(void) const
- call_vector_516 @ 516 NONAME
- call_vector_517 @ 517 NONAME
- call_vector_518 @ 518 NONAME
- call_vector_519 @ 519 NONAME
- call_vector_520 @ 520 NONAME
- call_vector_521 @ 521 NONAME ; int RWindowBase::GetBackgroundSurface(class TSurfaceConfiguration &) const
- call_vector_522 @ 522 NONAME
- call_vector_523 @ 523 NONAME ; int RWsSession::PreferredSurfaceConfigurationSize(void) const
- call_vector_524 @ 524 NONAME ; int RWsSession::RegisterSurface(int, class TSurfaceId const &)
- call_vector_525 @ 525 NONAME
- call_vector_526 @ 526 NONAME ; void RWindowBase::RemoveBackgroundSurface(int)
- call_vector_527 @ 527 NONAME
- call_vector_528 @ 528 NONAME ; int RWindowBase::SetBackgroundSurface(class TSurfaceConfiguration const &, int)
- call_vector_529 @ 529 NONAME ; void RWsSession::UnregisterSurface(int, class TSurfaceId const &)
- call_vector_530 @ 530 NONAME ; void RWindow::ClearRedrawStore(void)
- call_vector_531 @ 531 NONAME ; int RWsSession::Finish(void)
- call_vector_532 @ 532 NONAME ; void RWsSession::SyncMsgBuf(void)
- call_vector_533 @ 533 NONAME ; class RWsSession & CWsGraphic::Session(void)
- call_vector_534 @ 534 NONAME ; int RWindowTreeNode::ScreenNumber(void) const
- call_vector_535 @ 535 NONAME ; void TWsEvent::SetPointerNumber(unsigned char)
- call_vector_536 @ 536 NONAME ; int TAdvancedPointerEvent::DoGetPointerNumber(void) const
- call_vector_537 @ 537 NONAME ; int RWindowBase::ClaimPointerGrab(unsigned char, int)
- call_vector_538 @ 538 NONAME ; int RWindowBase::RequestPointerRepeatEvent(class TTimeIntervalMicroSeconds32, class TRect const &, unsigned char)
- call_vector_539 @ 539 NONAME ; int RWsSession::GetExitHighPressureThreshold(void) const
- call_vector_540 @ 540 NONAME ; int RWsSession::SetCloseProximityThresholds(int, int)
- call_vector_541 @ 541 NONAME ; int RWsSession::SetHighPressureThresholds(int, int)
- call_vector_542 @ 542 NONAME ; int RWindowBase::CancelPointerRepeatEventRequest(unsigned char)
- call_vector_543 @ 543 NONAME ; void TWsEvent::InitAdvancedPointerEvent(enum TPointerEvent::TType, unsigned int, class TPoint3D const &, unsigned char)
- call_vector_544 @ 544 NONAME ; int RWsSession::GetExitCloseProximityThreshold(void) const
- call_vector_545 @ 545 NONAME ; void RWindowBase::EnableAdvancedPointers(void)
- call_vector_546 @ 546 NONAME ; void TWsEvent::SetPointerZ(int)
- call_vector_547 @ 547 NONAME ; int TAdvancedPointerEvent::DoGetProximityAndPressure(void) const
- call_vector_548 @ 548 NONAME ; int TAdvancedPointerEvent::DoGetProximity(void) const
- call_vector_549 @ 549 NONAME ; int TAdvancedPointerEvent::DoGetPressure(void) const
- call_vector_550 @ 550 NONAME ; void RWindowGroup::SimulateAdvancedPointerEvent(class TRawEvent)
- call_vector_551 @ 551 NONAME ; int RWsSession::GetEnterHighPressureThreshold(void) const
- call_vector_552 @ 552 NONAME ; int RWsSession::GetEnterCloseProximityThreshold(void) const
- call_vector_553 @ 553 NONAME ; class TAdvancedPointerEvent & TAdvancedPointerEvent::operator=(class TAdvancedPointerEvent const &)
- call_vector_554 @ 554 NONAME ; TAdvancedPointerEvent::TAdvancedPointerEvent(class TAdvancedPointerEvent const &)
- call_vector_555 @ 555 NONAME ; RWsDrawableSource::RWsDrawableSource(void)
- call_vector_556 @ 556 NONAME ; void RWsDrawableSource::Close(void)
- call_vector_557 @ 557 NONAME ; int RWsDrawableSource::Create(class RSgDrawable const &)
- call_vector_558 @ 558 NONAME ; class TSgDrawableId const & RWsDrawableSource::DrawableId(void) const
- call_vector_559 @ 559 NONAME ; void CWindowGc::DrawResource(class TPoint const &, class RWsDrawableSource const &, enum CWindowGc::TGraphicsRotation)
- call_vector_560 @ 560 NONAME ; void CWindowGc::DrawResource(class TRect const &, class RWsDrawableSource const &, enum CWindowGc::TGraphicsRotation)
- call_vector_561 @ 561 NONAME ; void CWindowGc::DrawResource(class TRect const &, class RWsDrawableSource const &, class TRect const &, enum CWindowGc::TGraphicsRotation)
- call_vector_562 @ 562 NONAME ; void CWindowGc::DrawResource(class TRect const &, class RWsDrawableSource const &, class TDesC8 const &)
- call_vector_563 @ 563 NONAME ; int RDirectScreenAccess::Construct(int)
- call_vector_564 @ 564 NONAME ; class CDirectScreenAccess * CDirectScreenAccess::NewL(class RWsSession &, class CWsScreenDevice &, class RWindowBase &, class MDirectScreenAccess &, int)
- call_vector_565 @ 565 NONAME ; int RWsDrawableSource::Create(class RSgDrawable const &, int)
- call_vector_566 @ 566 NONAME ; RWsDrawableSource::RWsDrawableSource(class RWsSession &)
- call_vector_567 @ 567 NONAME ; int RWsDrawableSource::ScreenNumber(void) const
- call_vector_568 @ 568 NONAME ; void * CWsScreenDevice::GetInterface(unsigned int)
- call_vector_569 @ 569 NONAME ; int CWsScreenDevice::IsCurrentModeDynamic(void) const
- call_vector_570 @ 570 NONAME ; int CWsScreenDevice::IsModeDynamic(int) const
- call_vector_571 @ 571 NONAME ; void const * CWindowGc::Interface(class TUid) const
- call_vector_572 @ 572 NONAME ; void * CWindowGc::Interface(class TUid)
- call_vector_573 @ 573 NONAME ; class RWsSession * RWindowTreeNode::Session(void) const
- call_vector_574 @ 574 NONAME ; void RWsSession::HeapSetBurstFail(int, int, int)
- call_vector_575 @ 575 NONAME ; void RWsSession::EnableWindowSizeCacheL(void)
- call_vector_576 @ 576 NONAME ; void RWindowBase::SetSurfaceTransparency(int)
+EXPORTS
+ call_vector_1 @ 1 NONAME ; public: __thiscall CWindowGc::CWindowGc(class CWsScreenDevice *)
+ call_vector_2 @ 2 NONAME ; public: __thiscall CWsBitmap::CWsBitmap(class RWsSession &)
+ call_vector_3 @ 3 NONAME ; public: __thiscall CWsBitmap::CWsBitmap(void)
+ call_vector_4 @ 4 NONAME ; public: __thiscall CWsScreenDevice::CWsScreenDevice(class RWsSession &)
+ call_vector_5 @ 5 NONAME ; public: __thiscall CWsScreenDevice::CWsScreenDevice(void)
+ call_vector_6 @ 6 NONAME ; protected: __thiscall RAnim::RAnim(class RAnimDll &)
+ call_vector_7 @ 7 NONAME ; protected: __thiscall RAnim::RAnim(void)
+ call_vector_8 @ 8 NONAME ; public: __thiscall RAnimDll::RAnimDll(class RWsSession &)
+ call_vector_9 @ 9 NONAME ; public: __thiscall RAnimDll::RAnimDll(void)
+ call_vector_10 @ 10 NONAME ; public: __thiscall RBackedUpWindow::RBackedUpWindow(class RWsSession &)
+ call_vector_11 @ 11 NONAME ; public: __thiscall RBackedUpWindow::RBackedUpWindow(void)
+ call_vector_12 @ 12 NONAME ; public: __thiscall RBlankWindow::RBlankWindow(class RWsSession &)
+ call_vector_13 @ 13 NONAME ; public: __thiscall RBlankWindow::RBlankWindow(void)
+ call_vector_14 @ 14 NONAME ; public: __thiscall RWindow::RWindow(class RWsSession &)
+ call_vector_15 @ 15 NONAME ; public: __thiscall RWindow::RWindow(void)
+ call_vector_16 @ 16 NONAME ; public: __thiscall RWindowGroup::RWindowGroup(class RWsSession &)
+ call_vector_17 @ 17 NONAME ; public: __thiscall RWindowGroup::RWindowGroup(void)
+ call_vector_18 @ 18 NONAME ; public: __thiscall RWsPointerCursor::RWsPointerCursor(class RWsSession &)
+ call_vector_19 @ 19 NONAME ; public: __thiscall RWsPointerCursor::RWsPointerCursor(void)
+ call_vector_20 @ 20 NONAME ; public: __thiscall RWsSession::RWsSession(void)
+ call_vector_21 @ 21 NONAME ; public: __thiscall RWsSprite::RWsSprite(class RWsSession &)
+ call_vector_22 @ 22 NONAME ; public: __thiscall RWsSprite::RWsSprite(void)
+ call_vector_23 @ 23 NONAME ; protected: __thiscall RWsSpriteBase::RWsSpriteBase(class RWsSession &)
+ call_vector_24 @ 24 NONAME ; protected: __thiscall RWsSpriteBase::RWsSpriteBase(void)
+ call_vector_25 @ 25 NONAME ; public: virtual __thiscall CWindowGc::~CWindowGc(void)
+ call_vector_26 @ 26 NONAME ; public: virtual __thiscall CWsBitmap::~CWsBitmap(void)
+ call_vector_27 @ 27 NONAME ; public: virtual __thiscall CWsScreenDevice::~CWsScreenDevice(void)
+ call_vector_28 @ 28 NONAME ; public: virtual __thiscall RAnim::~RAnim(void)
+ call_vector_29 @ 29 NONAME ; public: virtual __thiscall RAnimDll::~RAnimDll(void)
+ call_vector_30 @ 30 NONAME ; public: virtual void __thiscall CWindowGc::Activate(class RDrawableWindow &)
+ call_vector_31 @ 31 NONAME ; public: void __thiscall RWindowBase::Activate(void)
+ call_vector_32 @ 32 NONAME ; public: int __thiscall RWsSpriteBase::Activate(void)
+ call_vector_33 @ 33 NONAME ; public: virtual int __thiscall CWsScreenDevice::AddFile(class TDesC16 const &,int &)
+ call_vector_34 @ 34 NONAME ; public: int __thiscall RWindowBase::AddKeyRect(class TRect const &,int,int)
+ call_vector_35 @ 35 NONAME ; public: int __thiscall RWindowGroup::AddPriorityKey(unsigned int,unsigned int,unsigned int)
+ call_vector_36 @ 36 NONAME ; public: int __thiscall RWindowBase::AllocPointerMoveBuffer(int,unsigned int)
+ call_vector_37 @ 37 NONAME ; public: int __thiscall RWsSpriteBase::AppendMember(struct TSpriteMember const &)
+ call_vector_38 @ 38 NONAME ; public: void __thiscall RWindowGroup::AutoForeground(int)
+ call_vector_39 @ 39 NONAME ; public: void __thiscall RWindow::BeginRedraw(class TRect const &)
+ call_vector_40 @ 40 NONAME ; public: void __thiscall RWindow::BeginRedraw(void)
+ call_vector_41 @ 41 NONAME ; public: virtual void __thiscall CWindowGc::BitBlt(class TPoint const &,class CFbsBitmap const *)
+ call_vector_42 @ 42 NONAME ; public: virtual void __thiscall CWindowGc::BitBlt(class TPoint const &,class CFbsBitmap const *,class TRect const &)
+ call_vector_43 @ 43 NONAME ; public: virtual void __thiscall CWindowGc::BitBlt(class TPoint const &,class CWsBitmap const *)
+ call_vector_44 @ 44 NONAME ; public: virtual void __thiscall CWindowGc::BitBlt(class TPoint const &,class CWsBitmap const *,class TRect const &)
+ call_vector_45 @ 45 NONAME ; public: virtual void __thiscall CWindowGc::BitBltMasked(class TPoint const &,class CFbsBitmap const *,class TRect const &,class CFbsBitmap const *,int)
+ call_vector_46 @ 46 NONAME ; public: virtual void __thiscall CWindowGc::BitBltMasked(class TPoint const &,class CWsBitmap const *,class TRect const &,class CWsBitmap const *,int)
+ call_vector_47 @ 47 NONAME ; int RBackedUpWindow::BitmapHandle(void) const
+ call_vector_48 @ 48 NONAME ; public: void __thiscall RWindowGroup::CancelCaptureKey(long)
+ call_vector_49 @ 49 NONAME ; public: void __thiscall RWindowGroup::CancelCaptureKeyUpAndDowns(long)
+ call_vector_50 @ 50 NONAME ; public: virtual void __thiscall CWindowGc::CancelClippingRect(void)
+ call_vector_51 @ 51 NONAME ; public: virtual void __thiscall CWindowGc::CancelClippingRegion(void)
+ call_vector_52 @ 52 NONAME ; public: void __thiscall RWindowBase::CancelPointerRepeatEventRequest(void)
+ call_vector_53 @ 53 NONAME ; public: void __thiscall RWindowGroup::CancelTextCursor(void)
+ call_vector_54 @ 54 NONAME ; public: long __thiscall RWindowGroup::CaptureKey(unsigned int,unsigned int,unsigned int)
+ call_vector_55 @ 55 NONAME ; public: long __thiscall RWindowGroup::CaptureKeyUpAndDowns(unsigned int,unsigned int,unsigned int)
+ call_vector_56 @ 56 NONAME ; public: unsigned long __thiscall RWindowTreeNode::Child(void)const
+ call_vector_57 @ 57 NONAME ; public: void __thiscall RWindowBase::ClaimPointerGrab(int)
+ call_vector_58 @ 58 NONAME ; public: int __thiscall RWsSession::ClaimSystemPointerCursorList(void)
+ call_vector_59 @ 59 NONAME ; public: virtual void __thiscall CWindowGc::Clear(class TRect const &)
+ call_vector_60 @ 60 NONAME ; public: virtual void __thiscall CWindowGc::Clear(void)
+ call_vector_61 @ 61 NONAME ; public: int __thiscall RWsSession::ClearHotKeys(enum THotKey)
+ call_vector_62 @ 62 NONAME ; public: void __thiscall RWsSession::ClearSystemPointerCursor(int)
+ call_vector_63 @ 63 NONAME ; public: virtual void __thiscall RAnim::Close(void)
+ call_vector_64 @ 64 NONAME ; public: virtual void __thiscall RAnimDll::Close(void)
+ call_vector_65 @ 65 NONAME ; public: void __thiscall RWindowTreeNode::Close(void)
+ call_vector_66 @ 66 NONAME ; public: void __thiscall RWsSpriteBase::Close(void)
+ call_vector_67 @ 67 NONAME ; protected: void __thiscall RAnim::Command(int)
+ call_vector_68 @ 68 NONAME ; protected: void __thiscall RAnim::Command(int,class TPtrC8 const &)
+ call_vector_69 @ 69 NONAME ; protected: int __thiscall RAnim::CommandReply(int)
+ call_vector_70 @ 70 NONAME ; protected: int __thiscall RAnim::CommandReply(int,class TPtrC8 const &)
+ call_vector_71 @ 71 NONAME ; public: void __thiscall RWsSession::ComputeMode(enum RWsSession::TComputeMode)
+ call_vector_72 @ 72 NONAME ; public: int __thiscall RWsSession::Connect(void)
+ call_vector_73 @ 73 NONAME ; public: virtual int __thiscall CWindowGc::Construct(void)
+ call_vector_74 @ 74 NONAME ; public: int __thiscall CWsScreenDevice::Construct(void)
+ call_vector_75 @ 75 NONAME ; protected: int __thiscall RAnim::Construct(class RWindowBase const &,int,class TDesC8 const &)
+ call_vector_76 @ 76 NONAME ; public: int __thiscall RBackedUpWindow::Construct(class RWindowTreeNode const &,enum TDisplayMode,unsigned long)
+ call_vector_77 @ 77 NONAME ; public: int __thiscall RBlankWindow::Construct(class RWindowTreeNode const &,unsigned long)
+ call_vector_78 @ 78 NONAME ; public: int __thiscall RWindow::Construct(class RWindowTreeNode const &,unsigned long)
+ call_vector_79 @ 79 NONAME ; public: int __thiscall RWindowGroup::Construct(unsigned long)
+ call_vector_80 @ 80 NONAME ; public: int __thiscall RWindowGroup::Construct(unsigned long,int)
+ call_vector_81 @ 81 NONAME ; public: int __thiscall RWsPointerCursor::Construct(int)
+ call_vector_82 @ 82 NONAME ; public: int __thiscall RWsSprite::Construct(class RWindowTreeNode &,class TPoint const &,int)
+ call_vector_83 @ 83 NONAME ; public: virtual void __thiscall CWindowGc::CopyRect(class TPoint const &,class TRect const &)
+ call_vector_84 @ 84 NONAME ; public: int __thiscall CWsScreenDevice::CopyScreenToBitmap(class CFbsBitmap const *)const
+ call_vector_85 @ 85 NONAME ; public: int __thiscall CWsScreenDevice::CopyScreenToBitmap(class CFbsBitmap const *,class TRect const &)const
+ call_vector_86 @ 86 NONAME ; public: int __thiscall CWsBitmap::Create(class TSize const &,enum TDisplayMode)
+ call_vector_87 @ 87 NONAME ; public: virtual int __thiscall CWsScreenDevice::CreateContext(class CGraphicsContext * &)
+ call_vector_88 @ 88 NONAME ; public: virtual void __thiscall CWindowGc::Deactivate(void)
+ call_vector_89 @ 89 NONAME ; public: void __thiscall RWindowGroup::DefaultOwningWindow(void)
+ call_vector_90 @ 90 NONAME ; public: void __thiscall RAnim::Destroy(void)
+ call_vector_91 @ 91 NONAME ; public: void __thiscall RAnimDll::Destroy(void)
+ call_vector_92 @ 92 NONAME ; public: void __thiscall RWindowTreeNode::Destroy(void)
+ call_vector_93 @ 93 NONAME ; public: virtual class CGraphicsDevice * __thiscall CWindowGc::Device(void)const
+ call_vector_94 @ 94 NONAME ; public: void __thiscall RWindowTreeNode::DisableGroupChangeEvents(void)
+ call_vector_95 @ 95 NONAME ; public: void __thiscall RWindowGroup::DisableKeyClick(int)
+ call_vector_96 @ 96 NONAME ; public: void __thiscall RWindowTreeNode::DisableModifierChangedEvents(void)
+ call_vector_97 @ 97 NONAME ; public: void __thiscall RWindowTreeNode::DisableOnEvents(void)
+ call_vector_98 @ 98 NONAME ; public: void __thiscall RWindowTreeNode::DisableErrorMessages(void)
+ call_vector_99 @ 99 NONAME ; public: void __thiscall RWindowBase::DisablePointerMoveBuffer(void)
+ call_vector_100 @ 100 NONAME ; public: virtual void __thiscall CWindowGc::DiscardBrushPattern(void)
+ call_vector_101 @ 101 NONAME ; public: virtual void __thiscall CWindowGc::DiscardFont(void)
+ call_vector_102 @ 102 NONAME ; public: void __thiscall RWindowBase::DiscardPointerMoveBuffer(void)
+ call_vector_103 @ 103 NONAME ; public: void __thiscall RWsSession::Close(void)
+ call_vector_104 @ 104 NONAME ; public: virtual enum TDisplayMode __thiscall CWsScreenDevice::DisplayMode(void)const
+ call_vector_105 @ 105 NONAME ; public: virtual void __thiscall CWindowGc::DrawArc(class TRect const &,class TPoint const &,class TPoint const &)
+ call_vector_106 @ 106 NONAME ; public: virtual void __thiscall CWindowGc::DrawBitmap(class TPoint const &,class CFbsBitmap const *)
+ call_vector_107 @ 107 NONAME ; public: virtual void __thiscall CWindowGc::DrawBitmap(class TRect const &,class CFbsBitmap const *,class TRect const &)
+ call_vector_108 @ 108 NONAME ; public: virtual void __thiscall CWindowGc::DrawBitmap(class TRect const &,class CFbsBitmap const *)
+ call_vector_109 @ 109 NONAME ; public: virtual void __thiscall CWindowGc::DrawEllipse(class TRect const &)
+ call_vector_110 @ 110 NONAME ; public: virtual void __thiscall CWindowGc::DrawLine(class TPoint const &,class TPoint const &)
+ call_vector_111 @ 111 NONAME ; public: virtual void __thiscall CWindowGc::DrawLineBy(class TPoint const &)
+ call_vector_112 @ 112 NONAME ; public: virtual void __thiscall CWindowGc::DrawLineTo(class TPoint const &)
+ call_vector_113 @ 113 NONAME ; public: virtual void __thiscall CWindowGc::DrawPie(class TRect const &,class TPoint const &,class TPoint const &)
+ call_vector_114 @ 114 NONAME ; public: virtual void __thiscall CWindowGc::DrawPolyLine(class CArrayFix<class TPoint> const *)
+ call_vector_115 @ 115 NONAME ; public: virtual void __thiscall CWindowGc::DrawPolyLine(class TPoint const *,int)
+ call_vector_116 @ 116 NONAME ; public: virtual int __thiscall CWindowGc::DrawPolygon(class CArrayFix<class TPoint> const *,enum CGraphicsContext::TFillRule)
+ call_vector_117 @ 117 NONAME ; public: virtual int __thiscall CWindowGc::DrawPolygon(class TPoint const *,int,enum CGraphicsContext::TFillRule)
+ call_vector_118 @ 118 NONAME ; public: virtual void __thiscall CWindowGc::DrawRect(class TRect const &)
+ call_vector_119 @ 119 NONAME ; public: virtual void __thiscall CWindowGc::DrawRoundRect(class TRect const &,class TSize const &)
+ call_vector_120 @ 120 NONAME ; public: virtual void __thiscall CWindowGc::DrawText(class TDesC16 const &,class TPoint const &)
+ call_vector_121 @ 121 NONAME ; public: virtual void __thiscall CWindowGc::DrawText(class TDesC16 const &,class TRect const &,int,enum CGraphicsContext::TTextAlign,int)
+ call_vector_122 @ 122 NONAME ; public: virtual void __thiscall CWindowGc::DrawTextVertical(class TDesC16 const &,class TPoint const &,int)
+ call_vector_123 @ 123 NONAME ; public: virtual void __thiscall CWindowGc::DrawTextVertical(class TDesC16 const &,class TRect const &,int,int,enum CGraphicsContext::TTextAlign,int)
+ call_vector_124 @ 124 NONAME ; public: int __thiscall CWsBitmap::Duplicate(int)
+ call_vector_125 @ 125 NONAME ; public: void __thiscall RWindowBase::EnableBackup(unsigned int)
+ call_vector_126 @ 126 NONAME ; public: int __thiscall RWindowTreeNode::EnableGroupChangeEvents(void)
+ call_vector_127 @ 127 NONAME ; public: int __thiscall RWindowTreeNode::EnableModifierChangedEvents(unsigned int,enum TEventControl)
+ call_vector_128 @ 128 NONAME ; public: int __thiscall RWindowTreeNode::EnableOnEvents(enum TEventControl)
+ call_vector_129 @ 129 NONAME ; public: int __thiscall RWindowTreeNode::EnableErrorMessages(enum TEventControl)
+ call_vector_130 @ 130 NONAME ; public: void __thiscall RWindowBase::EnablePointerMoveBuffer(void)
+ call_vector_131 @ 131 NONAME ; public: void __thiscall RWindowGroup::EnableReceiptOfFocus(int)
+ call_vector_132 @ 132 NONAME ; public: void __thiscall RWindow::EndRedraw(void)
+ call_vector_133 @ 133 NONAME ; public: void __thiscall RWsSession::EventReady(class TRequestStatus *)
+ call_vector_134 @ 134 NONAME ; public: void __thiscall RWsSession::EventReadyCancel(void)
+ call_vector_135 @ 135 NONAME ; int RWsSession::FetchMessage(class TUid &, class TPtr8 &, class TWsEvent const &) const
+ call_vector_136 @ 136 NONAME ; int RWsSession::FindWindowGroupIdentifier(int, class TDesC16 const &, int) const
+ call_vector_137 @ 137 NONAME ; int RWsSession::FindWindowGroupIdentifier(int, class TThreadId) const
+ call_vector_138 @ 138 NONAME ; public: void __thiscall RWsSession::Flush(void)
+ call_vector_139 @ 139 NONAME ; public: virtual int __thiscall CWsScreenDevice::FontHeightInPixels(int,int)const
+ call_vector_140 @ 140 NONAME ; public: virtual int __thiscall CWsScreenDevice::FontHeightInTwips(int,int)const
+ call_vector_141 @ 141 NONAME ; public: void __thiscall RWindowBase::FreePointerMoveBuffer(void)
+ call_vector_142 @ 142 NONAME ; public: void __thiscall RWsSession::FreeSystemPointerCursorList(void)
+ call_vector_143 @ 143 NONAME ; public: int __thiscall RWindowTreeNode::FullOrdinalPosition(void)const
+ call_vector_144 @ 144 NONAME ; public: class TRgb __thiscall RWsSession::GetBackgroundColor(void)const
+ call_vector_145 @ 145 NONAME ; int RWsSession::GetDefaultOwningWindow(void) const
+ call_vector_146 @ 146 NONAME ; void RWsSession::GetDoubleClickSettings(class TTimeIntervalMicroSeconds32 &, int &) const
+ call_vector_147 @ 147 NONAME ; void RWsSession::GetEvent(class TWsEvent &) const
+ call_vector_148 @ 148 NONAME ; int RWsSession::GetFocusWindowGroup(void) const
+ call_vector_149 @ 149 NONAME ; public: int __thiscall CWsScreenDevice::GetFontById(class CFont * &,class TUid,class TAlgStyle const &)
+ call_vector_150 @ 150 NONAME ; void RWindow::GetInvalidRegion(class RRegion &) const
+ call_vector_151 @ 151 NONAME ; void RWsSession::GetKeyboardRepeatRate(class TTimeIntervalMicroSeconds32 &, class TTimeIntervalMicroSeconds32 &) const
+ call_vector_152 @ 152 NONAME ; public: int __thiscall RWsSession::GetModifierState(void)const
+ call_vector_153 @ 153 NONAME ; public: virtual int __thiscall CWsScreenDevice::GetNearestFontInPixels(class CFont * &,class TFontSpec const &)
+ call_vector_154 @ 154 NONAME ; public: virtual int __thiscall CWsScreenDevice::GetNearestFontInTwips(class CFont * &,class TFontSpec const &)
+ call_vector_155 @ 155 NONAME ; public: virtual int __thiscall CWsScreenDevice::GetPalette(class CPalette * &)const
+ call_vector_156 @ 156 NONAME ; public: virtual void __thiscall CWsScreenDevice::GetPixel(class TRgb &,class TPoint const &)const
+ call_vector_157 @ 157 NONAME ; void RWsSession::GetPriorityKey(class TWsPriorityKeyEvent &) const
+ call_vector_158 @ 158 NONAME ; public: void __thiscall RWsSession::GetRedraw(class TWsRedrawEvent &)
+ call_vector_159 @ 159 NONAME ; public: virtual void __thiscall CWsScreenDevice::GetScanLine(class TDes8 &,class TPoint const &,int,enum TDisplayMode)const
+ call_vector_160 @ 160 NONAME ; int RWsSession::GetWindowGroupClientThreadId(int, class TThreadId &) const
+ call_vector_161 @ 161 NONAME ; int RWsSession::GetWindowGroupHandle(int) const
+ call_vector_162 @ 162 NONAME ; int RWsSession::GetWindowGroupNameFromIdentifier(int, class TDes16 &) const
+ call_vector_163 @ 163 NONAME ; int RWsSession::GetWindowGroupOrdinalPriority(int) const
+ call_vector_164 @ 164 NONAME ; public: int __thiscall RWsSession::HeapCount(void)const
+ call_vector_165 @ 165 NONAME ; public: void __thiscall RWsSession::HeapSetFail(int,int)
+ call_vector_166 @ 166 NONAME ; public: virtual int __thiscall CWsScreenDevice::HorizontalPixelsToTwips(int)const
+ call_vector_167 @ 167 NONAME ; public: virtual int __thiscall CWsScreenDevice::HorizontalTwipsToPixels(int)const
+ call_vector_168 @ 168 NONAME ; public: int __thiscall RWindowGroup::Identifier(void)const
+ call_vector_169 @ 169 NONAME ; public: class TPoint __thiscall RWindowBase::InquireOffset(class RWindowTreeNode const &)const
+ call_vector_170 @ 170 NONAME ; public: void __thiscall CWsBitmap::InternalizeL(class RReadStream &)
+ call_vector_171 @ 171 NONAME ; public: void __thiscall RWindow::Invalidate(class TRect const &)
+ call_vector_172 @ 172 NONAME ; public: void __thiscall RWindow::Invalidate(void)
+ call_vector_173 @ 173 NONAME ; public: int __thiscall CWsBitmap::Load(class TDesC16 const &,long,int)
+ call_vector_174 @ 174 NONAME ; public: int __thiscall RAnimDll::Load(class TDesC16 const &)
+ call_vector_175 @ 175 NONAME ; public: void __thiscall RWsSession::LogMessage(class TBuf<128> const &)
+ call_vector_176 @ 176 NONAME ; public: void __thiscall RBackedUpWindow::MaintainBackup(void)
+ call_vector_177 @ 177 NONAME ; public: virtual void __thiscall CWindowGc::MapColors(class TRect const &,class TRgb const *,int,int)
+ call_vector_178 @ 178 NONAME ; public: virtual void __thiscall CWindowGc::MoveBy(class TPoint const &)
+ call_vector_179 @ 179 NONAME ; public: virtual void __thiscall CWindowGc::MoveTo(class TPoint const &)
+ call_vector_180 @ 180 NONAME ; public: int __thiscall RWindowGroup::Name(class TDes16 &)const
+ call_vector_181 @ 181 NONAME ; public: unsigned long __thiscall RWindowTreeNode::NextSibling(void)const
+ call_vector_182 @ 182 NONAME ; public: virtual int __thiscall CWsScreenDevice::NumTypefaces(void)const
+ call_vector_183 @ 183 NONAME ; public: int __thiscall RWsSession::NumWindowGroups(int)const
+ call_vector_184 @ 184 NONAME ; public: int __thiscall RWsSession::NumWindowGroups(void)const
+ call_vector_185 @ 185 NONAME ; public: int __thiscall RWindowTreeNode::OrdinalPosition(void)const
+ call_vector_186 @ 186 NONAME ; public: virtual void __thiscall CWsScreenDevice::PaletteAttributes(int &,int &)const
+ call_vector_187 @ 187 NONAME ; public: unsigned long __thiscall RWindowTreeNode::Parent(void)const
+ call_vector_188 @ 188 NONAME ; public: void __thiscall RWsSession::PasswordEntered(void)
+ call_vector_189 @ 189 NONAME ; public: int __thiscall RWindowBase::PasswordWindow(enum TPasswordMode)
+ call_vector_190 @ 190 NONAME ; public: virtual void __thiscall CWindowGc::Plot(class TPoint const &)
+ call_vector_191 @ 191 NONAME ; public: void __thiscall RWindowBase::PointerFilter(unsigned long,unsigned long)
+ call_vector_192 @ 192 NONAME ; public: class TRect __thiscall CWsScreenDevice::PointerRect(void)const
+ call_vector_193 @ 193 NONAME ; public: class TPoint __thiscall RWindowBase::Position(void)const
+ call_vector_194 @ 194 NONAME ; public: unsigned long __thiscall RWindowTreeNode::PrevSibling(void)const
+ call_vector_195 @ 195 NONAME ; public: void __thiscall RWsSession::PriorityKeyReady(class TRequestStatus *)
+ call_vector_196 @ 196 NONAME ; public: void __thiscall RWsSession::PriorityKeyReadyCancel(void)
+ call_vector_197 @ 197 NONAME ; public: void __thiscall RWsSession::PurgePointerEvents(void)
+ call_vector_198 @ 198 NONAME ; int CWsScreenDevice::RectCompare(class TRect const &, class TRect const &) const
+ call_vector_199 @ 199 NONAME ; public: void __thiscall RWsSession::RedrawReady(class TRequestStatus *)
+ call_vector_200 @ 200 NONAME ; public: void __thiscall RWsSession::RedrawReadyCancel(void)
+ call_vector_201 @ 201 NONAME ; public: virtual void __thiscall CWsScreenDevice::ReleaseFont(class CFont *)
+ call_vector_202 @ 202 NONAME ; public: void __thiscall RWindowBase::RemoveAllKeyRects(void)
+ call_vector_203 @ 203 NONAME ; public: virtual void __thiscall CWsScreenDevice::RemoveFile(int)
+ call_vector_204 @ 204 NONAME ; public: void __thiscall RWindowGroup::RemovePriorityKey(unsigned int,unsigned int,unsigned int)
+ call_vector_205 @ 205 NONAME ; public: void __thiscall RWindowBase::RequestPointerRepeatEvent(class TTimeIntervalMicroSeconds32,class TRect const &)
+ call_vector_206 @ 206 NONAME ; public: virtual void __thiscall CWindowGc::Reset(void)
+ call_vector_207 @ 207 NONAME ; public: void __thiscall CWsBitmap::Reset(void)
+ call_vector_208 @ 208 NONAME ; int RWsSession::ResourceCount(void) const
+ call_vector_209 @ 209 NONAME ; public: int __thiscall RWsSession::RestoreDefaultHotKey(enum THotKey)
+ call_vector_210 @ 210 NONAME ; int RWindowBase::RetrievePointerMoveBuffer(class TDes8 &) const
+ call_vector_211 @ 211 NONAME ; public: void __thiscall RDrawableWindow::Scroll(class TPoint const &)
+ call_vector_212 @ 212 NONAME ; public: void __thiscall RDrawableWindow::Scroll(class TPoint const &,class TRect const &)
+ call_vector_213 @ 213 NONAME ; public: void __thiscall RDrawableWindow::Scroll(class TRect const &,class TPoint const &,class TRect const &)
+ call_vector_214 @ 214 NONAME ; public: void __thiscall RDrawableWindow::Scroll(class TRect const &,class TPoint const &)
+ call_vector_215 @ 215 NONAME ; public: int __thiscall RWsSession::SendEventToWindowGroup(int,class TWsEvent const &)
+ call_vector_216 @ 216 NONAME ; public: int __thiscall RWsSession::SendMessageToWindowGroup(int,class TUid,class TDesC8 const &)
+ call_vector_217 @ 217 NONAME ; public: int __thiscall RWsSession::SetAutoFlush(int)
+ call_vector_218 @ 218 NONAME ; public: void __thiscall RWindow::SetBackgroundColor(class TRgb)
+ call_vector_219 @ 219 NONAME ; public: void __thiscall RWindow::SetBackgroundColor(void)
+ call_vector_220 @ 220 NONAME ; public: void __thiscall RWsSession::SetBackgroundColor(class TRgb)
+ call_vector_221 @ 221 NONAME ; public: virtual void __thiscall CWindowGc::SetBrushColor(class TRgb const &)
+ call_vector_222 @ 222 NONAME ; public: virtual void __thiscall CWindowGc::SetBrushOrigin(class TPoint const &)
+ call_vector_223 @ 223 NONAME ; public: virtual void __thiscall CWindowGc::SetBrushStyle(enum CGraphicsContext::TBrushStyle)
+ call_vector_224 @ 224 NONAME ; public: virtual void __thiscall CWindowGc::SetCharJustification(int,int)
+ call_vector_225 @ 225 NONAME ; public: virtual void __thiscall CWindowGc::SetClippingRect(class TRect const &)
+ call_vector_226 @ 226 NONAME ; public: virtual int __thiscall CWindowGc::SetClippingRegion(class TRegion const &)
+ call_vector_227 @ 227 NONAME ; public: void __thiscall RBlankWindow::SetColor(class TRgb)
+ call_vector_228 @ 228 NONAME ; public: int __thiscall RWindowBase::SetCornerType(enum TCornerType,int)
+ call_vector_229 @ 229 NONAME ; public: void __thiscall RWindowTreeNode::SetCustomPointerCursor(class RWsPointerCursor const &)
+ call_vector_230 @ 230 NONAME ; public: virtual void __thiscall CWindowGc::SetDitherOrigin(class TPoint const &)
+ call_vector_231 @ 231 NONAME ; public: int __thiscall RWsSession::SetDoubleClick(class TTimeIntervalMicroSeconds32 const &,int)
+ call_vector_232 @ 232 NONAME ; public: virtual void __thiscall CWindowGc::SetDrawMode(enum CGraphicsContext::TDrawMode)
+ call_vector_233 @ 233 NONAME ; public: void __thiscall RBlankWindow::SetExtent(class TPoint const &,class TSize const &)
+ call_vector_234 @ 234 NONAME ; public: void __thiscall RWindow::SetExtent(class TPoint const &,class TSize const &)
+ call_vector_235 @ 235 NONAME ; public: int __thiscall RWindowBase::SetExtentErr(class TPoint const &,class TSize const &)
+ call_vector_236 @ 236 NONAME ; public: int __thiscall RWsSession::SetHotKey(enum THotKey,unsigned int,unsigned int,unsigned int)
+ call_vector_237 @ 237 NONAME ; public: int __thiscall RWsSession::SetKeyboardRepeatRate(class TTimeIntervalMicroSeconds32 const &,class TTimeIntervalMicroSeconds32 const &)
+ call_vector_238 @ 238 NONAME ; public: int __thiscall RWsSession::SetModifierState(enum TEventModifier,enum TModifierState)
+ call_vector_239 @ 239 NONAME ; public: int __thiscall RWindowGroup::SetName(class TDesC16 const &)
+ call_vector_240 @ 240 NONAME ; public: void __thiscall RWindowTreeNode::SetOrdinalPosition(int)
+ call_vector_241 @ 241 NONAME ; public: void __thiscall RWindowTreeNode::SetOrdinalPosition(int,int)
+ call_vector_242 @ 242 NONAME ; public: void __thiscall RWindowGroup::SetOrdinalPriorityAdjust(int)
+ call_vector_243 @ 243 NONAME ; public: virtual void __thiscall CWindowGc::SetOrigin(class TPoint const &)
+ call_vector_244 @ 244 NONAME ; public: void __thiscall RWindowGroup::SetOwningWindowGroup(int)
+ call_vector_245 @ 245 NONAME ; public: virtual void __thiscall CWsScreenDevice::SetPalette(class CPalette *)
+ call_vector_246 @ 246 NONAME ; public: virtual void __thiscall CWindowGc::SetPenColor(class TRgb const &)
+ call_vector_247 @ 247 NONAME ; public: virtual void __thiscall CWindowGc::SetPenSize(class TSize const &)
+ call_vector_248 @ 248 NONAME ; public: virtual void __thiscall CWindowGc::SetPenStyle(enum CGraphicsContext::TPenStyle)
+ call_vector_249 @ 249 NONAME ; public: void __thiscall RWindowBase::SetPointerCapture(int)
+ call_vector_250 @ 250 NONAME ; public: int __thiscall RWindowTreeNode::SetPointerCursor(int)
+ call_vector_251 @ 251 NONAME ; public: void __thiscall RWindowBase::SetPointerGrab(int)
+ call_vector_252 @ 252 NONAME ; public: void __thiscall RWindowBase::SetPosition(class TPoint const &)
+ call_vector_253 @ 253 NONAME ; public: void __thiscall RWsSprite::SetPosition(class TPoint const &)
+ call_vector_254 @ 254 NONAME ; public: int __thiscall RWindowBase::SetRequiredDisplayMode(enum TDisplayMode)
+ call_vector_255 @ 255 NONAME ; public: void __thiscall RWindowBase::SetShadowDisabled(int)
+ call_vector_256 @ 256 NONAME ; public: void __thiscall RWindowBase::SetShadowHeight(int)
+ call_vector_257 @ 257 NONAME ; public: void __thiscall RWsSession::SetShadowVector(class TPoint const &)
+ call_vector_258 @ 258 NONAME ; public: int __thiscall RWindowBase::SetShape(class TRegion const &)
+ call_vector_259 @ 259 NONAME ; public: void __thiscall RBlankWindow::SetSize(class TSize const &)
+ call_vector_260 @ 260 NONAME ; public: void __thiscall RWindow::SetSize(class TSize const &)
+ call_vector_261 @ 261 NONAME ; public: int __thiscall RWindowBase::SetSizeErr(class TSize const &)
+ call_vector_262 @ 262 NONAME ; public: virtual void __thiscall CWindowGc::SetStrikethroughStyle(enum TFontStrikethrough)
+ call_vector_263 @ 263 NONAME ; public: int __thiscall RWsSession::SetSystemPointerCursor(class RWsPointerCursor const &,int)
+ call_vector_264 @ 264 NONAME ; public: void __thiscall RWindowGroup::SetTextCursor(class RWindowBase &,class TPoint const &,struct TTextCursor const &)
+ call_vector_265 @ 265 NONAME ; public: void __thiscall RWindowGroup::SetTextCursor(class RWindowBase &,class TPoint const &,struct TTextCursor const &,class TRect const &)
+ call_vector_266 @ 266 NONAME ; public: virtual void __thiscall CWindowGc::SetUnderlineStyle(enum TFontUnderline)
+ call_vector_267 @ 267 NONAME ; public: void __thiscall RWindowBase::SetVisible(int)
+ call_vector_268 @ 268 NONAME ; public: int __thiscall RWsSession::SetWindowGroupOrdinalPosition(int,int)
+ call_vector_269 @ 269 NONAME ; public: virtual void __thiscall CWindowGc::SetWordJustification(int,int)
+ call_vector_270 @ 270 NONAME ; public: class TPoint __thiscall RWsSession::ShadowVector(void)const
+ call_vector_271 @ 271 NONAME ; public: void __thiscall RWsSession::SimulateRawEvent(class TRawEvent)
+ call_vector_272 @ 272 NONAME ; public: class TSize __thiscall RWindowBase::Size(void)const
+ call_vector_273 @ 273 NONAME ; public: virtual class TSize __thiscall CWsScreenDevice::SizeInPixels(void)const
+ call_vector_274 @ 274 NONAME ; public: virtual class TSize __thiscall CWsScreenDevice::SizeInTwips(void)const
+ call_vector_275 @ 275 NONAME ; public: void __thiscall RWsSession::SystemInfo(int &,struct RWsSession::SSystemInfo &)
+ call_vector_276 @ 276 NONAME ; public: void __thiscall RWsSession::TestWrite(int,int,void const *,int)
+ call_vector_277 @ 277 NONAME ; public: void __thiscall RWsSession::TestWriteReply(int,int,void const *,int)
+ call_vector_278 @ 278 NONAME ; public: void __thiscall RWsSession::TestWriteReplyP(int,int,void const *,int,class TDes8 *)
+ call_vector_279 @ 279 NONAME ; public: virtual void __thiscall CWsScreenDevice::TypefaceSupport(class TTypefaceSupport &,int)const
+ call_vector_280 @ 280 NONAME ; public: void __thiscall RBackedUpWindow::UpdateBackupBitmap(void)
+ call_vector_281 @ 281 NONAME ; public: int __thiscall RWsSpriteBase::UpdateMember(int,struct TSpriteMember const &)
+ call_vector_282 @ 282 NONAME ; public: void __thiscall RWsSpriteBase::UpdateMember(int)
+ call_vector_283 @ 283 NONAME ; public: void __thiscall RBackedUpWindow::UpdateScreen(class TRegion const &)
+ call_vector_284 @ 284 NONAME ; public: void __thiscall RBackedUpWindow::UpdateScreen(void)
+ call_vector_285 @ 285 NONAME ; public: virtual void __thiscall CWindowGc::UseBrushPattern(class CFbsBitmap const *)
+ call_vector_286 @ 286 NONAME ; public: virtual void __thiscall CWindowGc::UseFont(class CFont const *)
+ call_vector_287 @ 287 NONAME ; class TVersion RWsSession::Version(void) const
+ call_vector_288 @ 288 NONAME ; public: virtual int __thiscall CWsScreenDevice::VerticalPixelsToTwips(int)const
+ call_vector_289 @ 289 NONAME ; public: virtual int __thiscall CWsScreenDevice::VerticalTwipsToPixels(int)const
+ call_vector_290 @ 290 NONAME ; int RWsSession::WindowGroupList(int, class CArrayFixFlat<int> *) const
+ call_vector_291 @ 291 NONAME ; int RWsSession::WindowGroupList(class CArrayFixFlat<int> *) const
+ call_vector_292 @ 292 NONAME ; public: int __thiscall RWsSession::RequestOffEvents(int,class RWindowTreeNode *)
+ call_vector_293 @ 293 NONAME ; public: void __thiscall RWindowTreeNode::__DbgTestInvariant(void)const
+ call_vector_294 @ 294 NONAME ; public: void __thiscall RWindowGroup::DisableScreenChangeEvents(void)
+ call_vector_295 @ 295 NONAME ; public: int __thiscall RWindowGroup::EnableScreenChangeEvents(void)
+ call_vector_296 @ 296 NONAME ; public: void __thiscall RWindowBase::FadeBehind(int)
+ call_vector_297 @ 297 NONAME ; public: void __thiscall CWsScreenDevice::GetDefaultScreenSizeAndRotation(struct TPixelsAndRotation &)const
+ call_vector_298 @ 298 NONAME ; public: void __thiscall CWsScreenDevice::GetDefaultScreenSizeAndRotation(struct TPixelsTwipsAndRotation &)const
+ call_vector_299 @ 299 NONAME ; enum TDisplayMode RWindowBase::DisplayMode(void) const
+ call_vector_300 @ 300 NONAME ; public: enum TDisplayMode __thiscall RWsSession::GetDefModeMaxNumColors(int &,int &)const
+ call_vector_301 @ 301 NONAME ; public: void __thiscall CWsScreenDevice::GetScreenModeSizeAndRotation(int,struct TPixelsAndRotation &)const
+ call_vector_302 @ 302 NONAME ; public: void __thiscall CWsScreenDevice::GetScreenModeSizeAndRotation(int,struct TPixelsTwipsAndRotation &)const
+ call_vector_303 @ 303 NONAME ; public: int __thiscall CWsScreenDevice::NumScreenModes(void)const
+ call_vector_304 @ 304 NONAME ; public: enum TScreenModeEnforcement __thiscall CWsScreenDevice::ScreenModeEnforcement(void)const
+ call_vector_305 @ 305 NONAME ; public: virtual void __thiscall CWindowGc::SetFaded(int)
+ call_vector_306 @ 306 NONAME ; public: void __thiscall RWindowTreeNode::SetFaded(int,enum RWindowTreeNode::TFadeControl)
+ call_vector_307 @ 307 NONAME ; public: void __thiscall RWindowTreeNode::SetNonFading(int)
+ call_vector_308 @ 308 NONAME ; public: void __thiscall CWsScreenDevice::SetScreenMode(int)
+ call_vector_309 @ 309 NONAME ; public: void __thiscall CWsScreenDevice::SetScreenModeEnforcement(enum TScreenModeEnforcement)const
+ call_vector_310 @ 310 NONAME ; public: void __thiscall CWsScreenDevice::SetScreenSizeAndRotation(struct TPixelsAndRotation const &)
+ call_vector_311 @ 311 NONAME ; public: void __thiscall CWsScreenDevice::SetScreenSizeAndRotation(struct TPixelsTwipsAndRotation const &)
+ call_vector_312 @ 312 NONAME ; public: void __thiscall RWindowGroup::SimulatePointerEvent(class TRawEvent)
+ call_vector_313 @ 313 NONAME ; public: int __thiscall RWsSession::GetColorModeList(class CArrayFixFlat<int> *)const
+ call_vector_314 @ 314 NONAME ; int RWindowBase::IsFaded(void) const
+ call_vector_315 @ 315 NONAME ; int RWindowBase::IsNonFading(void) const
+ call_vector_316 @ 316 NONAME ; protected: int __thiscall RAnim::Construct(class RWsSprite const &,int,class TDesC8 const &)
+ call_vector_317 @ 317 NONAME ; public: int __thiscall CWsScreenDevice::GetRotationsList(int,class CArrayFixFlat<int> *)const
+ call_vector_318 @ 318 NONAME ; public: int __thiscall RWindowTreeNode::OrdinalPriority(void)const
+ call_vector_319 @ 319 NONAME ; public: int __thiscall RWsSession::SendEventToAllWindowGroups(class TWsEvent const &)
+ call_vector_320 @ 320 NONAME ; public: int __thiscall RWsSession::SendEventToAllWindowGroups(int,class TWsEvent const &)
+ call_vector_321 @ 321 NONAME ; public: void __thiscall CWsScreenDevice::SetCurrentRotations(int,enum CFbsBitGc::TGraphicsOrientation)const
+ call_vector_322 @ 322 NONAME ; public: void __thiscall RWsSession::SimulateKeyEvent(struct TKeyEvent)
+ call_vector_323 @ 323 NONAME ; public: void __thiscall RWsSession::SetRemoveKeyCode(int)
+ call_vector_324 @ 324 NONAME ; public: void __thiscall RWsSession::ClearDefaultSystemPointerCursor(void)
+ call_vector_325 @ 325 NONAME ; public: void __thiscall RWindowTreeNode::ClearPointerCursor(void)
+ call_vector_326 @ 326 NONAME ; public: class TRect __thiscall RWsSession::PointerCursorArea(int)const
+ call_vector_327 @ 327 NONAME ; public: class TRect __thiscall RWsSession::PointerCursorArea(void)const
+ call_vector_328 @ 328 NONAME ; public: enum TPointerCursorMode __thiscall RWsSession::PointerCursorMode(void)const
+ call_vector_329 @ 329 NONAME ; public: class TPoint __thiscall RWsSession::PointerCursorPosition(void)const
+ call_vector_330 @ 330 NONAME ; public: void __thiscall RWsSession::SetDefaultSystemPointerCursor(int)
+ call_vector_331 @ 331 NONAME ; public: void __thiscall RWsSession::SetPointerCursorArea(class TRect const &)
+ call_vector_332 @ 332 NONAME ; public: void __thiscall RWsSession::SetPointerCursorArea(int,class TRect const &)
+ call_vector_333 @ 333 NONAME ; public: void __thiscall RWsSession::SetPointerCursorMode(enum TPointerCursorMode)
+ call_vector_334 @ 334 NONAME ; public: int __thiscall RWsSession::SetPointerCursorPosition(class TPoint const &)
+ call_vector_335 @ 335 NONAME ; void RWsSession::SimulateXyInputType(int)
+ call_vector_336 @ 336 NONAME ; public: int __thiscall RWindowBase::MoveToGroup(int)
+ call_vector_337 @ 337 NONAME ; public: int __thiscall RWsSession::SendMessageToAllWindowGroups(int,class TUid,class TDesC8 const &)
+ call_vector_338 @ 338 NONAME ; public: int __thiscall RWsSession::SendMessageToAllWindowGroups(class TUid,class TDesC8 const &)
+ call_vector_339 @ 339 NONAME ; public: void __thiscall RWindowTreeNode::DisableFocusChangeEvents(void)
+ call_vector_340 @ 340 NONAME ; public: int __thiscall RWindowTreeNode::EnableFocusChangeEvents(void)
+ call_vector_341 @ 341 NONAME ; public: void __thiscall RWsSession::SetDefaultFadingParameters(unsigned char,unsigned char)
+ call_vector_342 @ 342 NONAME ; public: void __thiscall RWindowTreeNode::SetFaded(int,enum RWindowTreeNode::TFadeControl,unsigned char,unsigned char)
+ call_vector_343 @ 343 NONAME ; public: virtual void __thiscall CWindowGc::SetFadingParameters(unsigned char,unsigned char)
+ call_vector_344 @ 344 NONAME ; public: void __thiscall RWsSession::PrepareForSwitchOff(void)
+ call_vector_345 @ 345 NONAME ; public: int __thiscall CWsScreenDevice::SetCustomPalette(class CPalette const *)
+ call_vector_346 @ 346 NONAME ; public: __thiscall RDirectScreenAccess::RDirectScreenAccess(class RWsSession &)
+ call_vector_347 @ 347 NONAME ; public: __thiscall RDirectScreenAccess::RDirectScreenAccess(void)
+ call_vector_348 @ 348 NONAME ; public: void __thiscall RDirectScreenAccess::Cancel(void)
+ call_vector_349 @ 349 NONAME ; public: void __thiscall RDirectScreenAccess::Close(void)
+ call_vector_350 @ 350 NONAME ; public: void __thiscall RDirectScreenAccess::Completed(void)
+ call_vector_351 @ 351 NONAME ; public: int __thiscall RDirectScreenAccess::Construct(void)
+ call_vector_352 @ 352 NONAME ; public: static class CDirectScreenAccess * __cdecl CDirectScreenAccess::NewL(class RWsSession &,class CWsScreenDevice &,class RWindowBase &,class MDirectScreenAccess &)
+ call_vector_353 @ 353 NONAME ; public: int __thiscall RDirectScreenAccess::Request(class RRegion * &,class TRequestStatus &,class RWindowBase const &)
+ call_vector_354 @ 354 NONAME ; public: void __thiscall CDirectScreenAccess::StartL(void)
+ call_vector_355 @ 355 NONAME ; public: void __thiscall RWsSession::SetBufferSizeL(int)
+ call_vector_356 @ 356 NONAME ; public: int __thiscall RWsSession::SetSystemFaded(int)
+ call_vector_357 @ 357 NONAME ; public: int __thiscall RWsSession::SetSystemFaded(int,unsigned char,unsigned char)
+ call_vector_358 @ 358 NONAME ; public: void __thiscall RWindowTreeNode::DisableGroupListChangeEvents(void)
+ call_vector_359 @ 359 NONAME ; public: int __thiscall RWindowTreeNode::EnableGroupListChangeEvents(void)
+ call_vector_360 @ 360 NONAME ; public: int __thiscall RSoundPlugIn::Construct(class TUid)
+ call_vector_361 @ 361 NONAME ; public: void __thiscall RSoundPlugIn::Destroy(void)
+ call_vector_362 @ 362 NONAME ; int RSoundPlugIn::IsLoaded(int &) const
+ call_vector_363 @ 363 NONAME ; public: int __thiscall RSoundPlugIn::Load(class TDesC16 const &)
+ call_vector_364 @ 364 NONAME ; public: int __thiscall RSoundPlugIn::Unload(void)
+ call_vector_365 @ 365 NONAME ; public: int __thiscall CWsScreenDevice::CurrentScreenMode(void)const
+ call_vector_366 @ 366 NONAME ; public: void __thiscall RWindowGroup::CancelCaptureLongKey(long)
+ call_vector_367 @ 367 NONAME ; public: long __thiscall RWindowGroup::CaptureLongKey(unsigned int,unsigned int,unsigned int,unsigned int,int,unsigned int)
+ call_vector_368 @ 368 NONAME ; public: long __thiscall RWindowGroup::CaptureLongKey(class TTimeIntervalMicroSeconds32,unsigned int,unsigned int,unsigned int,unsigned int,int,unsigned int)
+ call_vector_369 @ 369 NONAME ; public: int __thiscall RWsSession::SendEventToOneWindowGroupsPerClient(class TWsEvent const &)
+ call_vector_370 @ 370 NONAME ; int RSoundPlugIn::KeyClickEnabled(void) const
+ call_vector_371 @ 371 NONAME ; int RSoundPlugIn::PenClickEnabled(void) const
+ call_vector_372 @ 372 NONAME ; public: void __thiscall RSoundPlugIn::SetKeyClick(int)
+ call_vector_373 @ 373 NONAME ; public: void __thiscall RSoundPlugIn::SetPenClick(int)
+ call_vector_374 @ 374 NONAME ; public: long __thiscall RWindowGroup::CaptureKey(unsigned int,unsigned int,unsigned int,int)
+ call_vector_375 @ 375 NONAME ; public: long __thiscall RWindowGroup::CaptureKeyUpAndDowns(unsigned int,unsigned int,unsigned int,int)
+ call_vector_376 @ 376 NONAME ; public: void __thiscall RWsSession::LogCommand(enum RWsSession::TLoggingCommand)
+ call_vector_377 @ 377 NONAME ; public: __thiscall RSoundPlugIn::RSoundPlugIn(class RWsSession &)
+ call_vector_378 @ 378 NONAME ; public: __thiscall RSoundPlugIn::RSoundPlugIn(void)
+ call_vector_379 @ 379 NONAME ; public: void __thiscall RSoundPlugIn::Close(void)
+ call_vector_380 @ 380 NONAME ; public: int __thiscall RSoundPlugIn::CommandReply(int,class TPtrC8 const &)
+ call_vector_381 @ 381 NONAME ; public: int __thiscall RWsSession::SetCustomTextCursor(int,class TArray<struct TSpriteMember> const &,unsigned int,enum RWsSession::TCustomTextCursorAlignment)
+ call_vector_382 @ 382 NONAME ; public: void __thiscall RWindow::HandleTransparencyUpdate(void)
+ call_vector_383 @ 383 NONAME ; public: int __thiscall RWindow::SetTransparencyBitmap(class CFbsBitmap const &)
+ call_vector_384 @ 384 NONAME ; public: int __thiscall RWindow::SetTransparencyFactor(class TRgb const &)
+ call_vector_385 @ 385 NONAME ; public: void __thiscall RWindow::SetNonTransparent(void)
+ call_vector_386 @ 386 NONAME ; public: int __thiscall RWsSession::TestWriteReplyByProvidingRemoteReadAccess(int,int,class TDesC8 const &,class TDesC16 const &)
+ call_vector_387 @ 387 NONAME ; public: int __thiscall RWsSession::TestWriteReplyByProvidingRemoteReadAccess(int,int,class TDesC8 const &,class TDesC8 const &)
+ call_vector_388 @ 388 NONAME ; int RAnim::CommandReply(int, class TDesC8 const &, class TIpcArgs const &)
+ call_vector_389 @ 389 NONAME ; int RAnim::Construct(class RWindowBase const &, int, class TDesC8 const &, class TIpcArgs const &)
+ call_vector_390 @ 390 NONAME ; int RAnim::Construct(class RWsSprite const &, int, class TDesC8 const &, class TIpcArgs const &)
+ call_vector_391 @ 391 NONAME ; void RAnim::AsyncCommandReply(class TRequestStatus &, int, class TIpcArgs const &)
+ call_vector_392 @ 392 NONAME ; public: class TPoint __thiscall RWindowBase::AbsPosition(void)const
+ call_vector_393 @ 393 NONAME ; public: int __thiscall CWsScreenDevice::RectCompare(class TRect const &,class TRect const &,unsigned int)const
+ call_vector_394 @ 394 NONAME ; public: class TPoint __thiscall CWsScreenDevice::GetDefaultScreenModeOrigin(void)const
+ call_vector_395 @ 395 NONAME ; public: class TPoint __thiscall CWsScreenDevice::GetScreenModeOrigin(int)const
+ call_vector_396 @ 396 NONAME ; void RWindow::EnableRedrawStore(int)
+ call_vector_397 @ 397 NONAME ; void CWindowGc::AlphaBlendBitmaps(class TPoint const &, class CFbsBitmap const *, class TRect const &, class CFbsBitmap const *, class TPoint const &)
+ call_vector_398 @ 398 NONAME ; void CWindowGc::AlphaBlendBitmaps(class TPoint const &, class CWsBitmap const *, class TRect const &, class CWsBitmap const *, class TPoint const &)
+ call_vector_399 @ 399 NONAME ; void CWindowGc::SetOpaque(int)
+ call_vector_400 @ 400 NONAME ; public: class TSizeMode __thiscall CWsScreenDevice::GetCurrentScreenModeAttributes(void)const
+ call_vector_401 @ 401 NONAME ; public: class TPoint __thiscall CWsScreenDevice::GetCurrentScreenModeScaledOrigin(void)const
+ call_vector_402 @ 402 NONAME ; public: class TSize __thiscall CWsScreenDevice::GetCurrentScreenModeScale(void)const
+ call_vector_403 @ 403 NONAME ; public: class TPoint __thiscall CWsScreenDevice::GetScreenModeScaledOrigin(int)const
+ call_vector_404 @ 404 NONAME ; public: class TSize __thiscall CWsScreenDevice::GetScreenModeScale(int)const
+ call_vector_405 @ 405 NONAME ; public: void __thiscall CWsScreenDevice::SetAppScreenMode(int)
+ call_vector_406 @ 406 NONAME ; public: void __thiscall CWsScreenDevice::SetCurrentScreenModeAttributes(class TSizeMode const &)
+ call_vector_407 @ 407 NONAME ; void CWindowGc::DrawBitmapMasked(class TRect const &, class CFbsBitmap const *, class TRect const &, class CFbsBitmap const *, int)
+ call_vector_408 @ 408 NONAME ; int CWsScreenDevice::Construct(int)
+ call_vector_409 @ 409 NONAME ; int CWsScreenDevice::GetScreenNumber(void) const
+ call_vector_410 @ 410 NONAME ; int RWsSession::GetFocusScreen(void) const
+ call_vector_411 @ 411 NONAME ; int RWsSession::SetFocusScreen(int)
+ call_vector_412 @ 412 NONAME ; public: int __thiscall RWindowGroup::ConstructChildApp(int,unsigned long)
+ call_vector_413 @ 413 NONAME ; public: int __thiscall RWindowGroup::ConstructChildApp(int,unsigned long,int)
+ call_vector_414 @ 414 NONAME ; int RWsSession::WindowGroupList(int, class RArray<struct RWsSession::TWindowGroupChainInfo> *) const
+ call_vector_415 @ 415 NONAME ; int RWsSession::WindowGroupList(class RArray<struct RWsSession::TWindowGroupChainInfo> *) const
+ call_vector_416 @ 416 NONAME ; public: void __thiscall RWindowGroup::AllowProcessToCreateChildWindowGroups(class TUid)
+ call_vector_417 @ 417 NONAME ; public: int __thiscall RWindow::SetTransparencyWsBitmap(class CWsBitmap const &)
+ call_vector_418 @ 418 NONAME ; int CWsScreenDevice::GetScreenSizeModeList(class RArray<int> *) const
+ call_vector_419 @ 419 NONAME ; int CWsScreenDevice::GetNearestFontToDesignHeightInPixels(class CFont * &, class TFontSpec const &)
+ call_vector_420 @ 420 NONAME ; int CWsScreenDevice::GetNearestFontToDesignHeightInTwips(class CFont * &, class TFontSpec const &)
+ call_vector_421 @ 421 NONAME ; int CWsScreenDevice::GetNearestFontToMaxHeightInPixels(class CFont * &, class TFontSpec const &, int)
+ call_vector_422 @ 422 NONAME ; int CWsScreenDevice::GetNearestFontToMaxHeightInTwips(class CFont * &, class TFontSpec const &, int)
+ call_vector_423 @ 423 NONAME ; void RWindowTreeNode::DisableVisibilityChangeEvents(void)
+ call_vector_424 @ 424 NONAME ; int RWindowTreeNode::EnableVisibilityChangeEvents(void)
+ call_vector_425 @ 425 NONAME ; int RWindow::SetTransparencyAlphaChannel(void)
+ call_vector_426 @ 426 NONAME ; void RBlankWindow::SetColor(void)
+ call_vector_427 @ 427 NONAME ; int RWsSession::SetClientCursorMode(enum TPointerCursorMode)
+ call_vector_428 @ 428 NONAME ; class TRect RDrawableWindow::GetDrawRect(void) const
+ call_vector_429 @ 429 NONAME
+ call_vector_430 @ 430 NONAME
+ call_vector_431 @ 431 NONAME ; void CWindowGc::Reserved_CWindowGc_3(void)
+ call_vector_432 @ 432 NONAME ; void CWindowGc::Reserved_CWindowGc_4(void)
+ call_vector_433 @ 433 NONAME ; void CWindowGc::Reserved_CWindowGc_5(void)
+ call_vector_434 @ 434 NONAME ; void CWindowGc::Reserved_CBitmapContext_1(void)
+ call_vector_435 @ 435 NONAME ; void CWindowGc::Reserved_CBitmapContext_2(void)
+ call_vector_436 @ 436 NONAME ; void CWindowGc::Reserved_CBitmapContext_3(void)
+ call_vector_437 @ 437 NONAME ; int CWindowGc::APIExtension(class TUid, int*&, int *)
+ call_vector_438 @ 438 NONAME ; void CWindowGc::Reserved_CGraphicsContext_2(void)
+ call_vector_439 @ 439 NONAME ; void CWindowGc::DrawBitmapMasked(class TRect const &, class CWsBitmap const *, class TRect const &, class CWsBitmap const *, int)
+ call_vector_440 @ 440 NONAME ; int RWsSession::Connect(class RFs &)
+ call_vector_441 @ 441 NONAME ; enum TDisplayMode CWsScreenDevice::GetScreenModeDisplayMode(int const &) const
+ call_vector_442 @ 442 NONAME ; public: void __thiscall RWsSession::ClearAllRedrawStores(void)
+ call_vector_443 @ 443 NONAME ; int RWindowTreeNode::WindowGroupId(void) const
+ call_vector_444 @ 444 NONAME ; int RWindowBase::GetPointerCapturePriority(void) const
+ call_vector_445 @ 445 NONAME ; void RWindowBase::SetPointerCapturePriority(int)
+ call_vector_446 @ 446 NONAME ; int RWindow::SetTransparentRegion(class TRegion const &)
+ call_vector_447 @ 447 NONAME ; int RWindow::SetTransparencyPolicy(enum TWsTransparencyPolicy)
+ call_vector_448 @ 448 NONAME ; int RWindow::IsRedrawStoreEnabled(void) const
+ call_vector_449 @ 449 NONAME ; int CWsScreenDevice::SetBackLight(int)
+ call_vector_450 @ 450 NONAME ; int RWindowGroup::SetOrdinalPositionErr(int, int)
+ call_vector_451 @ 451 NONAME ; int RWindowGroup::ClearChildGroup(void)
+ call_vector_452 @ 452 NONAME ; int RWindowGroup::SetChildGroup(int)
+ call_vector_453 @ 453 NONAME ; class TUid TWsGraphicId::Uid(void) const
+ call_vector_454 @ 454 NONAME ; CWsGraphic::CWsGraphic(void)
+ call_vector_455 @ 455 NONAME ; RWsGraphicMsgBuf::RWsGraphicMsgBuf(void)
+ call_vector_456 @ 456 NONAME ; TWsGraphicMsgFixedBase::TWsGraphicMsgFixedBase(class TUid, int)
+ call_vector_457 @ 457 NONAME ; CWsGraphic::~CWsGraphic(void)
+ call_vector_458 @ 458 NONAME ; int RWsGraphicMsgBuf::Append(class TWsGraphicMsgFixedBase const &)
+ call_vector_459 @ 459 NONAME ; int RWsGraphicMsgBuf::Append(class TUid, class TDesC16 const &)
+ call_vector_460 @ 460 NONAME ; int RWsGraphicMsgBuf::Append(class TUid, class TDesC8 const &)
+ call_vector_461 @ 461 NONAME ; int RWsGraphicMsgBuf::Append(class TUid, int, class TPtr8 &)
+ call_vector_462 @ 462 NONAME ; void CWsGraphic::BaseConstructL(class TWsGraphicId const &, class TUid, class TDesC8 const &)
+ call_vector_463 @ 463 NONAME ; void CWsGraphic::BaseConstructL(class TUid, class TUid, class TDesC8 const &)
+ call_vector_464 @ 464 NONAME ; void CWsGraphic::BaseConstructL(class TUid, class TDesC8 const &)
+ call_vector_465 @ 465 NONAME ; int CWsGraphic::CWsGraphic_Reserved1(void)
+ call_vector_466 @ 466 NONAME ; int CWsGraphic::CWsGraphic_Reserved2(void)
+ call_vector_467 @ 467 NONAME ; int CWsGraphic::CWsGraphic_Reserved3(void)
+ call_vector_468 @ 468 NONAME ; int TWsGraphicId::Compare(class TWsGraphicId const &) const
+ call_vector_469 @ 469 NONAME ; int RWsGraphicMsgBuf::Count(void) const
+ call_vector_470 @ 470 NONAME ; class TPtrC8 RWsGraphicMsgBuf::Data(int) const
+ call_vector_471 @ 471 NONAME ; void CWsGraphic::Destroy(void)
+ call_vector_472 @ 472 NONAME ; void RWsGraphicMsgBuf::GetFixedMsg(class TWsGraphicMsgFixedBase &, int) const
+ call_vector_473 @ 473 NONAME ; class TWsGraphicId const & CWsGraphic::Id(void) const
+ call_vector_474 @ 474 NONAME ; int CWsGraphic::IsActive(void) const
+ call_vector_475 @ 475 NONAME ; int TWsGraphicId::IsId(void) const
+ call_vector_476 @ 476 NONAME ; void CWsGraphic::OnClientClose(void)
+ call_vector_477 @ 477 NONAME ; class TDesC8 const & RWsGraphicMsgBuf::Pckg(void) const
+ call_vector_478 @ 478 NONAME ; class TPtrC8 TWsGraphicMsgFixedBase::Pckg(void) const
+ call_vector_479 @ 479 NONAME ; void RWsGraphicMsgBuf::Remove(int)
+ call_vector_480 @ 480 NONAME ; void CWsGraphic::SendMessage(class TDesC8 const &) const
+ call_vector_481 @ 481 NONAME ; void TWsGraphicId::Set(int)
+ call_vector_482 @ 482 NONAME ; void TWsGraphicId::Set(class TUid)
+ call_vector_483 @ 483 NONAME ; int CWsGraphic::Share(class TSecureId)
+ call_vector_484 @ 484 NONAME ; int CWsGraphic::ShareGlobally(void)
+ call_vector_485 @ 485 NONAME ; int TWsGraphicMsgFixedBase::Size(void) const
+ call_vector_486 @ 486 NONAME ; class TUid RWsGraphicMsgBuf::TypeId(int) const
+ call_vector_487 @ 487 NONAME ; class TUid TWsGraphicMsgFixedBase::TypeId(void) const
+ call_vector_488 @ 488 NONAME ; int CWsGraphic::UnShare(class TSecureId)
+ call_vector_489 @ 489 NONAME ; int CWsGraphic::UnShareGlobally(void)
+ call_vector_490 @ 490 NONAME ; class TPtr8 RWsGraphicMsgBuf::Data(int)
+ call_vector_491 @ 491 NONAME ; TWsGraphicId::TWsGraphicId(class TWsGraphicId const &)
+ call_vector_492 @ 492 NONAME ; TWsGraphicId::TWsGraphicId(int)
+ call_vector_493 @ 493 NONAME ; int CWsGraphic::Flush(void) const
+ call_vector_494 @ 494 NONAME ; int RWindowGroup::Construct(unsigned long, int, class CWsScreenDevice *)
+ call_vector_495 @ 495 NONAME ; int RWindowGroup::Construct(unsigned long, class CWsScreenDevice *)
+ call_vector_496 @ 496 NONAME ; int RWsSession::GetColorModeList(int, class CArrayFixFlat<int> *) const
+ call_vector_497 @ 497 NONAME ; enum TDisplayMode RWsSession::GetDefModeMaxNumColors(int, int &, int &) const
+ call_vector_498 @ 498 NONAME ; int RWsSession::GetDefaultOwningWindow(int) const
+ call_vector_499 @ 499 NONAME ; int RWsSession::GetFocusWindowGroup(int) const
+ call_vector_500 @ 500 NONAME ; int RWsSession::NumWindowGroups(int, int) const
+ call_vector_501 @ 501 NONAME ; int RWsSession::NumberOfScreens(void) const
+ call_vector_502 @ 502 NONAME ; int RWsSession::WindowGroupList(class CArrayFixFlat<int> *, int, int) const
+ call_vector_503 @ 503 NONAME ; TWsGraphicId::TWsGraphicId(class TUid)
+ call_vector_504 @ 504 NONAME ; public: void __thiscall RWsSession::SetMaxBufferSizeL(int)
+ call_vector_505 @ 505 NONAME ; void RWindow::EnableOSB(int)
+ call_vector_506 @ 506 NONAME ; int TWsGraphicId::Id(void) const
+ call_vector_507 @ 507 NONAME ; int TWsGraphicId::IsUid(void) const
+ call_vector_508 @ 508 NONAME ; void CWsGraphic::SetGraphicExtension(class MWsObjectProvider *)
+ call_vector_509 @ 509 NONAME ; int CWsGraphic::SendSynchronMessage(class TDesC8 const &) const
+ call_vector_510 @ 510 NONAME ; int RWsSession::DebugInfo(int, class TDes8 &, int) const
+ call_vector_511 @ 511 NONAME ; int RWsSession::DebugInfo(int, int) const
+ call_vector_512 @ 512 NONAME ; unsigned long RWindowTreeNode::ClientHandle(void) const
+ call_vector_513 @ 513 NONAME ; int RWindowBase::SetBackgroundSurface(class TSurfaceId const &)
+ call_vector_514 @ 514 NONAME
+ call_vector_515 @ 515 NONAME ; class TRgb RWindowBase::KeyColor(void) const
+ call_vector_516 @ 516 NONAME
+ call_vector_517 @ 517 NONAME
+ call_vector_518 @ 518 NONAME
+ call_vector_519 @ 519 NONAME
+ call_vector_520 @ 520 NONAME
+ call_vector_521 @ 521 NONAME ; int RWindowBase::GetBackgroundSurface(class TSurfaceConfiguration &) const
+ call_vector_522 @ 522 NONAME
+ call_vector_523 @ 523 NONAME ; int RWsSession::PreferredSurfaceConfigurationSize(void) const
+ call_vector_524 @ 524 NONAME ; int RWsSession::RegisterSurface(int, class TSurfaceId const &)
+ call_vector_525 @ 525 NONAME
+ call_vector_526 @ 526 NONAME ; void RWindowBase::RemoveBackgroundSurface(int)
+ call_vector_527 @ 527 NONAME
+ call_vector_528 @ 528 NONAME ; int RWindowBase::SetBackgroundSurface(class TSurfaceConfiguration const &, int)
+ call_vector_529 @ 529 NONAME ; void RWsSession::UnregisterSurface(int, class TSurfaceId const &)
+ call_vector_530 @ 530 NONAME ; void RWindow::ClearRedrawStore(void)
+ call_vector_531 @ 531 NONAME ; int RWsSession::Finish(void)
+ call_vector_532 @ 532 NONAME ; void RWsSession::SyncMsgBuf(void)
+ call_vector_533 @ 533 NONAME ; class RWsSession & CWsGraphic::Session(void)
+ call_vector_534 @ 534 NONAME ; int RWindowTreeNode::ScreenNumber(void) const
+ call_vector_535 @ 535 NONAME ; void TWsEvent::SetPointerNumber(unsigned char)
+ call_vector_536 @ 536 NONAME ; int TAdvancedPointerEvent::DoGetPointerNumber(void) const
+ call_vector_537 @ 537 NONAME ; int RWindowBase::ClaimPointerGrab(unsigned char, int)
+ call_vector_538 @ 538 NONAME ; int RWindowBase::RequestPointerRepeatEvent(class TTimeIntervalMicroSeconds32, class TRect const &, unsigned char)
+ call_vector_539 @ 539 NONAME ; int RWsSession::GetExitHighPressureThreshold(void) const
+ call_vector_540 @ 540 NONAME ; int RWsSession::SetCloseProximityThresholds(int, int)
+ call_vector_541 @ 541 NONAME ; int RWsSession::SetHighPressureThresholds(int, int)
+ call_vector_542 @ 542 NONAME ; int RWindowBase::CancelPointerRepeatEventRequest(unsigned char)
+ call_vector_543 @ 543 NONAME ; void TWsEvent::InitAdvancedPointerEvent(enum TPointerEvent::TType, unsigned int, class TPoint3D const &, unsigned char)
+ call_vector_544 @ 544 NONAME ; int RWsSession::GetExitCloseProximityThreshold(void) const
+ call_vector_545 @ 545 NONAME ; void RWindowBase::EnableAdvancedPointers(void)
+ call_vector_546 @ 546 NONAME ; void TWsEvent::SetPointerZ(int)
+ call_vector_547 @ 547 NONAME ; int TAdvancedPointerEvent::DoGetProximityAndPressure(void) const
+ call_vector_548 @ 548 NONAME ; int TAdvancedPointerEvent::DoGetProximity(void) const
+ call_vector_549 @ 549 NONAME ; int TAdvancedPointerEvent::DoGetPressure(void) const
+ call_vector_550 @ 550 NONAME ; void RWindowGroup::SimulateAdvancedPointerEvent(class TRawEvent)
+ call_vector_551 @ 551 NONAME ; int RWsSession::GetEnterHighPressureThreshold(void) const
+ call_vector_552 @ 552 NONAME ; int RWsSession::GetEnterCloseProximityThreshold(void) const
+ call_vector_553 @ 553 NONAME ; class TAdvancedPointerEvent & TAdvancedPointerEvent::operator=(class TAdvancedPointerEvent const &)
+ call_vector_554 @ 554 NONAME ; TAdvancedPointerEvent::TAdvancedPointerEvent(class TAdvancedPointerEvent const &)
+ call_vector_555 @ 555 NONAME ; RWsDrawableSource::RWsDrawableSource(void)
+ call_vector_556 @ 556 NONAME ; void RWsDrawableSource::Close(void)
+ call_vector_557 @ 557 NONAME ; int RWsDrawableSource::Create(class RSgDrawable const &)
+ call_vector_558 @ 558 NONAME ; class TSgDrawableId const & RWsDrawableSource::DrawableId(void) const
+ call_vector_559 @ 559 NONAME ; void CWindowGc::DrawResource(class TPoint const &, class RWsDrawableSource const &, enum CWindowGc::TGraphicsRotation)
+ call_vector_560 @ 560 NONAME ; void CWindowGc::DrawResource(class TRect const &, class RWsDrawableSource const &, enum CWindowGc::TGraphicsRotation)
+ call_vector_561 @ 561 NONAME ; void CWindowGc::DrawResource(class TRect const &, class RWsDrawableSource const &, class TRect const &, enum CWindowGc::TGraphicsRotation)
+ call_vector_562 @ 562 NONAME ; void CWindowGc::DrawResource(class TRect const &, class RWsDrawableSource const &, class TDesC8 const &)
+ call_vector_563 @ 563 NONAME ; int RDirectScreenAccess::Construct(int)
+ call_vector_564 @ 564 NONAME ; class CDirectScreenAccess * CDirectScreenAccess::NewL(class RWsSession &, class CWsScreenDevice &, class RWindowBase &, class MDirectScreenAccess &, int)
+ call_vector_565 @ 565 NONAME ; int RWsDrawableSource::Create(class RSgDrawable const &, int)
+ call_vector_566 @ 566 NONAME ; RWsDrawableSource::RWsDrawableSource(class RWsSession &)
+ call_vector_567 @ 567 NONAME ; int RWsDrawableSource::ScreenNumber(void) const
+ call_vector_568 @ 568 NONAME ; void * CWsScreenDevice::GetInterface(unsigned int)
+ call_vector_569 @ 569 NONAME ; int CWsScreenDevice::IsCurrentModeDynamic(void) const
+ call_vector_570 @ 570 NONAME ; int CWsScreenDevice::IsModeDynamic(int) const
+ call_vector_571 @ 571 NONAME ; void const * CWindowGc::Interface(class TUid) const
+ call_vector_572 @ 572 NONAME ; void * CWindowGc::Interface(class TUid)
+ call_vector_573 @ 573 NONAME ; class RWsSession * RWindowTreeNode::Session(void) const
+ call_vector_574 @ 574 NONAME ; void RWsSession::HeapSetBurstFail(int, int, int)
+ call_vector_575 @ 575 NONAME ; void RWsSession::EnableWindowSizeCacheL(void)
+ call_vector_576 @ 576 NONAME ; void RWindowBase::SetSurfaceTransparency(int)
+
+ call_vector_577 @ 577 NONAME ; class TSize RWindowBase::SizeForEgl(void) const
+ call_vector_578 @ 578 NONAME ; int RWindowBase::FixNativeOrientation(void)
+
--- a/windowing/windowserver/debuglog/DECODER.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/debuglog/DECODER.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -189,10 +189,10 @@
switch (aOpcode)
{
case EWsWinOpReceiveFocus:
- aText.AppendFormat(_L("ReceiveFocus(%d)"), pData.Bool);
+ aText.AppendFormat(_L("ReceiveFocus(%d)"), *pData.Bool);
break;
case EWsWinOpAutoForeground:
- aText.AppendFormat(_L("AutoForeground(%d)"), pData.Bool);
+ aText.AppendFormat(_L("AutoForeground(%d)"), *pData.Bool);
break;
case EWsWinOpCancelCaptureKey:
aText.AppendFormat(_L("CancelCaptureKey(%d)"), *pData.UInt);
@@ -781,6 +781,24 @@
aText.AppendFormat(LogCreateGraphic);
}
break;
+ case EWsClOpRegisterSurface:
+ {
+ TInt screenNumber = pData.SurfaceRegister->screenNumber;
+ const TSurfaceId& surfaceId = pData.SurfaceRegister->surfaceId;
+
+ _LIT(LogRegisterSurface,"RegisterSurface(aScreenNumber(%d), TSurfaceId{%x,%x,%x,%x})");
+ aText.AppendFormat(LogRegisterSurface, screenNumber, surfaceId.iInternal[0], surfaceId.iInternal[1], surfaceId.iInternal[2], surfaceId.iInternal[3]);
+ }
+ break;
+ case EWsClOpUnregisterSurface:
+ {
+ TInt screenNumber = pData.SurfaceRegister->screenNumber;
+ const TSurfaceId& surfaceId = pData.SurfaceRegister->surfaceId;
+
+ _LIT(LogUnregisterSurface,"UnregisterSurface(aScreenNumber(%d), TSurfaceId{%x,%x,%x,%x})");
+ aText.AppendFormat(LogUnregisterSurface, screenNumber, surfaceId.iInternal[0], surfaceId.iInternal[1], surfaceId.iInternal[2], surfaceId.iInternal[3]);
+ }
+ break;
case EWsClOpSetCloseProximityThresholds:
{
_LIT(LogSetCloseProximityThresholds,"SetCloseProximityThresholds(%d, %d)");
@@ -1259,19 +1277,19 @@
case EWsWinOpMoveToGroup:
{
_LIT(LogWinMoveToGroup,"MoveToGroup(%d)");
- aText.AppendFormat(LogWinMoveToGroup, pData.Int);
+ aText.AppendFormat(LogWinMoveToGroup, *pData.Int);
}
break;
case EWsWinOpStoreDrawCommands:
{
_LIT(LogWinStoreDrawCommands,"EnableRedrawStore(%u)");
- aText.AppendFormat(LogWinStoreDrawCommands, pData.Bool);
+ aText.AppendFormat(LogWinStoreDrawCommands, *pData.Bool);
}
break;
case EWsWinOpSetPointerCapturePriority:
{
_LIT(LogWinSetPointerCapturePriority,"SetPointerCapturePriority(%d)");
- aText.AppendFormat(LogWinSetPointerCapturePriority, pData.Int);
+ aText.AppendFormat(LogWinSetPointerCapturePriority, *pData.Int);
}
break;
case EWsWinOpGetPointerCapturePriority:
@@ -1289,7 +1307,7 @@
case EWsWinOpSetTransparencyPolicy:
{
_LIT(LogWinSetTransparentPolicy,"SetTransparencyPolicy(TransparencyPolicy= %d)");
- aText.AppendFormat(LogWinSetTransparentPolicy, pData.Int);
+ aText.AppendFormat(LogWinSetTransparentPolicy, *pData.Int);
}
break;
case EWsWinOpIsRedrawStoreEnabled:
@@ -1316,6 +1334,72 @@
aText.AppendFormat(LogClientHandle);
}
break;
+ case EWsWinOpSetBackgroundSurface:
+ {
+ _LIT(LogWinSetBackgroundSurface,"SetBackgroundSurface(TSurfaceId{%x,%x,%x,%x})");
+ aText.AppendFormat(LogWinSetBackgroundSurface, pData.Surface->iInternal[0],pData.Surface->iInternal[1],pData.Surface->iInternal[2],pData.Surface->iInternal[3]);
+ }
+ break;
+ case EWsWinOpKeyColor:
+ {
+ _LIT(LogWinKeyColor,"KeyColor()");
+ aText.AppendFormat(LogWinKeyColor);
+ }
+ break;
+ case EWsWinOpSetBackgroundSurfaceConfig:
+ {
+ TSurfaceConfiguration aSurfaceConfig = pData.SurfaceConfigurationAndTrigger->surfaceConfig;
+ TSurfaceId surfaceid;
+ aSurfaceConfig.GetSurfaceId(surfaceid);
+ CFbsBitGc::TGraphicsOrientation orientation = aSurfaceConfig.Orientation();
+ TRect extent;
+ aSurfaceConfig.GetExtent(extent);
+ TRect viewport;
+ aSurfaceConfig.GetViewport(viewport);
+ TBool flip = aSurfaceConfig.Flip();
+ TBool triggerRedraw = pData.SurfaceConfigurationAndTrigger->triggerRedraw;
+
+ TLongBuf extentbuf(TDebugLogTextHandler::FormatRect(extent));
+ TLongBuf viewportbuf(TDebugLogTextHandler::FormatRect(viewport));
+
+ _LIT(LogWinSetBackgroundSurfaceConfig,"SetBackgroundSurface({%x,%x,%x,%x},%d,%S,%S,%d,%d)");
+ aText.AppendFormat(LogWinSetBackgroundSurfaceConfig, surfaceid.iInternal[0],
+ surfaceid.iInternal[1],
+ surfaceid.iInternal[2],
+ surfaceid.iInternal[3],
+ orientation,
+ &extentbuf,
+ &viewportbuf,
+ flip,
+ triggerRedraw);
+ }
+ break;
+ case EWsWinOpRemoveBackgroundSurface:
+ {
+ _LIT(LogWinRemoveBackgroundSurface,"RemoveBackgroundSurface(%d)");
+ aText.AppendFormat(LogWinRemoveBackgroundSurface, *(pData.Bool));
+ }
+ break;
+ case EWsWinOpGetBackgroundSurfaceConfig:
+ {
+ _LIT(LogWinGetBackgroundSurfaceConfig,"GetBackgroundSurface()");
+ aText.AppendFormat(LogWinGetBackgroundSurfaceConfig);
+ }
+ break;
+ case EWsWinOpClearRedrawStore:
+ {
+ _LIT(LogWinClearRedrawStore,"ClearRedrawStore()");
+ aText.AppendFormat(LogWinClearRedrawStore);
+ }
+ break;
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ case EWsWinOpFixNativeOrientation:
+ {
+ _LIT(LogWinFixNativeOrientation,"FixNativeOrientation()");
+ aText.AppendFormat(LogWinFixNativeOrientation);
+ }
+ break;
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
default:
UnKnownOpcode(aText, aOpcode);
break;
@@ -1786,7 +1870,7 @@
{
TShortBuf buf1(TDebugLogTextHandler::FormatPoint(pData.GdiBltMasked->destination));
TLongBuf buf2(TDebugLogTextHandler::FormatRect(pData.GdiBltMasked->source));
- _LIT(LogGcBitBltMasked,"BitBltMasked(%S, {%d}, %S)");
+ _LIT(LogGcBitBltMasked,"BitBltMasked(%S, {%d}, %S, {%d}, %d)");
aText.AppendFormat(LogGcBitBltMasked, &buf1, hHandleToValue(pData.GdiBltMasked->handle),
&buf2, hHandleToValue(pData.GdiBltMasked->maskHandle),
pData.GdiBltMasked->invertMask);
@@ -1859,7 +1943,7 @@
case EWsGcOpSetFaded:
{
_LIT(KLitGcSetFaded, "SetFaded(%d)");
- aText.AppendFormat(KLitGcSetFaded, pData.Bool);
+ aText.AppendFormat(KLitGcSetFaded, *pData.Bool);
}
break;
case EWsGcOpSetFadeParams:
@@ -1884,7 +1968,7 @@
case EWsGcOpSetOpaque:
{
_LIT(KLitGcOpSetOpaque, "SetOpaque(%d)");
- aText.AppendFormat(KLitGcOpSetOpaque, pData.Bool);
+ aText.AppendFormat(KLitGcOpSetOpaque, *pData.Bool);
}
break;
default:
@@ -2023,20 +2107,20 @@
case EWsSdOpSetScreenMode:
{
_LIT(LogScreenDeviceSetScreenMode,"ScreenMode(%d)");
- aText.AppendFormat(LogScreenDeviceSetScreenMode,pData.Int);
+ aText.AppendFormat(LogScreenDeviceSetScreenMode,*pData.Int);
}
break;
case EWsSdOpGetScreenModeSizeAndRotation:
case EWsSdOpGetScreenModeSizeAndRotation2:
{
_LIT(LogScreenDeviceGetScreenModeSizeAndRotation,"GetScreenModeSizeAndRotation(%d)");
- aText.AppendFormat(LogScreenDeviceGetScreenModeSizeAndRotation,pData.Int);
+ aText.AppendFormat(LogScreenDeviceGetScreenModeSizeAndRotation,*pData.Int);
}
break;
case EWsSdOpSetScreenModeEnforcement:
{
_LIT(LogScreenDeviceSetScreenModeEnforcement,"SetScreenModeEnforcement(%d)");
- aText.AppendFormat(LogScreenDeviceSetScreenModeEnforcement,pData.Int);
+ aText.AppendFormat(LogScreenDeviceSetScreenModeEnforcement,*pData.Int);
}
break;
case EWsSdOpScreenModeEnforcement:
@@ -2054,7 +2138,7 @@
case EWsSdOpGetRotationList:
{
_LIT(LogScreenDeviceGetRotationList,"GetRotationList(%d)");
- aText.AppendFormat(LogScreenDeviceGetRotationList,pData.Int);
+ aText.AppendFormat(LogScreenDeviceGetRotationList,*pData.Int);
}
break;
case EWsSdOpPaletteAttributes:
@@ -2090,13 +2174,13 @@
case EWsSdOpGetScreenModeOrigin:
{
_LIT(LogScreenDeviceGetScreenModeOrigin,"GetScreenModeOrigin(%d)");
- aText.AppendFormat(LogScreenDeviceGetScreenModeOrigin, pData.Int);
+ aText.AppendFormat(LogScreenDeviceGetScreenModeOrigin, *pData.Int);
}
break;
case EWsSdOpGetScreenModeScale:
{
_LIT(LogScreenDeviceGetScreenModeScale,"GetScreenModeScale(%d)");
- aText.AppendFormat(LogScreenDeviceGetScreenModeScale, pData.Int);
+ aText.AppendFormat(LogScreenDeviceGetScreenModeScale, *pData.Int);
}
break;
case EWsSdOpGetCurrentScreenModeScale:
@@ -2108,13 +2192,13 @@
case EWsSdOpSetAppScreenMode:
{
_LIT(LogScreenDeviceSetAppScreenMode,"SetAppScreenMode(%d)");
- aText.AppendFormat(LogScreenDeviceSetAppScreenMode, pData.Int);
+ aText.AppendFormat(LogScreenDeviceSetAppScreenMode, *pData.Int);
}
break;
case EWsSdOpGetScreenModeScaledOrigin:
{
_LIT(LogScreenDeviceGetScreenModeScaledOrigin,"GetScreenModeScaledOrigin(%d)");
- aText.AppendFormat(LogScreenDeviceGetScreenModeScaledOrigin, pData.Int);
+ aText.AppendFormat(LogScreenDeviceGetScreenModeScaledOrigin, *pData.Int);
}
break;
case EWsSdOpGetCurrentScreenModeScaledOrigin:
@@ -2151,13 +2235,13 @@
case EWsSdOpGetScreenModeDisplayMode:
{
_LIT(LogScreenDeviceGetScreenModeDisplayMode,"GetScreenModeDisplayMode(%d)");
- aText.AppendFormat(LogScreenDeviceGetScreenModeDisplayMode, pData.Int);
+ aText.AppendFormat(LogScreenDeviceGetScreenModeDisplayMode, *pData.Int);
}
break;
case EWsClOpSetBackLight:
{
_LIT(LogScreenDeviceSetBackLight,"SetBackLight(%u)");
- aText.AppendFormat(LogScreenDeviceSetBackLight, pData.UInt);
+ aText.AppendFormat(LogScreenDeviceSetBackLight, *pData.UInt);
}
break;
default:
@@ -2272,7 +2356,7 @@
case EWsDirectOpGetRegion:
{
_LIT(LogDirectGetRegion,"GetRegion(%d)");
- aText.AppendFormat(LogDirectGetRegion,pData.Int);
+ aText.AppendFormat(LogDirectGetRegion,*pData.Int);
}
break;
case EWsDirectOpCancel:
@@ -2341,13 +2425,13 @@
case EWsClickOpSetKeyClick:
{
_LIT(LogSetKeyClick,"SetKeyClick(%u)");
- aText.AppendFormat(LogSetKeyClick, pData.Bool);
+ aText.AppendFormat(LogSetKeyClick, *pData.Bool);
}
break;
case EWsClickOpSetPenClick:
{
_LIT(LogSetPenClick,"SetPenClick(%u)");
- aText.AppendFormat(LogSetPenClick, pData.Bool);
+ aText.AppendFormat(LogSetPenClick, *pData.Bool);
}
break;
case EWsClickOpKeyClickEnabled:
--- a/windowing/windowserver/debuglog/DebLogRD.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/debuglog/DebLogRD.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -55,7 +55,8 @@
buf.Copy(aDes.Mid(pos));
buf.Append(' ');
buf.Append(aDes2);
- RDebug::Print(buf);
+ _LIT(KDebugFormatString, "%S");
+ RDebug::Print(KDebugFormatString, &buf);
}
void CDebugLogPrint::WriteToLog8L(const TDesC8 &aDes, const TDesC8 &aDes2)
@@ -70,6 +71,7 @@
TPtr16 ptr(&buf[bufLen],buf.MaxLength()-bufLen);
ptr.Copy(aDes2);
buf.SetLength(bufLen+aDes2.Length());
- RDebug::Print(buf);
+ _LIT(KDebugFormatString, "%S");
+ RDebug::Print(KDebugFormatString, &buf);
}
--- a/windowing/windowserver/eabi/WS322U.DEF Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/eabi/WS322U.DEF Tue Jun 01 15:04:40 2010 +0100
@@ -649,4 +649,6 @@
_ZN10RWsSession16HeapSetBurstFailEiii @ 648 NONAME
_ZN10RWsSession22EnableWindowSizeCacheLEv @ 649 NONAME
_ZN11RWindowBase22SetSurfaceTransparencyEi @ 650 NONAME
+ _ZN11RWindowBase20FixNativeOrientationEv @ 651 NONAME
+ _ZNK11RWindowBase10SizeForEglEv @ 652 NONAME
--- a/windowing/windowserver/econs/D_EXC.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/econs/D_EXC.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -104,8 +104,6 @@
}
_LIT(KFormatStackInfo,"Stack %08x-%08x (? %d?), sp=%08x\r");
-//_LIT(KGrabStack,"Capture stack data");
-//_LIT(KNoStack,"Don't risk it");
HBufC8* GrabStack(const TDesC& /*aLine1*/, TThreadId aId, TUint aSp, TInt& aStackBase, TInt& aStackSize)
{
@@ -148,18 +146,7 @@
TBuf<0x100> line2;
line2.Format(KFormatStackInfo, aStackBase, aStackBase+aStackSize-1, aStackSize, aSp);
- //Don't ask the user just do it for WSERV
- /*RNotifier ask;
- if (ask.Connect() != KErrNone)
- return 0;
- TRequestStatus status;
- TInt buttonval=1;
- ask.Notify(aLine1,line2,KGrabStack,KNoStack,buttonval,status);
- User::WaitForRequest(status);
- ask.Close();
- if (status.Int()!=KErrNone || buttonval != 0)
- return 0;*/
-
+
// OK - let stack grabbing commence
HBufC8* stackbuf = HBufC8::New(aStackSize);
if (stackbuf==0)
@@ -193,9 +180,9 @@
TBuf<0x100> line2;
SDebugInfo info;
struct SRegisterInfo reginfo;
- TUint pc;
+ TUint pc = 0;
TUint regs[16];
- const TDll* faultDll;
+ const TDll* faultDll = NULL;
_LIT(KInfo1, "D_EXC started");
User::InfoPrint(KInfo1);
@@ -204,7 +191,7 @@
// FOREVER
for (TInt rep=0; rep<2; rep++) // die after two exceptions
{
- TInt err;
+ TInt err = KErrNone;
// wait for any thread to panic...
@@ -240,7 +227,7 @@
// assume that it's KERN-EXEC 3 and try to use the
// full RDebug support to locate the faulting instruction
- HBufC8* stack=0;
+ HBufC8* stack = NULL;
TInt stackbase=0;
TInt stacksize=0;
@@ -257,14 +244,15 @@
{
RDebug::GetRegister(info.iId,reginfo.iNumberOfPcRegister, pc);
for (int i=0; i<16; i++)
+ {
RDebug::GetRegister(info.iId, i, regs[i]);
+ }
}
TDllList::FindDlls();
stack=GrabStack(line1, info.iId, regs[KStackPointerReg], stackbase, stacksize);
- //RDebug::KillThread(info.iId);
RDebug::Close();
}
@@ -275,28 +263,37 @@
_LIT(KFormatOther, "pc=%08x, iCodeAddr=%08x\r");
_LIT(KFormatError, "(Unable to determine pc)\r");
+
if ((pc&3) == 0)
{
if (pc >= 0x20000000 && pc < 0x30000000)
+ {
line2.Format(KFormatEXE, pc, pc-0x20000000+0x400010);
- else
- if (pc >= 0x50000000 && pc < 0x60000000)
- line2.Format(KFormatROM, pc);
+ }
+ else if (pc >= 0x50000000 && pc < 0x60000000)
+ {
+ line2.Format(KFormatROM, pc);
+ }
+ else if (TDllList::Match(pc, faultDll)==KErrNone)
+ {
+ line2.Format(KFormatDll, pc, &faultDll->iName, pc-(faultDll->iBase)+0x10000010);
+ }
else
- if (TDllList::Match(pc, faultDll)==KErrNone)
- line2.Format(KFormatDll, pc, &faultDll->iName, pc-(faultDll->iBase)+0x10000010);
-
- else
+ {
line2.Format(KFormatOther, pc, info.iCodeAddr);
-
+ }
}
else
+ {
line2.Copy(KFormatError);
-
+ }
+
RFs fs;
err = fs.Connect();
if (err!=KErrNone)
+ {
break;
+ }
_LIT(KFormatFilename,"d:\\d_exc_%d.txt");
_LIT(KFormatStackname,"d:\\d_exc_%d.stk");
@@ -309,7 +306,10 @@
RFile file;
err=file.Replace(fs, name, EFileWrite+EFileShareAny+EFileStreamText);
if (err!=KErrNone)
- break;
+ {
+ fs.Close();
+ break;
+ }
TFileText textfile;
textfile.Set(file);
--- a/windowing/windowserver/group/BLD.INF Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/group/BLD.INF Tue Jun 01 15:04:40 2010 +0100
@@ -19,6 +19,8 @@
@file
*/
+#include <platform_paths.hrh>
+
PRJ_PLATFORMS
DEFAULT
--- a/windowing/windowserver/group/Click.MMP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/group/Click.MMP Tue Jun 01 15:04:40 2010 +0100
@@ -24,7 +24,7 @@
#endif
USERINCLUDE ../inc
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+OS_LAYER_SYSTEMINCLUDE
LIBRARY euser.lib
LIBRARY ws32.lib
--- a/windowing/windowserver/group/DEBLOG.MMP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/group/DEBLOG.MMP Tue Jun 01 15:04:40 2010 +0100
@@ -24,6 +24,8 @@
CAPABILITY PowerMgmt ReadDeviceData WriteDeviceData ProtServ
TARGETTYPE dll
+MACRO SYMBIAN_GRAPHICS_GCE
+
SOURCEPATH ../debuglog
SOURCE DEBUGLOG.CPP DECODER.CPP TXTHNDLR.CPP
--- a/windowing/windowserver/group/openwfc/BLD.INF Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/group/openwfc/BLD.INF Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1998-2010 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"
@@ -34,6 +34,7 @@
../../inc/sizemode.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(sizemode.h)
../../inc/pointerevent.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(pointerevent.h)
../../inc/advancedpointerevent.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(advancedpointerevent.h)
+../../inc/advancedpointerevent.inl SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(advancedpointerevent.inl)
../../inc/textcursor.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(textcursor.h)
#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
#ifdef SYMBIAN_OLD_EXPORT_LOCATION
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/group/samplegraphicsurface.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,46 @@
+// Copyright (c) 2008-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:
+// samplegraphicsurface.dll Sample CWsGraphics demonstrating PlaceSurface
+//
+//
+
+/**
+ @file
+*/
+
+TARGET samplegraphicsurface.dll
+CAPABILITY All -Tcb
+TARGETTYPE dll
+
+MACRO SYMBIAN_GRAPHICS_GCE
+
+UID 0x1000008D 0x10285C49
+VENDORID 0x70000001
+
+DEFFILE samplegraphicsurface.DEF
+
+SOURCEPATH ../nga/samplegraphicsurfacedrawer
+
+
+USERINCLUDE ../inc
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY euser.lib
+LIBRARY wsgraphicdrawer.lib
+LIBRARY fbscli.lib ws32.lib estor.lib
+UNPAGED
+
+SOURCE graphicsurface.cpp
+
+SMPSAFE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/group/samplegraphicsurfacedrawer.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,47 @@
+// Copyright (c) 2008-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:
+// samplegraphicsurfacedrawer.DLL sample Surface-based Graphics ECOM plugins for Window Server
+//
+//
+
+/**
+ @file
+*/
+
+TARGET 10285c4a.dll //samplegraphicsurfacedrawer.DLL
+TARGETTYPE PLUGIN //ECOMIIC
+UID 0x10009D8D 0x10285C4A
+CAPABILITY All -Tcb
+VENDORID 0x70000001
+
+MACRO SYMBIAN_GRAPHICS_GCE
+
+#ifndef USERINCLUDE_WSGRAPHICDRAWERINTERFACE_H
+macro USERINCLUDE_WSGRAPHICDRAWERINTERFACE_H
+#endif
+
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY ecom.lib estor.lib fbscli.lib euser.lib
+LIBRARY wsgraphicdrawer.lib ws32.lib w32stdgraphic.lib
+
+UNPAGED
+
+SOURCEPATH ../nga/samplegraphicsurfacedrawer
+
+RESOURCE 10285C4A.RSS
+
+SOURCE proxy.cpp graphicsurfacedrawer.CPP
+
+SMPSAFE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/group/samplegraphictestsurfacemulti.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,46 @@
+// Copyright (c) 2008-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:
+// samplegraphictestsurfacemulti.dll Sample test crp for surfaces
+//
+//
+
+/**
+ @file
+*/
+
+TARGET samplegraphictestsurfacemulti.dll
+CAPABILITY All -Tcb
+TARGETTYPE dll
+
+UID 0x1000008D 0x10285E99
+VENDORID 0x70000001
+
+MACRO SYMBIAN_GRAPHICS_GCE
+
+DEFFILE samplegraphictestsurfacemulti.DEF
+
+SOURCEPATH ../tgce/samplegraphictestsurfacemultidrawer
+
+USERINCLUDE ../nga/samplegraphicsurfacedrawer ../inc
+
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY euser.lib
+LIBRARY wsgraphicdrawer.lib
+LIBRARY samplegraphicsurface.lib
+LIBRARY fbscli.lib ws32.lib estor.lib
+UNPAGED
+
+SOURCE graphictestsurfacemulti.cpp
+SMPSAFE
--- a/windowing/windowserver/group/wserv.iby Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/group/wserv.iby Tue Jun 01 15:04:40 2010 +0100
@@ -23,8 +23,14 @@
file=ABI_DIR\BUILD_DIR\wserv_nga.exe System\Libs\EwSrv.exe
file=ABI_DIR\BUILD_DIR\ws32_nga.dll System\Libs\Ws32.dll
file=ABI_DIR\BUILD_DIR\remotegc_nga.dll System\Libs\remotegc.dll
-file=ABI_DIR\BUILD_DIR\wsgraphicdrawer_nga.dll System\Libs\WsGraphicDrawer.dll
+file=ABI_DIR\BUILD_DIR\wsgraphicdrawer_nga.dll System\Libs\WsGraphicDrawer.dll
+
+#if defined(SYMBIAN_GRAPHICS_USE_OPENWF) && !defined(SYMBIAN_GRAPHICS_USE_OPENWF_MIGRATION)
+REM Pure OpenWF implementation, so skipping proprietary compositor
+#else
#include <gce.iby>
+#endif
+
#include <wserv_std_plugins.iby>
//wserv calls eglReleaseThread() on exit
#include <egl.iby>
--- a/windowing/windowserver/inc/Graphics/openwfc/WSGRAPHICDRAWERINTERFACE.H Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/inc/Graphics/openwfc/WSGRAPHICDRAWERINTERFACE.H Tue Jun 01 15:04:40 2010 +0100
@@ -40,6 +40,7 @@
class MEventHandler;
class MWsElement;
class MWsGraphicsContext;
+class MWsAnimationScheduler;
/**
@publishedPartner
@@ -134,57 +135,6 @@
virtual TBool RedrawInvalid(const TArray<TGraphicDrawerId>& aInvalid) = 0;
};
-class MWsAnimationScheduler: public MWsObjectProvider
-/** A system mechanism for customising the animation timer to a particular hardware variant or to a
- particular external compositor e.g. an out-of-scene transition engine.
- The default animation scheduler in WSERV does not understand device-dependant parameters e.g.
- screen refresh rates
- @publishedPartner
- @released
- to be adapted when WSERV migrates to surfaces
-*/ {
-public:
- /** Called to schedule an animation event for a screen to occur not before some point
- A screen may be scheduled to animate several times without actually receiving an animation event from the scheduler
- If the scheduler cannot honour the request e.g. device constraints, it ignores the request.
- @param aScreen the screen to recieve the event
- @param aWhen the point in time the event need not occur before
- */
- virtual void ScheduleAnimation(MWsScreen& aScreen,const TTime& aWhen) = 0;
- /** Called if a screen determines that it no longer needs to schedule any animation
- @param aScreen the screen not needing to receive any animation events
- */
- virtual void UnscheduleAnimation(MWsScreen& aScreen) = 0;
- /** Called to schedule the redrawing of all screens containing this graphic.
- The redrawing of affected screens can be deferred by the scheduler.
- @param aId the ID of the graphic to be redrawn. The graphic itself need not exist
- (e.g. it has just been deleted, hence the need to redraw all potentially affected screens). */
- virtual void Invalidate(const TGraphicDrawerId& aId) = 0;
- /** Called when the Window Server receives a TRawEvent::EInactive event, to signal power-saving */
- virtual void OnInactive() = 0;
- /** Called when the Window Server receives a TRawEvent::EActive event, to signal screen back on */
- virtual void OnActive() = 0;
-
- /** Called to schedule a redraw for a screen which is out of date
- A screen may be scheduled to redraw several times without actually receiving aredraw event from the scheduler
- If this request is ignored then the screen will be draw incorrectly untill a such a request is not ignored.
- @param aScreen the screen to recieve the event
- @param aWhen the point in time the event need not occur before
- */
- virtual void ScheduleRedraw(MWsScreen& aScreen,const TTime& aWhen) = 0;
- /** Called to force a previously scheduled redraw for a screen to happen synchronously
- Used when we are about to loose our ability to perform the redraw correctly.
- @param aScreen the screen to recieve the event
- */
- virtual void DoRedrawNow(MWsScreen& aScreen) = 0;
-
-protected:
- IMPORT_C void Animate(MWsScreen& aScreen);
- IMPORT_C void Animate(MWsScreen& aScreen, TRequestStatus* aFinished);
- IMPORT_C void Redraw(MWsScreen& aScreen);
- IMPORT_C TBool RedrawInvalid(MWsScreen& aScreen,const TArray<TGraphicDrawerId>& aInvalid);
- };
-
/**
@publishedPartner
@prototype
@@ -245,7 +195,7 @@
/** Get a particular screen by ordinal
@return the screen, or NULL if aIndex is out of bounds */
virtual const MWsScreen* Screen(TInt aIndex) const = 0;
- /** Set the animation scheduler; this can only be done once by custom code
+ /** Not supported
@return success of overriding the default scheduler */
virtual TBool SetCustomAnimationScheduler(MWsAnimationScheduler* aScheduler) = 0;
/** Query whether a custom animation scheduler has been set
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/inc/Graphics/wsgraphicdrawerinternal.h Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,89 @@
+// Copyright (c) 1994-2010 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:
+//
+
+#ifndef GRAPHICDRAWER_INTERNAL_H
+#define GRAPHICDRAWER_INTERNAL_H
+
+class MWsAnimationScheduler: public MWsObjectProvider
+/** A system mechanism for customising the animation timer to a particular hardware variant or to a
+ particular external compositor e.g. an out-of-scene transition engine.
+ The default animation scheduler in WSERV does not understand device-dependant parameters e.g.
+ screen refresh rates
+ @internalComponent
+ @released
+*/ {
+public:
+ /** Called to schedule an animation event for a screen to occur not before some point
+ A screen may be scheduled to animate several times without actually receiving an animation event from the scheduler
+ If the scheduler cannot honour the request e.g. device constraints, it ignores the request.
+ @param aScreen the screen to recieve the event
+ @param aWhen the point in time the event need not occur before
+ */
+ virtual void ScheduleAnimation(MWsScreen& aScreen,const TTime& aWhen) = 0;
+ /** Called if a screen determines that it no longer needs to schedule any animation
+ @param aScreen the screen not needing to receive any animation events
+ */
+ virtual void UnscheduleAnimation(MWsScreen& aScreen) = 0;
+ /** Called to schedule the redrawing of all screens containing this graphic.
+ The redrawing of affected screens can be deferred by the scheduler.
+ @param aId the ID of the graphic to be redrawn. The graphic itself need not exist
+ (e.g. it has just been deleted, hence the need to redraw all potentially affected screens). */
+ virtual void Invalidate(const TGraphicDrawerId& aId) = 0;
+ /** Called when the Window Server receives a TRawEvent::EInactive event, to signal power-saving */
+ virtual void OnInactive() = 0;
+ /** Called when the Window Server receives a TRawEvent::EActive event, to signal screen back on */
+ virtual void OnActive() = 0;
+
+ /** Called to schedule a redraw for a screen which is out of date
+ A screen may be scheduled to redraw several times without actually receiving aredraw event from the scheduler
+ If this request is ignored then the screen will be draw incorrectly untill a such a request is not ignored.
+ @param aScreen the screen to recieve the event
+ @param aWhen the point in time the event need not occur before
+ */
+ virtual void ScheduleRedraw(MWsScreen& aScreen,const TTime& aWhen) = 0;
+ /** Called to force a previously scheduled redraw for a screen to happen immediately.
+ Used when we are about to loose our ability to perform the redraw correctly.
+ @param aScreen the screen to recieve the event
+ */
+ virtual void DoRedrawNow(MWsScreen& aScreen) = 0;
+
+ /** Interface to be implemented by callers of the asynchronous overload of
+ DoRedrawNow, which takes a reference to this interface as argument to be able
+ to give a callback once the screen update has been completed.
+ */
+ class MScreenUpdateObserver
+ {
+ public:
+ /** Callback when an asynchronous DoRedrawNow has been completed. */
+ virtual void ScreenUpdateComplete(TInt aResult) = 0;
+ };
+
+ /** Called to force a previously scheduled redraw for a screen to happen immediately.
+ @param aScreen the screen to recieve the event
+ @param aObserver reference which will receive a notification when the screen has been updated
+ */
+ virtual void DoRedrawNow(MWsScreen& aScreen, MScreenUpdateObserver& aObserver) = 0;
+
+ /** Callback to use if aObserver gets deleted before screen update takes place. */
+ virtual void ClearScreenUpdateObserver(const MScreenUpdateObserver& aObserver) = 0;
+
+protected:
+ IMPORT_C void Animate(MWsScreen& aScreen);
+ IMPORT_C void Animate(MWsScreen& aScreen, TRequestStatus* aFinished);
+ IMPORT_C void Redraw(MWsScreen& aScreen);
+ IMPORT_C TBool RedrawInvalid(MWsScreen& aScreen,const TArray<TGraphicDrawerId>& aInvalid);
+ };
+
+#endif
\ No newline at end of file
--- a/windowing/windowserver/inc/W32STD.H Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/inc/W32STD.H Tue Jun 01 15:04:40 2010 +0100
@@ -1230,7 +1230,15 @@
void RefreshWindowSizeCache(const TSize& aNewSize) const;
TInt CachedWindowSize(TSize& aSize) const;
void DestroyWindowSizeCacheEntry();
-
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ void EnableWindowNativeSizeCacheL();
+ TBool WindowNativeSizeCacheEnabled() const;
+ TInt SetWindowNativeSize(const TSize& aNativeSize) const;
+ TInt WindowNativeSize(TSize& aSize) const;
+ void DestroyWindowNativeSizeCacheEntry();
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+
protected:
TInt32 iWsHandle; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
RWsBuffer *iBuffer; /**< WARNING: Member variable for internal use ONLY. Compatibility is not guaranteed in future releases. Please access using the provided get/set APIs only. */
@@ -1712,6 +1720,8 @@
IMPORT_C void SetSurfaceTransparency(TBool aSurfaceTransparency);
IMPORT_C TRgb KeyColor() const;
IMPORT_C void EnableAdvancedPointers();
+ IMPORT_C TInt FixNativeOrientation();
+ IMPORT_C TSize SizeForEgl() const;
protected:
TInt construct(const RWindowTreeNode &parent,TUint32 aHandle, TInt aType, TDisplayMode aDisplayMode);
};
--- a/windowing/windowserver/inc/WSGRAPHICDRAWERARRAY.H Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/inc/WSGRAPHICDRAWERARRAY.H Tue Jun 01 15:04:40 2010 +0100
@@ -29,7 +29,7 @@
*/ {
public:
//Placeholder for transacion record
- class XRollBackBase;
+ struct XRollBackBase;
//transactional manipulation methods that are deprecated because they leak
IMPORT_C void AddLC(CWsGraphicDrawer* aDrawer);
--- a/windowing/windowserver/inc/advancedpointerevent.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/inc/advancedpointerevent.h Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1994-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1994-2010 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"
@@ -16,6 +16,17 @@
#ifndef ADVANCEDPOINTEREVENT_H
#define ADVANCEDPOINTEREVENT_H
+#ifndef __E32STD_H__
+#include <e32std.h>
+#endif
+#ifndef __E32KEYS_H__
+#include <e32keys.h>
+#endif
+#ifndef POINTEREVENT_H
+#include <pointerevent.h>
+#endif
+
+
/** Subclass of TPointerEvent created in order to maintain binary compatibility while
extending TPointerEvent with new data:
(1) pointer number of the pointer whose state change is described by the event,
@@ -140,4 +151,7 @@
{
return (iModifiers&EModifierAdvancedPointerEvent ? static_cast<const TAdvancedPointerEvent*>(this) : NULL);
}
+
+#include "advancedpointerevent.inl"
+
#endif /* ADVANCEDPOINTEREVENT_H */
--- a/windowing/windowserver/inc/advancedpointerevent.inl Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/inc/advancedpointerevent.inl Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -18,7 +18,6 @@
#ifndef ADVANCEDPOINTEREVENT_INL_
#define ADVANCEDPOINTEREVENT_INL_
-#include <w32std.h>
/** Does basic initialisation of a TAdvancedPointerEvent
@internalTechnology */
--- a/windowing/windowserver/minigui/group/bld.inf Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/minigui/group/bld.inf Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -19,4 +19,7 @@
PRJ_EXPORTS
econs_wserv.iby /epoc32/rom/include/econs_wserv.iby
minigui.oby /epoc32/rom/include/minigui.oby
-wsini_minigui.ini z:/
\ No newline at end of file
+wsini_minigui.ini z:/
+minigui-stripped.oby /epoc32/rom/include/minigui-stripped.oby
+minigui_syborg.oby /epoc32/rom/include/minigui_syborg.oby
+wsini_minigui-stripped.ini z:/
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/minigui/group/minigui-stripped.oby Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,106 @@
+/*
+* 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:
+* iwanj@users.sourceforge.net - modified to make it work for Symbian^3.
+* MattD <mattd@symbian.org> - renamed file and target to minigui-stripped so we can have both present and build seperate roms.
+*
+* Description:
+* This OBY File is used to build miniGUI ROM Images.
+*/
+
+#ifndef __MINIGUI_OBY__
+#define __MINIGUI_OBY__
+
+define OBEYFILE minigui-stripped
+define ROMDATE ##TODAY##
+
+#define _ARMV5
+#define SYMBIAN_BASE_USE_GCE
+#define SYMBIAN_EXCLUDE_SCDV
+#define USE_CUSTOM_MMC_PARTITION
+
+// Kernel
+//
+#include <header.iby>
+#include <base.iby>
+
+// NGA stack
+//
+#define SYMBIAN_GRAPHICS_USE_GCE
+#define SYMBIAN_GRAPHICS_USE_OPENWF
+#define OPENWFCLIB_DRV <openwfc_ref.iby>
+#define EGL_DRV <egl_ref.iby>
+
+#include <gdi.iby>
+#include <bitgdi.iby>
+#include <fntstore.iby>
+#include <fbserv.iby>
+#include <iculayoutengine.iby>
+#include <freetype.iby>
+#include <directgdi.iby>
+#include <wserv.iby>
+#include <wslog.iby>
+#include <econs_wserv.iby>
+#include <surfaceupdate.iby>
+#include <surfacemanager.iby>
+file=\epoc32\release\ARMV5\urel\_generic_scdv.dll sys\bin\scdv.dll
+
+data=DATAZ_\wsini_minigui.ini \system\data\wsini.ini
+
+// miniGUI shell
+//
+#include <eshell.iby>
+
+// And the hell breaks loose :)
+// Let's just add bare minimum items enough to get graphics stack up and running
+// wserv wants ecom
+// libwfc wants openenv
+// freetype wants stdlib
+// openenv backend wants esock etc etc
+//
+#include <bafl.iby>
+#include <ecom.iby>
+#include <store.iby>
+#include <stdlib.iby>
+#include <openenv.iby>
+
+#include <c32.iby>
+#include <ecuart.iby>
+#include <irda.iby>
+#include <bluetooth.iby>
+#include <inetprotutil.iby>
+#include <network.iby>
+#include <dial.iby>
+#include <crypto.iby>
+#include <certman.iby>
+#include <logeng.iby>
+#include <filetokens.iby>
+#include <asnpkcs.iby>
+#include <emime.iby>
+#include <scs.iby>
+#include <cflog.iby>
+
+file=\epoc32\release\ARMV5\urel\abclient.dll sys\bin\abclient.dll
+file=\epoc32\release\ARMV5\urel\Http.dll sys\bin\http.dll
+file=\epoc32\release\ARMV5\urel\Httputils.dll sys\bin\httputils.dll
+file=\epoc32\release\ARMV5\urel\securitymanager.dll sys\bin\securitymanager.dll
+file=\epoc32\release\ARMV5\urel\ocspsupportclient.dll sys\bin\ocspsupportclient.dll
+file=\epoc32\release\ARMV5\urel\siscontroller.dll sys\bin\siscontroller.dll
+file=\epoc32\release\ARMV5\urel\devinfosupportclient.dll sys\bin\devinfosupportclient.dll
+file=\epoc32\release\ARMV5\urel\uissclient.dll sys\bin\uissclient.dll
+file=\epoc32\release\ARMV5\urel\devinfosupportcommon.dll sys\bin\devinfosupportcommon.dll
+file=\epoc32\release\ARMV5\urel\ipcstream.dll sys\bin\ipcstream.dll
+
+// cenrep file for timezone server database
+data=\epoc32\data\z\private\10202be9\1020383e.txt private\10202be9\1020383e.txt
+
+#endif /* __MINIGUI_OBY__ */
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/minigui/group/minigui_syborg.oby Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,114 @@
+/*
+* 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:
+* iwanj@users.sourceforge.net - modified to make it work for Symbian^3.
+*
+* Description:
+* This OBY File is used to build miniGUI ROM Images.
+*/
+
+#ifndef __MINIGUI_OBY__
+#define __MINIGUI_OBY__
+
+define OBEYFILE minigui
+define ROMDATE ##TODAY##
+
+#define _ARMV5
+#define SYMBIAN_BASE_USE_GCE
+#define SYMBIAN_EXCLUDE_SCDV
+#undef SYMBIAN_GRAPHICS_ADAPTATION
+#define SYMBIAN_GRAPHICS_ADAPTATION SGA_SW
+#define SYMBIAN_GRAPHICS_USE_OPENWF
+#define SYMBIAN_GRAPHICS_USE_EGL_REF
+#define OPENWFCLIB_DRV <openwfc_ref.iby>
+#define __SYBORG__
+
+
+// Kernel
+//
+#include <header.iby>
+#include <base.iby>
+
+// NGA stack
+//
+#define SYMBIAN_GRAPHICS_USE_GCE
+#define SYMBIAN_GRAPHICS_USE_OPENWF
+
+#include <gdi.iby>
+#include <bitgdi.iby>
+#include <fntstore.iby>
+#include <fbserv.iby>
+#include <iculayoutengine.iby>
+#include <freetype.iby>
+#include <directgdi.iby>
+#include <wserv.iby>
+#include <econs_wserv.iby>
+#include <surfaceupdate.iby>
+#include <surfacemanager.iby>
+file=\epoc32\release\ARMV5\urel\_generic_scdv.dll sys\bin\scdv.dll
+
+data=DATAZ_\wsini_minigui.ini \system\data\wsini.ini
+
+// miniGUI shell
+//
+#include <eshell.iby>
+
+// And the hell breaks loose :)
+// Let's just add bare minimum items enough to get graphics stack up and running
+// wserv wants ecom
+// libwfc wants openenv
+// freetype wants stdlib
+// openenv backend wants esock etc etc
+//
+#include <bafl.iby>
+#include <ecom.iby>
+#include <store.iby>
+#include <stdlib.iby>
+#include <openenv.iby>
+
+#include <c32.iby>
+#include <ecuart.iby>
+#include <irda.iby>
+#include <bluetooth.iby>
+#include <inetprotutil.iby>
+#include <network.iby>
+#include <dial.iby>
+#include <crypto.iby>
+#include <certman.iby>
+#include <logeng.iby>
+#include <filetokens.iby>
+#include <asnpkcs.iby>
+#include <emime.iby>
+#include <scs.iby>
+#include <cflog.iby>
+
+file=\epoc32\release\ARMV5\urel\abclient.dll sys\bin\abclient.dll
+file=\epoc32\release\ARMV5\urel\Http.dll sys\bin\http.dll
+file=\epoc32\release\ARMV5\urel\Httputils.dll sys\bin\httputils.dll
+file=\epoc32\release\ARMV5\urel\securitymanager.dll sys\bin\securitymanager.dll
+file=\epoc32\release\ARMV5\urel\ocspsupportclient.dll sys\bin\ocspsupportclient.dll
+file=\epoc32\release\ARMV5\urel\siscontroller.dll sys\bin\siscontroller.dll
+file=\epoc32\release\ARMV5\urel\devinfosupportclient.dll sys\bin\devinfosupportclient.dll
+file=\epoc32\release\ARMV5\urel\uissclient.dll sys\bin\uissclient.dll
+file=\epoc32\release\ARMV5\urel\devinfosupportcommon.dll sys\bin\devinfosupportcommon.dll
+file=\epoc32\release\ARMV5\urel\ipcstream.dll sys\bin\ipcstream.dll
+file=\epoc32\release\ARMV5\urel\usbcsc_bil.dll sys\bin\usbcsc_bil.dll
+file=\epoc32\release\ARMV5\urel\usbdescriptors.dll sys\bin\usbdescriptors.dll
+file=\epoc32\release\ARMV5\urel\usbhostmsclient.dll sys\bin\usbhostmsclient.dll
+file=\epoc32\release\ARMV5\urel\usbdi_utils.dll sys\bin\usbdi_utils.dll
+file=\epoc32\release\ARMV5\urel\iscapi.dll sys\bin\iscapi.dll
+file=\epoc32\release\ARMV5\urel\isimessage.dll sys\bin\isimessage.dll
+
+// cenrep file for timezone server database support
+data=\epoc32\data\z\private\10202be9\1020383e.txt private\10202be9\1020383e.txt
+
+#endif /* __MINIGUI_OBY__ */
Binary file windowing/windowserver/minigui/group/wsini_minigui-stripped.ini has changed
--- a/windowing/windowserver/nga/CLIENT/CLIENT.H Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/CLIENT/CLIENT.H Tue Jun 01 15:04:40 2010 +0100
@@ -84,6 +84,13 @@
inline void RefreshWindowSizeCache(TInt aHandle, const TSize& aNewSize);
inline TInt CachedWindowSize(TInt aHandle, TSize& aSize);
inline void DestroyWindowSizeCacheEntry(TInt aHandle);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ void EnableWindowNativeSizeCacheL();
+ inline TBool WindowNativeSizeCacheEnabled() const;
+ inline TInt SetWindowNativeSize(TInt aHandle, const TSize& aNativeSize);
+ inline TInt WindowNativeSize(TInt aHandle, TSize& aSize);
+ inline void DestroyWindowNativeSizeCacheEntry(TInt aHandle);
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
private:
TInt DoWrite(TInt aHandle, TUint aOpcode, TBool aFlush, const TIpcArgs* aIpcArgs, const TAny* aData1=NULL, TInt aLength1=0, const TAny* aData2=NULL, TInt aLength2=0);
@@ -116,6 +123,9 @@
};
RHashMap<TInt, TWindowSizeCacheEntry>* iWindowSizeCache;
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ RHashMap<TInt, TWindowSizeCacheEntry>* iWindowNativeSizeCache;
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
};
@@ -185,5 +195,45 @@
__ASSERT_DEBUG(err == KErrNone || err == KErrNotFound, Assert(EW32AssertWindowSizeCacheFailure));
}
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+inline TBool RWsBuffer::WindowNativeSizeCacheEnabled() const
+ {
+ return iWindowNativeSizeCache ? ETrue : EFalse;
+ }
+
+inline TInt RWsBuffer::SetWindowNativeSize(TInt aHandle, const TSize& aNativeSize)
+ {
+ __ASSERT_ALWAYS(iWindowNativeSizeCache != NULL, Assert(EW32AssertWindowNativeSizeCacheFailure));
+ RWsBuffer::TWindowSizeCacheEntry* entry = iWindowNativeSizeCache->Find(aHandle);
+ __ASSERT_ALWAYS(!entry, Assert(EW32AssertWindowNativeSizeCacheFailure));
+ return iWindowNativeSizeCache->Insert(aHandle, RWsBuffer::TWindowSizeCacheEntry(aNativeSize));
+ }
+
+inline TInt RWsBuffer::WindowNativeSize(TInt aHandle, TSize& aSize)
+ {
+ __ASSERT_ALWAYS(iWindowNativeSizeCache != NULL, Assert(EW32AssertWindowNativeSizeCacheFailure));
+ RWsBuffer::TWindowSizeCacheEntry* entry = iWindowNativeSizeCache->Find(aHandle);
+ if (entry)
+ {
+ aSize = entry->iSize;
+ return KErrNone;
+ }
+ else
+ {
+ return KErrNotFound;
+ }
+ }
+
+inline void RWsBuffer::DestroyWindowNativeSizeCacheEntry(TInt aHandle)
+ {
+ __ASSERT_ALWAYS(iWindowNativeSizeCache != NULL, Assert(EW32AssertWindowNativeSizeCacheFailure));
+ TInt err = iWindowNativeSizeCache->Remove(aHandle);
+ // If there is a window size cache entry, then err == KErrNone.
+ // Otherwise, there isn't a size cache entry, and err == KErrNotFound.
+ __ASSERT_DEBUG(err == KErrNone || err == KErrNotFound, Assert(EW32AssertWindowNativeSizeCacheFailure));
+ }
+
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+
#endif
--- a/windowing/windowserver/nga/CLIENT/MWSCLI.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/CLIENT/MWSCLI.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -142,3 +142,31 @@
{
iBuffer->DestroyWindowSizeCacheEntry(iWsHandle);
}
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+void MWsClientClass::EnableWindowNativeSizeCacheL()
+ {
+ return iBuffer->EnableWindowNativeSizeCacheL();
+ }
+
+TBool MWsClientClass::WindowNativeSizeCacheEnabled() const
+ {
+ return iBuffer->WindowNativeSizeCacheEnabled();
+ }
+
+TInt MWsClientClass::SetWindowNativeSize(const TSize& aNativeSize) const
+ {
+ return iBuffer->SetWindowNativeSize(iWsHandle,aNativeSize);
+ }
+
+TInt MWsClientClass::WindowNativeSize(TSize& aSize) const
+ {
+ return iBuffer->WindowNativeSize(iWsHandle, aSize);
+ }
+
+void MWsClientClass::DestroyWindowNativeSizeCacheEntry()
+ {
+ iBuffer->DestroyWindowNativeSizeCacheEntry(iWsHandle);
+ }
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+
--- a/windowing/windowserver/nga/CLIENT/RBUFFER.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/CLIENT/RBUFFER.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -44,6 +44,9 @@
#endif
iBuf(NULL,0,0), iNext(NULL), iPreviousHandle(0), iBufSize(0), iMaxBufSize(EMinBufferSize),
iDirectAcessCount(0), iInvalidBitmapArray(EFalse), iWindowSizeCache(NULL)
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+, iWindowNativeSizeCache(NULL)
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
{
}
@@ -100,6 +103,14 @@
delete iWindowSizeCache;
iWindowSizeCache = NULL;
}
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ if (iWindowNativeSizeCache)
+ {
+ iWindowNativeSizeCache->Close();
+ delete iWindowNativeSizeCache;
+ iWindowNativeSizeCache = NULL;
+ }
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
}
void RWsBuffer::Destroy()
@@ -463,3 +474,14 @@
iWindowSizeCache = new (ELeave) RHashMap<TInt, TWindowSizeCacheEntry>();
}
}
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+void RWsBuffer::EnableWindowNativeSizeCacheL()
+ {
+ if (iWindowNativeSizeCache == NULL)
+ {
+ iWindowNativeSizeCache = new (ELeave) RHashMap<TInt, TWindowSizeCacheEntry>();
+ }
+ }
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+
--- a/windowing/windowserver/nga/CLIENT/RSCRDEV.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/CLIENT/RSCRDEV.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -254,6 +254,11 @@
TInt64 twips=aTwips;
TSize displaySizeInPixels = DisplaySizeInPixels();
TSize physicalScreenSizeInTwips = PhysicalScreenSizeInTwips();
+ if (displaySizeInPixels.iWidth <= 0 ||
+ physicalScreenSizeInTwips.iWidth <= 0)
+ {
+ return 0;
+ }
twips=(twips*displaySizeInPixels.iWidth+(physicalScreenSizeInTwips.iWidth/2))/physicalScreenSizeInTwips.iWidth;
return I64INT(twips);
}
@@ -267,6 +272,11 @@
TInt64 twips=aTwips;
TSize displaySizeInPixels = DisplaySizeInPixels();
TSize physicalScreenSizeInTwips = PhysicalScreenSizeInTwips();
+ if (displaySizeInPixels.iHeight <= 0 ||
+ physicalScreenSizeInTwips.iHeight <= 0)
+ {
+ return 0;
+ }
twips=(twips*displaySizeInPixels.iHeight+(physicalScreenSizeInTwips.iHeight/2))/physicalScreenSizeInTwips.iHeight;
return I64INT(twips);
}
@@ -280,6 +290,11 @@
TInt64 pixels=aPixels;
TSize displaySizeInPixels = DisplaySizeInPixels();
TSize physicalScreenSizeInTwips = PhysicalScreenSizeInTwips();
+ if (displaySizeInPixels.iWidth <= 0 ||
+ physicalScreenSizeInTwips.iWidth <= 0)
+ {
+ return 0;
+ }
pixels=(pixels*physicalScreenSizeInTwips.iWidth+(displaySizeInPixels.iWidth/2))/displaySizeInPixels.iWidth;
return I64INT(pixels);
}
@@ -294,6 +309,11 @@
TInt64 pixels=aPixels;
TSize displaySizeInPixels = DisplaySizeInPixels();
TSize physicalScreenSizeInTwips = PhysicalScreenSizeInTwips();
+ if (displaySizeInPixels.iHeight <= 0 ||
+ physicalScreenSizeInTwips.iHeight <= 0)
+ {
+ return 0;
+ }
pixels=(pixels*physicalScreenSizeInTwips.iHeight+(displaySizeInPixels.iHeight/2))/displaySizeInPixels.iHeight;
return I64INT(pixels);
}
--- a/windowing/windowserver/nga/CLIENT/RWINDOW.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/CLIENT/RWINDOW.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -170,6 +170,12 @@
{
DestroyWindowSizeCacheEntry();
}
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ if (WindowNativeSizeCacheEnabled())
+ {
+ DestroyWindowNativeSizeCacheEntry();
+ }
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
Write(EWsWinOpFree);
}
iWsHandle=NULL;
@@ -840,6 +846,31 @@
}
}
+EXPORT_C TSize RWindowBase::SizeForEgl() const
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+/**
+@internalAll
+Disclaimer - this API is internal and is subject to change
+@prototype */
+ {
+ TSize size;
+ if (WindowNativeSizeCacheEnabled() && WindowNativeSize(size) == KErrNone)
+ {
+ return size;
+ }
+ else
+ {
+ return Size();
+ }
+ }
+#else
+ {
+ // API should not be used if macro undefined.
+ ASSERT(0);
+ return TSize();
+ }
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+
EXPORT_C void RWindowBase::SetPosition(const TPoint &aPos)
/** Sets the position of a window relative to its parent.
@@ -1172,9 +1203,7 @@
__ASSERT_DEBUG(!aRegion.CheckError(),Panic(EW32PanicInvalidRegion));
const TInt regionCount=aRegion.Count();
TPtrC8 ptrRect(reinterpret_cast<const TUint8*>(aRegion.RectangleList()),regionCount*sizeof(TRect));
-// return(WriteReplyByProvidingRemoteReadAccess(®ionCount,sizeof(regionCount),&ptrRect,EWsWinOpSetShape));
- RDebug::Printf("Bug 1863 - RWindowBase::SetShape() deprecated and non-functional. Disabling the panic.");
- return KErrNone;
+ return(WriteReplyByProvidingRemoteReadAccess(®ionCount,sizeof(regionCount),&ptrRect,EWsWinOpSetShape));
}
/**
@@ -1379,6 +1408,48 @@
Write(EWsWinOpEnableAdvancedPointers);
}
+/**
+@internalAll
+Disclaimer - this API is internal and is subject to change
+@prototype */
+EXPORT_C TInt RWindowBase::FixNativeOrientation()
+#if !defined(SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION) || defined (SYMBIAN_GRAPHICS_BUILD_OPENWF_WSERV) || defined (__WINS__)
+ {
+ return KErrNotSupported;
+ }
+#else
+ {
+ TInt err = KErrNone;
+ if (!WindowNativeSizeCacheEnabled())
+ {
+ TRAP(err, EnableWindowNativeSizeCacheL());
+ if (err != KErrNone)
+ {
+ return err;
+ }
+ }
+
+ const CFbsBitGc::TGraphicsOrientation orientation = static_cast<CFbsBitGc::TGraphicsOrientation>(WriteReply(EWsWinOpFixNativeOrientation));
+ switch (orientation)
+ {
+ case CFbsBitGc::EGraphicsOrientationNormal:
+ case CFbsBitGc::EGraphicsOrientationRotated180:
+ err = SetWindowNativeSize(Size());
+ break;
+ case CFbsBitGc::EGraphicsOrientationRotated90 :
+ case CFbsBitGc::EGraphicsOrientationRotated270:
+ {
+ TSize size = Size();
+ err = SetWindowNativeSize(TSize(size.iHeight, size.iWidth));
+ }
+ break;
+ default:
+ Assert(EW32AssertInvalidOrientation);
+ }
+ return err;
+ }
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+
EXPORT_C TInt RWindowBase::AllocPointerMoveBuffer(TInt aMaxNumPoints, TUint aFlags)
/** Allocates a buffer for storing pointer movements.
--- a/windowing/windowserver/nga/CLIENT/RWS.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/CLIENT/RWS.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -2308,9 +2308,11 @@
}
EXPORT_C void RWsSession::ClearAllRedrawStores()
-/** Clear the redraw store for all windows in the system
-By default Windows will recorded the drawing commands used during a redraw and use them latter if the window needs to be redrawn.
-Calling this function will cause all these stores to be thrown away redraw will then be sent to all window, visible windows will recieve them first.
+/** Clear the redraw store for all windows in the system.
+By default Windows will record the drawing commands used during a redraw and re-use them later if the window needs to be redrawn.
+Calling this function will cause all these server-side stores to be thrown away, redraw requests will then be sent to all client-side windows. Visible windows will receive them first.
+
+In most cases you should be using RWindow::ClearRedrawStore instead of this function.
This function always causes a flush of the window server buffer.*/
{
--- a/windowing/windowserver/nga/CLIENT/advancedpointerevent.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/CLIENT/advancedpointerevent.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -17,7 +17,7 @@
//
#include "W32STD.H"
-#include "advancedpointerevent.inl"
+
EXPORT_C TInt TAdvancedPointerEvent::DoGetPointerNumber() const
/** Gets the pointer number for the event
--- a/windowing/windowserver/nga/SERVER/EVENT.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/EVENT.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -32,6 +32,7 @@
#include "pointer.h"
#include "debugbar.h"
#include "advancedpointereventhelper.h"
+#include "Graphics/wsgraphicdrawerinternal.h"
GLREF_D CDebugLogBase *wsDebugLog;
@@ -1020,7 +1021,9 @@
case TRawEvent::EKeyDown:
{
_LIT(KWSERVDebugLogKeyDownArrival,"Key down arrives %d");
- if(CDebugBar* dbg = CWsTop::Screen()->DebugBar())
+ CScreen* screen = CWsTop::Screen();
+ WS_ASSERT_ALWAYS(screen, EWsPanicNoScreen);
+ if(CDebugBar* dbg = screen->DebugBar())
dbg->OnKeyEvent();
if (wsDebugLog)
wsDebugLog->MiscMessage(CDebugLogBase::ELogEverything,KWSERVDebugLogKeyDownArrival,aRawEvent.ScanCode());
@@ -1036,7 +1039,9 @@
case TRawEvent::EKeyUp:
{
_LIT(KWSERVDebugLogKeyUpArrival,"Key up arrives %d");
- if(CDebugBar* dbg = CWsTop::Screen()->DebugBar())
+ CScreen* screen = CWsTop::Screen();
+ WS_ASSERT_ALWAYS(screen, EWsPanicNoScreen);
+ if(CDebugBar* dbg = screen->DebugBar())
dbg->OnKeyEvent();
if (wsDebugLog)
wsDebugLog->MiscMessage(CDebugLogBase::ELogEverything,KWSERVDebugLogKeyUpArrival,aRawEvent.ScanCode());
--- a/windowing/windowserver/nga/SERVER/POINTER.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/POINTER.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -54,6 +54,9 @@
CCirBuf<TPoint>* CWsPointerBuffer::iPointerBuffer=NULL;
TSglQue<CWsPointerBuffer> CWsPointerBuffer::iList(_FOFF(CWsPointerBuffer,iQue));
TInt TWsPointer::iYOffset;
+#if defined(__WINS__)
+TBool TWsPointer::iEmulatorRotatePointerCoords;
+#endif
static _LIT_SECURITY_POLICY_C1(KSecurityPolicy_SwEvent,ECapabilitySwEvent);
@@ -70,8 +73,17 @@
{
iYOffset = 0;
}
-
- iRootWindow = CWsTop::Screen()->RootWindow();
+
+#if defined(__WINS__)
+ //An emulator may or may not deploy a renderchain or displaydriver that supports rotated drawing.
+ //On a real device target the coordinate system is always rotated together with wserv's screendevice.
+ _LIT( KWSERVIniFileVarEmulatorRotPointCoords, "EMULATOR_ROTATE_POINTER_COORDS");
+ iEmulatorRotatePointerCoords = WsIniFile->FindVar(KWSERVIniFileVarEmulatorRotPointCoords);
+#endif
+
+ const CScreen* screen = CWsTop::Screen();
+ WS_ASSERT_ALWAYS(screen, EWsPanicNoScreen);
+ iRootWindow = screen->RootWindow();
TMachineInfoV1Buf machineInfo;
UserHal::MachineInfo(machineInfo);
@@ -679,23 +691,17 @@
}
else
{
- CScreen* screen=iRootWindow->Screen();
#if !defined(__WINS__)
- TSize screenSize=screen->SizeInPixels()-TSize(1,1); //This is in the current rotation
- switch (screen->Orientation())
+ TranslateCoordsOnRotation(xy);
+ #else
+ if(iEmulatorRotatePointerCoords)
{
- case CFbsBitGc::EGraphicsOrientationRotated90:
- xy.SetXY(xy.iY,screenSize.iHeight-xy.iX);
- break;
- case CFbsBitGc::EGraphicsOrientationRotated180:
- xy=-(xy-screenSize);
- break;
- case CFbsBitGc::EGraphicsOrientationRotated270:
- xy.SetXY(screenSize.iWidth-xy.iY,xy.iX);
- break;
- default:; //To stop warning
+ //emulators that support rotated drawing and touch may want to enable
+ //rotation of pointer events in wsini.
+ TranslateCoordsOnRotation(xy);
}
#endif
+ CScreen* screen=iRootWindow->Screen();
ShiftYCoordinate(xy.iY);
// Move the raw event position by shifting it by Origin and scale
xy=screen->PhysicalToLogical(xy);
@@ -707,6 +713,25 @@
return ETrue;
}
+void TWsPointer::TranslateCoordsOnRotation(TPoint& aPoint)
+ {
+ CScreen* screen=iRootWindow->Screen();
+ TSize screenSize=screen->SizeInPixels()-TSize(1,1); //This is in the current rotation
+ switch (screen->Orientation())
+ {
+ case CFbsBitGc::EGraphicsOrientationRotated90:
+ aPoint.SetXY(aPoint.iY,screenSize.iHeight-aPoint.iX);
+ break;
+ case CFbsBitGc::EGraphicsOrientationRotated180:
+ aPoint=-(aPoint-screenSize);
+ break;
+ case CFbsBitGc::EGraphicsOrientationRotated270:
+ aPoint.SetXY(screenSize.iWidth-aPoint.iY,aPoint.iX);
+ break;
+ default:; //To stop warning
+ }
+ }
+
/**
* Validates events sent to the Window Server by its Client (Anim or Window Group).
* May overwrite aRawEvent's Z coordinate and/or pointer number if Client or digitizer driver
--- a/windowing/windowserver/nga/SERVER/REDRAWQ.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/REDRAWQ.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -170,7 +170,9 @@
TInt invalidWindows = 0;
for (TInt screenNo = 0; screenNo < CWsTop::NumberOfScreens(); ++screenNo)
{
- CWsRootWindow* rootWindow = CWsTop::Screen(screenNo)->RootWindow();
+ const CScreen* screen = CWsTop::Screen(screenNo);
+ WS_ASSERT_ALWAYS(screen, EWsPanicNoScreen);
+ CWsRootWindow* rootWindow = screen->RootWindow();
for (CWsWindowGroup *groupWin = rootWindow->Child(); groupWin; groupWin = groupWin->NextSibling())
{
if (groupWin->WsOwner() == iWsOwner)
--- a/windowing/windowserver/nga/SERVER/SERVER.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/SERVER.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -19,7 +19,6 @@
#include "panics.h"
#include "wstop.h"
#include "EVENT.H"
-#include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
#include <bitdraw.h>
#include <hal.h>
#include "inifile.h"
@@ -107,6 +106,8 @@
void OnActive();
void ScheduleRedraw(MWsScreen& aScreen,const TTime& aWhen);
void DoRedrawNow(MWsScreen& aScreen);
+ void DoRedrawNow(MWsScreen& aScreen, MWsAnimationScheduler::MScreenUpdateObserver& aObserver);
+ void ClearScreenUpdateObserver(const MWsAnimationScheduler::MScreenUpdateObserver& aObserver);
private:
static TBool OnIdleCallBack(TAny* aAny);
void ScheduleUpdate (TInt aScreenNumber, TBool aForce);
@@ -142,6 +143,8 @@
~CScreenState();
void SetActive ();
+ void WaitForRedraws(MWsAnimationScheduler::MScreenUpdateObserver& aObserver, TInt aNumRedraws);
+ void ClearScreenUpdateObserver(const MWsAnimationScheduler::MScreenUpdateObserver& aObserver);
CPeriodic* iUpdateOn;
TTime iExpectedTickTime;
TScreenUpdateDetails iScreenUpdateDetails;
@@ -151,6 +154,8 @@
private:
CScreenState (CDefaultAnimationScheduler* aScheduler, TInt aScreenOrdinal);
void ConstructL ();
+ void ReleaseRemainingClients();
+ void ReleaseClientsWaitingFor(TUint aCurrentFrame);
void RunL();
void DoCancel()
@@ -158,6 +163,18 @@
TRequestStatus* tmpTRS = &iStatus;
User::RequestComplete(tmpTRS, KErrNone);
};
+ class TWaitingClient
+ {
+ public:
+ TWaitingClient(MWsAnimationScheduler::MScreenUpdateObserver& aObserver, TInt aTargetFrame)
+ : iObserver(aObserver), iTargetFrame(aTargetFrame)
+ {
+ }
+ MWsAnimationScheduler::MScreenUpdateObserver& iObserver;
+ TUint iTargetFrame;
+ };
+ TUint iFrameCount;
+ RArray<TWaitingClient> iWaitingClients;
};
// If using the default animation scheduler on a device, these two numbers may be worth tweaking in the inifile
@@ -275,6 +292,7 @@
void CWindowServer::CDefaultAnimationScheduler::CScreenState::ConstructL ()
{
iUpdateOn = CPeriodic::NewL(EComposeCompletePriority);
+ iWaitingClients.ReserveL(8);
CActiveScheduler::Add(this);
}
@@ -283,19 +301,91 @@
CActive::Cancel();
iInvalidated.Close();
delete iUpdateOn;
+ TInt i = iWaitingClients.Count();
+ while(i--)
+ {
+ iWaitingClients[i].iObserver.ScreenUpdateComplete(KErrAbort);
+ }
+ iWaitingClients.Close();
}
void CWindowServer::CDefaultAnimationScheduler::CScreenState::SetActive()
{
CActive::SetActive ();
}
-
+
+/**
+This function is called from CWsClient d'tor to make sure we will not hang on to any deleted objects.
+*/
+void CWindowServer::CDefaultAnimationScheduler::CScreenState::ClearScreenUpdateObserver(const MWsAnimationScheduler::MScreenUpdateObserver& aObserver)
+ {
+ const TInt count = iWaitingClients.Count();
+ for(TInt i = count-1 ; i >= 0; i--)
+ {
+ if( &aObserver == &(iWaitingClients[i].iObserver) )
+ {
+ TWaitingClient& client = iWaitingClients[i];
+ client.iObserver.ScreenUpdateComplete(KErrCancel);
+ iWaitingClients.Remove(i);
+ }
+ }
+ }
+
+void CWindowServer::CDefaultAnimationScheduler::CScreenState::WaitForRedraws(MWsAnimationScheduler::MScreenUpdateObserver& aObserver, TInt aNumRedraws)
+ {
+ const TUint targetFrame = iFrameCount + aNumRedraws;
+ TWaitingClient request(aObserver, targetFrame);
+ TInt err = iWaitingClients.Append(request);
+ if(err != KErrNone)
+ {
+ //If OOM and already have 8 waiting clients we will not accept a 9th client
+ aObserver.ScreenUpdateComplete(KErrNoMemory);
+ }
+ }
+
+void CWindowServer::CDefaultAnimationScheduler::CScreenState::ReleaseRemainingClients()
+ {
+ const TInt count = iWaitingClients.Count();
+ for(TInt i = count-1; i >= 0; i--)
+ {
+ TWaitingClient& client = iWaitingClients[i];
+ client.iObserver.ScreenUpdateComplete(KErrNone);
+ iWaitingClients.Remove(i);
+ }
+ }
+
+void CWindowServer::CDefaultAnimationScheduler::CScreenState::ReleaseClientsWaitingFor(TUint aCurrentFrame)
+ {
+ const TInt count = iWaitingClients.Count();
+ for(TInt i = count-1; i >= 0; i--)
+ {
+ TWaitingClient& client = iWaitingClients[i];
+ if(aCurrentFrame >= client.iTargetFrame)
+ {
+ client.iObserver.ScreenUpdateComplete(KErrNone);
+ iWaitingClients.Remove(i);
+ }
+ }
+ }
+
/**
-Invoked when the rendering pipline signals that it is ready to recieve updated.
+Invoked when the rendering pipline signals that it is ready to recieve updates.
*/
void CWindowServer::CDefaultAnimationScheduler::CScreenState::RunL()
{
+ iFrameCount++;
+
+ //Complete any clients waiting for this frame
+ ReleaseClientsWaitingFor(iFrameCount);
+
iScreenUpdateDetails.iScheduler->ProcessUpdateCompletion (iScreenUpdateDetails.iScreenNumber);
+
+ if(!IsActive())
+ {
+ //No further pending frames, release all remaining clients
+ ReleaseRemainingClients();
+ }
+
}
void CWindowServer::CDefaultAnimationScheduler::ProcessUpdateCompletion (TInt aScreenNumber)
@@ -310,6 +400,49 @@
ScheduleUpdate (aScreenNumber, ETrue);
}
+void CWindowServer::CDefaultAnimationScheduler::DoRedrawNow(MWsScreen& aScreen, MWsAnimationScheduler::MScreenUpdateObserver& aObserver)
+ {
+ TInt screenNumber = ScreenNumber (aScreen);
+ TInt redrawCount = 0;
+
+ // redrawCount is the number of times we should wait for redraws to complete.
+ // If a redraw is not currently active then we need to wait (at most) once: for
+ // any outstanding scheduled update to complete.
+ // If a redraw is currently active then we need to wait (at most) twice: once for
+ // the current update to complete, and once for any outstanding scheduled update to complete.
+ if (!iScreenState[screenNumber]->IsActive())
+ {
+ // No animation in progress, so force a redraw of due updates.
+ ScheduleUpdate(screenNumber, ETrue);
+
+ // If there is still nothing drawing, set redrawCount to zero to make sure we do not wait.
+ if (!iScreenState[screenNumber]->IsActive())
+ {
+ redrawCount = 0;
+ aObserver.ScreenUpdateComplete(KErrNone);
+ }
+ else
+ {
+ redrawCount = 1;
+ iScreenState[screenNumber]->WaitForRedraws(aObserver, redrawCount);
+ }
+ }
+ else
+ {
+ redrawCount = 2;
+ iScreenState[screenNumber]->WaitForRedraws(aObserver, redrawCount);
+ }
+ }
+
+void CWindowServer::CDefaultAnimationScheduler::ClearScreenUpdateObserver(const MWsAnimationScheduler::MScreenUpdateObserver& aObserver)
+ {
+ const TInt count = iScreenState.Count();
+ for(TInt screenNumber=0; screenNumber<count; screenNumber++)
+ {
+ iScreenState[screenNumber]->ClearScreenUpdateObserver(aObserver);
+ }
+ }
+
/**
Switch to deactivate animation or drawing (based on setting of iInactivityBehaviour).
See InvokeDueAnimation().
@@ -366,7 +499,7 @@
{
TInt screenNumber = ScreenNumber (aScreen);
TInt redrawCount = 0;
-
+
// redrawCount is the number of times we should wait for redraws to complete.
// If a redraw is not currently active then we need to wait (at most) once: for
// any outstanding scheduled update to complete.
@@ -735,8 +868,7 @@
iDrawerMasterIndex.Close();
delete iDefaultAnimationScheduler;
- iDefaultAnimationScheduler = NULL; //might be called from clients during server destruction
- iCustomAnimationScheduler = NULL; // not owned
+ iDefaultAnimationScheduler = NULL; //might be called from clients during server destruction
}
void CWindowServer::ConstructL()
@@ -799,40 +931,33 @@
/**
Custom Animation Scheduler
*/
-TBool CWindowServer::SetCustomAnimationScheduler(MWsAnimationScheduler* aScheduler)
+TBool CWindowServer::SetCustomAnimationScheduler(MWsAnimationScheduler* /*aScheduler*/)
{
- if(!iCustomAnimationScheduler && aScheduler)
- {
- iCustomAnimationScheduler = aScheduler;
- return ETrue;
- }
return EFalse;
}
TBool CWindowServer::HasCustomAnimationScheduler() const
{
- return !!iCustomAnimationScheduler;
+ return EFalse;
}
-TBool CWindowServer::ClearCustomAnimationScheduler(MWsAnimationScheduler* aCurrentScheduler)
+TBool CWindowServer::ClearCustomAnimationScheduler(MWsAnimationScheduler* /*aCurrentScheduler*/)
{
- if(iCustomAnimationScheduler && (iCustomAnimationScheduler == aCurrentScheduler))
- {
- iCustomAnimationScheduler = NULL;
- return ETrue;
- }
return EFalse;
}
MWsAnimationScheduler* CWindowServer::AnimationScheduler()
{
- if(iCustomAnimationScheduler)
- {
- return iCustomAnimationScheduler;
- }
return iDefaultAnimationScheduler;
}
+void CWindowServer::PrepareShutdown()
+ {
+ //Stop the renderloop, i.e. prevent any further calls to MWsAnimationScheduler::Animate()
+ delete iDefaultAnimationScheduler;
+ iDefaultAnimationScheduler = NULL;
+ }
+
TInt CWindowServer::RegisterEventHandler(CWsGraphicDrawer* aDrawer, MWsEventHandler* aHandler, TUint32 aEventMask)
{
if (!aDrawer || !aHandler || aEventMask==0)
--- a/windowing/windowserver/nga/SERVER/ScrDev.H Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/ScrDev.H Tue Jun 01 15:04:40 2010 +0100
@@ -88,11 +88,16 @@
inline TDisplayMode DefaultDisplayMode();
TUint ClientDevicePointer();
void TestScreenCaptureL(const TAny* aMessage);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize AppScreenSizeInPixels()const;
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
private:
void CopyScreenToBitmapL(const TRect &aRect, TInt aHandle);
void SetScreenDeviceValidStates(const DWsScreenDevice *aDevice);
void PanicCurrentClient(TClientPanic aPanic);
+#ifndef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
TSize AppScreenSizeInPixels()const;
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
TSize AppScreenSizeInTwips()const;
// Implementing MWsTestScreenCaptureUtils
--- a/windowing/windowserver/nga/SERVER/advancedpointereventhelper.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/advancedpointereventhelper.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -16,7 +16,7 @@
//
#include "advancedpointereventhelper.h"
-#include "advancedpointerevent.inl"
+
void TAdvancedPointerEventHelper::InitAdvancedPointerEvent(TWsEvent& aEvent, TPointerEvent::TType aType, TUint aModifiers, const TPoint3D &aPoint3D, TUint8 aPointerNumber)
{
--- a/windowing/windowserver/nga/SERVER/drawresource.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/drawresource.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -45,6 +45,7 @@
User::Leave(KErrArgument);
}
MWsScreen* pOI=screen;
+ WS_ASSERT_ALWAYS(pOI, EWsPanicNoScreen);
CWsDrawableSource::iDrawResource = pOI->ObjectInterface<MWsDrawableSourceProvider>();
if (!iDrawResource)
{
--- a/windowing/windowserver/nga/SERVER/openwfc/CLIENT.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/openwfc/CLIENT.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 1994-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 1994-2010 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"
@@ -51,7 +51,6 @@
CWsClient* CWsClient::iCurrentClient;
CWsObject* CWsClient::iDestObj;
const TUint8* CWsClient::iNextCmd;
-CIdle* CWsClient::iMoreCommands=NULL;
TUint CWsClient::iConnectionId = CDebugLogBase::EDummyConnectionId+1;
CArrayFixFlat<CWsClient::TWsCursorArrayItem>* CWsClient::iSystemPointerCursors = NULL;
@@ -549,7 +548,7 @@
// Dispatch the command to the WServ object that will process it
iDestObj->CommandL(opcode, cmdParams); // (call #5)
}
- while(iNextCmd<endCmd && !TWindowServerEvent::EventReceiver()->IsReadyToRun());
+ while(iNextCmd<endCmd);
}
@@ -569,8 +568,6 @@
if (iInternalFlags&(EFinishedProcessingCommands|EPanicClientAsSoonAsPossible))
CompleteMessage(iClientMessage,iReply); // (finish)
- else
- iMoreCommands->Start(TCallBack(CWsClient::DoContinueDeferredServiceOfCommandBuf,this)); // (call #3.1.1)
iCurrentClient=NULL;
#if defined(_DEBUG)
@@ -578,13 +575,6 @@
#endif
}
-TInt CWsClient::DoContinueDeferredServiceOfCommandBuf(TAny* aClient) // (step #3.1.1)
- {
- static_cast<CWsClient*>(aClient)->DoServiceCommandBuf(); // (call #3.1)
- return KErrNone;
- }
-
-
void CWsClient::ExecuteAsyncClientCommandL(TInt aOpcode, const RMessage2& aMessage) // (step #3.2)
{
switch(aOpcode)
@@ -1844,23 +1834,28 @@
void CWsClient::CompleteMessage(const RMessage2& aMessage,TInt aReason)
{
- WS_ASSERT_DEBUG(!aMessage.IsNull(),EWsPanicPanicFlagError);
- if (iInternalFlags&EPanicClientAsSoonAsPossible)
+ WS_ASSERT_DEBUG(!aMessage.IsNull(),EWsPanicCompleteNullMessage);
+ // This defensive check should not be necessary as aMessage should never
+ // be null, but in rare situations it is and WServ would die without this check.
+ if (!aMessage.IsNull())
{
- aMessage.Panic(KWSERVSessionPanicCategory,iPanicReason);
- iInternalFlags&=~EPanicClientAsSoonAsPossible;
- }
- else
- {
- if(!iResponseHandle)
- aMessage.Complete(aReason);
+ if (iInternalFlags&EPanicClientAsSoonAsPossible)
+ {
+ aMessage.Panic(KWSERVSessionPanicCategory,iPanicReason);
+ iInternalFlags&=~EPanicClientAsSoonAsPossible;
+ }
else
{
- aMessage.Complete(*iResponseHandle);
- iResponseHandle=NULL;
+ if(!iResponseHandle)
+ aMessage.Complete(aReason);
+ else
+ {
+ aMessage.Complete(*iResponseHandle);
+ iResponseHandle=NULL;
+ }
}
}
- }
+ }
void CWsClient::ServiceError(const RMessage2& /*aMessage*/,TInt aError)
{
@@ -1992,7 +1987,6 @@
void CWsClient::InitStaticsL()
{
- iMoreCommands=CIdle::NewL(EClientBufferPriority);
}
void CWsClient::DeleteStatics()
@@ -2007,8 +2001,6 @@
iTextCursorArray = NULL;
}
- delete iMoreCommands;
- iMoreCommands=NULL;
// coverity[extend_simple_error]
}
--- a/windowing/windowserver/nga/SERVER/openwfc/CLIENT.H Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/openwfc/CLIENT.H Tue Jun 01 15:04:40 2010 +0100
@@ -186,7 +186,6 @@
// Service client commands by dispatching them to the object associated with the op code
void DoServiceL(const RMessage2& aMessage, TBool& aCompleteRequest);
void DoServiceCommandBuf();
- static TInt DoContinueDeferredServiceOfCommandBuf(TAny* aClient);
void DispatchCommandsInBufL();
void CompleteMessage(const RMessage2& aMessage,TInt aReason);
@@ -302,7 +301,6 @@
static TBuf8<EClientBufferMaxSize> iCmdBuf; // Buffer contain a block of client commands
static CWsObject* iDestObj; // Current object client command is for
static const TUint8* iNextCmd; // Pointer in buffer to the next command to be processed
- static CIdle* iMoreCommands; // Active object responsible for executing more client commands
static TInt iDefaultSystemPointerCursorIndex; // Negative when there isn't one
static CWsPointerCursor* iDefaultSystemPointerCursor;
--- a/windowing/windowserver/nga/SERVER/openwfc/ScreenRedraw.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/openwfc/ScreenRedraw.h Tue Jun 01 15:04:40 2010 +0100
@@ -24,6 +24,7 @@
#include "wstypes.h"
#include "tcursor.h"
#include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
+#include "Graphics/wsgraphicdrawerinternal.h"
class CScreen;
class CWsRenderStage;
--- a/windowing/windowserver/nga/SERVER/openwfc/cliwin.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/openwfc/cliwin.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -867,6 +867,10 @@
case EWsWinOpShadowDisabled:
OwnerPanic(EWservPanicOpcode); //this op code is deprecated, should never be generated by the client
break;
+ case EWsWinOpSetShape:
+ // Still called from CEikCba::SetBoundingRect, but not supportable in OpenWF - see Bug 1863
+ // OwnerPanic(EWservPanicOpcode); //this op code is not supported in OpenWF
+ break;
case EWsWinOpRequiredDisplayMode:
if (Backup()!=NULL)
OwnerPanic(EWservPanicBackupDisplayMode);
--- a/windowing/windowserver/nga/SERVER/openwfc/screen.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/openwfc/screen.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2006-2010 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"
@@ -101,7 +101,7 @@
CScreen::CFallbackMap::~CFallbackMap()
{
- delete iMap;
+ delete []iMap;
}
void CScreen::CFallbackMap::ConstructL()
@@ -228,7 +228,7 @@
newMap = new TInt [maxSize];
if (newMap)
{
- delete iMap;
+ delete []iMap;
iMap = newMap;
iMapSize = maxSize;
}
--- a/windowing/windowserver/nga/SERVER/openwfc/server.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/openwfc/server.h Tue Jun 01 15:04:40 2010 +0100
@@ -28,6 +28,7 @@
#include "CLIENT.H"
#include "ScrDev.H"
#include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
+#include "Graphics/wsgraphicdrawerinternal.h"
#include "WSGRAPHICDRAWERARRAY.H"
#include "panics.h"
@@ -51,7 +52,6 @@
EHeartBeatPriority=1000,
EKeyRepeatPriority=1980,
EPointerRepeatPriority=1980,// Same as for key repeats
- EClientBufferPriority=1990, // Priority of idle object that completes the client buffer
EEventPriority=2000,
EComposeCompletePriority=2500, // Triggers further composition if necessary
EWsShellLogonPriority=3000, // Log on to the shell dying
@@ -341,6 +341,7 @@
void StartL();
TInt SessionCount();
MWsAnimationScheduler* AnimationScheduler();
+ void PrepareShutdown();
TBool ReleaseMemory();
void DestroySessionsForShutdown();
void SetPinClientDescriptors(TBool aPin);
--- a/windowing/windowserver/nga/SERVER/openwfc/wnredraw.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/openwfc/wnredraw.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -252,13 +252,18 @@
for (CWsSpriteBase * sprite = iWsWin->iSpriteList; sprite; sprite = sprite->Next())
{
+ TBool hasRedrawBegun = EFalse;
STACK_REGION redrawRegion;
sprite->CalcRedrawRegion(aRegion, redrawRegion);
if(redrawRegion.CheckError() || !redrawRegion.IsEmpty())
{
if (sprite->IsFlashingEnabled() || sprite->IsDirty() || sprite->HasAnimation())
{
- AnnotateSpriteRedrawStart(*iWsWin, *sprite, redrawRegion);
+ if (sprite->IsDirty() || sprite->HasAnimation())
+ {
+ AnnotateSpriteRedrawStart(*iWsWin, *sprite, redrawRegion);
+ hasRedrawBegun = ETrue;
+ }
if(sprite->HasAnimation())
{
@@ -276,10 +281,16 @@
}
//...call Redraw on the sprite
- aGc->Reset();
+ if (hasRedrawBegun)
+ {
+ aGc->Reset();
+ }
sprite->Redraw(aGc, redrawRegion);
- AnnotateSpriteRedrawEnd(*iWsWin, *sprite);
+ if (hasRedrawBegun)
+ {
+ AnnotateSpriteRedrawEnd(*iWsWin, *sprite);
+ }
}
}
redrawRegion.Close();
--- a/windowing/windowserver/nga/SERVER/pointer.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/pointer.h Tue Jun 01 15:04:40 2010 +0100
@@ -66,6 +66,7 @@
#else
static TBool PreProcessDriverEvent(TRawEvent &aRawEvent);
#endif
+ static void TranslateCoordsOnRotation(TPoint& aPoint);
static TBool PreProcessClientEvent(TRawEvent &aRawEvent, TBool aAdvancedPointersEnabled);
static TBool IsPointerEventType(TRawEvent::TType aType);
static void ProcessWsEvent(TWsEvent& aEvent,const CWsWindowGroup* aForceInGroup,TBool aNatural);
@@ -229,6 +230,11 @@
/** Used to offset the y pointer */
static TInt iYOffset;
+
+#if defined(__WINS__)
+ /** Tell whether to rotate pointer coords in _WINS_ builds */
+ static TBool iEmulatorRotatePointerCoords;
+#endif
};
class CWsPointerBuffer : public CBase
--- a/windowing/windowserver/nga/SERVER/renderstagemanager.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/renderstagemanager.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -78,7 +78,9 @@
if (!pluginMgr)
{
+#if _DEBUG
RDebug::Printf("ConstructRenderStageChain: Failed to obtain Plugin Manager at File: %s, Line: %d\n", __FILE__, __LINE__);
+#endif
return NULL;
}
@@ -103,7 +105,9 @@
TRAP(err, stage = factory->CreateFinalRenderStageL(aScreen, aScreenRedraw, aScreenNumber));
if (err)
{
+#if _DEBUG
RDebug::Printf("ConstructRenderStageChain: Create final renderstage error at File: %s, Line: %d Error Code: %d\n", __FILE__, __LINE__, err);
+#endif
}
}
else
@@ -112,7 +116,9 @@
TRAP(err, stage = factory->CreateRenderStageL(aScreen, aScreenRedraw, savedStage));
if (err)
{
+#if _DEBUG
RDebug::Printf("ConstructRenderStageChain: Create renderstage error at File: %s, Line: %d Error Code: %d\n", __FILE__, __LINE__, err);
+#endif
}
}
--- a/windowing/windowserver/nga/SERVER/scrdev.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/SERVER/scrdev.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -46,6 +46,7 @@
,iClientScreenDevicePointer(aClientScreenDevicePointer)
{
MWsScreen* pOI=Screen();
+ WS_ASSERT_ALWAYS(pOI, EWsPanicNoScreen);
iDispCont=pOI->ObjectInterface<MWsDisplayControl>();
iDispMap =pOI->ObjectInterface<MWsDisplayMapping>();
iTestScreenCapture = pOI->ObjectInterface<MWsTestScreenCapture>();
--- a/windowing/windowserver/nga/graphicdrawer/graphicdrawerenvironment.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nga/graphicdrawer/graphicdrawerenvironment.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -15,6 +15,7 @@
#include "Graphics/WSGRAPHICDRAWER.H"
#include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
+#include "Graphics/wsgraphicdrawerinternal.h"
// TGraphicDrawerId \\\\\\\\\\\\\\\\\\\\\\\\
--- a/windowing/windowserver/nonnga/CLIENT/RWINDOW.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nonnga/CLIENT/RWINDOW.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -813,6 +813,14 @@
return(sizePkg());
}
+EXPORT_C TSize RWindowBase::SizeForEgl() const
+/** Dummy implementation in order to preserve compatibility with WSERV NGA.
+ @internalComponent */
+ {
+ ASSERT(0);
+ return TSize();
+ }
+
EXPORT_C void RWindowBase::SetPosition(const TPoint &aPos)
/** Sets the position of a window relative to its parent.
@@ -1237,6 +1245,14 @@
ASSERT(0);
}
+EXPORT_C TInt RWindowBase::FixNativeOrientation()
+/** Dummy implementation in order to preserve compatibility with WSERV NGA.
+ @internalComponent */
+ {
+ ASSERT(0);
+ return KErrNotSupported;
+ }
+
EXPORT_C TInt RWindowBase::AllocPointerMoveBuffer(TInt aMaxNumPoints, TUint aFlags)
/** Allocates a buffer for storing pointer movements.
--- a/windowing/windowserver/nonnga/SERVER/EVENT.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nonnga/SERVER/EVENT.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -32,6 +32,8 @@
#include "pointer.h"
#include "debugbar.h"
#include "wstraces.h"
+#include "Graphics/wsgraphicdrawerinternal.h"
+
GLREF_D CDebugLogBase *wsDebugLog;
--- a/windowing/windowserver/nonnga/SERVER/SERVER.CPP Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nonnga/SERVER/SERVER.CPP Tue Jun 01 15:04:40 2010 +0100
@@ -19,7 +19,6 @@
#include "panics.h"
#include "wstop.h"
#include "EVENT.H"
-#include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
#include <bitdraw.h>
#include <hal.h>
#include "inifile.h"
@@ -82,6 +81,8 @@
void OnActive();
void ScheduleRedraw(MWsScreen& aScreen,const TTime& aWhen);
void DoRedrawNow(MWsScreen& aScreen);
+ void DoRedrawNow(MWsScreen& aScreen, MWsAnimationScheduler::MScreenUpdateObserver& aObserver);
+ void ClearScreenUpdateObserver(const MWsAnimationScheduler::MScreenUpdateObserver& /*aObserver*/) {}
TInt RemoveGraphicDrawer(const TGraphicDrawerId &aId);
private:
@@ -326,6 +327,12 @@
OnIdleCallBack(ETrue);
}
+void CWindowServer::CDefaultAnimationScheduler::DoRedrawNow(MWsScreen& /*aScreen*/, MWsAnimationScheduler::MScreenUpdateObserver& aObserver)
+ {
+ OnIdleCallBack(ETrue);
+ aObserver.ScreenUpdateComplete(KErrNone);
+ }
+
void CWindowServer::CDefaultAnimationScheduler::ScheduleAnimation(MWsScreen& aScreen,const TTime& aWhen)
{
TSchedule schedule;
@@ -646,7 +653,6 @@
delete iDefaultAnimationScheduler;
iDefaultAnimationScheduler = NULL; // might be called from clients during server destruction
- iCustomAnimationScheduler = NULL; // not owned
delete iPluginManager;
}
@@ -714,37 +720,23 @@
/**
Custom Animation Scheduler
*/
-TBool CWindowServer::SetCustomAnimationScheduler(MWsAnimationScheduler* aScheduler)
+TBool CWindowServer::SetCustomAnimationScheduler(MWsAnimationScheduler* /*aScheduler*/)
{
- if(!iCustomAnimationScheduler && aScheduler)
- {
- iCustomAnimationScheduler = aScheduler;
- return ETrue;
- }
return EFalse;
}
TBool CWindowServer::HasCustomAnimationScheduler() const
{
- return !!iCustomAnimationScheduler;
+ return EFalse;
}
-TBool CWindowServer::ClearCustomAnimationScheduler(MWsAnimationScheduler* aCurrentScheduler)
+TBool CWindowServer::ClearCustomAnimationScheduler(MWsAnimationScheduler* /*aCurrentScheduler*/)
{
- if(iCustomAnimationScheduler && (iCustomAnimationScheduler == aCurrentScheduler))
- {
- iCustomAnimationScheduler = NULL;
- return ETrue;
- }
return EFalse;
}
MWsAnimationScheduler* CWindowServer::AnimationScheduler()
{
- if(iCustomAnimationScheduler)
- {
- return iCustomAnimationScheduler;
- }
return iDefaultAnimationScheduler;
}
--- a/windowing/windowserver/nonnga/SERVER/ScreenRedraw.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nonnga/SERVER/ScreenRedraw.h Tue Jun 01 15:04:40 2010 +0100
@@ -23,6 +23,7 @@
#include <gdi.h>
#include "wstypes.h"
#include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
+#include "Graphics/wsgraphicdrawerinternal.h"
class CScreen;
class CWsRenderStage;
--- a/windowing/windowserver/nonnga/SERVER/server.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nonnga/SERVER/server.h Tue Jun 01 15:04:40 2010 +0100
@@ -28,6 +28,7 @@
#include "CLIENT.H"
#include "ScrDev.H"
#include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
+#include "Graphics/wsgraphicdrawerinternal.h"
#include "WSGRAPHICDRAWERARRAY.H"
#include "panics.h"
@@ -372,7 +373,6 @@
private:
class CDefaultAnimationScheduler;
CDefaultAnimationScheduler* iDefaultAnimationScheduler;
- MWsAnimationScheduler* iCustomAnimationScheduler;
CWsPluginManager* iPluginManager;
RPointerArray<MWsMemoryRelease> iMemoryReleases;
/** An index to all the CWsGraphicDrawer objects.
--- a/windowing/windowserver/nonnga/graphicdrawer/graphicdrawerenvironment.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/nonnga/graphicdrawer/graphicdrawerenvironment.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -15,6 +15,7 @@
#include "Graphics/WSGRAPHICDRAWER.H"
#include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
+#include "Graphics/wsgraphicdrawerinternal.h"
// TGraphicDrawerId \\\\\\\\\\\\\\\\\\\\\\\\
--- a/windowing/windowserver/tauto/talphawin.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/tauto/talphawin.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -371,7 +371,9 @@
theWin.SetExtent(TPoint(0,0), winSize);
theWin.SetBackgroundColor(TRgb(127,0,255,127));
- TInt mode=theWin.SetRequiredDisplayMode(EColor16MA);
+
+ TDisplayMode mode = EColor16MAP;
+ theWin.SetRequiredDisplayMode(mode);
theWin.SetVisible(ETrue);
theWin.SetTransparencyAlphaChannel();
theWin.Activate();
@@ -447,7 +449,7 @@
CFbsBitmap *bitmapOne;
bitmapOne = new (ELeave)CFbsBitmap();
CleanupStack::PushL(bitmapOne);
- User::LeaveIfError(bitmapOne->Create(winSize,static_cast<TDisplayMode>(mode)));
+ User::LeaveIfError(bitmapOne->Create(winSize,mode));
CFbsBitmapDevice *deviceOne=CFbsBitmapDevice::NewL(bitmapOne);
CleanupStack::PushL(deviceOne);
@@ -502,7 +504,7 @@
User::LeaveIfError(refWin.Construct(*(BaseWin->WinTreeNode()),(TUint32)&refWin));
refWin.SetExtent(TPoint(0,0), winSize);
- refWin.SetRequiredDisplayMode(static_cast<TDisplayMode>(mode));
+ refWin.SetRequiredDisplayMode(mode);
refWin.SetVisible(ETrue);
refWin.SetTransparencyAlphaChannel();
refWin.Activate();
--- a/windowing/windowserver/tauto/tgc.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/tauto/tgc.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1290,8 +1290,13 @@
* that we use matching color depths for our off-screen bitmaps so that accuracy is
* not lost since we compare bitmaps from the screen versus off-screen.
*/
- const TDisplayMode displayMode = device->DisplayMode();
-
+
+ TDisplayMode displayMode = device->DisplayMode();
+ if (TDisplayModeUtils::NumDisplayModeBitsPerPixel(displayMode) == 32)
+ {
+ displayMode = EColor16MAP;
+ }
+
_LIT(KText,"RemoteGc & MWsGraphicsContext");
TFontSpec fSpec(KTestFontTypefaceName,23);
fSpec.iFontStyle.SetBitmapType(EAntiAliasedGlyphBitmap);
--- a/windowing/windowserver/tauto/twindowsizecache.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/tauto/twindowsizecache.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -33,7 +33,6 @@
void CTWindowSizeCacheTest::ConstructL()
{}
-
void CTWindowSizeCacheTest::TestCreateRWindowL(TSizeCacheStatus aEnableWindowSizeCache)
{
__UHEAP_MARK;
@@ -579,7 +578,12 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
-
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -624,11 +628,21 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
-
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
+
// w1 State 1
TSize retSize2 = w1.Size();
TEST(retSize2 == size1);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size1);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -670,7 +684,12 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
-
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
+
// w1 State 1
// Only the first call to EnableWindowSizeCacheL() should have an effect
// All subsequent calls to EnableWindowSizeCacheL() should have no effect
@@ -717,6 +736,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 1
// Only the first call to EnableWindowSizeCacheL() should have an effect
@@ -727,6 +751,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size1);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size1);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -771,6 +800,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -821,6 +855,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TPoint point2 (20202,223);
@@ -872,6 +911,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -922,6 +966,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TPoint point2 (20202,223);
@@ -973,6 +1022,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1027,6 +1081,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1082,6 +1141,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1136,6 +1200,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1188,6 +1257,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1242,6 +1316,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1252,6 +1331,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size2);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size2);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1296,6 +1380,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TPoint point2 (20202,223);
@@ -1307,6 +1396,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size2);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size2);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1351,6 +1445,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1361,6 +1460,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size2);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size2);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1405,6 +1509,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TPoint point2 (20202,223);
@@ -1416,6 +1525,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size2);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size2);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1460,6 +1574,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1474,6 +1593,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size3);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size3);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1518,6 +1642,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1533,6 +1662,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size3);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size3);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1577,6 +1711,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1591,6 +1730,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size3);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size3);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1635,6 +1779,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1650,6 +1799,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size3);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size3);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1691,6 +1845,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1704,6 +1863,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size2);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size2);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1752,6 +1916,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1767,6 +1936,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size3);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size3);
+#endif
+
// w1 State 2
TSize size4 (40004,423);
w1.SetSize(size4);
@@ -1775,6 +1949,11 @@
TSize retSize3 = w1.Size();
TEST(retSize3 == size4);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl3 = w1.SizeForEgl();
+ TEST(retSizeForEgl3 == size4);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1823,6 +2002,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
// w1 State 2
TSize size2 (20002,223);
@@ -1839,6 +2023,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size3);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size3);
+#endif
+
// w1 State 2
TSize size4 (40004,423);
err = w1.SetSizeErr(size4);
@@ -1848,6 +2037,11 @@
TSize retSize3 = w1.Size();
TEST(retSize3 == size4);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl3 = w1.SizeForEgl();
+ TEST(retSizeForEgl3 == size4);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
@@ -1901,6 +2095,11 @@
// w1 State 1
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
}
end.UniversalTime();
@@ -1989,6 +2188,11 @@
{
TSize retSize1 = aWindow.Size();
TEST(retSize1 == aExpectedSize);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = aWindow.SizeForEgl();
+ TEST(retSizeForEgl1 == aExpectedSize);
+#endif
}
break;
case EFlushSession :
@@ -2138,6 +2342,11 @@
rws1_expectedSizePool.AppendL(expectedSize);
TSize retSize1 = win->Size();
TEST(retSize1 == expectedSize);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = win->SizeForEgl();
+ TEST(retSizeForEgl1 == expectedSize);
+#endif
}
// Windows for session 2 belonging to rws2_wg1
@@ -2158,6 +2367,11 @@
rws2_expectedSizePool.AppendL(expectedSize);
TSize retSize1 = win->Size();
TEST(retSize1 == expectedSize);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = win->SizeForEgl();
+ TEST(retSizeForEgl1 == expectedSize);
+#endif
}
// Windows for session 2 belonging to rws2_wg2
@@ -2180,6 +2394,11 @@
rws2_expectedSizePool.AppendL(expectedSize);
TSize retSize1 = win->Size();
TEST(retSize1 == expectedSize);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = win->SizeForEgl();
+ TEST(retSizeForEgl1 == expectedSize);
+#endif
}
// Stress system by performing actions on windows
@@ -2265,6 +2484,11 @@
expectedSizePool.AppendL(expectedSize);
TSize retSize1 = win->Size();
TEST(retSize1 == expectedSize);
+
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = win->SizeForEgl();
+ TEST(retSizeForEgl1 == expectedSize);
+#endif
}
// Stress system by performing actions on windows
@@ -2320,6 +2544,11 @@
TSize retSize1 = w1.Size();
TEST(retSize1 == size1);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl1 = w1.SizeForEgl();
+ TEST(retSizeForEgl1 == size1);
+#endif
+
// w1 State 2
TSize size2 (20002,223);
w1.SetSize(size2);
@@ -2336,6 +2565,11 @@
TSize retSize2 = w1.Size();
TEST(retSize2 == size2);
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+ TSize retSizeForEgl2 = w1.SizeForEgl();
+ TEST(retSizeForEgl2 == size2);
+#endif
+
// w1 State Final
CleanupStack::Pop();
w1.Close();
Binary file windowing/windowserver/tcsc/resources/wsini_csc_nga.ini has changed
Binary file windowing/windowserver/tcsc/resources/wsini_csc_nga_changetracking.ini has changed
Binary file windowing/windowserver/tcsc/resources/wsini_csc_nga_h6.ini has changed
Binary file windowing/windowserver/tcsc/resources/wsini_csc_nga_naviengine.ini has changed
Binary file windowing/windowserver/tcsc/resources/wsini_csc_nga_qvga.ini has changed
Binary file windowing/windowserver/tcsc/resources/wsini_csc_nga_qvga_changetracking.ini has changed
Binary file windowing/windowserver/tcsc/resources/wsini_csc_nga_vga.ini has changed
Binary file windowing/windowserver/tcsc/resources/wsini_csc_nga_vga_changetracking.ini has changed
--- a/windowing/windowserver/test/scripts/wstest_config.cmd Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/scripts/wstest_config.cmd Tue Jun 01 15:04:40 2010 +0100
@@ -17,12 +17,11 @@
rem
set nonnga=false
if not defined EPOC_INI set EPOC_INI=\epoc32\data\epoc.ini
-if /i "%1"=="uninstall" goto :uninstall
-if /i "%2"=="changetracking" goto :install_changetracking
if /i "%2"=="nonnga" set nonnga=true
if /i "%3"=="nonnga" set nonnga=true
if "%nonnga%"=="true" echo Configuring for Non-NGA
-
+if /i "%1"=="uninstall" goto :uninstall
+if /i "%2"=="changetracking" goto :install_changetracking
rem ================ install ================
:install
@@ -34,36 +33,22 @@
call :doinstall %EMULATOR_DATA_DIR% multiscreen %2 %3
)
-rem Restore EPOC.INI from backup
-if exist %EPOC_INI%.backup xcopy /r /y %EPOC_INI%.backup %EPOC_INI% >nul
+echo If EPOC.INI isn't already backuped then backup EPOC.INI to EPOC.INI.bak
+if not exist %EPOC_INI%.bak copy /y %EPOC_INI% %EPOC_INI%.bak
-echo Backing up EPOC.INI.
-if not exist %EPOC_INI%.backup copy %EPOC_INI% %EPOC_INI%.backup >nul
-
-echo --------------------------------------------------------------
-echo original epoc.ini: %EPOC_INI%
-type %EPOC_INI%
-echo --------------------------------------------------------------
echo Editing EPOC.INI to use multiscreen.
echo. >> %EPOC_INI%
echo StartupMode ^7>> %EPOC_INI%
echo _NewScreen_ >> %EPOC_INI%
echo ScreenWidth 640 >> %EPOC_INI%
echo ScreenHeight 240 >> %EPOC_INI%
-
-echo --------------------------------------------------------------
-echo new epoc.ini: %EPOC_INI%
-type %EPOC_INI%
-echo --------------------------------------------------------------
-
goto :EOF
-
:doinstall
-rem Back up WSINI.INI
-if not exist %1\z\system\data\wsini.bak if exist %1\z\system\data\wsini.ini copy %1\z\system\data\wsini.ini %1\z\system\data\wsini.bak >nul
-if not exist %1\z\resource\data\wsini.bak if exist %1\z\resource\data\wsini.ini copy %1\z\resource\data\wsini.ini %1\z\resource\data\wsini.bak >nul
+rem If WSINI.INI(s) aren't already backuped then backup WSINI.INI(s)
+if not exist %1\z\system\data\wsini.bak if exist %1\z\system\data\wsini.ini copy /y %1\z\system\data\wsini.ini %1\z\system\data\wsini.bak >nul
+if not exist %1\z\resource\data\wsini.bak if exist %1\z\resource\data\wsini.ini copy /y %1\z\resource\data\wsini.ini %1\z\resource\data\wsini.bak >nul
rem Back up ECONS.DLL
if exist %1\econs.dll copy /y %1\econs.dll %1\econs-temp.dll
@@ -73,24 +58,21 @@
rem Replace WSINI.INI with test version
if "%nonnga%"=="true" goto :doinstall_nonnga
-if exist %1\z\system\data\wsini.ini xcopy /r /y %1\z\wstest\wservu_multiscreen.ini %1\z\system\data\wsini.ini >nul
-if exist %1\z\resource\data\wsini.ini xcopy /r /y %1\z\wstest\wservu_multiscreen.ini %1\z\resource\data\wsini.ini >nul
+if exist %1\z\system\data\wsini.ini copy /y %1\z\wstest\wservu_multiscreen.ini %1\z\system\data\wsini.ini
+if exist %1\z\resource\data\wsini.ini copy /y %1\z\wstest\wservu_multiscreen.ini %1\z\resource\data\wsini.ini
goto :doinstall_editwsini
:doinstall_nonnga
-if exist %1\z\system\data\wsini.ini xcopy /r /y \graphics\wserv\group\wservu_multiscreen-nonnga.ini %1\z\system\data\wsini.ini >nul
-if exist %1\z\resource\data\wsini.ini xcopy /r /y \graphics\wserv\group\wservu_multiscreen-nonnga.ini %1\z\resource\data\wsini.ini >nul
+if exist %1\z\system\data\wsini.ini copy /y %1\z\wstest\wservu_multiscreen-nonnga.ini %1\z\system\data\wsini.ini
+if exist %1\z\resource\data\wsini.ini copy /y %1\z\wstest\wservu_multiscreen-nonnga.ini %1\z\resource\data\wsini.ini
:doinstall_editwsini
rem Edit WSINI.INI to run tests automatically/multiscreen
-if exist %1\z\system\data\wsini.ini perl %1\z\wstest\wsini-writer.pl %1\z\system\data\wsini.ini %2 %3 %4
+if exist %1\z\system\data\wsini.ini perl %1\z\wstest\wsini-writer.pl %1\z\system\data\wsini.ini %2 %3 %4
if exist %1\z\resource\data\wsini.ini perl %1\z\wstest\wsini-writer.pl %1\z\resource\data\wsini.ini %2 %3 %4
goto :EOF
-
-
-
rem ================ install changetracking ================
:install_changetracking
@@ -102,16 +84,8 @@
call :doinstall_changetracking %EMULATOR_DATA_DIR% multiscreen %2 %3
)
-rem Restore EPOC.INI from backup
-if exist %EPOC_INI%.backup xcopy /r /y %EPOC_INI%.backup %EPOC_INI% >nul
-
-echo Backing up EPOC.INI.
-if not exist %EPOC_INI%.backup copy %EPOC_INI% %EPOC_INI%.backup >nul
-
-echo --------------------------------------------------------------
-echo original epoc.ini: %EPOC_INI%
-type %EPOC_INI%
-echo --------------------------------------------------------------
+echo If EPOC.INI isn't already backuped then backup EPOC.INI to EPOC.INI.bak
+if not exist %EPOC_INI%.bak copy /y %EPOC_INI% %EPOC_INI%.bak >nul
echo Editing EPOC.INI to use multiscreen.
echo. >> %EPOC_INI%
@@ -119,11 +93,6 @@
echo _NewScreen_ >> %EPOC_INI%
echo ScreenWidth 640 >> %EPOC_INI%
echo ScreenHeight 240 >> %EPOC_INI%
-echo --------------------------------------------------------------
-echo new epoc.ini: %EPOC_INI%
-type %EPOC_INI%
-echo --------------------------------------------------------------
-
goto :EOF
:doinstall_changetracking
@@ -135,12 +104,12 @@
if exist %1\wsecons.dll copy /y %1\wsecons.dll %1\econs.dll
rem Back up WSINI.INI
-if not exist %1\z\system\data\wsini.bak if exist %1\z\system\data\wsini.ini copy %1\z\system\data\wsini.ini %1\z\system\data\wsini.bak >nul
-if not exist %1\z\resource\data\wsini.bak if exist %1\z\resource\data\wsini.ini copy %1\z\resource\data\wsini.ini %1\z\resource\data\wsini.bak >nul
+if not exist %1\z\system\data\wsini.bak if exist %1\z\system\data\wsini.ini copy /y %1\z\system\data\wsini.ini %1\z\system\data\wsini.bak >nul
+if not exist %1\z\resource\data\wsini.bak if exist %1\z\resource\data\wsini.ini copy /y %1\z\resource\data\wsini.ini %1\z\resource\data\wsini.bak >nul
rem Replace WSINI.INI with test changetracking version
-if exist %1\z\system\data\wsini.ini xcopy /r /y %1\z\wstest\wservu_multiscreen_changetracking.ini %1\z\system\data\wsini.ini >nul
-if exist %1\z\resource\data\wsini.ini xcopy /r /y %1\z\wstest\wservu_multiscreen_changetracking.ini %1\z\resource\data\wsini.ini >nul
+if exist %1\z\system\data\wsini.ini copy /y %1\z\wstest\wservu_multiscreen_changetracking.ini %1\z\system\data\wsini.ini >nul
+if exist %1\z\resource\data\wsini.ini copy /y %1\z\wstest\wservu_multiscreen_changetracking.ini %1\z\resource\data\wsini.ini >nul
rem Edit WSINI.INI to run tests automatically/multiscreen
if exist %1\z\system\data\wsini.ini perl %1\z\wstest\wsini-writer.pl %1\z\system\data\wsini.ini %2 %3 %4
@@ -159,15 +128,27 @@
call :douninstall %EMULATOR_DATA_DIR%
)
-echo Restoring EPOC.INI.
-if exist %EPOC_INI%.backup xcopy /r /y %EPOC_INI%.backup %EPOC_INI% >nul
+echo If EPOC.INI was already backuped then restore EPOC.INI from EPOC.INI.bak
+if exist %EPOC_INI%.bak (
+ echo Restore EPOC.INI from backup
+ copy /y %EPOC_INI%.bak %EPOC_INI% >nul
+ del /f /q %EPOC_INI%.bak >nul
+)
goto :EOF
:douninstall
-rem Restore WSINI.INI
-if exist %1\z\system\data\wsini.bak xcopy /r /y %1\z\system\data\wsini.bak %1\z\system\data\wsini.ini >nul
-if exist %1\z\resource\data\wsini.bak xcopy /r /y %1\z\resource\data\wsini.bak %1\z\resource\data\wsini.ini >nul
+
+rem If WSINI.INI(s) were already backuped then restore WSINI.INI
+if exist %1\z\system\data\wsini.bak (
+copy /y %1\z\system\data\wsini.bak %1\z\system\data\wsini.ini >nul
+del /f /q %1\z\system\data\wsini.bak >nul
+)
+if exist %1\z\resource\data\wsini.bak (
+copy /y %1\z\resource\data\wsini.bak %1\z\resource\data\wsini.ini >nul
+del /f /q %1\z\resource\data\wsini.bak >nul
+)
+
echo Restoring backedup ECONS.DLL
if exist %1\econs-temp.dll copy /y %1\econs-temp.dll %1\econs.dll
goto :EOF
--- a/windowing/windowserver/test/scripts/wstest_run_nga.bat Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/scripts/wstest_run_nga.bat Tue Jun 01 15:04:40 2010 +0100
@@ -15,14 +15,19 @@
@rem
@echo on
+testexecute.exe z:\wstest\wstest_t_mulscreens_nga.script
+
testexecute.exe z:\wstest\wstest_t_alpha_s0_nga.script
testexecute.exe z:\wstest\wstest_t_alpha_s1_nga.script
testexecute.exe z:\wstest\wstest_t_alphawin_s0_nga.script
testexecute.exe z:\wstest\wstest_t_alphawin_s1_nga.script
-testexecute.exe z:\wstest\wstest_t_anim_s0_nga.script
-testexecute.exe z:\wstest\wstest_t_anim_s1_nga.script
+testexecute.exe z:\wstest\wstest_t_animdll_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_animdll_s1_nga.script
+
+testexecute.exe z:\wstest\wstest_t_blank_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_blank_s1_nga.script
testexecute.exe z:\wstest\wstest_t_client_s0_nga.script
testexecute.exe z:\wstest\wstest_t_client_s1_nga.script
@@ -30,8 +35,11 @@
testexecute.exe z:\wstest\wstest_t_crp_s0_nga.script
testexecute.exe z:\wstest\wstest_t_crp_s1_nga.script
-testexecute.exe z:\wstest\wstest_t_cursor_n_sprite_s0_nga.script
-testexecute.exe z:\wstest\wstest_t_cursor_n_sprite_s1_nga.script
+testexecute.exe z:\wstest\wstest_t_cursor_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_cursor_s1_nga.script
+
+testexecute.exe z:\wstest\wstest_t_derived_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_derived_s1_nga.script
testexecute.exe z:\wstest\wstest_t_draw_s0_nga.script
testexecute.exe z:\wstest\wstest_t_draw_s1_nga.script
@@ -45,12 +53,20 @@
testexecute.exe z:\wstest\wstest_t_fade_s0_nga.script
testexecute.exe z:\wstest\wstest_t_fade_s1_nga.script
+testexecute.exe z:\wstest\wstest_t_gc_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_gc_s1_nga.script
+
+testexecute.exe z:\wstest\wstest_t_gdi_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_gdi_s1_nga.script
+
testexecute.exe z:\wstest\wstest_t_graphicsresource_s0_nga.script
testexecute.exe z:\wstest\wstest_t_graphicsresource_s1_nga.script
testexecute.exe z:\wstest\wstest_t_key_s0_nga.script
testexecute.exe z:\wstest\wstest_t_key_s1_nga.script
+testexecute.exe z:\wstest\wstest_t_multiscreens_s0_nga.script
+
testexecute.exe z:\wstest\wstest_t_oom_s0_nga.script
testexecute.exe z:\wstest\wstest_t_oom_s1_nga.script
@@ -63,9 +79,15 @@
testexecute.exe z:\wstest\wstest_t_redraw_s0_nga.script
testexecute.exe z:\wstest\wstest_t_redraw_s1_nga.script
+testexecute.exe z:\wstest\wstest_t_region_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_region_s1_nga.script
+
testexecute.exe z:\wstest\wstest_t_screen_s0_nga.script
testexecute.exe z:\wstest\wstest_t_screen_s1_nga.script
+testexecute.exe z:\wstest\wstest_t_screenmodescaling_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_screenmodescaling_s1_nga.script
+
testexecute.exe z:\wstest\wstest_t_screendevice_s0_nga.script
testexecute.exe z:\wstest\wstest_t_screendevice_s1_nga.script
@@ -75,6 +97,17 @@
testexecute.exe z:\wstest\wstest_t_security_s0_nga.script
testexecute.exe z:\wstest\wstest_t_security_s1_nga.script
+testexecute.exe z:\wstest\wstest_t_sprite_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_sprite_s1_nga.script
+
+testexecute.exe z:\wstest\wstest_t_transparentanim_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_transparentanim_s1_nga.script
+
+testexecute.exe z:\wstest\wstest_t_windowfunction_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_windowfunction_s1_nga.script
+
+testexecute.exe z:\wstest\wstest_t_wsgraphs_s0_nga.script
+testexecute.exe z:\wstest\wstest_t_wsgraphs_s1_nga.script
testexecute.exe z:\wstest\wstest_t_window_s0_nga.script
testexecute.exe z:\wstest\wstest_t_window_s1_nga.script
--- a/windowing/windowserver/test/t_integ/group/bld.inf Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/bld.inf Tue Jun 01 15:04:40 2010 +0100
@@ -15,6 +15,8 @@
// @test
//
+#include <platform_paths.hrh>
+
PRJ_TESTEXPORTS
../rom/t_wservinteg.iby /epoc32/rom/include/t_wservinteg.iby
--- a/windowing/windowserver/test/t_integ/group/t_app1.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_app1.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -36,9 +36,11 @@
SOURCE t_app1view.cpp
USERINCLUDE ../inc
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+#include <platform_paths.hrh>
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
SOURCEPATH ../resource
START RESOURCE t_app1.rss
@@ -55,7 +57,7 @@
LIBRARY apparc.lib
LIBRARY bitgdi.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY cone.lib
LIBRARY eikcore.lib
LIBRARY euser.lib
--- a/windowing/windowserver/test/t_integ/group/t_dsaapp.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_dsaapp.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -36,9 +36,11 @@
SOURCE t_dsaappview.cpp
USERINCLUDE ../inc
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+#include <platform_paths.hrh>
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
SOURCEPATH ../resource
START RESOURCE t_dsaapp.rss
@@ -54,7 +56,7 @@
LIBRARY apparc.lib
LIBRARY bitgdi.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY cone.lib
LIBRARY efsrv.lib
LIBRARY eikcore.lib
--- a/windowing/windowserver/test/t_integ/group/t_fpsapp.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_fpsapp.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -36,9 +36,11 @@
SOURCE t_fpsappview.cpp
USERINCLUDE ../inc
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+#include <platform_paths.hrh>
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
// Application exe specific resource which is localised to the application
@@ -63,7 +65,7 @@
LIBRARY gdi.lib
LIBRARY ws32.lib
LIBRARY estor.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY t_winutils.lib
LIBRARY efsrv.lib
LIBRARY t_pseudoappengine.lib
--- a/windowing/windowserver/test/t_integ/group/t_inidata.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_inidata.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -44,6 +44,6 @@
LIBRARY ws32.lib
LIBRARY bitgdi.lib
LIBRARY hal.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
SMPSAFE
--- a/windowing/windowserver/test/t_integ/group/t_perfdata.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_perfdata.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -38,7 +38,7 @@
LIBRARY euser.lib
LIBRARY hal.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY efsrv.lib
LIBRARY estor.lib
--- a/windowing/windowserver/test/t_integ/group/t_pseudoapp.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_pseudoapp.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -36,9 +36,10 @@
SOURCE t_pseudoappview.cpp
USERINCLUDE ../inc
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+#include <platform_paths.hrh>
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
OS_LAYER_LIBC_SYSTEMINCLUDE
// Application exe specific resource which is localised to the application
@@ -63,7 +64,7 @@
LIBRARY gdi.lib
LIBRARY ws32.lib
LIBRARY estor.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY t_winutils.lib
LIBRARY efsrv.lib
LIBRARY t_pseudoappengine.lib
--- a/windowing/windowserver/test/t_integ/group/t_pseudoapp1.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_pseudoapp1.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -38,9 +38,10 @@
SOURCE t_pseudoappview.cpp
USERINCLUDE ../inc
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+#include <platform_paths.hrh>
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
// Application exe specific resource which is localised to the application
@@ -65,7 +66,7 @@
LIBRARY gdi.lib
LIBRARY ws32.lib
LIBRARY estor.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY t_winutils.lib
LIBRARY efsrv.lib
LIBRARY t_pseudoappengine.lib
--- a/windowing/windowserver/test/t_integ/group/t_pseudoappengine.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_pseudoappengine.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -43,15 +43,15 @@
SOURCE t_pseudoappshared.cpp
USERINCLUDE ../inc
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
OS_LAYER_LIBC_SYSTEMINCLUDE
LIBRARY euser.lib
LIBRARY fbscli.lib
LIBRARY ws32.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY bitgdi.lib
LIBRARY surfacemanager.lib
LIBRARY surfaceupdateclient.lib
--- a/windowing/windowserver/test/t_integ/group/t_pseudoapppopupwindow.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_pseudoapppopupwindow.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -33,13 +33,13 @@
SOURCE t_pseudoapputils.cpp
USERINCLUDE ../inc
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
LIBRARY euser.lib
LIBRARY ws32.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY fbscli.lib
LIBRARY gdi.lib
LIBRARY t_winutils.lib
--- a/windowing/windowserver/test/t_integ/group/t_simloadapp1.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_simloadapp1.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -33,9 +33,9 @@
USERINCLUDE ../inc
SOURCE t_simloadapp1.cpp
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
LIBRARY euser.lib
LIBRARY t_simloadutils.lib
--- a/windowing/windowserver/test/t_integ/group/t_simloadapp2.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_simloadapp2.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -33,9 +33,9 @@
USERINCLUDE ../inc
SOURCE t_simloadapp2.cpp
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
LIBRARY euser.lib
LIBRARY t_simloadutils.lib
--- a/windowing/windowserver/test/t_integ/group/t_simloadapp3.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_simloadapp3.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -33,9 +33,9 @@
USERINCLUDE ../inc
SOURCE t_simloadapp3.cpp
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
LIBRARY euser.lib
LIBRARY t_simloadutils.lib
--- a/windowing/windowserver/test/t_integ/group/t_simloadutils.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_simloadutils.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -34,12 +34,12 @@
USERINCLUDE ../inc
SOURCE t_simloadutils.cpp
-APP_LAYER_SYSTEMINCLUDE_SYMBIAN
-MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
+OS_LAYER_SYSTEMINCLUDE
LIBRARY euser.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY t_inidata.lib
--- a/windowing/windowserver/test/t_integ/group/t_winutils.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_winutils.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -40,7 +40,7 @@
LIBRARY bitgdi.lib
LIBRARY fbscli.lib
LIBRARY hal.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY ws32.lib
SMPSAFE
--- a/windowing/windowserver/test/t_integ/group/t_wservintegserver.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/group/t_wservintegserver.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -48,7 +48,7 @@
LIBRARY efsrv.lib
LIBRARY bafl.lib
LIBRARY estor.lib
-LIBRARY cinidata.lib
+LIBRARY iniparser.lib
LIBRARY surfacemanager.lib
LIBRARY surfaceupdateclient.lib
LIBRARY ws32.lib
--- a/windowing/windowserver/test/t_integ/resource/t_app1.rss Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/resource/t_app1.rss Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -22,8 +22,8 @@
NAME SMPL
-#include <techview/eikon.rh>
-#include <uiklafgt/eikcore.rsg>
+#include <eikon.rh>
+#include <eikcore.rsg>
#include <appinfo.rh>
#include "t_app1.hrh"
--- a/windowing/windowserver/test/t_integ/resource/t_dsaapp.rss Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/resource/t_dsaapp.rss Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -22,8 +22,8 @@
NAME SMPL
-#include <techview/eikon.rh>
-#include <uiklafgt/eikcore.rsg>
+#include <eikon.rh>
+#include <eikcore.rsg>
#include <appinfo.rh>
#include "t_dsaapp.hrh"
--- a/windowing/windowserver/test/t_integ/resource/t_fpsapp.rss Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/resource/t_fpsapp.rss Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -22,8 +22,8 @@
NAME SMPL
-#include <techview/eikon.rh>
-#include <uiklafgt/eikcore.rsg>
+#include <eikon.rh>
+#include <eikcore.rsg>
#include <appinfo.rh>
#include "t_fpsapp.hrh"
--- a/windowing/windowserver/test/t_integ/resource/t_pseudoapp.rss Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/resource/t_pseudoapp.rss Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -22,8 +22,8 @@
NAME SMPL
-#include <techview/eikon.rh>
-#include <uiklafgt/eikcore.rsg>
+#include <eikon.rh>
+#include <eikcore.rsg>
#include <appinfo.rh>
#include "t_pseudoapp.hrh"
--- a/windowing/windowserver/test/t_integ/resource/t_pseudoapp1.rss Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/resource/t_pseudoapp1.rss Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -22,8 +22,8 @@
NAME SMPL
-#include <techview/eikon.rh>
-#include <uiklafgt/eikcore.rsg>
+#include <eikon.rh>
+#include <eikcore.rsg>
#include <appinfo.rh>
#include "t_pseudoapp.hrh"
--- a/windowing/windowserver/test/t_integ/src/t_app1ui.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/src/t_app1ui.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -21,7 +21,7 @@
#include <apgtask.h>
#include <eikenv.h>
-#include <techview/eikmenup.h>
+#include <eikmenup.h>
#include <e32math.h>
#include "t_app1ui.h"
#include "t_app1view.h"
--- a/windowing/windowserver/test/t_integ/src/t_app1view.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/src/t_app1view.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -20,7 +20,7 @@
*/
#include <eikenv.h>
-#include <techview/eikmenup.h>
+#include <eikmenup.h>
#include <t_app1.rsg>
#include "t_app1view.h"
#include "t_app1eng.h"
--- a/windowing/windowserver/test/t_integ/src/t_pseudoappui.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/test/t_integ/src/t_pseudoappui.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2007-2010 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"
@@ -21,7 +21,7 @@
#include <apgtask.h>
#include <eikenv.h>
-#include <techview/eikmenup.h>
+#include <eikmenup.h>
#include <eikstart.h>
#include "t_pseudoappeng.h"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_nativeorientation/data/ini/graphics-wserv-nativeorientation.ini Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,23 @@
+[default]
+testId = 0
+[graphics-wserv-0733]
+testId = 733
+[graphics-wserv-0734]
+testId = 734
+[graphics-wserv-0735]
+testId = 735
+[graphics-wserv-0736]
+testId = 736
+[graphics-wserv-0737]
+testId = 737
+[graphics-wserv-0738]
+testId = 738
+[graphics-wserv-0739]
+testId = 739
+[graphics-wserv-0740]
+testId = 740
+[graphics-wserv-0741]
+testId = 741
+[graphics-wserv-0742]
+testId = 742
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_nativeorientation/group/bld.inf Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,27 @@
+// Copyright (c) 2008-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
+
+PRJ_TESTEXPORTS
+../rom/t_nativeorientation.iby /epoc32/rom/include/t_nativeorientation.iby
+
+../scripts/graphics-wserv-nativeorientation-test.script z:/wstest/tnativeorientation/graphics-wserv-nativeorientation-test.script
+../data/ini/graphics-wserv-nativeorientation.ini z:/wstest/tnativeorientation/graphics-wserv-nativeorientation.ini
+
+PRJ_TESTMMPFILES
+t_nativeorientationserver.mmp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_nativeorientation/group/t_nativeorientationserver.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,44 @@
+// Copyright (c) 2008-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
+*/
+
+TARGET t_nativeorientationserver.exe
+TARGETTYPE exe
+UID 0x1000007A 0xA000E629
+VENDORID 0x70000001
+
+SOURCEPATH ../src
+SOURCE t_nativeorientationserver.cpp
+SOURCE t_nativeorientationtest.cpp
+
+USERINCLUDE ../inc
+
+OS_LAYER_SYSTEMINCLUDE
+
+LIBRARY euser.lib
+LIBRARY testexecuteutils.lib
+LIBRARY testexecutelogclient.lib
+LIBRARY efsrv.lib
+LIBRARY ws32.lib
+LIBRARY surfacemanager.lib
+LIBRARY surfaceupdateclient.lib
+LIBRARY gdi.lib
+
+SMPSAFE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_nativeorientation/inc/t_nativeorientationserver.h Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,40 @@
+// Copyright (c) 2008-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
+*/
+
+#ifndef __T_NATIVEORIENTATION_SERVER_H__
+#define __T_NATIVEORIENTATION_SERVER_H__
+
+#include <test/testexecuteserverbase.h>
+
+// Entry point
+GLDEF_C TInt E32Main(void);
+
+class CT_NativeOrientationServer : public CTestServer
+ {
+public:
+ static CT_NativeOrientationServer* NewL();
+ virtual CTestStep* CreateTestStep(const TDesC& aStepName);
+
+protected:
+ void ConstructL();
+ };
+
+#endif // __T_NATIVEORIENTATION_SERVER_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_nativeorientation/inc/t_nativeorientationtest.h Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,63 @@
+// Copyright (c) 2008-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
+*/
+
+#ifndef __T_NATIVEORIENTATIONTEST_H__
+#define __T_NATIVEORIENTATIONTEST_H__
+
+#include <w32std.h>
+#include <test/testexecutestepbase.h>
+#include <graphics/surfacemanager.h>
+#include <graphics/surfaceupdateclient.h>
+#include <graphics/surfaceconfiguration.h>
+
+_LIT(KT_NativeOrientationTestStep,"T_NativeOrientationTestStep");
+
+class CT_NativeOrientationTest : public CTestStep
+ {
+public:
+ CT_NativeOrientationTest();
+ ~CT_NativeOrientationTest();
+ // from CTestStep
+ virtual enum TVerdict doTestStepPreambleL();
+ virtual enum TVerdict doTestStepL();
+ virtual enum TVerdict doTestStepPostambleL();
+
+private:
+ // Test cases
+ void GRAPHICS_WSERV_0733L();
+ void GRAPHICS_WSERV_0734L();
+ void GRAPHICS_WSERV_0735L();
+ void GRAPHICS_WSERV_0736L();
+ void GRAPHICS_WSERV_0737L();
+ void GRAPHICS_WSERV_0738L();
+ void GRAPHICS_WSERV_0739L();
+ void GRAPHICS_WSERV_0740L();
+ void GRAPHICS_WSERV_0741L();
+ void GRAPHICS_WSERV_0742L();
+ void CreateSurfaceAttributes(RSurfaceManager::TSurfaceCreationAttributesBuf&, const TSize&);
+ void FillSurfaceL(TSurfaceId&, const TRgb&, RSurfaceManager&, RSurfaceUpdateSession&);
+
+private: // Data members
+ TInt iTestId;
+ RWsSession iWs;
+ };
+
+#endif // __T_NATIVEORIENTATIONTEST_H__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_nativeorientation/rom/t_nativeorientation.iby Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,27 @@
+// Copyright (c) 2008-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 __T_NATIVEORIENTATION_IBY__)
+#define __T_NATIVEORIENTATION_IBY__
+
+#include <testexecute.iby>
+#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+file=ABI_DIR\DEBUG_DIR\t_nativeorientationserver.exe \sys\bin\t_nativeorientationserver.exe
+
+data=EPOCROOT##epoc32\data\z\wstest\tnativeorientation\graphics-wserv-nativeorientation-test.script \wstest\tnativeorientation\graphics-wserv-nativeorientation-test.script
+data=EPOCROOT##epoc32\data\z\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini \wstest\tnativeorientation\graphics-wserv-nativeorientation.ini
+#endif // SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION
+
+#endif // __T_NATIVEORIENTATION_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_nativeorientation/scripts/graphics-wserv-nativeorientation-test.script Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,58 @@
+// Copyright (c) 2008-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:
+//
+
+LOAD_SUITE t_nativeorientationserver
+DELAY 10
+
+START_TESTCASE GRAPHICS-WSERV-0733
+RUN_TEST_STEP !Heap=0x200000 !PanicCode=85 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0733
+END_TESTCASE GRAPHICS-WSERV-0733
+
+START_TESTCASE GRAPHICS-WSERV-0734
+RUN_TEST_STEP !Heap=0x200000 !PanicCode=85 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0734
+END_TESTCASE GRAPHICS-WSERV-0734
+
+START_TESTCASE GRAPHICS-WSERV-0735
+RUN_TEST_STEP !Heap=0x200000 !PanicCode=85 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0735
+END_TESTCASE GRAPHICS-WSERV-0735
+
+START_TESTCASE GRAPHICS-WSERV-0736
+RUN_TEST_STEP !Heap=0x200000 !PanicCode=85 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0736
+END_TESTCASE GRAPHICS-WSERV-0736
+
+START_TESTCASE GRAPHICS-WSERV-0737
+RUN_TEST_STEP !Heap=0x200000 !PanicCode=85 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0737
+END_TESTCASE GRAPHICS-WSERV-0737
+
+START_TESTCASE GRAPHICS-WSERV-0738
+RUN_TEST_STEP !Heap=0x200000 50 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0738
+END_TESTCASE GRAPHICS-WSERV-0738
+
+START_TESTCASE GRAPHICS-WSERV-0739
+RUN_TEST_STEP !Heap=0x200000 !PanicCode=85 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0739
+END_TESTCASE GRAPHICS-WSERV-0739
+
+START_TESTCASE GRAPHICS-WSERV-0740
+RUN_TEST_STEP !Heap=0x200000 50 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0740
+END_TESTCASE GRAPHICS-WSERV-0740
+
+START_TESTCASE GRAPHICS-WSERV-0741
+RUN_TEST_STEP !Heap=0x200000 !PanicCode=85 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0741
+END_TESTCASE GRAPHICS-WSERV-0741
+
+START_TESTCASE GRAPHICS-WSERV-0742
+RUN_TEST_STEP !Heap=0x200000 !PanicCode=3 t_nativeorientationserver T_NativeOrientationTestStep z:\wstest\tnativeorientation\graphics-wserv-nativeorientation.ini graphics-wserv-0742
+END_TESTCASE GRAPHICS-WSERV-0742
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_nativeorientation/src/t_nativeorientationserver.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,113 @@
+// Copyright (c) 2008-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
+*/
+
+// User Includes
+#include "t_nativeorientationserver.h"
+#include "t_nativeorientationtest.h"
+
+_LIT(KTestServerName, "NativeOrientationTestServer");
+
+CT_NativeOrientationServer* CT_NativeOrientationServer::NewL()
+/**
+ * @return - Instance of the test server
+ * Same code for Secure and non-secure variants
+ * Called inside the MainL() function to create and start the
+ * CTestServer derived server.
+ */
+ {
+ CT_NativeOrientationServer* server = new (ELeave) CT_NativeOrientationServer;
+ CleanupStack::PushL(server);
+ server->ConstructL();
+ CleanupStack::Pop(server);
+ return server;
+ }
+
+void CT_NativeOrientationServer::ConstructL()
+ {
+ RProcess handle = RProcess();
+ TParsePtrC serverName(handle.FileName());
+ CTestServer::ConstructL(serverName.Name());
+ }
+
+LOCAL_C void MainL()
+ {
+ CActiveScheduler* sched=NULL;
+ sched=new(ELeave) CActiveScheduler;
+ CActiveScheduler::Install(sched);
+ CT_NativeOrientationServer* server = NULL;
+ // Create the CTestServer derived server
+ TRAPD(err,server = CT_NativeOrientationServer::NewL());
+ if(!err)
+ {
+ // Sync with the client and enter the active scheduler
+ RProcess::Rendezvous(KErrNone);
+ sched->Start();
+ }
+ else
+ {
+ RDebug::Print(_L("Server error=%d"), err);
+ }
+ delete server;
+ delete sched;
+ }
+
+/**
+ * @return - Standard Epoc error code on process exit
+ * Process entry point. Called by client using RProcess Integ
+ */
+GLDEF_C TInt E32Main()
+ {
+ __UHEAP_MARK;
+ CTrapCleanup* cleanup = CTrapCleanup::New();
+ if(cleanup == NULL)
+ {
+ return KErrNoMemory;
+ }
+
+ TRAPD(err,MainL());
+ if (err)
+ {
+ _LIT(KMainErrorStatement, "CNativeOrientationTestServer MainL - Error: %d");
+ RDebug::Print(KMainErrorStatement, err);
+ User::Panic(KTestServerName, err);
+ }
+
+ delete cleanup;
+ __UHEAP_MARKEND;
+ return KErrNone;
+ }
+
+CTestStep* CT_NativeOrientationServer::CreateTestStep(const TDesC& aStepName)
+/**
+ * @return - A CTestStep derived instance
+ * Secure and non-secure variants
+ * Implementation of CTestServer pure virtual
+ */
+ {
+ CTestStep* testStep = NULL;
+
+ if ( aStepName==KT_NativeOrientationTestStep )
+ {
+ testStep=new CT_NativeOrientationTest();
+ }
+
+ return testStep;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserver/test/t_nativeorientation/src/t_nativeorientationtest.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -0,0 +1,753 @@
+// Copyright (c) 2008-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
+*/
+
+#include "t_nativeorientationtest.h"
+
+_LIT(KT_NativeOrientationTestId,"testId");
+
+CT_NativeOrientationTest::CT_NativeOrientationTest()
+ {
+ SetTestStepName(KT_NativeOrientationTestStep);
+ }
+
+
+CT_NativeOrientationTest::~CT_NativeOrientationTest()
+ {
+ }
+
+
+enum TVerdict CT_NativeOrientationTest::doTestStepPreambleL()
+ {
+ TVerdict ret=CTestStep::doTestStepPreambleL();
+
+ User::LeaveIfError(iWs.Connect()); // Setup session to wserv
+ iWs.SetAutoFlush(EFalse);
+
+ if ( !GetIntFromConfig( ConfigSection(), KT_NativeOrientationTestId, iTestId ) )
+ {
+ INFO_PRINTF1(_L("ERROR: GetIntFromConfig() Failed!"));
+ User::Leave(KErrNotFound);
+ }
+ return ret;
+ }
+
+enum TVerdict CT_NativeOrientationTest::doTestStepPostambleL()
+ {
+ return TestStepResult();
+ }
+
+
+/**
+Starts test step
+@internalComponent
+@return TVerdict pass / fail
+@pre N/A
+@post N/A
+*/
+enum TVerdict CT_NativeOrientationTest::doTestStepL()
+ {
+ INFO_PRINTF1(_L("CT_NativeOrientation started"));
+ RDebug::Printf("CT_NativeOrientation started");
+
+ __UHEAP_MARK;
+
+ switch (iTestId)
+ {
+ case 733:
+ GRAPHICS_WSERV_0733L();
+ break;
+ case 734:
+ GRAPHICS_WSERV_0734L();
+ break;
+ case 735:
+ GRAPHICS_WSERV_0735L();
+ break;
+ case 736:
+ GRAPHICS_WSERV_0736L();
+ break;
+ case 737:
+ GRAPHICS_WSERV_0737L();
+ break;
+ case 738:
+ GRAPHICS_WSERV_0738L();
+ break;
+ case 739:
+ GRAPHICS_WSERV_0739L();
+ break;
+ case 740:
+ GRAPHICS_WSERV_0740L();
+ break;
+ case 741:
+ GRAPHICS_WSERV_0741L();
+ break;
+ case 742:
+ GRAPHICS_WSERV_0742L();
+ break;
+ default:
+ INFO_PRINTF1(_L("Bad Test Case Id"));
+ User::Panic(_L("Bad Test Case Id"), 999);
+ break;
+ }
+
+ iWs.Close();
+ __UHEAP_MARKEND;
+
+ INFO_PRINTF1(_L("CT_NativeOrientation completed!"));
+ RDebug::Printf("CT_NativeOrientation completed");
+ return TestStepResult();
+ }
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0742
+ @SYMTestCaseDesc FixNativeOrientation() on a window before Construct()
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create screen device
+ 2. Create group window
+ 3. Create test window
+ 4. Call FixNativeOrientation()
+ 5. Construct test window
+ @SYMTestExpectedResults Works normally.
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0742L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0742L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0742L"));
+ CWsScreenDevice* scrDevice = new (ELeave) CWsScreenDevice(iWs);
+ User::LeaveIfError(scrDevice->Construct());
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ TInt nativeErr = myWin.FixNativeOrientation();
+ TEST(nativeErr==KErrNone);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+ myWin.SetExtent(TPoint(0,0), scrDevice->SizeInPixels());
+ myWin.Activate();
+ iWs.Finish();
+
+ delete scrDevice;
+
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0742L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0742L"));
+ }
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0741
+ @SYMTestCaseDesc FixNativeOrientation() on a window after Activate()
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create screen device
+ 2. Create group window
+ 3. Create test window
+ 4. Activate test window
+ 5. Call FixNativeOrientation()
+ @SYMTestExpectedResults EWsWinOpFixNativeOrientation panic.
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0741L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0741L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0741L"));
+ CWsScreenDevice* scrDevice = new (ELeave) CWsScreenDevice(iWs);
+ User::LeaveIfError(scrDevice->Construct());
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+ myWin.SetExtent(TPoint(0,0), scrDevice->SizeInPixels());
+ myWin.Activate();
+
+ TInt nativeErr = myWin.FixNativeOrientation();
+ TEST(nativeErr==KErrNone);
+ iWs.Finish();
+
+ delete scrDevice;
+
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0741L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0741L"));
+ }
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0740
+ @SYMTestCaseDesc SizeForEgl() returns same size as configured by SetSize()
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create screen device
+ 2. Create group window
+ 3. Create test window
+ 4. Activate test window
+ 5. Call SetSize(20,20)
+ 6. Call SizeForEgl()
+ @SYMTestExpectedResults SizeForEgl() returns same size as configured by SetSize()
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0740L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0740L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0740L"));
+ CWsScreenDevice* scrDevice = new (ELeave) CWsScreenDevice(iWs);
+ User::LeaveIfError(scrDevice->Construct());
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+ myWin.SetExtent(TPoint(0,0), scrDevice->SizeInPixels());
+ myWin.Activate();
+
+ TSize setSize(20,20);
+ myWin.SetSize(setSize);
+ TSize eglSize = myWin.SizeForEgl();
+ TEST(eglSize==setSize);
+ iWs.Finish();
+
+ delete scrDevice;
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0740L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0740L"));
+ }
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0739
+ @SYMTestCaseDesc FixNativeOrientation() called twice on same window
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create screen device
+ 2. Create group window
+ 3. Create test window
+ 4. Call FixNativeOrientation()
+ 5. Call FixNativeOrientation()
+ @SYMTestExpectedResults EWsWinOpFixNativeOrientation panic.
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0739L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0739L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0739L"));
+ CWsScreenDevice* scrDevice = new (ELeave) CWsScreenDevice(iWs);
+ User::LeaveIfError(scrDevice->Construct());
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+ myWin.SetExtent(TPoint(0,0), scrDevice->SizeInPixels());
+
+ TInt nativeErr = myWin.FixNativeOrientation();
+ TEST(nativeErr==KErrNone);
+ iWs.Finish();
+ nativeErr = myWin.FixNativeOrientation(); // Panic
+ iWs.Finish();
+
+ delete scrDevice;
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0739L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0739L"));
+ }
+
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0738
+ @SYMTestCaseDesc SizeForEgl() returns same size as configured by SetSize()
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create screen device
+ 2. Create group window
+ 3. Create test window
+ 4. Activate test window
+ 5. Call SetSize(60,40)
+ 6. Call SizeForEgl() (check size is (60,40)
+ 7. Call FixNativeOrientation()
+ 8. Call SetSize(40,60)
+ 9. Call SizeForEgl() (check size is (60,40)
+ @SYMTestExpectedResults SizeForEgl() returns same size as configured by SetSize()
+ prior to FixNativeOrientation(), i.e. subsequent SetSize()
+ does not affect SizeForEgl()
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0738L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0738L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0738L"));
+ CWsScreenDevice* scrDevice = new (ELeave) CWsScreenDevice(iWs);
+ User::LeaveIfError(scrDevice->Construct());
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+ myWin.SetExtent(TPoint(0,0), scrDevice->SizeInPixels());
+
+ TSize setSize(60,40);
+ myWin.SetSize(setSize);
+ TSize eglSize = myWin.SizeForEgl();
+ TEST(eglSize==setSize);
+ TSize winSize = myWin.Size();
+ TEST(winSize==setSize);
+
+ TInt nativeErr = myWin.FixNativeOrientation();
+ TEST(nativeErr==KErrNone);
+
+ eglSize = myWin.SizeForEgl();
+ TEST(eglSize==setSize);
+ winSize = myWin.Size();
+ TEST(winSize==setSize);
+
+ TSize setSize2(40,60);
+ myWin.SetSize(setSize2);
+ eglSize = myWin.SizeForEgl();
+ TEST(eglSize==setSize);
+ winSize = myWin.Size();
+ TEST(winSize==setSize2);
+
+ iWs.Finish();
+ myWin.Close();
+ grpWin.Close();
+ delete scrDevice;
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0738L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0738L"));
+ }
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0737
+ @SYMTestCaseDesc FixNativeOrientation() without primary screen device
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create group window
+ 2. Create test window
+ 3. Call FixNativeOrientation()
+ @SYMTestExpectedResults EWsWinOpFixNativeOrientation panic.
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0737L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0737L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0737L"));
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+
+ TInt nativeErr = myWin.FixNativeOrientation();
+ TEST(nativeErr==KErrNone);
+ iWs.Finish();
+
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0737L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0737L"));
+ }
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0736
+ @SYMTestCaseDesc SetBackgroundSurface() without primary screen device
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create group window
+ 2. Create test window
+ 3. Call FixNativeOrientation()
+ 4. Create Surface
+ 5. Delete screen device
+ 6. SetBackgroundSurface()
+ @SYMTestExpectedResults EWsWinOpFixNativeOrientation panic.
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0736L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0736L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0736L"));
+ CWsScreenDevice* scrDevice = new (ELeave) CWsScreenDevice(iWs);
+ User::LeaveIfError(scrDevice->Construct());
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+ myWin.SetExtent(TPoint(0,0), scrDevice->SizeInPixels());
+
+ TInt nativeErr = myWin.FixNativeOrientation();
+ TEST(nativeErr==KErrNone);
+ myWin.Activate();
+ iWs.Finish();
+
+ RSurfaceManager surfaceManager;
+ User::LeaveIfError(surfaceManager.Open());
+
+ RSurfaceManager::TSurfaceCreationAttributesBuf backgroundBuf;
+ CreateSurfaceAttributes(backgroundBuf,myWin.Size());
+
+ RSurfaceUpdateSession surfaceUpdateSession;
+ User::LeaveIfError(surfaceUpdateSession.Connect());
+
+ TSurfaceId surfaceId = TSurfaceId::CreateNullId();
+ User::LeaveIfError(surfaceManager.CreateSurface(backgroundBuf, surfaceId));
+
+ TSurfaceConfiguration surfaceConfig;
+ surfaceConfig.SetSurfaceId(surfaceId);
+ surfaceConfig.SetViewport(TRect(TPoint(0,0),scrDevice->SizeInPixels()));
+ surfaceConfig.SetExtent(TRect(TPoint(0,0),scrDevice->SizeInPixels()));
+ surfaceConfig.SetOrientation(CFbsBitGc::EGraphicsOrientationNormal);
+
+ TRgb backgroundColor = TRgb(255,255,255,255);
+ FillSurfaceL(surfaceId, backgroundColor, surfaceManager, surfaceUpdateSession);
+
+ delete scrDevice;
+ User::LeaveIfError(myWin.SetBackgroundSurface(surfaceConfig, ETrue));
+
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0736L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0736L"));
+ }
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0735
+ @SYMTestCaseDesc Trigger background color draw without primary screen device
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create group window
+ 2. Create test window
+ 3. Call FixNativeOrientation()
+ 4. Create Surface
+ 5. SetBackgroundSurface()
+ 6. Delete screen device
+ 7. Trigger background color draw
+ @SYMTestExpectedResults EWsWinOpFixNativeOrientation panic.
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0735L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0735L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0735L"));
+ CWsScreenDevice* scrDevice = new (ELeave) CWsScreenDevice(iWs);
+ User::LeaveIfError(scrDevice->Construct());
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+ myWin.SetExtent(TPoint(0,0), scrDevice->SizeInPixels());
+
+ TInt nativeErr = myWin.FixNativeOrientation();
+ TEST(nativeErr==KErrNone);
+ myWin.Activate();
+ iWs.Finish();
+
+ RSurfaceManager surfaceManager;
+ User::LeaveIfError(surfaceManager.Open());
+
+ RSurfaceManager::TSurfaceCreationAttributesBuf backgroundBuf;
+ CreateSurfaceAttributes(backgroundBuf,myWin.Size());
+
+ RSurfaceUpdateSession surfaceUpdateSession;
+ User::LeaveIfError(surfaceUpdateSession.Connect());
+
+ TSurfaceId surfaceId = TSurfaceId::CreateNullId();
+ User::LeaveIfError(surfaceManager.CreateSurface(backgroundBuf, surfaceId));
+
+ TSurfaceConfiguration surfaceConfig;
+ surfaceConfig.SetSurfaceId(surfaceId);
+ surfaceConfig.SetViewport(TRect(TPoint(0,0),scrDevice->SizeInPixels()));
+ surfaceConfig.SetExtent(TRect(TPoint(0,0),scrDevice->SizeInPixels()));
+ surfaceConfig.SetOrientation(CFbsBitGc::EGraphicsOrientationNormal);
+
+ TRgb backgroundColor = TRgb(255,255,255,255);
+ FillSurfaceL(surfaceId, backgroundColor, surfaceManager, surfaceUpdateSession);
+ User::LeaveIfError(myWin.SetBackgroundSurface(surfaceConfig, ETrue));
+
+ delete scrDevice;
+ myWin.Invalidate();
+ myWin.BeginRedraw();
+ myWin.EndRedraw();
+ iWs.Finish();
+
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0735L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0735L"));
+ }
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0734
+ @SYMTestCaseDesc Change window position without primary screen device
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create group window
+ 2. Create test window
+ 3. Call FixNativeOrientation()
+ 4. Create Surface
+ 5. SetBackgroundSurface()
+ 6. Delete screen device
+ 7. Change window position
+ @SYMTestExpectedResults EWsWinOpFixNativeOrientation panic.
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0734L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0734L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0734L"));
+ CWsScreenDevice* scrDevice = new (ELeave) CWsScreenDevice(iWs);
+ User::LeaveIfError(scrDevice->Construct());
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+ myWin.SetExtent(TPoint(0,0), scrDevice->SizeInPixels());
+
+ TInt nativeErr = myWin.FixNativeOrientation();
+ TEST(nativeErr==KErrNone);
+ myWin.Activate();
+ iWs.Finish();
+
+ RSurfaceManager surfaceManager;
+ User::LeaveIfError(surfaceManager.Open());
+
+ RSurfaceManager::TSurfaceCreationAttributesBuf backgroundBuf;
+ CreateSurfaceAttributes(backgroundBuf,myWin.Size());
+
+ RSurfaceUpdateSession surfaceUpdateSession;
+ User::LeaveIfError(surfaceUpdateSession.Connect());
+
+ TSurfaceId surfaceId = TSurfaceId::CreateNullId();
+ User::LeaveIfError(surfaceManager.CreateSurface(backgroundBuf, surfaceId));
+
+ TSurfaceConfiguration surfaceConfig;
+ surfaceConfig.SetSurfaceId(surfaceId);
+ surfaceConfig.SetViewport(TRect(TPoint(0,0),scrDevice->SizeInPixels()));
+ surfaceConfig.SetExtent(TRect(TPoint(0,0),scrDevice->SizeInPixels()));
+ surfaceConfig.SetOrientation(CFbsBitGc::EGraphicsOrientationNormal);
+
+ TRgb backgroundColor = TRgb(255,255,255,255);
+ FillSurfaceL(surfaceId, backgroundColor, surfaceManager, surfaceUpdateSession);
+ User::LeaveIfError(myWin.SetBackgroundSurface(surfaceConfig, ETrue));
+
+ delete scrDevice;
+ myWin.SetPosition(TPoint(40,40));
+ iWs.Finish();
+
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0734L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0734L"));
+ }
+
+/**
+ @SYMTestCaseID GRAPHICS-WSERV-0733
+ @SYMTestCaseDesc Change window size without primary screen device
+ @SYMPREQ 66527
+ @SYMREQ 417-66527
+ @SYMPrerequisites
+ @SYMTestType CT (Component Test)
+ @SYMTestActions 1. Create group window
+ 2. Create test window
+ 3. Call FixNativeOrientation()
+ 4. Create Surface
+ 5. SetBackgroundSurface()
+ 6. Delete screen device
+ 7. Change window size
+ @SYMTestExpectedResults EWsWinOpFixNativeOrientation panic.
+*/
+void CT_NativeOrientationTest::GRAPHICS_WSERV_0733L()
+ {
+ RDebug::Printf("Entering test GRAPHICS_WSERV_0733L");
+ INFO_PRINTF1(_L("Entering test GRAPHICS_WSERV_0733L"));
+ CWsScreenDevice* scrDevice = new (ELeave) CWsScreenDevice(iWs);
+ User::LeaveIfError(scrDevice->Construct());
+
+ RWindowGroup grpWin = RWindowGroup(iWs);
+ User::LeaveIfError(grpWin.Construct((TUint32)&grpWin));
+
+ RWindow myWin = RWindow(iWs);
+ User::LeaveIfError(myWin.Construct(grpWin, (TUint32)&myWin));
+ myWin.SetExtent(TPoint(0,0), scrDevice->SizeInPixels());
+
+ TInt nativeErr = myWin.FixNativeOrientation();
+ TEST(nativeErr==KErrNone);
+ myWin.Activate();
+ iWs.Finish();
+
+ RSurfaceManager surfaceManager;
+ User::LeaveIfError(surfaceManager.Open());
+
+ RSurfaceManager::TSurfaceCreationAttributesBuf backgroundBuf;
+ CreateSurfaceAttributes(backgroundBuf,myWin.Size());
+
+ RSurfaceUpdateSession surfaceUpdateSession;
+ User::LeaveIfError(surfaceUpdateSession.Connect());
+
+ TSurfaceId surfaceId = TSurfaceId::CreateNullId();
+ User::LeaveIfError(surfaceManager.CreateSurface(backgroundBuf, surfaceId));
+
+ TSurfaceConfiguration surfaceConfig;
+ surfaceConfig.SetSurfaceId(surfaceId);
+ surfaceConfig.SetViewport(TRect(TPoint(0,0),scrDevice->SizeInPixels()));
+ surfaceConfig.SetExtent(TRect(TPoint(0,0),scrDevice->SizeInPixels()));
+ surfaceConfig.SetOrientation(CFbsBitGc::EGraphicsOrientationNormal);
+
+ TRgb backgroundColor = TRgb(255,255,255,255);
+ FillSurfaceL(surfaceId, backgroundColor, surfaceManager, surfaceUpdateSession);
+ User::LeaveIfError(myWin.SetBackgroundSurface(surfaceConfig, ETrue));
+
+ delete scrDevice;
+ myWin.SetSize(TSize(27,29));
+ iWs.Finish();
+
+ RDebug::Printf("Completed test GRAPHICS_WSERV_0733L");
+ INFO_PRINTF1(_L("Completed test GRAPHICS_WSERV_0733L"));
+ }
+
+void CT_NativeOrientationTest::CreateSurfaceAttributes(RSurfaceManager::TSurfaceCreationAttributesBuf& aBuffer , const TSize& aSize)
+ {
+ RSurfaceManager::TSurfaceCreationAttributes& b = aBuffer();
+
+ b.iSize.iWidth = aSize.iWidth;
+ b.iSize.iHeight = aSize.iHeight;
+ b.iBuffers = 1; // number of buffers in the surface
+ b.iPixelFormat = EUidPixelFormatARGB_8888;
+ b.iStride = aSize.iWidth * 4; // Number of bytes between start of one line and start of next
+ b.iOffsetToFirstBuffer = 0; // way of reserving space before the surface pixel data
+ b.iAlignment = 4; // alignment, 1,2,4,8 byte aligned
+ b.iContiguous = EFalse;
+ b.iMappable = ETrue;
+ }
+
+void CT_NativeOrientationTest::FillSurfaceL(TSurfaceId& aSurface, const TRgb& aColor, RSurfaceManager& surfaceManager, RSurfaceUpdateSession& surfaceUpdateSession)
+ {
+ RSurfaceManager::TInfoBuf infoBuf;
+ RSurfaceManager::TSurfaceInfoV01& info = infoBuf();
+
+ User::LeaveIfError(surfaceManager.SurfaceInfo(aSurface, infoBuf));
+ TUint32 color = 0;
+ TBool use16 = EFalse;
+
+ if (info.iSize.iHeight<0 || info.iSize.iWidth<0 || info.iStride<0)
+ {
+ User::Leave(KErrCorrupt);
+ }
+ if (info.iSize.iHeight==0 || info.iSize.iWidth==0 || info.iStride==0)
+ {
+ User::Leave(KErrNotReady);
+ }
+
+ switch (info.iPixelFormat)
+ {
+ case EUidPixelFormatXRGB_8888:
+ {
+ color = aColor.Color16MU();
+#ifdef ALPHA_FIX_24BIT
+ color |= ((ALPHA_FIX_24BIT)&0xff)<<24;
+#endif
+ break;
+ }
+ case EUidPixelFormatARGB_8888:
+ {
+ color = aColor.Color16MA();
+ break;
+ }
+ case EUidPixelFormatARGB_8888_PRE:
+ {
+ color = aColor.Color16MAP();
+ break;
+ }
+ case EUidPixelFormatXRGB_4444:
+ case EUidPixelFormatARGB_4444:
+ {
+ color = aColor.Color4K();
+ use16 = ETrue;
+ break;
+ }
+ case EUidPixelFormatRGB_565:
+ {
+ color = aColor.Color64K();
+ use16 = ETrue;
+ break;
+ }
+ default:
+ {
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ }
+
+ RChunk chunk;
+ User::LeaveIfError(surfaceManager.MapSurface(aSurface, chunk));
+ CleanupClosePushL(chunk);
+
+ TInt offsetToFirstBuffer;
+ User::LeaveIfError(surfaceManager.GetBufferOffset(aSurface, 0, offsetToFirstBuffer));
+ TUint8* surfacePtr = chunk.Base() + offsetToFirstBuffer;
+ TUint8* linePtr = surfacePtr;
+
+ if (use16)
+ {
+ if ( info.iSize.iWidth*2>info.iStride)
+ {
+ User::Leave(KErrOverflow);
+ }
+ TUint16* ptr = reinterpret_cast<TUint16*>(surfacePtr);
+
+ // Fill first line
+ for (TInt xx = 0; xx < info.iSize.iWidth; xx++)
+ {
+ ptr[xx] = (TUint16)color;
+ }
+ }
+ else
+ {
+ if ( info.iSize.iWidth*4>info.iStride)
+ {
+ User::Leave(KErrOverflow);
+ }
+ TUint32* ptr = reinterpret_cast<TUint32*>(surfacePtr);
+
+ // Fill first line
+ for (TInt xx = 0; xx < info.iSize.iWidth; xx++)
+ {
+ ptr[xx] = color;
+ }
+ }
+
+ // Now copy that to the other lines
+ for (TInt yy = 1; yy < info.iSize.iHeight; yy++)
+ {
+ linePtr += info.iStride;
+ Mem::Copy(linePtr, surfacePtr, info.iSize.iWidth * 4);
+ }
+
+ TInt err = surfaceUpdateSession.SubmitUpdate(0, aSurface, 0, NULL);
+ if (err!=KErrNone)
+ RDebug::Printf("Error submitting update: 0x%X\n", err);
+
+ CleanupStack::PopAndDestroy(/* chunk */);
+ }
--- a/windowing/windowserver/wins_switching/generate_stubs.pl Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/wins_switching/generate_stubs.pl Tue Jun 01 15:04:40 2010 +0100
@@ -1,6 +1,6 @@
#!/bin/perl -w
-# Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2004-2010 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"
@@ -15,11 +15,21 @@
# Description:
# Generates the ws32_stubs.h header file and the ws32switchU.def
# file from the ws322U def file.
-#
+#
#
use strict;
-my $COPYRIGHT = "Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).";
+
+my $COPYRIGHT = <<"EndCopyrightAndLicense";
+/*
+ * Copyright (c) 2004-2010 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".
+ */
+EndCopyrightAndLicense
my $SOURCE_DEF_SIZE = 0;
my $WS32_DEF = "../BWINS/";
@@ -31,97 +41,96 @@
exit(0);
sub main() {
- my $maxOrdinal = 1;
- my $def2MaxOrdinal = 1;
+ my $maxOrdinal = 1;
+ my $def2MaxOrdinal = 1;
- $WS32_DEF .= $ARGV[0];
- $WS32SWITCH_HEADER = $ARGV[1];
- $WS32SWITCH_DEF .= $ARGV[2];
+ $WS32_DEF .= $ARGV[0];
+ $WS32SWITCH_HEADER = $ARGV[1];
+ $WS32SWITCH_DEF .= $ARGV[2];
- open DEF, $WS32_DEF or
- die "Cannot open $WS32_DEF\n";
+ open DEF, $WS32_DEF or
+ die "Cannot open $WS32_DEF\n";
+
-
- my ($dev, $ino, $mode, $nlink, $uid, $gid,
- $rdev, $size, $atime, $mtime, $ctime,
- $blksize, $blocks)
- = stat($WS32_DEF);
- # the file size could be checked by the switcher build to verify that the stub is up to date.
- $SOURCE_DEF_SIZE= $size;
-
- open HEADER_OUT, ">${WS32SWITCH_HEADER}" or
- die "Cannot create $WS32SWITCH_HEADER\n";
+ my ($dev, $ino, $mode, $nlink, $uid, $gid,
+ $rdev, $size, $atime, $mtime, $ctime,
+ $blksize, $blocks)
+ = stat($WS32_DEF);
+ # the file size could be checked by the switcher build to verify that the stub is up to date.
+ $SOURCE_DEF_SIZE= $size;
- open DEF_OUT, ">${WS32SWITCH_DEF}" or
- die "Cannot create $WS32SWITCH_DEF\n";
+ open HEADER_OUT, ">${WS32SWITCH_HEADER}" or
+ die "Cannot create $WS32SWITCH_HEADER\n";
+
+ open DEF_OUT, ">${WS32SWITCH_DEF}" or
+ die "Cannot create $WS32SWITCH_DEF\n";
- &printHeaderStart(\*HEADER_OUT);
- &printDefStart(\*DEF_OUT);
+ &printHeaderStart(\*HEADER_OUT);
+ &printDefStart(\*DEF_OUT);
- while (<DEF>) {
- chomp;
- if (/^\s+\?/) {
- if (s/.*;/;/) {
- &printDefEntry(\*DEF_OUT, $maxOrdinal, $_);
- &printHeaderEntry(\*HEADER_OUT,$maxOrdinal,$_);
- } else {
- &printDefEntry(\*DEF_OUT, $maxOrdinal, "");
- &printHeaderEntry(\*HEADER_OUT,$maxOrdinal, "(noname)");
- }
- $maxOrdinal++;
- }
- }
- &printHeaderEnd(\*HEADER_OUT,$maxOrdinal);
- &printDefEnd(\*DEF_OUT);
+ while (<DEF>) {
+ chomp;
+ if (/^\s+\?/) {
+ if (s/.*;/;/) {
+ &printDefEntry(\*DEF_OUT, $maxOrdinal, $_);
+ &printHeaderEntry(\*HEADER_OUT,$maxOrdinal,$_);
+ } else {
+ &printDefEntry(\*DEF_OUT, $maxOrdinal, "");
+ &printHeaderEntry(\*HEADER_OUT,$maxOrdinal, "(noname)");
+ }
+ $maxOrdinal++;
+ }
+ }
+ &printHeaderEnd(\*HEADER_OUT,$maxOrdinal);
+ &printDefEnd(\*DEF_OUT);
-
+
- close DEF;
- close HEADER_OUT;
- close DEF_OUT;
+ close DEF;
+ close HEADER_OUT;
+ close DEF_OUT;
}
sub printDefStart(\$) {
- my ($fh) = @_;
- print $fh "EXPORTS\n";
+ my ($fh) = @_;
+ print $fh "EXPORTS\n";
}
sub printDefEntry(\$\$\$) {
- my ($fh, $ordinal, $comment) = @_;
- print $fh "\tcall_vector_${ordinal} @ ${ordinal} NONAME $comment\n";
+ my ($fh, $ordinal, $comment) = @_;
+ print $fh "\tcall_vector_${ordinal} @ ${ordinal} NONAME $comment\n";
}
sub printDefEnd(\$) {
- my ($fh) = @_;
- print $fh "\n";
+ my ($fh) = @_;
+ print $fh "\n";
}
sub printHeaderStart(\$) {
- my ($fh) = @_;
+ my ($fh) = @_;
- print $fh "// Generated from \"$WS32_DEF\" file size: $SOURCE_DEF_SIZE\n" .
- "// $COPYRIGHT\n" .
- "\n" .
- "extern \"C\" {\n" .
- "void common_dispatch();\n" .
- "\n";
+ print $fh "$COPYRIGHT\n" .
+ "/* Generated from \"$WS32_DEF\" file size: $SOURCE_DEF_SIZE */\n\n" .
+ "extern \"C\" {\n" .
+ "void common_dispatch();\n" .
+ "\n";
}
sub printHeaderEntry(\$\$\$) {
- my ($fh, $ordinal, $comment) = @_;
+ my ($fh, $ordinal, $comment) = @_;
- print $fh "__declspec(dllexport)\n" .
- "__declspec(naked)\n" .
- "void call_vector_${ordinal} ()\n" .
- "\t{\n" .
- "\t// ${comment}\n" .
- "\t_asm mov eax, $ordinal\n" .
- "\t_asm jmp common_dispatch\n" .
- "\t}\n\n";
+ print $fh "__declspec(dllexport)\n" .
+ "__declspec(naked)\n" .
+ "void call_vector_${ordinal} ()\n" .
+ "\t{\n" .
+ "\t// ${comment}\n" .
+ "\t_asm mov eax, $ordinal\n" .
+ "\t_asm jmp common_dispatch\n" .
+ "\t}\n\n";
}
sub printHeaderEnd(\$\$) {
- my ($fh, $maxOrdinal) = @_;
- print $fh "}\n" .
- "#define MAX_ORDINAL $maxOrdinal\n\n";
+ my ($fh, $maxOrdinal) = @_;
+ print $fh "}\n" .
+ "#define MAX_ORDINAL $maxOrdinal\n\n";
}
--- a/windowing/windowserver/wins_switching/remotegc_stubs.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/wins_switching/remotegc_stubs.h Tue Jun 01 15:04:40 2010 +0100
@@ -1,176 +1,162 @@
-// Copyright (c) 2004-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:
-// Generated from "../BWINS/remotegcu.def" file size: 2452
-//
-//
-
-extern "C" {
-void common_dispatch();
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_1 ()
- {
- // ; CCommandBuffer::~CCommandBuffer(void)
- _asm mov eax, 1
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_2 ()
- {
- // ; CRemoteGc::~CRemoteGc(void)
- _asm mov eax, 2
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_3 ()
- {
- // ; void CRemoteGc::ExternalizeL(class RWsGraphicMsgBuf &, int)
- _asm mov eax, 3
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_4 ()
- {
- // ; void CCommandBuffer::InternalizeL(class TDesC8 const &)
- _asm mov eax, 4
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_5 ()
- {
- // ; class CCommandBuffer * CCommandBuffer::NewL(void)
- _asm mov eax, 5
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_6 ()
- {
- // ; class CRemoteGc * CRemoteGc::NewL(class CWsScreenDevice *)
- _asm mov eax, 6
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_7 ()
- {
- // ; int CCommandBuffer::Play(class TPoint const &, class TRect const &, class MWsGraphicResolver const &, class CBitmapContext &)
- _asm mov eax, 7
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_8 ()
- {
- // ; void CRemoteGc::ResetCommandBuffer(void)
- _asm mov eax, 8
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_9 ()
- {
- // ; void CRemoteGc::SetCommandBufferObserver(class MCommandBufferObserver *)
- _asm mov eax, 9
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_10 ()
- {
- // ; void CRemoteGc::BeginDraw(class TRect const &)
- _asm mov eax, 10
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_11 ()
- {
- // ; void CRemoteGc::EndDraw(void)
- _asm mov eax, 11
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_12 ()
- {
- // ; void CCommandBuffer::InternalizeAppendL(class TDesC8 const &)
- _asm mov eax, 12
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_13 ()
- {
- // ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class MWsGraphicResolver const &, class CBitmapContext &)
- _asm mov eax, 13
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_14 ()
- {
- // ; class TRegion const & CCommandBuffer::ClippingRegion(void) const
- _asm mov eax, 14
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_15 ()
- {
- // ; int CCommandBuffer::IsIdentical(class CCommandBuffer const &) const
- _asm mov eax, 15
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_16 ()
- {
- // ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class RWsSession &, class CWindowGc &)
- _asm mov eax, 16
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_17 ()
- {
- // ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class MWsGraphicResolver const &, class MWsGraphicsContext &)
- _asm mov eax, 17
- _asm jmp common_dispatch
- }
-
-}
-#define MAX_ORDINAL 18
-
+// Generated from "../BWINS/remotegcu.def" file size: 2433
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+
+extern "C" {
+void common_dispatch();
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_1 ()
+ {
+ // ; CCommandBuffer::~CCommandBuffer(void)
+ _asm mov eax, 1
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_2 ()
+ {
+ // ; CRemoteGc::~CRemoteGc(void)
+ _asm mov eax, 2
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_3 ()
+ {
+ // ; void CRemoteGc::ExternalizeL(class RWsGraphicMsgBuf &, int)
+ _asm mov eax, 3
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_4 ()
+ {
+ // ; void CCommandBuffer::InternalizeL(class TDesC8 const &)
+ _asm mov eax, 4
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_5 ()
+ {
+ // ; class CCommandBuffer * CCommandBuffer::NewL(void)
+ _asm mov eax, 5
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_6 ()
+ {
+ // ; class CRemoteGc * CRemoteGc::NewL(class CWsScreenDevice *)
+ _asm mov eax, 6
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_7 ()
+ {
+ // ; int CCommandBuffer::Play(class TPoint const &, class TRect const &, class MWsGraphicResolver const &, class CBitmapContext &)
+ _asm mov eax, 7
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_8 ()
+ {
+ // ; void CRemoteGc::ResetCommandBuffer(void)
+ _asm mov eax, 8
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_9 ()
+ {
+ // ; void CRemoteGc::SetCommandBufferObserver(class MCommandBufferObserver *)
+ _asm mov eax, 9
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_10 ()
+ {
+ // ; void CRemoteGc::BeginDraw(class TRect const &)
+ _asm mov eax, 10
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_11 ()
+ {
+ // ; void CRemoteGc::EndDraw(void)
+ _asm mov eax, 11
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_12 ()
+ {
+ // ; void CCommandBuffer::InternalizeAppendL(class TDesC8 const &)
+ _asm mov eax, 12
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_13 ()
+ {
+ // ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class MWsGraphicResolver const &, class CBitmapContext &)
+ _asm mov eax, 13
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_14 ()
+ {
+ // ; class TRegion const & CCommandBuffer::ClippingRegion(void) const
+ _asm mov eax, 14
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_15 ()
+ {
+ // ; int CCommandBuffer::IsIdentical(class CCommandBuffer const &) const
+ _asm mov eax, 15
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_16 ()
+ {
+ // ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class RWsSession &, class CWindowGc &)
+ _asm mov eax, 16
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_17 ()
+ {
+ // ; int CCommandBuffer::Play(class TPoint const &, class TRegion const *, class TRect const &, class MWsGraphicResolver const &, class MWsGraphicsContext &)
+ _asm mov eax, 17
+ _asm jmp common_dispatch
+ }
+
+}
+#define MAX_ORDINAL 18
+
--- a/windowing/windowserver/wins_switching/remotegcswitch.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/wins_switching/remotegcswitch.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -39,11 +39,16 @@
FARPROC vector[MAX_ORDINAL+1];
-
+#ifdef _DEBUG
void Stop(char* aErrorMessage)
+#else
+void Stop(char* /*aErrorMessage*/)
+#endif
{
int err = GetLastError();
+#if _DEBUG
RDebug::Printf("%S, (last error = %i)", aErrorMessage, err);
+#endif
_asm int 3;
}
@@ -77,8 +82,10 @@
UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalBoolProperty, (TAny*)"symbian_graphics_use_gce", &nga);
const char* library = nga ? "remotegc_nga.dll" : "remotegc_nonnga.dll";
+#ifdef _DEBUG
RDebug::Printf("Redirecting remotegc.dll to \"%s\" ...\n", library);
-
+#endif
+
Emulator::Escape(); // prevent deadlock between EKA2 scheduler and MS kernel
// try to load selected DLL
HINSTANCE instance = LoadLibraryA(library);
@@ -91,7 +98,9 @@
else
{
fill_vector(instance);
+#ifdef _DEBUG
RDebug::Printf("... DLL loaded successfully");
+#endif
}
}
--- a/windowing/windowserver/wins_switching/ws32_stubs.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/wins_switching/ws32_stubs.h Tue Jun 01 15:04:40 2010 +0100
@@ -5202,6 +5202,25 @@
_asm mov eax, 576
_asm jmp common_dispatch
}
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_577 ()
+ {
+ // ; class TSize RWindowBase::SizeForEgl(void) const
+ _asm mov eax, 577
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_578 ()
+ {
+ // ; int RWindowBase::FixNativeOrientation(void)
+ _asm mov eax, 578
+ _asm jmp common_dispatch
+ }
+
}
-#define MAX_ORDINAL 577
-
+#define MAX_ORDINAL 579
+
--- a/windowing/windowserver/wins_switching/ws32switch.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/wins_switching/ws32switch.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -39,11 +39,16 @@
FARPROC vector[MAX_ORDINAL+1];
-
+#ifdef _DEBUG
void Stop(char* aErrorMessage)
+#else
+void Stop(char* /*aErrorMessage*/)
+#endif
{
int err = GetLastError();
+#ifdef _DEBUG
RDebug::Printf("%S, (last error = %i)", aErrorMessage, err);
+#endif
_asm int 3;
}
@@ -76,9 +81,9 @@
TBool nga = EFalse;
UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalBoolProperty, (TAny*)"symbian_graphics_use_gce", &nga);
const char* library = nga ? "ws32_nga.dll" : "ws32_nonnga.dll";
-
+#ifdef _DEBUG
RDebug::Printf("Redirecting ws32.dll to \"%s\" ...\n", library);
-
+#endif
Emulator::Escape(); // prevent deadlock between EKA2 scheduler and MS kernel
// try to load selected DLL
HINSTANCE instance = LoadLibraryA(library);
@@ -91,7 +96,9 @@
else
{
fill_vector(instance);
+#ifdef _debug
RDebug::Printf("... DLL loaded successfully");
+#endif
}
}
--- a/windowing/windowserver/wins_switching/wservswitch.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/wins_switching/wservswitch.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -52,7 +52,11 @@
// try to launch it
const TPtrC exeName = nga ? KWservSwitchNga() : KWservSwitchNonNga();
+
+#ifdef _DEBUG
RDebug::Print(_L("%S: Starting \"%S\" \"%S\""), &KProcessName, &exeName, &argPtr);
+#endif
+
RProcess server;
TInt err = server.Create(exeName, argPtr, EOwnerThread);
delete arg;
@@ -63,7 +67,9 @@
}
// wait for server to start
+#ifdef _DEBUG
RDebug::Print(_L("%S: waiting on process ..."), &KProcessName);
+#endif
TRequestStatus stat;
server.Rendezvous(stat);
@@ -87,7 +93,9 @@
// propagate error to SysStart
if (error)
{
+#ifdef _DEBUG
RDebug::Print(_L("%S: Failed with error %i"), &KProcessName, error);
+#endif
}
RProcess::Rendezvous(error);
return error;
--- a/windowing/windowserver/wins_switching/wsgraphicdrawer_stubs.h Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/wins_switching/wsgraphicdrawer_stubs.h Tue Jun 01 15:04:40 2010 +0100
@@ -1,779 +1,765 @@
-// Copyright (c) 2004-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:
-// Generated from "../BWINS/graphicdraweru.def" file size: 11211
-//
-//
-
-extern "C" {
-void common_dispatch();
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_1 ()
- {
- // ; CWsGraphicDrawer::CWsGraphicDrawer(void)
- _asm mov eax, 1
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_2 ()
- {
- // ; TWsGraphicMsgAnimation::TWsGraphicMsgAnimation(void)
- _asm mov eax, 2
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_3 ()
- {
- // ; TWsGraphicMsgBufParser::TWsGraphicMsgBufParser(class TDesC8 const &)
- _asm mov eax, 3
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_4 ()
- {
- // ; CWsGraphicDrawer::~CWsGraphicDrawer(void)
- _asm mov eax, 4
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_5 ()
- {
- // ; void CWsGraphicDrawerArray::AddLC(class CWsGraphicDrawer *)
- _asm mov eax, 5
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_6 ()
- {
- // ; void MWsAnimationScheduler::Animate(class MWsScreen &)
- _asm mov eax, 6
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_7 ()
- {
- // ; class TTimeIntervalMicroSeconds TWsGraphicMsgAnimation::AnimationTime(class TTime const &, class TTimeIntervalMicroSeconds const &) const
- _asm mov eax, 7
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_8 ()
- {
- // ; void CWsGraphicDrawer::BaseConstructL(class MWsGraphicDrawerEnvironment &, struct TGraphicDrawerId const &, class MWsClient &)
- _asm mov eax, 8
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_9 ()
- {
- // ; void CWsGraphicDrawerArray::Close(void)
- _asm mov eax, 9
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_10 ()
- {
- // ; int TGraphicDrawerId::Compare(struct TGraphicDrawerId const &) const
- _asm mov eax, 10
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_11 ()
- {
- // ; int TGraphicDrawerId::Compare(struct TGraphicDrawerId const &, struct TGraphicDrawerId const &)
- _asm mov eax, 11
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_12 ()
- {
- // ; int CWsGraphicDrawer::Contains(class TArray<struct TGraphicDrawerId> const &) const
- _asm mov eax, 12
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_13 ()
- {
- // ; int TWsGraphicMsgBufParser::Count(void) const
- _asm mov eax, 13
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_14 ()
- {
- // ; class CWsGraphicDrawer * WsGraphicDrawer::CreateLC(class TUid, class MWsGraphicDrawerEnvironment &, struct TGraphicDrawerId const &, class MWsClient &, class TDesC8 const &)
- _asm mov eax, 14
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_15 ()
- {
- // ; class TPtrC8 TWsGraphicMsgBufParser::Data(int) const
- _asm mov eax, 15
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_16 ()
- {
- // ; void CWsGraphicDrawer::Draw(class MWsGc &, class TRect const &, class TDesC8 const &) const
- _asm mov eax, 16
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_17 ()
- {
- // ; class MWsGraphicDrawerEnvironment & CWsGraphicDrawer::Env(void)
- _asm mov eax, 17
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_18 ()
- {
- // ; int TWsGraphicMsgBufParser::Find(class TUid, int) const
- _asm mov eax, 18
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_19 ()
- {
- // ; int CWsGraphicDrawer::HasAsChild(class TArray<struct TGraphicDrawerId> const &) const
- _asm mov eax, 19
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_20 ()
- {
- // ; struct TGraphicDrawerId const & CWsGraphicDrawer::Id(void) const
- _asm mov eax, 20
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_21 ()
- {
- // ; void CWsGraphicDrawer::Invalidate(void)
- _asm mov eax, 21
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_22 ()
- {
- // ; int CWsGraphicDrawerArray::IsEmpty(void) const
- _asm mov eax, 22
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_23 ()
- {
- // ; int TWsGraphicMsgAnimation::IsPlaying(class TTime const &, class TTimeIntervalMicroSeconds const &) const
- _asm mov eax, 23
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_24 ()
- {
- // ; int CWsGraphicDrawer::IsSharedWith(class TSecureId) const
- _asm mov eax, 24
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_25 ()
- {
- // ; int TWsGraphicMsgAnimation::Load(class TWsGraphicMsgBufParser const &)
- _asm mov eax, 25
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_26 ()
- {
- // ; int TWsGraphicMsgAnimation::Load(class TWsGraphicMsgBufParser const &, int)
- _asm mov eax, 26
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_27 ()
- {
- // ; class MWsClient const & CWsGraphicDrawer::Owner(void) const
- _asm mov eax, 27
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_28 ()
- {
- // ; void MWsAnimationScheduler::Redraw(class MWsScreen &)
- _asm mov eax, 28
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_29 ()
- {
- // ; int MWsAnimationScheduler::RedrawInvalid(class MWsScreen &, class TArray<struct TGraphicDrawerId> const &)
- _asm mov eax, 29
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_30 ()
- {
- // ; int CWsGraphicDrawerArray::Remove(struct TGraphicDrawerId const &)
- _asm mov eax, 30
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_31 ()
- {
- // ; int CWsGraphicDrawerArray::RemoveAll(class MWsClient const &)
- _asm mov eax, 31
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_32 ()
- {
- // ; int CWsGraphicDrawerArray::RemoveAndDestroy(struct TGraphicDrawerId const &)
- _asm mov eax, 32
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_33 ()
- {
- // ; int CWsGraphicDrawerArray::RemoveAndDestroyAll(class MWsClient const &)
- _asm mov eax, 33
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_34 ()
- {
- // ; void CWsGraphicDrawerArray::ResetAndDestroy(void)
- _asm mov eax, 34
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_35 ()
- {
- // ; class CWsGraphicDrawer const * CWsGraphicDrawerArray::ResolveGraphic(struct TGraphicDrawerId const &) const
- _asm mov eax, 35
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_36 ()
- {
- // ; void * MWsObjectProvider::ResolveObjectInterface(unsigned int)
- _asm mov eax, 36
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_37 ()
- {
- // ; int CWsGraphicDrawer::SendMessage(class TDesC8 const &)
- _asm mov eax, 37
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_38 ()
- {
- // ; int CWsGraphicDrawer::Share(class TSecureId)
- _asm mov eax, 38
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_39 ()
- {
- // ; int CWsGraphicDrawer::ShareGlobally(void)
- _asm mov eax, 39
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_40 ()
- {
- // ; int CWsGraphicDrawerArray::SwapLC(class CWsGraphicDrawer *)
- _asm mov eax, 40
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_41 ()
- {
- // ; class TUid TWsGraphicMsgBufParser::Uid(int) const
- _asm mov eax, 41
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_42 ()
- {
- // ; int CWsGraphicDrawer::UnShare(class TSecureId)
- _asm mov eax, 42
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_43 ()
- {
- // ; int CWsGraphicDrawer::UnShareGlobally(void)
- _asm mov eax, 43
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_44 ()
- {
- // ; int TWsGraphicMsgBufParser::Verify(void) const
- _asm mov eax, 44
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_45 ()
- {
- // ; class MWsGraphicDrawerEnvironment const & CWsGraphicDrawer::Env(void) const
- _asm mov eax, 45
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_46 ()
- {
- // ; void CWsGraphicDrawer::HandleEvent(struct TWservCrEvent const &)
- _asm mov eax, 46
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_47 ()
- {
- // ; int CWsGraphicDrawer::HasEventHandler(void) const
- _asm mov eax, 47
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_48 ()
- {
- // ; void CWsGraphicDrawer::SetEventHandler(class MWsEventHandler *)
- _asm mov eax, 48
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_49 ()
- {
- // ; TWservCrEvent::TWservCrEvent(unsigned long)
- _asm mov eax, 49
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_50 ()
- {
- // ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long)
- _asm mov eax, 50
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_51 ()
- {
- // ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long, void *)
- _asm mov eax, 51
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_52 ()
- {
- // ; int TWservCrEvent::SizeMode(void) const
- _asm mov eax, 52
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_53 ()
- {
- // ; unsigned long TWservCrEvent::Type(void) const
- _asm mov eax, 53
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_54 ()
- {
- // ; class RRegion const * TWservCrEvent::VisibleRegion(void) const
- _asm mov eax, 54
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_55 ()
- {
- // ; int TWservCrEvent::ScreenNumber(void) const
- _asm mov eax, 55
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_56 ()
- {
- // ; int TWsGraphicMsgBufParser::LoadFixed(class TUid, void *, int, int) const
- _asm mov eax, 56
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_57 ()
- {
- // ; int CWsGraphicDrawer::SendMessage(class CWsMessageData &)
- _asm mov eax, 57
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_58 ()
- {
- // ; class TRegion const * TWservCrEvent::DrawingRegion(void) const
- _asm mov eax, 58
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_59 ()
- {
- // ; int TWservCrEvent::WindowGroupIdentifier(void) const
- _asm mov eax, 59
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_60 ()
- {
- // ; int CWsGraphicDrawerArray::Add(class CWsGraphicDrawer *)
- _asm mov eax, 60
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_61 ()
- {
- // ; class CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::AddTLC(class CWsGraphicDrawer *)
- _asm mov eax, 61
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_62 ()
- {
- // ; void CWsGraphicDrawerArray::CommitP(class CWsGraphicDrawerArray::XRollBackBase *)
- _asm mov eax, 62
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_63 ()
- {
- // ; class CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::RemoveTLC(struct TGraphicDrawerId const &)
- _asm mov eax, 63
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_64 ()
- {
- // ; int CWsGraphicDrawerArray::Swap(class CWsGraphicDrawer *)
- _asm mov eax, 64
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_65 ()
- {
- // ; class CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::SwapTLC(class CWsGraphicDrawer *)
- _asm mov eax, 65
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_66 ()
- {
- // ; enum CFbsBitGc::TGraphicsOrientation TWservCrEvent::Orientation(void) const
- _asm mov eax, 66
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_67 ()
- {
- // ; void WsGraphicDrawer::FinalClose(void)
- _asm mov eax, 67
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_68 ()
- {
- // ; int TWservCrEvent::WasVisible(void) const
- _asm mov eax, 68
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_69 ()
- {
- // ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long, void *, class MWsWindow *)
- _asm mov eax, 69
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_70 ()
- {
- // ; class MWsWindow * TWservCrEvent::Window(void) const
- _asm mov eax, 70
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_71 ()
- {
- // ; CWsPlugin::CWsPlugin(void)
- _asm mov eax, 71
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_72 ()
- {
- // ; CWsRenderStage::CWsRenderStage(void)
- _asm mov eax, 72
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_73 ()
- {
- // ; CWsPlugin::~CWsPlugin(void)
- _asm mov eax, 73
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_74 ()
- {
- // ; CWsRenderStage::~CWsRenderStage(void)
- _asm mov eax, 74
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_75 ()
- {
- // ; void CWsPlugin::BaseConstructL(class MWsGraphicDrawerEnvironment &)
- _asm mov eax, 75
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_76 ()
- {
- // ; void CWsRenderStage::BaseConstructL(void)
- _asm mov eax, 76
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_77 ()
- {
- // ; class MWsGraphicDrawerEnvironment & CWsPlugin::Env(void)
- _asm mov eax, 77
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_78 ()
- {
- // ; class MWsGraphicDrawerEnvironment const & CWsPlugin::Env(void) const
- _asm mov eax, 78
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_79 ()
- {
- // ; class CWsRenderStage * CWsRenderStage::Next(void)
- _asm mov eax, 79
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_80 ()
- {
- // ; class TDesC16 const & CWsPlugin::PluginName(void) const
- _asm mov eax, 80
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_81 ()
- {
- // ; void * CWsRenderStage::ResolveObjectInterface(unsigned int)
- _asm mov eax, 81
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_82 ()
- {
- // ; void CWsRenderStage::SetNext(class CWsRenderStage *)
- _asm mov eax, 82
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_83 ()
- {
- // ; class TSurfaceId const * TWservCrEvent::SurfaceId(void) const
- _asm mov eax, 83
- _asm jmp common_dispatch
- }
-
-__declspec(dllexport)
-__declspec(naked)
-void call_vector_84 ()
- {
- // ; void MWsAnimationScheduler::Animate(class MWsScreen &, class TRequestStatus *)
- _asm mov eax, 84
- _asm jmp common_dispatch
- }
-
-}
-#define MAX_ORDINAL 85
-
+// Generated from "../BWINS/graphicdraweru.def" file size: 11015
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+
+extern "C" {
+void common_dispatch();
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_1 ()
+ {
+ // ; CWsGraphicDrawer::CWsGraphicDrawer(void)
+ _asm mov eax, 1
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_2 ()
+ {
+ // ; TWsGraphicMsgAnimation::TWsGraphicMsgAnimation(void)
+ _asm mov eax, 2
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_3 ()
+ {
+ // ; TWsGraphicMsgBufParser::TWsGraphicMsgBufParser(class TDesC8 const &)
+ _asm mov eax, 3
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_4 ()
+ {
+ // ; CWsGraphicDrawer::~CWsGraphicDrawer(void)
+ _asm mov eax, 4
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_5 ()
+ {
+ // ; void CWsGraphicDrawerArray::AddLC(class CWsGraphicDrawer *)
+ _asm mov eax, 5
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_6 ()
+ {
+ // ; void MWsAnimationScheduler::Animate(class MWsScreen &)
+ _asm mov eax, 6
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_7 ()
+ {
+ // ; class TTimeIntervalMicroSeconds TWsGraphicMsgAnimation::AnimationTime(class TTime const &, class TTimeIntervalMicroSeconds const &) const
+ _asm mov eax, 7
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_8 ()
+ {
+ // ; void CWsGraphicDrawer::BaseConstructL(class MWsGraphicDrawerEnvironment &, struct TGraphicDrawerId const &, class MWsClient &)
+ _asm mov eax, 8
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_9 ()
+ {
+ // ; void CWsGraphicDrawerArray::Close(void)
+ _asm mov eax, 9
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_10 ()
+ {
+ // ; int TGraphicDrawerId::Compare(struct TGraphicDrawerId const &) const
+ _asm mov eax, 10
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_11 ()
+ {
+ // ; int TGraphicDrawerId::Compare(struct TGraphicDrawerId const &, struct TGraphicDrawerId const &)
+ _asm mov eax, 11
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_12 ()
+ {
+ // ; int CWsGraphicDrawer::Contains(class TArray<struct TGraphicDrawerId> const &) const
+ _asm mov eax, 12
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_13 ()
+ {
+ // ; int TWsGraphicMsgBufParser::Count(void) const
+ _asm mov eax, 13
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_14 ()
+ {
+ // ; class CWsGraphicDrawer * WsGraphicDrawer::CreateLC(class TUid, class MWsGraphicDrawerEnvironment &, struct TGraphicDrawerId const &, class MWsClient &, class TDesC8 const &)
+ _asm mov eax, 14
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_15 ()
+ {
+ // ; class TPtrC8 TWsGraphicMsgBufParser::Data(int) const
+ _asm mov eax, 15
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_16 ()
+ {
+ // ; void CWsGraphicDrawer::Draw(class MWsGc &, class TRect const &, class TDesC8 const &) const
+ _asm mov eax, 16
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_17 ()
+ {
+ // ; class MWsGraphicDrawerEnvironment & CWsGraphicDrawer::Env(void)
+ _asm mov eax, 17
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_18 ()
+ {
+ // ; int TWsGraphicMsgBufParser::Find(class TUid, int) const
+ _asm mov eax, 18
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_19 ()
+ {
+ // ; int CWsGraphicDrawer::HasAsChild(class TArray<struct TGraphicDrawerId> const &) const
+ _asm mov eax, 19
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_20 ()
+ {
+ // ; struct TGraphicDrawerId const & CWsGraphicDrawer::Id(void) const
+ _asm mov eax, 20
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_21 ()
+ {
+ // ; void CWsGraphicDrawer::Invalidate(void)
+ _asm mov eax, 21
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_22 ()
+ {
+ // ; int CWsGraphicDrawerArray::IsEmpty(void) const
+ _asm mov eax, 22
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_23 ()
+ {
+ // ; int TWsGraphicMsgAnimation::IsPlaying(class TTime const &, class TTimeIntervalMicroSeconds const &) const
+ _asm mov eax, 23
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_24 ()
+ {
+ // ; int CWsGraphicDrawer::IsSharedWith(class TSecureId) const
+ _asm mov eax, 24
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_25 ()
+ {
+ // ; int TWsGraphicMsgAnimation::Load(class TWsGraphicMsgBufParser const &)
+ _asm mov eax, 25
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_26 ()
+ {
+ // ; int TWsGraphicMsgAnimation::Load(class TWsGraphicMsgBufParser const &, int)
+ _asm mov eax, 26
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_27 ()
+ {
+ // ; class MWsClient const & CWsGraphicDrawer::Owner(void) const
+ _asm mov eax, 27
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_28 ()
+ {
+ // ; void MWsAnimationScheduler::Redraw(class MWsScreen &)
+ _asm mov eax, 28
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_29 ()
+ {
+ // ; int MWsAnimationScheduler::RedrawInvalid(class MWsScreen &, class TArray<struct TGraphicDrawerId> const &)
+ _asm mov eax, 29
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_30 ()
+ {
+ // ; int CWsGraphicDrawerArray::Remove(struct TGraphicDrawerId const &)
+ _asm mov eax, 30
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_31 ()
+ {
+ // ; int CWsGraphicDrawerArray::RemoveAll(class MWsClient const &)
+ _asm mov eax, 31
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_32 ()
+ {
+ // ; int CWsGraphicDrawerArray::RemoveAndDestroy(struct TGraphicDrawerId const &)
+ _asm mov eax, 32
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_33 ()
+ {
+ // ; int CWsGraphicDrawerArray::RemoveAndDestroyAll(class MWsClient const &)
+ _asm mov eax, 33
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_34 ()
+ {
+ // ; void CWsGraphicDrawerArray::ResetAndDestroy(void)
+ _asm mov eax, 34
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_35 ()
+ {
+ // ; class CWsGraphicDrawer const * CWsGraphicDrawerArray::ResolveGraphic(struct TGraphicDrawerId const &) const
+ _asm mov eax, 35
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_36 ()
+ {
+ // ; void * MWsObjectProvider::ResolveObjectInterface(unsigned int)
+ _asm mov eax, 36
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_37 ()
+ {
+ // ; int CWsGraphicDrawer::SendMessage(class TDesC8 const &)
+ _asm mov eax, 37
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_38 ()
+ {
+ // ; int CWsGraphicDrawer::Share(class TSecureId)
+ _asm mov eax, 38
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_39 ()
+ {
+ // ; int CWsGraphicDrawer::ShareGlobally(void)
+ _asm mov eax, 39
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_40 ()
+ {
+ // ; int CWsGraphicDrawerArray::SwapLC(class CWsGraphicDrawer *)
+ _asm mov eax, 40
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_41 ()
+ {
+ // ; class TUid TWsGraphicMsgBufParser::Uid(int) const
+ _asm mov eax, 41
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_42 ()
+ {
+ // ; int CWsGraphicDrawer::UnShare(class TSecureId)
+ _asm mov eax, 42
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_43 ()
+ {
+ // ; int CWsGraphicDrawer::UnShareGlobally(void)
+ _asm mov eax, 43
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_44 ()
+ {
+ // ; int TWsGraphicMsgBufParser::Verify(void) const
+ _asm mov eax, 44
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_45 ()
+ {
+ // ; class MWsGraphicDrawerEnvironment const & CWsGraphicDrawer::Env(void) const
+ _asm mov eax, 45
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_46 ()
+ {
+ // ; void CWsGraphicDrawer::HandleEvent(struct TWservCrEvent const &)
+ _asm mov eax, 46
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_47 ()
+ {
+ // ; int CWsGraphicDrawer::HasEventHandler(void) const
+ _asm mov eax, 47
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_48 ()
+ {
+ // ; void CWsGraphicDrawer::SetEventHandler(class MWsEventHandler *)
+ _asm mov eax, 48
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_49 ()
+ {
+ // ; TWservCrEvent::TWservCrEvent(unsigned long)
+ _asm mov eax, 49
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_50 ()
+ {
+ // ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long)
+ _asm mov eax, 50
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_51 ()
+ {
+ // ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long, void *)
+ _asm mov eax, 51
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_52 ()
+ {
+ // ; int TWservCrEvent::SizeMode(void) const
+ _asm mov eax, 52
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_53 ()
+ {
+ // ; unsigned long TWservCrEvent::Type(void) const
+ _asm mov eax, 53
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_54 ()
+ {
+ // ; class RRegion const * TWservCrEvent::VisibleRegion(void) const
+ _asm mov eax, 54
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_55 ()
+ {
+ // ; int TWservCrEvent::ScreenNumber(void) const
+ _asm mov eax, 55
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_56 ()
+ {
+ // ; int TWsGraphicMsgBufParser::LoadFixed(class TUid, void *, int, int) const
+ _asm mov eax, 56
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_57 ()
+ {
+ // ; int CWsGraphicDrawer::SendMessage(class CWsMessageData &)
+ _asm mov eax, 57
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_58 ()
+ {
+ // ; class TRegion const * TWservCrEvent::DrawingRegion(void) const
+ _asm mov eax, 58
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_59 ()
+ {
+ // ; int TWservCrEvent::WindowGroupIdentifier(void) const
+ _asm mov eax, 59
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_60 ()
+ {
+ // ; int CWsGraphicDrawerArray::Add(class CWsGraphicDrawer *)
+ _asm mov eax, 60
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_61 ()
+ {
+ // ; struct CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::AddTLC(class CWsGraphicDrawer *)
+ _asm mov eax, 61
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_62 ()
+ {
+ // ; void CWsGraphicDrawerArray::CommitP(struct CWsGraphicDrawerArray::XRollBackBase *)
+ _asm mov eax, 62
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_63 ()
+ {
+ // ; struct CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::RemoveTLC(struct TGraphicDrawerId const &)
+ _asm mov eax, 63
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_64 ()
+ {
+ // ; int CWsGraphicDrawerArray::Swap(class CWsGraphicDrawer *)
+ _asm mov eax, 64
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_65 ()
+ {
+ // ; struct CWsGraphicDrawerArray::XRollBackBase * CWsGraphicDrawerArray::SwapTLC(class CWsGraphicDrawer *)
+ _asm mov eax, 65
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_66 ()
+ {
+ // ; enum CFbsBitGc::TGraphicsOrientation TWservCrEvent::Orientation(void) const
+ _asm mov eax, 66
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_67 ()
+ {
+ // ; void WsGraphicDrawer::FinalClose(void)
+ _asm mov eax, 67
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_68 ()
+ {
+ // ; int TWservCrEvent::WasVisible(void) const
+ _asm mov eax, 68
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_69 ()
+ {
+ // ; TWservCrEvent::TWservCrEvent(unsigned long, unsigned long, void *, class MWsWindow *)
+ _asm mov eax, 69
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_70 ()
+ {
+ // ; class MWsWindow * TWservCrEvent::Window(void) const
+ _asm mov eax, 70
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_71 ()
+ {
+ // ; CWsPlugin::CWsPlugin(void)
+ _asm mov eax, 71
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_72 ()
+ {
+ // ; CWsRenderStage::CWsRenderStage(void)
+ _asm mov eax, 72
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_73 ()
+ {
+ // ; CWsPlugin::~CWsPlugin(void)
+ _asm mov eax, 73
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_74 ()
+ {
+ // ; CWsRenderStage::~CWsRenderStage(void)
+ _asm mov eax, 74
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_75 ()
+ {
+ // ; void CWsPlugin::BaseConstructL(class MWsGraphicDrawerEnvironment &)
+ _asm mov eax, 75
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_76 ()
+ {
+ // ; void CWsRenderStage::BaseConstructL(void)
+ _asm mov eax, 76
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_77 ()
+ {
+ // ; class MWsGraphicDrawerEnvironment & CWsPlugin::Env(void)
+ _asm mov eax, 77
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_78 ()
+ {
+ // ; class MWsGraphicDrawerEnvironment const & CWsPlugin::Env(void) const
+ _asm mov eax, 78
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_79 ()
+ {
+ // ; class CWsRenderStage * CWsRenderStage::Next(void)
+ _asm mov eax, 79
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_80 ()
+ {
+ // ; class TDesC16 const & CWsPlugin::PluginName(void) const
+ _asm mov eax, 80
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_81 ()
+ {
+ // ; void * CWsRenderStage::ResolveObjectInterface(unsigned int)
+ _asm mov eax, 81
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_82 ()
+ {
+ // ; void CWsRenderStage::SetNext(class CWsRenderStage *)
+ _asm mov eax, 82
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_83 ()
+ {
+ // ; class TSurfaceId const * TWservCrEvent::SurfaceId(void) const
+ _asm mov eax, 83
+ _asm jmp common_dispatch
+ }
+
+__declspec(dllexport)
+__declspec(naked)
+void call_vector_84 ()
+ {
+ // ; void MWsAnimationScheduler::Animate(class MWsScreen &, class TRequestStatus *)
+ _asm mov eax, 84
+ _asm jmp common_dispatch
+ }
+
+}
+#define MAX_ORDINAL 85
+
--- a/windowing/windowserver/wins_switching/wsgraphicdrawerswitch.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserver/wins_switching/wsgraphicdrawerswitch.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -40,10 +40,16 @@
FARPROC vector[MAX_ORDINAL+1];
+#ifdef _DEBUG
void Stop(char* aErrorMessage)
+#else
+void Stop(char* /*aErrorMessage*/)
+#endif
{
int err = GetLastError();
+#ifdef _DEBUG
RDebug::Printf("%S, (last error = %i)", aErrorMessage, err);
+#endif
_asm int 3;
}
@@ -77,7 +83,9 @@
UserSvr::HalFunction(EHalGroupEmulator, EEmulatorHalBoolProperty, (TAny*)"symbian_graphics_use_gce", &nga);
const char* library = nga ? "wsgraphicdrawer_nga.dll" : "wsgraphicdrawer_nonnga.dll";
+#ifdef _DEBUG
RDebug::Printf("Redirecting wsgraphicdrawer.dll to \"%s\" ...\n", library);
+#endif
Emulator::Escape(); // prevent deadlock between EKA2 scheduler and MS kernel
// try to load selected DLL
@@ -91,7 +99,9 @@
else
{
fill_vector(instance);
+#ifdef _DEBUG
RDebug::Printf("... DLL loaded successfully");
+#endif
}
}
--- a/windowing/windowserverplugins/openwfc/group/stdplugin.mmp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserverplugins/openwfc/group/stdplugin.mmp Tue Jun 01 15:04:40 2010 +0100
@@ -78,6 +78,7 @@
//TODO Change the following line once eglsynchelper has been corrected
// to be available as a dynamic library
STATICLIBRARY eglsynchelper.lib
+LIBRARY bitgdi.lib // needed just for CFbsDevice::DisplayMode16M call
#ifdef WINS
LIBRARY osbwin32.lib
--- a/windowing/windowserverplugins/openwfc/src/displayrenderstage.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserverplugins/openwfc/src/displayrenderstage.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -27,6 +27,7 @@
#if defined(__WINS__) && defined(_DEBUG)
#include "debugbardrawer.h"
#endif
+#include <bitdev.h>
#if defined(__WINS__) && defined(_DEBUG)
#define DEBUGOSB iRenderTarget->UpdateDebugWin();
@@ -249,7 +250,6 @@
return NULL;
}
}
-
}
TAny* interface = NULL;
@@ -312,7 +312,19 @@
TDisplayMode CDisplayRenderStage::DisplayMode() const
{
- return iRenderTarget->DisplayMode();
+ // MWsScreenDevice::DisplayMode is queried by Wserv to reply to CWsScreenDevice::DisplayMode calls from apps or when Wserv creates
+ // CFbsScreenDevice whenever there are DSA clients.
+ // Screendriver default display mode for 32bpp has been changed from 16MAP to 16MA to maintain compatibility with 3rd party apps,
+ // therefore we have to report the supported screen device format instead of UI surface format.
+ //
+ // However, this method is also used by flickerbuffer render stage to determine pixel format for off-screen rendering target,
+ // which must match UI surface format. Since we cannot return two different values in 32bpp case, this method will always return the
+ // value from screendriver. Flickerbuffer render stage need to change to deal with this.
+ //
+ const TInt KThirtyTwoBpp = 32;
+ const TDisplayMode dm = iRenderTarget->DisplayMode();
+ const TInt bpp = TDisplayModeUtils::NumDisplayModeBitsPerPixel(dm);
+ return bpp == KThirtyTwoBpp ? CFbsDevice::DisplayMode16M() : dm;
}
TSize CDisplayRenderStage::SizeInPixels() const
--- a/windowing/windowserverplugins/openwfc/src/fbrenderstage.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserverplugins/openwfc/src/fbrenderstage.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -19,6 +19,7 @@
#include <graphics/wsdisplaycontrol.h>
#include "displaypolicy.h"
#include "utils.h"
+#include <graphics/sgutils.h>
#if defined(__WINS__) && defined(_DEBUG)
#define DEBUGOSB iRenderTarget->UpdateDebugWin();
@@ -154,7 +155,18 @@
if (iniFile->FindVar(iNextScreenDevice->ScreenNumber(), KFlickerBufferMode, flickerBufferModeName))
displayMode = ParseDisplayMode(flickerBufferModeName);
if (displayMode == ENone)
- displayMode = iNextScreenDevice->DisplayMode();
+ {
+ // Display render stage MWsScreenDevice::DisplayMode now reports the supported screendriver display mode in 32bpp.
+ // It is necessary in order to maintain BC with 3rd party apps and DSA framework.
+ // The reported display mode may be different from the actual UI surface pixel format, so flicker buffer
+ // must not rely on DisplayMode() to determine pixel format for its rendering target.
+ //
+ MWsUiBuffer* uiBuf = aNextStage->ObjectInterface<MWsUiBuffer>();
+ if (uiBuf)
+ {
+ displayMode = SgUtils::PixelFormatToDisplayMode(uiBuf->PixelFormat());
+ }
+ }
STD_ASSERT_DEBUG(displayMode!=ENone, EPluginPanicNoDisplayModeFound);
const TUint32 usage = ESgUsageDirectGdiTarget | ESgUsageWindowGcSource;
--- a/windowing/windowserverplugins/openwfc/src/openwfcwrapper.cpp Wed May 19 14:34:22 2010 +0100
+++ b/windowing/windowserverplugins/openwfc/src/openwfcwrapper.cpp Tue Jun 01 15:04:40 2010 +0100
@@ -138,8 +138,10 @@
void COpenWfcWrapper::ConstructL(TInt aScreenId)
{
+#ifdef _DEBUG
_LIT(KOpenWfcLog, "+ COpenWfcWrapper::ConstructL");
RDebug::Print(KOpenWfcLog);
+#endif
iScreenNumber = aScreenId;
WFCint filterList[] = { WFC_DEVICE_FILTER_SCREEN_NUMBER, iScreenNumber, WFC_NONE};