javauis/m2g_qt/src/CM2GRenderContext.cpp
changeset 87 1627c337e51e
parent 80 d6dafc5d983f
--- a/javauis/m2g_qt/src/CM2GRenderContext.cpp	Fri Oct 15 12:29:39 2010 +0300
+++ b/javauis/m2g_qt/src/CM2GRenderContext.cpp	Fri Oct 29 11:49:32 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-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"
@@ -93,22 +93,22 @@
     {
         TRAP_IGNORE(iProxy->DeleteSvgEngineL(iEngineHandle));
     }
-    if(iWindowSurface)
-        {
-            delete iWindowSurface;
-        }
-    if(targetBitmap)
-        {
+    if (iWindowSurface)
+    {
+        delete iWindowSurface;
+    }
+    if (targetBitmap)
+    {
         delete targetBitmap;
-        }
-    if(iTargetQImage)
-        {
+    }
+    if (iTargetQImage)
+    {
         delete iTargetQImage;
-        }
-    if(tempBitmapForMask)
-        {
+    }
+    if (tempBitmapForMask)
+    {
         delete tempBitmapForMask;
-        }
+    }
     delete iImgBmp;
     iFbsSession.Disconnect();
 }
@@ -117,125 +117,73 @@
 // CM2GRenderContext::BindL
 // -----------------------------------------------------------------------------
 void CM2GRenderContext::BindL(TInt& aTargetHandle)
-    {
+{
     M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::BindL()");
     // get the screen size
-    TSize screenSize = CEikonEnv::Static()->ScreenDevice()->SizeInPixels();             
-        
+    TSize screenSize = CEikonEnv::Static()->ScreenDevice()->SizeInPixels();
+
     iWindowSurface = (reinterpret_cast<Java::GFX::WindowSurface*>(aTargetHandle));
-    //wSurfaceType   = (Java::GFX::WindowSurfaceType)iWindowSurface->getType();
-    wSurfaceType = Java::GFX::WsTypeQtImage;
-    
-    iWindowSurface->bind(wSurfaceType);
-        
-    switch(wSurfaceType)
-        {
-        case Java::GFX::WsTypeQtImage:
-            User::LeaveIfNull(iOffScreenQImage = iWindowSurface->getQtImage());
-            targetBitmap = new CSvgtBitmap ((TInt8*)iOffScreenQImage->bits(),
-                    TSize(iOffScreenQImage->size().width(),iOffScreenQImage->size().height()),
-                            EColor16MA,iOffScreenQImage->bytesPerLine());
-            break;
+
+    iWindowSurface->bind(Java::GFX::WsTypeQtImage);
+
+    wSurfaceType = (Java::GFX::WindowSurfaceType)iWindowSurface->getType();
 
-        /*TODO for time being..case Java::GFX::WsTypeQtImage:
-            User::LeaveIfNull(iTargetQImage   = iWindowSurface->getQtImage());
-            InitializeQImageOffscreenBufferL(screenSize,iTargetQImage);
-            break;*/
-            
-        case Java::GFX::WsTypeSymbianBitmap:
-            CFbsBitmap* tempBitmap;
-            User::LeaveIfNull(tempBitmap = (reinterpret_cast<Java::GFX::WindowSurface*>(aTargetHandle)->getSymbianBitmap()));
-            InitializeCFbsBitmapOffscreenBufferL(screenSize,tempBitmap);
-            //iOffScreenBitmap = new(ELeave) CFbsBitmap();
-            break;
-            
-        default:
-            User::Leave(KErrNotSupported);
-            break;
-        }
-    
+    switch (wSurfaceType)
+    {
+    case Java::GFX::WsTypeQtImage:
+        User::LeaveIfNull(iOffScreenQImage = iWindowSurface->getQtImage());
+        targetBitmap = new CSvgtBitmap((TInt8*)iOffScreenQImage->bits(),
+                                       TSize(iOffScreenQImage->size().width(),iOffScreenQImage->size().height()),
+                                       EColor16MA,iOffScreenQImage->bytesPerLine());
+        break;
+
+    case Java::GFX::WsTypeSymbianBitmap:
+        break;
+
+    default:
+        User::Leave(KErrNotSupported);
+        break;
     }
 
+}
+
 // -----------------------------------------------------------------------------
-// CM2GRenderContext::InitializeQImageOffscreenBufferL
-// -----------------------------------------------------------------------------
-void CM2GRenderContext::InitializeQImageOffscreenBufferL(TSize aScreenSize,QImage* aQimage)
-    {
-    QSize aSize;
-    aSize.setHeight(aScreenSize.iHeight);
-    aSize.setWidth(aScreenSize.iWidth);
-    iOffScreenQImage = new QImage(aSize,aQimage->format());
-    
-    //TODO For time being the format is EColor16MU 
-    targetBitmap = new CSvgtBitmap ((TInt8*)iOffScreenQImage->bits(),
-    TSize(iOffScreenQImage->size().width(),iOffScreenQImage->size().height()),
-            EColor16MU,iOffScreenQImage->bytesPerLine());
-    }
-
-// -----------------------------------------------------------------------------
-// CM2GRenderContext::InitializeCFbsBitmapOffscreenBufferL
-// -----------------------------------------------------------------------------
-void CM2GRenderContext::InitializeCFbsBitmapOffscreenBufferL(TSize aScreenSize,CFbsBitmap* aBitmap)
-    {
-    
-    iOffScreenBitmap = new(ELeave) CFbsBitmap();
-    User::LeaveIfError(
-            iOffScreenBitmap->Create(aScreenSize, aBitmap->DisplayMode()));
-    
-//    TODO check for stride in case of bitmap.
-//    iTargetBitmap = new CSvgtBitmap( (TInt8*)iOffScreenBitmap->DataAddress() ,aScreenSize,iOffScreenBitmap->DisplayMode()/*KDefaultDisplayMode TODO chk this*/,iOffScreenBitmap->ScanLineLength(iOffScreenBitmap->SizeInPixels().iWidth,KDefaultDisplayMode) );
-    }
-
-// -----------------------------------------------------------------------------
-// CM2GRenderContext::GetImgHandleL
-// -----------------------------------------------------------------------------
-/*
- * TODO we don't need method anymore as now we need Surface handle
- * TM2GBitmapHandle CM2GRenderContext::GetImgHandleL() const
-{
-    User::LeaveIfNull(iImgBmp);
-
-    return REINTERPRET_CAST(TM2GBitmapHandle, iImgBmp);
-}*/
-
-
 // -----------------------------------------------------------------------------
 // CM2GRenderContext::InitImageBitmapL
 // -----------------------------------------------------------------------------
 void CM2GRenderContext::InitImageBitmapL()
-    {
+{
     M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::InitImageBitmapL() - begin");
     // get the screen size
     TSize screenSize = CEikonEnv::Static()->ScreenDevice()->SizeInPixels();
     switch (wSurfaceType)
-        {
-        case Java::GFX::WsTypeQtImage:
-            {
-            break;
-            }
-        case Java::GFX::WsTypeSymbianBitmap:
-            {
-             break;   
-            }
-        
-        default:
-            break;
-        }
+    {
+    case Java::GFX::WsTypeQtImage:
+    {
+        break;
+    }
+    case Java::GFX::WsTypeSymbianBitmap:
+    {
+        break;
+    }
+
+    default:
+        break;
+    }
     M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::InitImageBitmapL() - end");
-    }
-// -----------------------------------------------------------------------------
+}
 // CM2GRenderContext::ReleaseL
 // -----------------------------------------------------------------------------
 void CM2GRenderContext::ReleaseL()
-    {
+{
     M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ReleaseL() - begin");
-    
+
     iTargetQImage = NULL;
     iOffScreenQImage = NULL;
     iWindowSurface->release();
 
     M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ReleaseL() - end");
-    }
+}
 
 // -----------------------------------------------------------------------------
 // CM2GRenderContext::RenderL
@@ -307,7 +255,7 @@
 // CM2GRenderContext::ConstructL
 // -----------------------------------------------------------------------------
 void CM2GRenderContext::ConstructL(MM2GSVGProxy* aProxy)
-    {
+{
     // Init member variables
     SetTransparency(MM2GRenderContext::KFullOpaque);
 
@@ -327,7 +275,7 @@
 
     User::LeaveIfError(iFbsSession.Connect());
     M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ConstructL() - end");
-    }
+}
 // -----------------------------------------------------------------------------
 // CM2GRenderContext::PrepareViewbox
 // -----------------------------------------------------------------------------
@@ -366,11 +314,11 @@
 }
 
 void CM2GRenderContext::RenderLCDUIL(
-                TM2GSvgDocumentHandle& aSvgDocHandle,
-                TReal32 aCurrentTime,
-                const TRect& aViewbox,
-                const TPoint& aAnchor)
-    {
+    TM2GSvgDocumentHandle& aSvgDocHandle,
+    TReal32 aCurrentTime,
+    const TRect& /*aViewbox*/,
+    const TPoint& /*aAnchor*/)
+{
     M2G_DEBUG_4("M2G_DEBUG: CM2GRenderContext::RenderL() viewbox: x=%d, y=%d, w=%d, h=%d begin", aViewbox.iTl.iX, aViewbox.iTl.iY, aViewbox.Size().iWidth, aViewbox.Size().iHeight);
 
     // No need to render if content is fully transparency (i.e. alpha=0)
@@ -379,47 +327,29 @@
         return;
     }
 
-    QStringList list;
-    list <<"QImage-Format_RGB32";
-    TBuf8<32> fname;
-    
     // 1: render the svg document on the iImgBmp
     iProxy->RenderDocumentL(
         iEngineHandle,
         aSvgDocHandle,
-        (TM2GSvgBitmapHandle)targetBitmap 
+        (TM2GSvgBitmapHandle)targetBitmap
         , (TUint)NULL, aCurrentTime);
-      
-      fname.Zero();
-      fname.Format(_L8("c:\\%s.bmp"), list.at(0).toLocal8Bit().constData());
-      TBool ret = iOffScreenQImage->save((const char*)fname.PtrZ());
-      
-      QPixmap pixmap = QPixmap::fromImage(*iOffScreenQImage);
-      tempBitmapForMask  = pixmap.toSymbianCFbsBitmap();
-      
-      TFileName       bitmapFilename;
-      bitmapFilename.Copy(_L("c:\\bugbitmap"));
-      bitmapFilename.AppendNum(tempBitmapForMask->Handle());
-      bitmapFilename.Append(_L(".bmp"));
-      SaveBitmapL(*tempBitmapForMask, bitmapFilename);
-      //TODO Release function should be called from FrameWork
-      //iWindowSurface->release();
-      M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderL() end");
-    }
+
+    M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderL() end");
+}
 
 // -----------------------------------------------------------------------------
-/*TODO
- * Write the separate RenderDocumentL method for QImage and CFbsBitmap 
+/*
+ * Write the separate RenderDocumentL method for QImage and CFbsBitmap
  * also handle subsequent BitBlt and
  * CreateAlphaBlendMaskL
  * */
 void CM2GRenderContext::RenderESWTL(
     TM2GSvgDocumentHandle& aSvgDocHandle,
     TReal32 aCurrentTime,
-    const TRect& aViewbox,
-    const TPoint& aAnchor,
+    const TRect& /*aViewbox*/,
+    const TPoint& /*aAnchor*/,
     TBool /*aUseNativeClear*/,
-    TInt* aReturnData)
+    TInt* /*aReturnData*/)
 {
     M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderESWTL() Start");
     // No need to render if content is fully transparency (i.e. alpha=0)
@@ -427,139 +357,13 @@
     {
         return;
     }
-    
+
     // 1: render the svg document on the iImgBmp
-   iProxy->RenderDocumentL(iEngineHandle,
-       aSvgDocHandle,
-       (TM2GSvgBitmapHandle)targetBitmap, (TUint)NULL, aCurrentTime);
-   M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderESWTL() end");
-    
-}
-// CM2GRenderContext::CreateAlphaBlendMask
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-// CM2GRenderContext::ClearBitmapL
-// -----------------------------------------------------------------------------
-void CM2GRenderContext::ClearBitmapL(CFbsBitmap* aBmp)
-{
-    M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearBitmap - begin");
+    iProxy->RenderDocumentL(iEngineHandle,
+                            aSvgDocHandle,
+                            (TM2GSvgBitmapHandle)targetBitmap, (TUint)NULL, aCurrentTime);
+    M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::RenderESWTL() end");
 
-    User::LeaveIfNull(aBmp);
-
-    TM2GBitmapLock lock(aBmp);
-
-    TSize   size            = aBmp->SizeInPixels();
-    TInt    scanlineLength  = aBmp->ScanLineLength(size.iWidth, aBmp->DisplayMode());
-
-    TUint32* buf = aBmp->DataAddress();
-    char* bufBytes = REINTERPRET_CAST(char*, buf);
-
-    Mem::FillZ(bufBytes,  size.iHeight * scanlineLength);
-
-    M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearBitmap - end");
 }
 
-
-void CM2GRenderContext::ClearSurfaceL(TM2GSvgBitmapHandle aSvgtBmpHandle )
-    {
-    M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearBitmap - begin");
-//TODO As Currently we are not using this functionality.     
-/*     switch(wSurfaceType)
-         {
-         case Java::GFX::WsTypeQtImage:
-             QImage* tempQImage;
-             User::LeaveIfNull(tempQImage = (reinterpret_cast<Java::GFX::WindowSurface*>(aSvgtBmpHandle)->getQtImage()));
-             //TODO Do we need to lock the qimage as implemented below        TM2GBitmapLock lock(tempBitmap);?
-             QSize   sizeQimage            = tempQImage->size();//TODO Check for SizeInPixels
-             TInt    scanlineLengthQimage  = tempQImage->bytesPerLine();
-             //uchar* bufBytesQimage = REINTERPRET_CAST(uchar*, tempQImage->bits());
-             
-             Mem::FillZ(tempQImage->bits(),  sizeQimage.height() * scanlineLengthQimage);
-             
-             M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearSurface Qimage Clear function- end");
-             break;
-             
-         case Java::GFX::WsTypeSymbianBitmap:
-             CFbsBitmap* tempBitmap;
-             User::LeaveIfNull(tempBitmap = (reinterpret_cast<Java::GFX::WindowSurface*>(aSvgtBmpHandle)->getSymbianBitmap()));
-             TM2GBitmapLock lock(tempBitmap);
-             TSize   sizeBmp            = tempBitmap->SizeInPixels();
-             TInt    scanlineLengthBmp  = tempBitmap->ScanLineLength(sizeBmp.iWidth, tempBitmap->DisplayMode());
-             TUint32* bufBmp = tempBitmap->DataAddress();
-             char* bufBytesBmp = REINTERPRET_CAST(char*, bufBmp);
-
-             Mem::FillZ(bufBytesBmp,  sizeBmp.iHeight * scanlineLengthBmp);
-
-             M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearSurface Bitmap Clear function- end");
-             break;
-             
-         default:
-             M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::ClearBitmap Type Not Supported.- end");
-             User::Leave(KErrNotSupported);
-             break;
-         }
- */
-    }
-
-// -----------------------------------------------------------------------------
-// CM2GRenderContext::FillBitmapL
-// -----------------------------------------------------------------------------
-void CM2GRenderContext::FillBitmapL(CFbsBitmap* aBmp, const TUint8& aChar)
-{
-    M2G_DEBUG_1("M2G_DEBUG: CM2GRenderContext::FillBitmap() filled with=%d - begin", aChar);
-    User::LeaveIfNull(aBmp);
-    TM2GBitmapLock lock(aBmp);
-
-    TSize   size            = aBmp->SizeInPixels();
-    TInt    scanlineLength  = aBmp->ScanLineLength(size.iWidth, aBmp->DisplayMode());
-
-    TUint32* buf = aBmp->DataAddress();
-    char* bufBytes = REINTERPRET_CAST(char*, buf);
-
-    Mem::Fill(bufBytes, size.iHeight * scanlineLength, aChar);
-
-    M2G_DEBUG_0("M2G_DEBUG: CM2GRenderContext::FillBitmap - end");
-}
-
-// -----------------------------------------------------------------------------
-// CM2GRenderContext::GetBufferHandleL
-// -----------------------------------------------------------------------------
-TM2GSvgBitmapHandle CM2GRenderContext::GetBufferHandleL() const
-    {
-    switch(wSurfaceType)
-           {
-           case Java::GFX::WsTypeQtImage:
-               User::LeaveIfNull(iOffScreenQImage);
-               return REINTERPRET_CAST(TM2GSvgBitmapHandle , iOffScreenQImage);
-	           break;
-
-           case Java::GFX::WsTypeSymbianBitmap:
-               User::LeaveIfNull(iOffScreenBitmap);
-               return REINTERPRET_CAST(TM2GSvgBitmapHandle , iOffScreenBitmap);
-               break;
-               
-           default:
-               User::Leave(KErrNotSupported);
-               break;
-           }
-    
-    }
-
-//CODE to check the Bitmap Contain.
-TInt CM2GRenderContext::SaveBitmapL(const CFbsBitmap& aNVGBitmap, const TFileName& aFileName)
-    {
-        TFileName       bitmapFilename;
-        bitmapFilename.Copy(aFileName);
-        RFs aFs;
-        User::LeaveIfError(aFs.Connect());
-        CImageEncoder * imgEncoder = 0;
-        TRequestStatus  requesStatus = 0;
-        imgEncoder = CImageEncoder::FileNewL(aFs, bitmapFilename, _L8("image/bmp"), CImageEncoder::EOptionAlwaysThread);
-        imgEncoder->Convert(&requesStatus, aNVGBitmap);
-        User::WaitForRequest(requesStatus);
-        delete imgEncoder;       
-        aFs.Close();
-        return 0;
-    }
-
 M2G_NS_END