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

Matrix3d #136

Open
wants to merge 27 commits into
base: master
Choose a base branch
from
Open

Matrix3d #136

wants to merge 27 commits into from

Conversation

stringa
Copy link
Contributor

@stringa stringa commented May 16, 2014

Beginning work on the renderer. I am wondering how you feel about these changes. This is based on the work from Famo.US. I will be optimizing this more.

@tonistiigi
Copy link
Member

This will take me some time to dig through. Can you clarify what problems this solves for you?

I'm ok with the removal of the css transitions as long as there isn't a performance regression(iOS needs to be tested). That implementation is a mess anyway.

Same goes for the setting transforms with matrix function. It makes code cleaner, so if its not slower I'm ok with it. Theres something similar in the webgl branch. I think then it was a bit slower but that was many years ago.

Let me know when you think this is ready for merging. If you can, then also rebase it and squash the commits with same message. Or I can do it for you before the merge.

@stringa
Copy link
Contributor Author

stringa commented May 18, 2014

Can you explain why the renderer does 2 passes?

@tonistiigi
Copy link
Member

The second pass if for the renderer itself to setup post-processing that needs to happen during the event loop.

For example on canvas render first pass sets up the layout and figures out where the Canvas elements need to go. Then it also registers a second pass for the element that has the canvas element and the second pass does the actual drawing. The drawing could not start before update has run for the child nodes, for example we could not even determine the size of the canvas without it.

Something similar also happens for the masks and maybe for the transitions(but they are gone anyway in this PR).

Basically it's just the order for the rendering tasks. Every time you change a node that starts a rendering change lime will call setDirty(value, opt_pass, opt_nextframe). Every node with pass=0 will run before the nodes with pass=1.

@stringa
Copy link
Contributor Author

stringa commented Jun 1, 2014

I've updated this code for more optimizations. I would like to add a table for arctan, but I am not sure how to do that yet.

@stringa
Copy link
Contributor Author

stringa commented Jun 13, 2014

I added the remove-container-node fix here which fixes borders. I also embedded the trig-table values instead of calculating them. I still want to create a table for atan.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants