Closed Bug 975764 Opened 11 years ago Closed 2 years ago

Add mesh-based transformation support to container layers

Categories

(Core :: Graphics: Layers, defect)

x86
macOS
defect

Tracking

()

RESOLVED INVALID

People

(Reporter: gal, Unassigned)

References

Details

Attachments

(1 file)

This is useful for advanced over-scroll effects as well as the CSS filter effects spec.
Assignee: nobody → gal
Attachment #8380239 - Flags: feedback?(roc)
Note: I am going to switch the internal representation of the meshes to triangle strips with degenerate triangles between each row.
Depends on: 975772
As indicated in comment 2 a triangle strip is more efficient to represent the meshes. The API will be the same so feel free to give feedback on the API while I test the triangle strip approach.
Comment on attachment 8380239 [details] [diff] [review] API change. Backend support coming separately. Review of attachment 8380239 [details] [diff] [review]: ----------------------------------------------------------------- Sorry about the delay, somehow I lost the request. ::: gfx/layers/Layers.h @@ +661,5 @@ > + > + const void *VertexBuffer() const; > + size_t VertexBufferSize() const; > + > + const void *IndexBuffer() const; Unclear why these return void*. @@ +664,5 @@ > + > + const void *IndexBuffer() const; > + size_t IndexBufferSize() const; > + > + gfx::IntSize GetDimensions() const { return mDim; } All these members need documentation. especially regarding the sizes and meaning of the buffers. @@ +1697,5 @@ > * on this layer. > * Returns true if this will use an intermediate surface. This is largely > * backend-dependent, but it affects the operation of GetEffectiveOpacity(). > */ > + bool UseIntermediateSurface() { return mForceIntermediateSurface || !!mLayerMesh; } Instead, have ComputeEffectiveTransforms set mForceIntermediateSurface if mLayerMesh is present @@ +1756,5 @@ > // The resolution scale inherited from the parent layer. This will already > // be part of mTransform. > float mInheritedXScale; > float mInheritedYScale; > + bool mForceIntermediateSurface; I'm not sure why you renamed this. mUseIntermediateSurface was set iff we decided to use an intermediate surface. I'm not sure why you're changing that. @@ +1761,3 @@ > bool mSupportsComponentAlphaChildren; > bool mMayHaveReadbackChild; > + nsRefPtr<Mesh> mLayerMesh; Move this up with the other pointers.
Attachment #8380239 - Flags: feedback?(roc)

The bug assignee didn't login in Bugzilla in the last 7 months, so the assignee is being reset.

Assignee: gal → nobody
Severity: normal → S3
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: