Closed Bug 267195 Opened 20 years ago Closed 20 years ago

implement svg opacity property

Categories

(Core :: SVG, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: tor, Assigned: tor)

References

()

Details

Attachments

(1 file, 4 obsolete files)

Attached patch opacity snapshot (cairo only) (obsolete) — Splinter Review
Attached patch tweak for <svg:image> usage (obsolete) — Splinter Review
Attachment #164210 - Attachment is obsolete: true
Blocks: 216568
Attachment #165090 - Attachment is obsolete: true
Attached patch cleanup and stub libart (obsolete) — Splinter Review
Attachment #166149 - Attachment is obsolete: true
Attachment #166281 - Flags: review?(scootermorris)
Attachment #166281 - Flags: review?(scootermorris)
Attached patch small tweakSplinter Review
Attachment #166281 - Attachment is obsolete: true
Attachment #166283 - Flags: review?(scootermorris)
Comment on attachment 166283 [details] [diff] [review] small tweak >Index: layout/svg/renderer/public/nsISVGRendererCanvas.idl >=================================================================== Fix indentation... >+ void compositeSurfaceMatrix(in nsISVGRendererSurface surface, >+ in nsIDOMSVGMatrix canvasTM, >+ in float opacity); >Index: layout/svg/renderer/src/cairo/nsSVGCairoCanvas.cpp >=================================================================== Fix indentation... >+NS_IMETHODIMP >+nsSVGCairoCanvas::CompositeSurfaceMatrix(nsISVGRendererSurface *aSurface, >+ nsIDOMSVGMatrix *aCTM, float aOpacity) >+{ >Index: layout/svg/renderer/src/cairo/nsSVGCairoSurface.cpp >=================================================================== Indentation.... >+ >+nsresult >+NS_NewSVGCairoSurface(nsISVGRendererSurface **result, >+ PRUint32 width, PRUint32 height) >+{ Don't we usually indent MAP_ENTRYs? >+ >+NS_INTERFACE_MAP_BEGIN(nsSVGCairoSurface) >+NS_INTERFACE_MAP_ENTRY(nsISVGRendererSurface) >+NS_INTERFACE_MAP_ENTRY(nsISVGCairoSurface) >+NS_INTERFACE_MAP_ENTRY(nsISupports) >+NS_INTERFACE_MAP_END >+ >Index: layout/svg/renderer/src/cairo/nsSVGCairoSurface.h >=================================================================== Indentation... >+ >+nsresult >+NS_NewSVGCairoSurface(nsISVGRendererSurface **result, >+ PRUint32 width, PRUint32 height); >Index: layout/svg/renderer/src/gdiplus/nsSVGGDIPlusSurface.cpp >=================================================================== Again, shouldn't the MAP_ENTRY's be indented? >+ >+NS_INTERFACE_MAP_BEGIN(nsSVGGDIPlusSurface) >+NS_INTERFACE_MAP_ENTRY(nsISVGRendererSurface) >+NS_INTERFACE_MAP_ENTRY(nsISVGGDIPlusSurface) >+NS_INTERFACE_MAP_ENTRY(nsISupports) >+NS_INTERFACE_MAP_END >+ >Index: layout/svg/renderer/src/libart/nsSVGLibartCanvas.cpp >=================================================================== Indentation.... > NS_IMETHODIMP > nsSVGLibartCanvas::SetClipRect(nsIDOMSVGMatrix *aCTM, float aX, float aY, > float aWidth, float aHeight) > {
Attachment #166283 - Flags: review?(scootermorris) → review+
Checked in.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Why were GetStrokeOpacity and GetFillOpacity changed to multiply by the mOpacity? They're separate concepts -- isn't opacity implemented (using a push/pop API) in such a way that you don't need to do this?
Because you can specify opacity on a leaf geometry element and it's much cheaper to draw with the combined opacity rather than do the surface push/pop, and it gives the same result.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: