Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First pass of refactoring, batch improvements and api updates. #78

Merged
merged 1 commit into from Nov 12, 2015
Merged

Conversation

@glennw
Copy link
Member

glennw commented Nov 12, 2015

There's still some work to be done, but this contains the majority of the changes.

It's also likely to be a bit slower in some cases, but these should be easy to fix up.

  • Introduce a webrender_traits crate to reduce build times (only servo and compositor depend on the webrender crate now).
  • Support StackingContexts within Display Lists.
  • Proper paint order for iframes.
  • Much simpler (and more efficient) parallel batch creation.
  • Split code into multiple source files - naming of various structs and files still needs to be tidied up.
  • Change AABB tree to store items by draw list.
  • Batch creation now builds a maximum of 1 VBO/VAO per AABB tree node.
  • Moved internal display items (composite, clear) out of the public interface to an internal enum.
  • Split into high level Scene struct and mid-level Frame representation.
  • Switched draw lists to be managed by a free list, to reduce hash lookups.
  • Support clipping for text elements.
  • AABB tree now stores items that cross boundaries in multiple leaf nodes, and never in internal nodes.
There's still some work to be done, but this contains the majority of the changes.

It's also likely to be a bit slower in some cases, but these should be easy to fix up.

* Introduce a webrender_traits crate to reduce build times (only servo and compositor depend on the webrender crate now).
* Support StackingContexts within Display Lists.
* Proper paint order for iframes.
* Much simpler (and more efficient) parallel batch creation.
* Split code into multiple source files - naming of various structs and files still needs to be tidied up.
* Change AABB tree to store items by draw list.
* Batch creation now builds a maximum of 1 VBO/VAO per AABB tree node.
* Moved internal display items (composite, clear) out of the public interface to an internal enum.
* Split into high level Scene struct and mid-level Frame representation.
* Switched draw lists to be managed by a free list, to reduce hash lookups.
* Support clipping for text elements.
* AABB tree now stores items that cross boundaries in multiple leaf nodes, and never in internal nodes.
glennw added a commit that referenced this pull request Nov 12, 2015
First pass of refactoring, batch improvements and api updates.
@glennw glennw merged commit 757be23 into master Nov 12, 2015
@glennw glennw deleted the wr-tidy2 branch Nov 12, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.