void fillPath (const Path& p, const AffineTransform& transform) { currentState->createBrush(); ComSmartPtr <ID2D1Geometry> geometry (pathToPathGeometry (p, transform.followedBy (currentState->transform))); if (renderingTarget != nullptr) renderingTarget->FillGeometry (geometry, currentState->currentBrush); }
void Direct2DLowLevelGraphicsContext::fillPath (const Path& p, const AffineTransform& transform) { renderingTarget->SetTransform (D2D1::IdentityMatrix()); currentState->createBrush(); ComSmartPtr <ID2D1Geometry> geometry (pathToPathGeometry (p, transform.followedBy (currentState->transform))); if (renderingTarget != nullptr) renderingTarget->FillGeometry (geometry, currentState->currentBrush); }
void Direct2DLowLevelGraphicsContext::drawImage (const Image& image, const AffineTransform& transform) { renderingTarget->SetTransform (transformToMatrix (transform.followedBy (currentState->transform))); D2D1_SIZE_U size; size.width = image.getWidth(); size.height = image.getHeight(); D2D1_BITMAP_PROPERTIES bp = D2D1::BitmapProperties(); Image img (image.convertedToFormat (Image::ARGB)); Image::BitmapData bd (img, Image::BitmapData::readOnly); bp.pixelFormat = renderingTarget->GetPixelFormat(); bp.pixelFormat.alphaMode = D2D1_ALPHA_MODE_PREMULTIPLIED; { ComSmartPtr <ID2D1Bitmap> tempBitmap; renderingTarget->CreateBitmap (size, bd.data, bd.lineStride, bp, tempBitmap.resetAndGetPointerAddress()); if (tempBitmap != nullptr) renderingTarget->DrawBitmap (tempBitmap); } }
void addTransform (const AffineTransform& transform) { currentState->transform = transform.followedBy (currentState->transform); }
void Direct2DLowLevelGraphicsContext::addTransform (const AffineTransform& transform) { currentState->transform = transform.followedBy (currentState->transform); }