-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Simplify Bucket architecture #2875
Comments
Definitely in favor of improving the architecture of rendering data if we can find a simpler design that still satisfies all our requirements. Here are some requirements that the existing hierarchy satisfies that we'll want to preserve in some way:
|
We can have multiple
My vision is that each
My hope is that implementing #145 (or a subset of this functionality) will give us the ability to do efficient GL state mutations while reducing the complexity of |
I too would love to see a simpler design here! In addition to the requirements @jfirebaugh raised (and @lucaswoj addressed) above, another thing that I think we should keep in mind is that the current 'conceptual parity' between GL JS and GL Native is a major advantage. I would be very hesitant to introduce divergence, especially for something as complex and central as our system for creating and managing rendering data buffers, and so I think we should consider both platforms as we work to make progress on this design. |
This area of the code has gone through many rounds of refactoring, and is in a fairly decent state these days. |
The hierarchy of objects in our data system roughly looks like this:
We could simplify by collapsing the hierarchy to:
There would be a 1:1 correspondence between
TileLayer
s and calls todrawElements
. All information that was previously stored in the object hierarchy would be stored withinTileLayer
.We could also factor all
TileLayer
creation logic (i.e.addFeature
) out into a new set ofTileLayerFactory
classes. This functionality is only used within the workers.The text was updated successfully, but these errors were encountered: