| Index: core/fxge/ge/fx_ge_device.cpp
 | 
| diff --git a/core/fxge/ge/fx_ge_device.cpp b/core/fxge/ge/fx_ge_device.cpp
 | 
| index f1f7dc021dd110ee810b5f85c8901c7d33d152d2..adf68a87498255badc84f02186d6ce8b43f14bbc 100644
 | 
| --- a/core/fxge/ge/fx_ge_device.cpp
 | 
| +++ b/core/fxge/ge/fx_ge_device.cpp
 | 
| @@ -6,18 +6,25 @@
 | 
|  
 | 
|  #include "core/fxge/include/fx_ge.h"
 | 
|  
 | 
| -CFX_RenderDevice::CFX_RenderDevice() {
 | 
| -  m_pDeviceDriver = nullptr;
 | 
| -  m_pBitmap = nullptr;
 | 
| -}
 | 
| +CFX_RenderDevice::CFX_RenderDevice()
 | 
| +    : m_pBitmap(nullptr),
 | 
| +      m_Width(0),
 | 
| +      m_Height(0),
 | 
| +      m_bpp(0),
 | 
| +      m_RenderCaps(0),
 | 
| +      m_DeviceClass(0),
 | 
| +      m_pDeviceDriver(nullptr) {}
 | 
| +
 | 
|  CFX_RenderDevice::~CFX_RenderDevice() {
 | 
|    delete m_pDeviceDriver;
 | 
|  }
 | 
| +
 | 
|  void CFX_RenderDevice::SetDeviceDriver(IFX_RenderDeviceDriver* pDriver) {
 | 
|    delete m_pDeviceDriver;
 | 
|    m_pDeviceDriver = pDriver;
 | 
|    InitDeviceInfo();
 | 
|  }
 | 
| +
 | 
|  void CFX_RenderDevice::InitDeviceInfo() {
 | 
|    m_Width = m_pDeviceDriver->GetDeviceCaps(FXDC_PIXEL_WIDTH);
 | 
|    m_Height = m_pDeviceDriver->GetDeviceCaps(FXDC_PIXEL_HEIGHT);
 | 
| @@ -31,12 +38,15 @@ void CFX_RenderDevice::InitDeviceInfo() {
 | 
|      m_ClipBox.bottom = m_Height;
 | 
|    }
 | 
|  }
 | 
| +
 | 
|  FX_BOOL CFX_RenderDevice::StartRendering() {
 | 
|    return m_pDeviceDriver->StartRendering();
 | 
|  }
 | 
| +
 | 
|  void CFX_RenderDevice::EndRendering() {
 | 
|    m_pDeviceDriver->EndRendering();
 | 
|  }
 | 
| +
 | 
|  void CFX_RenderDevice::SaveState() {
 | 
|    m_pDeviceDriver->SaveState();
 | 
|  }
 | 
| @@ -52,6 +62,7 @@ int CFX_RenderDevice::GetDeviceCaps(int caps_id) const {
 | 
|  CFX_Matrix CFX_RenderDevice::GetCTM() const {
 | 
|    return m_pDeviceDriver->GetCTM();
 | 
|  }
 | 
| +
 | 
|  FX_BOOL CFX_RenderDevice::CreateCompatibleBitmap(CFX_DIBitmap* pDIB,
 | 
|                                                   int width,
 | 
|                                                   int height) const {
 | 
| @@ -72,6 +83,7 @@ FX_BOOL CFX_RenderDevice::CreateCompatibleBitmap(CFX_DIBitmap* pDIB,
 | 
|        width, height, m_RenderCaps & FXRC_ALPHA_OUTPUT ? FXDIB_Argb : FXDIB_Rgb);
 | 
|  #endif
 | 
|  }
 | 
| +
 | 
|  FX_BOOL CFX_RenderDevice::SetClip_PathFill(const CFX_PathData* pPathData,
 | 
|                                             const CFX_Matrix* pObject2Device,
 | 
|                                             int fill_mode) {
 | 
| @@ -82,6 +94,7 @@ FX_BOOL CFX_RenderDevice::SetClip_PathFill(const CFX_PathData* pPathData,
 | 
|    UpdateClipBox();
 | 
|    return TRUE;
 | 
|  }
 | 
| +
 | 
|  FX_BOOL CFX_RenderDevice::SetClip_PathStroke(
 | 
|      const CFX_PathData* pPathData,
 | 
|      const CFX_Matrix* pObject2Device,
 | 
| @@ -93,6 +106,7 @@ FX_BOOL CFX_RenderDevice::SetClip_PathStroke(
 | 
|    UpdateClipBox();
 | 
|    return TRUE;
 | 
|  }
 | 
| +
 | 
|  FX_BOOL CFX_RenderDevice::SetClip_Rect(const FX_RECT& rect) {
 | 
|    CFX_PathData path;
 | 
|    path.AppendRect(rect.left, rect.bottom, rect.right, rect.top);
 | 
| @@ -102,6 +116,7 @@ FX_BOOL CFX_RenderDevice::SetClip_Rect(const FX_RECT& rect) {
 | 
|    UpdateClipBox();
 | 
|    return TRUE;
 | 
|  }
 | 
| +
 | 
|  void CFX_RenderDevice::UpdateClipBox() {
 | 
|    if (m_pDeviceDriver->GetClipBox(&m_ClipBox)) {
 | 
|      return;
 | 
| @@ -421,6 +436,16 @@ FX_BOOL CFX_RenderDevice::SetBitMask(const CFX_DIBSource* pBitmap,
 | 
|                                      FXDIB_BLEND_NORMAL);
 | 
|  }
 | 
|  
 | 
| +FX_BOOL CFX_RenderDevice::StretchBitMask(const CFX_DIBSource* pBitmap,
 | 
| +                                         int left,
 | 
| +                                         int top,
 | 
| +                                         int dest_width,
 | 
| +                                         int dest_height,
 | 
| +                                         uint32_t color) {
 | 
| +  return StretchBitMaskWithFlags(pBitmap, left, top, dest_width, dest_height,
 | 
| +                                 color, 0);
 | 
| +}
 | 
| +
 | 
|  FX_BOOL CFX_RenderDevice::StretchBitMaskWithFlags(const CFX_DIBSource* pBitmap,
 | 
|                                                    int left,
 | 
|                                                    int top,
 | 
| 
 |