vcl/inc/win/salgdi.h | 29 +++++++++++++++++++++-------- vcl/source/opengl/OpenGLContext.cxx | 6 +++--- vcl/win/source/gdi/gdiimpl.cxx | 34 +++++++++++++++++----------------- vcl/win/source/gdi/salgdi.cxx | 34 ++++++++++++++++++++++++++++++++-- vcl/win/source/gdi/salprn.cxx | 7 +------ vcl/win/source/gdi/salvd.cxx | 9 ++------- vcl/win/source/window/salframe.cxx | 18 ++++-------------- 7 files changed, 80 insertions(+), 57 deletions(-)
New commits: commit fbc8db04ad4515e609ca497a47bddae1387885f7 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sun Nov 2 02:39:36 2014 +0100 a little bit more sanity Change-Id: I080984c5faaa8cf349ba37ffdb116b6d8d016552 diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h index 57b1381..363ab0f 100644 --- a/vcl/inc/win/salgdi.h +++ b/vcl/inc/win/salgdi.h @@ -152,6 +152,7 @@ private: bool mbVirDev : 1; // is VirDev bool mbWindow : 1; // is Window bool mbScreen : 1; // is Screen compatible + HWND mhWnd; // Window-Handle, when Window-Graphics public: HDC getHDC() const { return mhLocalDC; } @@ -166,7 +167,6 @@ public: }; public: - HWND mhWnd; // Window-Handle, when Window-Graphics HWND gethWnd(); HFONT mhFonts[ MAX_FALLBACK ]; // Font + Fallbacks @@ -194,7 +194,7 @@ public: HFONT ImplDoSetFont( FontSelectPattern* i_pFont, float& o_rFontScale, HFONT& o_rOldFont ); public: - explicit WinSalGraphics(WinSalGraphics::Type eType, bool bScreen); + explicit WinSalGraphics(WinSalGraphics::Type eType, bool bScreen, HWND hWnd); virtual ~WinSalGraphics(); bool isPrinter() const; @@ -202,6 +202,8 @@ public: bool isWindow() const; bool isScreen() const; + void setHWND(HWND hWnd); + protected: virtual bool setClipRegion( const vcl::Region& ); // draw --> LineColor and FillColor and RasterOp and ClipRegion diff --git a/vcl/win/source/gdi/salgdi.cxx b/vcl/win/source/gdi/salgdi.cxx index c9f9cf4..af16d90 100644 --- a/vcl/win/source/gdi/salgdi.cxx +++ b/vcl/win/source/gdi/salgdi.cxx @@ -554,12 +554,13 @@ void ImplClearHDCCache( SalData* pData ) } } -WinSalGraphics::WinSalGraphics(WinSalGraphics::Type eType, bool bScreen): +WinSalGraphics::WinSalGraphics(WinSalGraphics::Type eType, bool bScreen, HWND hWnd): mpImpl(new WinSalGraphicsImpl(*this)), mhLocalDC(0), mbPrinter(eType == WinSalGraphics::PRINTER), mbVirDev(eType == WinSalGraphics::VIRTUAL_DEVICE), mbWindow(eType == WinSalGraphics::WINDOW), + mhWnd(hWnd), mbScreen(bScreen), mfCurrentFontScale(1.0), mhRegion(0), @@ -638,6 +639,11 @@ HWND WinSalGraphics::gethWnd() return mhWnd; } +void WinSalGraphics::setHWND(HWND hWnd) +{ + mhWnd = hWnd; +} + void WinSalGraphics::GetResolution( sal_Int32& rDPIX, sal_Int32& rDPIY ) { rDPIX = GetDeviceCaps( getHDC(), LOGPIXELSX ); diff --git a/vcl/win/source/gdi/salprn.cxx b/vcl/win/source/gdi/salprn.cxx index ffcc7d0..b992554 100644 --- a/vcl/win/source/gdi/salprn.cxx +++ b/vcl/win/source/gdi/salprn.cxx @@ -1045,10 +1045,9 @@ static HDC ImplCreateSalPrnIC( WinSalInfoPrinter* pPrinter, ImplJobSetup* pSetup static WinSalGraphics* ImplCreateSalPrnGraphics( HDC hDC ) { - WinSalGraphics* pGraphics = new WinSalGraphics(WinSalGraphics::PRINTER, false); + WinSalGraphics* pGraphics = new WinSalGraphics(WinSalGraphics::PRINTER, false, 0); pGraphics->SetLayout( 0 ); pGraphics->setHDC(hDC); - pGraphics->mhWnd = 0; ImplSalInitGraphics( pGraphics ); return pGraphics; } diff --git a/vcl/win/source/gdi/salvd.cxx b/vcl/win/source/gdi/salvd.cxx index a05de8d..820f12f 100644 --- a/vcl/win/source/gdi/salvd.cxx +++ b/vcl/win/source/gdi/salvd.cxx @@ -104,10 +104,9 @@ SalVirtualDevice* WinSalInstance::CreateVirtualDevice( SalGraphics* pSGraphics, { WinSalVirtualDevice* pVDev = new WinSalVirtualDevice; SalData* pSalData = GetSalData(); - WinSalGraphics* pVirGraphics = new WinSalGraphics(WinSalGraphics::VIRTUAL_DEVICE, pGraphics->isScreen()); + WinSalGraphics* pVirGraphics = new WinSalGraphics(WinSalGraphics::VIRTUAL_DEVICE, pGraphics->isScreen(), 0); pVirGraphics->SetLayout( 0 ); // by default no! mirroring for VirtualDevices, can be enabled with EnableRTL() pVirGraphics->setHDC(hDC); - pVirGraphics->mhWnd = 0; if ( pSalData->mhDitherPal && pVirGraphics->isScreen() ) { pVirGraphics->mhDefPal = SelectPalette( hDC, pSalData->mhDitherPal, TRUE ); diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx index 309dd5a..dde2845 100644 --- a/vcl/win/source/window/salframe.cxx +++ b/vcl/win/source/window/salframe.cxx @@ -983,9 +983,8 @@ SalGraphics* WinSalFrame::AcquireGraphics() if ( !mpGraphics2 ) { - mpGraphics2 = new WinSalGraphics(WinSalGraphics::WINDOW, true); + mpGraphics2 = new WinSalGraphics(WinSalGraphics::WINDOW, true, mhWnd); mpGraphics2->setHDC(0); - mpGraphics2->mhWnd = mhWnd; } HDC hDC = (HDC)(sal_IntPtr)SendMessageW( pSalData->mpFirstInstance->mhComWnd, @@ -1015,9 +1014,8 @@ SalGraphics* WinSalFrame::AcquireGraphics() HDC hDC = GetDC( mhWnd ); if ( hDC ) { - mpGraphics = new WinSalGraphics(WinSalGraphics::WINDOW, true); + mpGraphics = new WinSalGraphics(WinSalGraphics::WINDOW, true, mhWnd); mpGraphics->setHDC(hDC); - mpGraphics->mhWnd = mhWnd; if ( pSalData->mhDitherPal ) { mpGraphics->mhDefPal = SelectPalette( hDC, pSalData->mhDitherPal, TRUE ); @@ -1512,7 +1510,7 @@ static void ImplSetParentFrame( WinSalFrame* pThis, HWND hNewParentWnd, bool bAs { if( pThis->mpGraphics2 ) { - pThis->mpGraphics2->mhWnd = hWnd; + pThis->mpGraphics2->setHWND(hWnd); if( bNeedCacheDC ) { @@ -1550,7 +1548,7 @@ static void ImplSetParentFrame( WinSalFrame* pThis, HWND hNewParentWnd, bool bAs if( pThis->mpGraphics ) { // re-create DC - pThis->mpGraphics->mhWnd = hWnd; + pThis->mpGraphics->setHWND(hWnd); pThis->mpGraphics->setHDC( GetDC( hWnd ) ); if ( GetSalData()->mhDitherPal ) { commit c806b4f430554c2f5b06680527d9d80f97db3116 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sun Nov 2 02:24:31 2014 +0100 remove unused code and const-ify some methods Change-Id: I4c8da0cdf39f31ec757e87687dcec79a4ac83681 diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h index 798a99b..57b1381 100644 --- a/vcl/inc/win/salgdi.h +++ b/vcl/inc/win/salgdi.h @@ -194,14 +194,13 @@ public: HFONT ImplDoSetFont( FontSelectPattern* i_pFont, float& o_rFontScale, HFONT& o_rOldFont ); public: - explicit WinSalGraphics(); explicit WinSalGraphics(WinSalGraphics::Type eType, bool bScreen); virtual ~WinSalGraphics(); - bool isPrinter(); - bool isVirtualDevice(); - bool isWindow(); - bool isScreen(); + bool isPrinter() const; + bool isVirtualDevice() const; + bool isWindow() const; + bool isScreen() const; protected: virtual bool setClipRegion( const vcl::Region& ); diff --git a/vcl/win/source/gdi/salgdi.cxx b/vcl/win/source/gdi/salgdi.cxx index 7eb758f..c9f9cf4 100644 --- a/vcl/win/source/gdi/salgdi.cxx +++ b/vcl/win/source/gdi/salgdi.cxx @@ -554,44 +554,6 @@ void ImplClearHDCCache( SalData* pData ) } } -WinSalGraphics::WinSalGraphics(): - mpImpl(new WinSalGraphicsImpl(*this)), - mhLocalDC(0), - mbPrinter(false), - mbVirDev(false), - mbWindow(false), - mbScreen(false), - mfCurrentFontScale(1.0), - mhRegion(0), - mhDefPen(0), - mhDefBrush(0), - mhDefFont(0), - mhDefPal(0), - mpStdClipRgnData(NULL), - mpLogFont(NULL), - mpFontCharSets(NULL), - mpFontAttrCache(NULL), - mnFontCharSetCount(0), - mpFontKernPairs(NULL), - mnFontKernPairCount(0), - mbFontKernInit(false), - mnPenWidth(GSL_PEN_WIDTH) -{ - for( int i = 0; i < MAX_FALLBACK; ++i ) - { - mhFonts[ i ] = 0; - mpWinFontData[ i ] = NULL; - mpWinFontEntry[ i ] = NULL; - mfFontScale[ i ] = 1.0; - } - - static const char* pEnv = getenv("USE_OPENGL"); - if (pEnv) - { - mpImpl.reset(new OpenGLSalGraphicsImpl()); - } -} - WinSalGraphics::WinSalGraphics(WinSalGraphics::Type eType, bool bScreen): mpImpl(new WinSalGraphicsImpl(*this)), mhLocalDC(0), @@ -651,22 +613,22 @@ WinSalGraphics::~WinSalGraphics() delete mpFontKernPairs; } -bool WinSalGraphics::isPrinter() +bool WinSalGraphics::isPrinter() const { return mbPrinter; } -bool WinSalGraphics::isVirtualDevice() +bool WinSalGraphics::isVirtualDevice() const { return mbVirDev; } -bool WinSalGraphics::isWindow() +bool WinSalGraphics::isWindow() const { return mbWindow; } -bool WinSalGraphics::isScreen() +bool WinSalGraphics::isScreen() const { return mbScreen; } commit 8b6c70268883b0cf9ed20882f3d17c35fcc0007c Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sun Nov 2 02:13:29 2014 +0100 start to bring some sanity to windows backend Just moving some of our variables from public to private to understand which ones are actively set from outside objects. Change-Id: I33998bb95c93195c6c39778e37ac1071b917c8fa diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h index 09df7ca..798a99b 100644 --- a/vcl/inc/win/salgdi.h +++ b/vcl/inc/win/salgdi.h @@ -148,11 +148,23 @@ private: boost::scoped_ptr<SalGraphicsImpl> mpImpl; HDC mhLocalDC; // HDC + bool mbPrinter : 1; // is Printer + bool mbVirDev : 1; // is VirDev + bool mbWindow : 1; // is Window + bool mbScreen : 1; // is Screen compatible public: HDC getHDC() const { return mhLocalDC; } void setHDC(HDC aNew) { mhLocalDC = aNew; } + enum Type + { + PRINTER, + VIRTUAL_DEVICE, + WINDOW, + SCREEN + }; + public: HWND mhWnd; // Window-Handle, when Window-Graphics @@ -179,18 +191,18 @@ public: sal_uIntPtr mnFontKernPairCount;// Number of Kerning Pairs of the current Font int mnPenWidth; // Linienbreite - /// bitfield - bool mbPrinter : 1; // is Printer - bool mbVirDev : 1; // is VirDev - bool mbWindow : 1; // is Window - bool mbScreen : 1; // is Screen compatible - HFONT ImplDoSetFont( FontSelectPattern* i_pFont, float& o_rFontScale, HFONT& o_rOldFont ); public: explicit WinSalGraphics(); + explicit WinSalGraphics(WinSalGraphics::Type eType, bool bScreen); virtual ~WinSalGraphics(); + bool isPrinter(); + bool isVirtualDevice(); + bool isWindow(); + bool isScreen(); + protected: virtual bool setClipRegion( const vcl::Region& ); // draw --> LineColor and FillColor and RasterOp and ClipRegion diff --git a/vcl/win/source/gdi/gdiimpl.cxx b/vcl/win/source/gdi/gdiimpl.cxx index 7e99a8d..453033f 100644 --- a/vcl/win/source/gdi/gdiimpl.cxx +++ b/vcl/win/source/gdi/gdiimpl.cxx @@ -394,7 +394,7 @@ void WinSalGraphicsImpl::copyArea( long nDestX, long nDestY, HRGN hInvalidateRgn = 0; // do we have to invalidate also the overlapping regions? - if ( (nFlags & SAL_COPYAREA_WINDOWINVALIDATE) && mrParent.mbWindow ) + if ( (nFlags & SAL_COPYAREA_WINDOWINVALIDATE) && mrParent.isWindow() ) { // compute and invalidate those parts that were either off-screen or covered by other windows // while performing the above BitBlt @@ -688,7 +688,7 @@ void ImplDrawBitmap( HDC hDC, const SalTwoRect& rPosAry, const WinSalBitmap& rSa void WinSalGraphicsImpl::drawBitmap(const SalTwoRect& rPosAry, const SalBitmap& rSalBitmap) { - bool bTryDirectPaint(!mrParent.mbPrinter && !mbXORMode); + bool bTryDirectPaint(!mrParent.isPrinter() && !mbXORMode); if(bTryDirectPaint) { @@ -709,7 +709,7 @@ void WinSalGraphicsImpl::drawBitmap(const SalTwoRect& rPosAry, const SalBitmap& // fall back old stuff ImplDrawBitmap(mrParent.getHDC(), rPosAry, static_cast<const WinSalBitmap&>(rSalBitmap), - mrParent.mbPrinter, + mrParent.isPrinter(), mbXORMode ? SRCINVERT : SRCCOPY ); } @@ -717,7 +717,7 @@ void WinSalGraphicsImpl::drawBitmap( const SalTwoRect& rPosAry, const SalBitmap& rSSalBitmap, SalColor nTransparentColor ) { - DBG_ASSERT( !mrParent.mbPrinter, "No transparency print possible!" ); + DBG_ASSERT( !mrParent.isPrinter(), "No transparency print possible!" ); const WinSalBitmap& rSalBitmap = static_cast<const WinSalBitmap&>(rSSalBitmap); @@ -771,8 +771,8 @@ void WinSalGraphicsImpl::drawBitmap( const SalTwoRect& rPosAry, const SalBitmap& rSSalBitmap, const SalBitmap& rSTransparentBitmap ) { - DBG_ASSERT( !mrParent.mbPrinter, "No transparency print possible!" ); - bool bTryDirectPaint(!mrParent.mbPrinter && !mbXORMode); + DBG_ASSERT( !mrParent.isPrinter(), "No transparency print possible!" ); + bool bTryDirectPaint(!mrParent.isPrinter() && !mbXORMode); if(bTryDirectPaint) { @@ -891,7 +891,7 @@ void WinSalGraphicsImpl::drawMask( const SalTwoRect& rPosAry, const SalBitmap& rSSalBitmap, SalColor nMaskColor ) { - DBG_ASSERT( !mrParent.mbPrinter, "No transparency print possible!" ); + DBG_ASSERT( !mrParent.isPrinter(), "No transparency print possible!" ); const WinSalBitmap& rSalBitmap = static_cast<const WinSalBitmap&>(rSSalBitmap); @@ -921,7 +921,7 @@ void WinSalGraphicsImpl::drawMask( const SalTwoRect& rPosAry, SalBitmap* WinSalGraphicsImpl::getBitmap( long nX, long nY, long nDX, long nDY ) { - DBG_ASSERT( !mrParent.mbPrinter, "No ::GetBitmap() from printer possible!" ); + DBG_ASSERT( !mrParent.isPrinter(), "No ::GetBitmap() from printer possible!" ); WinSalBitmap* pSalBitmap = NULL; @@ -1374,7 +1374,7 @@ void WinSalGraphicsImpl::SetLineColor( SalColor nSalColor ) // search for stock pen (only screen, because printer have problems, // when we use stock objects) - if ( !mrParent.mbPrinter ) + if ( !mrParent.isPrinter() ) { SalData* pSalData = GetSalData(); for ( sal_uInt16 i = 0; i < pSalData->mnStockPenCount; i++ ) @@ -1391,7 +1391,7 @@ void WinSalGraphicsImpl::SetLineColor( SalColor nSalColor ) // create new pen if ( !hNewPen ) { - if ( !mrParent.mbPrinter ) + if ( !mrParent.isPrinter() ) { if ( GetSalData()->mhDitherPal && ImplIsSysColorEntry( nSalColor ) ) nPenColor = PALRGB_TO_RGB( nPenColor ); @@ -1454,7 +1454,7 @@ void WinSalGraphicsImpl::SetFillColor( SalColor nSalColor ) // search for stock brush (only screen, because printer have problems, // when we use stock objects) - if ( !mrParent.mbPrinter ) + if ( !mrParent.isPrinter() ) { for ( sal_uInt16 i = 0; i < pSalData->mnStockBrushCount; i++ ) { @@ -1470,7 +1470,7 @@ void WinSalGraphicsImpl::SetFillColor( SalColor nSalColor ) // create new brush if ( !hNewBrush ) { - if ( mrParent.mbPrinter || !pSalData->mhDitherDIB ) + if ( mrParent.isPrinter() || !pSalData->mhDitherDIB ) hNewBrush = CreateSolidBrush( nBrushColor ); else { @@ -1580,7 +1580,7 @@ void WinSalGraphicsImpl::drawPixel( long nX, long nY, SalColor nSalColor ) SALCOLOR_GREEN( nSalColor ), SALCOLOR_BLUE( nSalColor ) ); - if ( !mrParent.mbPrinter && + if ( !mrParent.isPrinter() && GetSalData()->mhDitherPal && ImplIsSysColorEntry( nSalColor ) ) nCol = PALRGB_TO_RGB( nCol ); @@ -1622,7 +1622,7 @@ void WinSalGraphicsImpl::drawLine( long nX1, long nY1, long nX2, long nY2 ) LineTo( mrParent.getHDC(), (int)nX2, (int)nY2 ); - if ( bPaintEnd && !mrParent.mbPrinter ) + if ( bPaintEnd && !mrParent.isPrinter() ) { if ( mbXORMode ) { @@ -1641,7 +1641,7 @@ void WinSalGraphicsImpl::drawRect( long nX, long nY, long nWidth, long nHeight ) { if ( !mbPen ) { - if ( !mrParent.mbPrinter ) + if ( !mrParent.isPrinter() ) { PatBlt( mrParent.getHDC(), (int)nX, (int)nY, (int)nWidth, (int)nHeight, mbXORMode ? PATINVERT : PATCOPY ); @@ -1692,7 +1692,7 @@ void WinSalGraphicsImpl::drawPolyLine( sal_uInt32 nPoints, const SalPoint* pPtAr if ( !Polyline( mrParent.getHDC(), pWinPtAry, (int)nPoints ) && (nPoints > MAX_64KSALPOINTS) ) Polyline( mrParent.getHDC(), pWinPtAry, MAX_64KSALPOINTS ); - if ( bPaintEnd && !mrParent.mbPrinter ) + if ( bPaintEnd && !mrParent.isPrinter() ) { if ( mbXORMode ) { @@ -2030,7 +2030,7 @@ bool WinSalGraphicsImpl::drawPolyPolygon( const ::basegfx::B2DPolyPolygon& rPoly Gdiplus::DllExports::GdipSetSmoothingMode(pGraphics, Gdiplus::SmoothingModeNone); } - if(mrParent.mbPrinter) + if(mrParent.isPrinter()) { // #i121591# // Normally GdiPlus should not be used for printing at all since printers cannot diff --git a/vcl/win/source/gdi/salgdi.cxx b/vcl/win/source/gdi/salgdi.cxx index 8ccc7d0..7eb758f 100644 --- a/vcl/win/source/gdi/salgdi.cxx +++ b/vcl/win/source/gdi/salgdi.cxx @@ -467,7 +467,7 @@ void ImplUpdateSysColorEntries() void ImplSalInitGraphics( WinSalGraphics* pData ) { // calculate the minimal line width for the printer - if ( pData->mbPrinter ) + if ( pData->isPrinter() ) { int nDPIX = GetDeviceCaps( pData->getHDC(), LOGPIXELSX ); if ( nDPIX <= 300 ) @@ -557,6 +557,48 @@ void ImplClearHDCCache( SalData* pData ) WinSalGraphics::WinSalGraphics(): mpImpl(new WinSalGraphicsImpl(*this)), mhLocalDC(0), + mbPrinter(false), + mbVirDev(false), + mbWindow(false), + mbScreen(false), + mfCurrentFontScale(1.0), + mhRegion(0), + mhDefPen(0), + mhDefBrush(0), + mhDefFont(0), + mhDefPal(0), + mpStdClipRgnData(NULL), + mpLogFont(NULL), + mpFontCharSets(NULL), + mpFontAttrCache(NULL), + mnFontCharSetCount(0), + mpFontKernPairs(NULL), + mnFontKernPairCount(0), + mbFontKernInit(false), + mnPenWidth(GSL_PEN_WIDTH) +{ + for( int i = 0; i < MAX_FALLBACK; ++i ) + { + mhFonts[ i ] = 0; + mpWinFontData[ i ] = NULL; + mpWinFontEntry[ i ] = NULL; + mfFontScale[ i ] = 1.0; + } + + static const char* pEnv = getenv("USE_OPENGL"); + if (pEnv) + { + mpImpl.reset(new OpenGLSalGraphicsImpl()); + } +} + +WinSalGraphics::WinSalGraphics(WinSalGraphics::Type eType, bool bScreen): + mpImpl(new WinSalGraphicsImpl(*this)), + mhLocalDC(0), + mbPrinter(eType == WinSalGraphics::PRINTER), + mbVirDev(eType == WinSalGraphics::VIRTUAL_DEVICE), + mbWindow(eType == WinSalGraphics::WINDOW), + mbScreen(bScreen), mfCurrentFontScale(1.0), mhRegion(0), mhDefPen(0), @@ -609,6 +651,26 @@ WinSalGraphics::~WinSalGraphics() delete mpFontKernPairs; } +bool WinSalGraphics::isPrinter() +{ + return mbPrinter; +} + +bool WinSalGraphics::isVirtualDevice() +{ + return mbVirDev; +} + +bool WinSalGraphics::isWindow() +{ + return mbWindow; +} + +bool WinSalGraphics::isScreen() +{ + return mbScreen; +} + HWND WinSalGraphics::gethWnd() { return mhWnd; diff --git a/vcl/win/source/gdi/salprn.cxx b/vcl/win/source/gdi/salprn.cxx index 6d6b8ea..ffcc7d0 100644 --- a/vcl/win/source/gdi/salprn.cxx +++ b/vcl/win/source/gdi/salprn.cxx @@ -1045,14 +1045,10 @@ static HDC ImplCreateSalPrnIC( WinSalInfoPrinter* pPrinter, ImplJobSetup* pSetup static WinSalGraphics* ImplCreateSalPrnGraphics( HDC hDC ) { - WinSalGraphics* pGraphics = new WinSalGraphics; + WinSalGraphics* pGraphics = new WinSalGraphics(WinSalGraphics::PRINTER, false); pGraphics->SetLayout( 0 ); pGraphics->setHDC(hDC); pGraphics->mhWnd = 0; - pGraphics->mbPrinter = TRUE; - pGraphics->mbVirDev = FALSE; - pGraphics->mbWindow = FALSE; - pGraphics->mbScreen = FALSE; ImplSalInitGraphics( pGraphics ); return pGraphics; } diff --git a/vcl/win/source/gdi/salvd.cxx b/vcl/win/source/gdi/salvd.cxx index fec719b..a05de8d 100644 --- a/vcl/win/source/gdi/salvd.cxx +++ b/vcl/win/source/gdi/salvd.cxx @@ -104,15 +104,11 @@ SalVirtualDevice* WinSalInstance::CreateVirtualDevice( SalGraphics* pSGraphics, { WinSalVirtualDevice* pVDev = new WinSalVirtualDevice; SalData* pSalData = GetSalData(); - WinSalGraphics* pVirGraphics = new WinSalGraphics; + WinSalGraphics* pVirGraphics = new WinSalGraphics(WinSalGraphics::VIRTUAL_DEVICE, pGraphics->isScreen()); pVirGraphics->SetLayout( 0 ); // by default no! mirroring for VirtualDevices, can be enabled with EnableRTL() pVirGraphics->setHDC(hDC); pVirGraphics->mhWnd = 0; - pVirGraphics->mbPrinter = FALSE; - pVirGraphics->mbVirDev = TRUE; - pVirGraphics->mbWindow = FALSE; - pVirGraphics->mbScreen = pGraphics->mbScreen; - if ( pSalData->mhDitherPal && pVirGraphics->mbScreen ) + if ( pSalData->mhDitherPal && pVirGraphics->isScreen() ) { pVirGraphics->mhDefPal = SelectPalette( hDC, pSalData->mhDitherPal, TRUE ); RealizePalette( hDC ); diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx index 2de8d58..309dd5a 100644 --- a/vcl/win/source/window/salframe.cxx +++ b/vcl/win/source/window/salframe.cxx @@ -983,13 +983,9 @@ SalGraphics* WinSalFrame::AcquireGraphics() if ( !mpGraphics2 ) { - mpGraphics2 = new WinSalGraphics; + mpGraphics2 = new WinSalGraphics(WinSalGraphics::WINDOW, true); mpGraphics2->setHDC(0); mpGraphics2->mhWnd = mhWnd; - mpGraphics2->mbPrinter = FALSE; - mpGraphics2->mbVirDev = FALSE; - mpGraphics2->mbWindow = TRUE; - mpGraphics2->mbScreen = TRUE; } HDC hDC = (HDC)(sal_IntPtr)SendMessageW( pSalData->mpFirstInstance->mhComWnd, @@ -1019,13 +1015,9 @@ SalGraphics* WinSalFrame::AcquireGraphics() HDC hDC = GetDC( mhWnd ); if ( hDC ) { - mpGraphics = new WinSalGraphics; + mpGraphics = new WinSalGraphics(WinSalGraphics::WINDOW, true); mpGraphics->setHDC(hDC); mpGraphics->mhWnd = mhWnd; - mpGraphics->mbPrinter = FALSE; - mpGraphics->mbVirDev = FALSE; - mpGraphics->mbWindow = TRUE; - mpGraphics->mbScreen = TRUE; if ( pSalData->mhDitherPal ) { mpGraphics->mhDefPal = SelectPalette( hDC, pSalData->mhDitherPal, TRUE ); commit a754cb6eafdb94ebc6978e75133bd846b259d063 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sun Nov 2 02:13:16 2014 +0100 fix windows compile error Change-Id: I9154cd0c0352b8807b5a5eae2444629c9cfe3d48 diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index 5943532..0242bf5 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -182,7 +182,7 @@ bool WGLisExtensionSupported(const char *extension) } } -bool InitMultisample(PIXELFORMATDESCRIPTOR pfd, int& rPixelFormat) +bool InitMultisample(PIXELFORMATDESCRIPTOR pfd, int& rPixelFormat, bool bUseDoubleBufferedRendering) { HWND hWnd = NULL; GLWindow glWin; @@ -232,7 +232,7 @@ bool InitMultisample(PIXELFORMATDESCRIPTOR pfd, int& rPixelFormat) 0,0 }; - if (!mbUseDoubleBufferedRendering) + if (!bUseDoubleBufferedRendering) iAttributes[1] = GL_FALSE; bool bArbMultisampleSupported = true; @@ -600,7 +600,7 @@ bool OpenGLContext::ImplInit() // we must check whether can set the MSAA int WindowPix = 0; - bool bMultiSampleSupport = InitMultisample(PixelFormatFront, WindowPix); + bool bMultiSampleSupport = InitMultisample(PixelFormatFront, WindowPix, mbUseDoubleBufferedRendering); if (bMultiSampleSupport && WindowPix != 0) { m_aGLWin.bMultiSampleSupported = true; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits