Closed
Bug 975764
Opened 11 years ago
Closed 2 years ago
Add mesh-based transformation support to container layers
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: gal, Unassigned)
References
Details
Attachments
(1 file)
12.89 KB,
patch
|
Details | Diff | Splinter Review |
This is useful for advanced over-scroll effects as well as the CSS filter effects spec.
Reporter | ||
Comment 1•11 years ago
|
||
Assignee: nobody → gal
Reporter | ||
Updated•11 years ago
|
Attachment #8380239 -
Flags: feedback?(roc)
Reporter | ||
Comment 2•11 years ago
|
||
Note: I am going to switch the internal representation of the meshes to triangle strips with degenerate triangles between each row.
Reporter | ||
Comment 3•11 years ago
|
||
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)
Comment 5•3 years ago
|
||
The bug assignee didn't login in Bugzilla in the last 7 months, so the assignee is being reset.
Assignee: gal → nobody
Updated•3 years ago
|
Severity: normal → S3
Updated•2 years ago
|
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.
Description
•