void clipToRectangle (const Rectangle<int>& r) { clearClip(); clipRect = r.toFloat().transformed (transform).getSmallestIntegerContainer(); shouldClipRect = true; pushClips(); }
void clipToImage (const Image& image, const AffineTransform& transform) { clearImageClip(); if (bitmapMaskLayer == 0) owner.renderingTarget->CreateLayer (bitmapMaskLayer.resetAndGetPointerAddress()); D2D1_BRUSH_PROPERTIES brushProps; brushProps.opacity = 1; brushProps.transform = transformToMatrix (transform); D2D1_BITMAP_BRUSH_PROPERTIES bmProps = D2D1::BitmapBrushProperties (D2D1_EXTEND_MODE_WRAP, D2D1_EXTEND_MODE_WRAP); D2D1_SIZE_U size; size.width = image.getWidth(); size.height = image.getHeight(); D2D1_BITMAP_PROPERTIES bp = D2D1::BitmapProperties(); maskImage = image.convertedToFormat (Image::ARGB); Image::BitmapData bd (this->image, Image::BitmapData::readOnly); // xxx should be maskImage? bp.pixelFormat = owner.renderingTarget->GetPixelFormat(); bp.pixelFormat.alphaMode = D2D1_ALPHA_MODE_PREMULTIPLIED; HRESULT hr = owner.renderingTarget->CreateBitmap (size, bd.data, bd.lineStride, bp, maskBitmap.resetAndGetPointerAddress()); hr = owner.renderingTarget->CreateBitmapBrush (maskBitmap, bmProps, brushProps, bitmapMaskBrush.resetAndGetPointerAddress()); imageMaskLayerParams = D2D1::LayerParameters(); imageMaskLayerParams.opacityBrush = bitmapMaskBrush; shouldClipBitmap = true; pushClips(); }
void Direct2DLowLevelGraphicsContext::SavedState::clipToRectangle (const Rectangle<int>& r) { clearClip(); Rectangle<int> r2 = r.toFloat().transformed (transform).getSmallestIntegerContainer(); clipRect = r2; shouldClipRect = true; pushClips(); }
void clipToRectList (ID2D1Geometry* geometry) { clearRectListClip(); if (rectListLayer == 0) owner.renderingTarget->CreateLayer (rectListLayer.resetAndGetPointerAddress()); rectListGeometry = geometry; shouldClipRectList = true; pushClips(); }
void clipToPath (ID2D1Geometry* geometry) { clearPathClip(); if (complexClipLayer == 0) owner.renderingTarget->CreateLayer (complexClipLayer.resetAndGetPointerAddress()); complexClipGeometry = geometry; shouldClipComplex = true; pushClips(); }
void Direct2DLowLevelGraphicsContext::SavedState::clipToRectList (ID2D1Geometry* geometry) { clearRectListClip(); if (rectListLayer == 0) owner.renderingTarget->CreateLayer (rectListLayer.resetAndGetPointerAddress()); rectListGeometry = geometry; shouldClipRectList = true; pushClips(); }
void Direct2DLowLevelGraphicsContext::SavedState::clipToPath (ID2D1Geometry* geometry) { clearPathClip(); if (complexClipLayer == 0) owner.renderingTarget->CreateLayer (complexClipLayer.resetAndGetPointerAddress()); complexClipGeometry = geometry; shouldClipComplex = true; pushClips(); }