Closed Bug 580440 Opened 11 years ago Closed 11 years ago
use native-rendering temp surfaces only as large as necessary
Smaller (temp) drawing surfaces mean that when a transparent plugin invalidates a small rectangle we don't bother doing the alpha extraction over the whole plugin rectangle. For opaque plugins also, this means less drawing and shorter strides between lines of drawing. (BTW, the reason why the bounds passed to the native renderer is that of the plugin rectangle, not the expose rectangle, is so the renderer can use the bounds to know the maximum extents that a plugin not supporting clips might draw if drawing directly.)
This also takes account of the surface size when considering clips for drawing direct. There is no need to clip just to keep drawing in the surface (because it is not possible to draw outside the surface). This could help flash videos that are scrolled partially out of the visible rect, if the buffer rotation is such that the edge of the visible rect is the edge of the buffer. Another change here is that temp surfaces for opaque plugins are not cleared before drawing. One thing this patch doesn't do is add an expose region parameter to the native renderer. However, with retained layers, the clip region will often be a good indication of the expose region.
Attachment #458834 - Flags: review?(roc)
Attachment #458834 - Flags: review?(roc) → review+
Comment on attachment 458834 [details] [diff] [review] patch Requesting approval2.0: The patch for bug 576143 is built on this.
Attachment #458834 - Flags: approval2.0?
Comment on attachment 458834 [details] [diff] [review] patch a=beltzner
Attachment #458834 - Flags: approval2.0? → approval2.0+
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla2.0b3
You need to log in before you can comment on or make changes to this bug.