drawinglayer/source/processor2d/d2dpixelprocessor2d.cxx | 38 ++-------------- 1 file changed, 7 insertions(+), 31 deletions(-)
New commits: commit 36f7e34baae1f7906cbb2bcb7a82688045eb4f59 Author: Mike Kaganski <[email protected]> AuthorDate: Sat Jan 24 17:56:40 2026 +0500 Commit: Mike Kaganski <[email protected]> CommitDate: Sat Jan 24 16:09:19 2026 +0100 Simplify some usages of COMReference Use less IUnknown::QueryInterface, and more COMReference::QueryInterface. No need to use COMReference default ctor in member initializers. Change-Id: I28cd07d16dc294d598580f353a4ec7efe82bc480 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198040 Reviewed-by: Mike Kaganski <[email protected]> Tested-by: Jenkins diff --git a/drawinglayer/source/processor2d/d2dpixelprocessor2d.cxx b/drawinglayer/source/processor2d/d2dpixelprocessor2d.cxx index 82f51fdc4356..3ce7c2dd23e1 100644 --- a/drawinglayer/source/processor2d/d2dpixelprocessor2d.cxx +++ b/drawinglayer/source/processor2d/d2dpixelprocessor2d.cxx @@ -67,7 +67,6 @@ class ID2D1GlobalFactoryProvider public: ID2D1GlobalFactoryProvider() - : mpD2DFactory(nullptr) { const HRESULT hr(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, __uuidof(ID2D1Factory), nullptr, @@ -87,10 +86,7 @@ class ID2D1GlobalRenderTargetProvider sal::systools::COMReference<ID2D1DCRenderTarget> mpID2D1DCRenderTarget; public: - ID2D1GlobalRenderTargetProvider() - : mpID2D1DCRenderTarget() - { - } + ID2D1GlobalRenderTargetProvider() = default; sal::systools::COMReference<ID2D1DCRenderTarget>& getID2D1DCRenderTarget() { @@ -511,7 +507,6 @@ public: sal_uInt32 nWidth, sal_uInt32 nHeight, const sal::systools::COMReference<ID2D1RenderTarget>& rParent) : drawinglayer::processor2d::D2DPixelProcessor2D(rViewInformation) - , mpBitmapRenderTarget() { if (0 == nWidth || 0 == nHeight) { @@ -534,10 +529,7 @@ public: } else { - sal::systools::COMReference<ID2D1RenderTarget> pRT; - mpBitmapRenderTarget->QueryInterface(__uuidof(ID2D1RenderTarget), - reinterpret_cast<void**>(&pRT)); - setRenderTarget(pRT); + setRenderTarget(mpBitmapRenderTarget.QueryInterface<ID2D1RenderTarget>()); } } @@ -653,7 +645,6 @@ D2DPixelProcessor2D::D2DPixelProcessor2D(const geometry::ViewInformation2D& rVie HDC aHdc) : BaseProcessor2D(rViewInformation) , maBColorModifierStack() - , mpRT() , mnRecursionCounter(0) , mnErrorCounter(0) { @@ -718,9 +709,7 @@ D2DPixelProcessor2D::D2DPixelProcessor2D(const geometry::ViewInformation2D& rVie if (pDCRT) { - sal::systools::COMReference<ID2D1RenderTarget> pRT; - pDCRT->QueryInterface(__uuidof(ID2D1RenderTarget), reinterpret_cast<void**>(&pRT)); - setRenderTarget(pRT); + setRenderTarget(pDCRT.QueryInterface<ID2D1RenderTarget>()); } else { @@ -930,20 +919,15 @@ sal::systools::COMReference<ID2D1Bitmap> D2DPixelProcessor2D::implCreateAlpha_Di // Try if we can use ID2D1DeviceContext/d2d1_1 by querying for interface. // Only then can we use ID2D1Effect/CLSID_D2D1LuminanceToAlpha and it makes // sense to try to do it this way in this implementation - sal::systools::COMReference<ID2D1DeviceContext> pID2D1DeviceContext; - getRenderTarget()->QueryInterface(__uuidof(ID2D1DeviceContext), - reinterpret_cast<void**>(&pID2D1DeviceContext)); sal::systools::COMReference<ID2D1Bitmap> pRetval; - if (!pID2D1DeviceContext) + if (!getRenderTarget().QueryInterface<ID2D1DeviceContext>()) { // no, done - tell caller to use fallback by returning empty - we have // not the preconditions for this return pRetval; } - // Release early - pID2D1DeviceContext.clear(); basegfx::B2DRange aDiscreteVisibleRange; if (!createBitmapSubContent(pRetval, aDiscreteVisibleRange, rTransCandidate.getTransparence(), @@ -973,10 +957,7 @@ sal::systools::COMReference<ID2D1Bitmap> D2DPixelProcessor2D::implCreateAlpha_Di if (SUCCEEDED(hr) && pContent) { // try to access ID2D1DeviceContext of that target, we need that *now* - pContent->QueryInterface(__uuidof(ID2D1DeviceContext), - reinterpret_cast<void**>(&pID2D1DeviceContext)); - - if (pID2D1DeviceContext) + if (auto pID2D1DeviceContext = pContent.QueryInterface<ID2D1DeviceContext>()) { // create the effect sal::systools::COMReference<ID2D1Effect> pLuminanceToAlpha; @@ -1851,11 +1832,8 @@ void D2DPixelProcessor2D::processFillGraphicPrimitive2D( // NOTE: This uses D2D1_BITMAP_INTERPOLATION_MODE, but there seem to be // advanced modes when using D2D1_INTERPOLATION_MODE, but that needs // D2D1_BITMAP_BRUSH_PROPERTIES1 and ID2D1BitmapBrush1 - sal::systools::COMReference<ID2D1BitmapBrush1> pBrush1; - pBitmapBrush->QueryInterface(__uuidof(ID2D1BitmapBrush1), - reinterpret_cast<void**>(&pBrush1)); - if (pBrush1) + if (auto pBrush1 = pBitmapBrush.QueryInterface<ID2D1BitmapBrush1>()) { pBrush1->SetInterpolationMode1(D2D1_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR); } @@ -1951,9 +1929,7 @@ void D2DPixelProcessor2D::processInvertPrimitive2D( // Try if we can use ID2D1DeviceContext/d2d1_1 by querying for interface. // Only with ID2D1DeviceContext we can use ::DrawImage which supports // D2D1_COMPOSITE_MODE_XOR - sal::systools::COMReference<ID2D1DeviceContext> pID2D1DeviceContext; - getRenderTarget()->QueryInterface(__uuidof(ID2D1DeviceContext), - reinterpret_cast<void**>(&pID2D1DeviceContext)); + auto pID2D1DeviceContext(getRenderTarget().QueryInterface<ID2D1DeviceContext>()); if (!pID2D1DeviceContext) {
