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

[WIP] Buffers rework #1371

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

[WIP] Buffers rework #1371

wants to merge 21 commits into from

Conversation

tomaka
Copy link
Member

@tomaka tomaka commented Dec 15, 2015

Close #1325

  • Make VerticesSource and IndicesSource private.
  • Splits Buffer between DynamicBuffer, ImmutableBuffer and PersistentBuffer.
  • Modify the API of immutable and persistent buffers to be more specific.
  • Split the underlying implementations in order to produce more optimized calls.
  • Make the fencing strategy of persistent buffers explicit and that can be chosen by the user.
  • Rework index buffers.
  • Rework vertex buffers.
  • Rework buffer textures.
  • Rework multidraw indirect buffers.
  • Rework uniform buffers.
  • Rework pixel buffers.
  • Remove all BufferAny types.
  • Allow converting a PersistentBuffer to a SyncPersistentBuffer (Sync but not Send) for multithreaded reading and writing.

This also changes how the specializations work.
Instead of being full wrappers, types such as VertexBuffer or PixelBuffer are not templated. For example instead of IndexBuffer<T> you will now have IndexStorage<Buffer<[T]>>, so that it can be adapted to all other underlying buffer types. Old type names will still be provided as aliases, so this shouldn't break anything.

This is a breaking change because:

  • VerticesSource and IndicesSource are now private.
  • persistent, immutable, empty_persistent, empty_immutable are removed in favor of new and empty on the new types.

@tomaka tomaka force-pushed the buffers-rework branch 5 times, most recently from c533d92 to 70be45c Compare December 26, 2015 14:32
@tomaka tomaka force-pushed the buffers-rework branch 2 times, most recently from 7817caf to d5550c0 Compare January 12, 2016 10:39
@nicokoch
Copy link
Collaborator

Are you still working on this?

@tomaka
Copy link
Member Author

tomaka commented May 18, 2016

No :-/

As I said I'm thinking of reorienting glium towards a more OpenGL 2-OpenGL 3-based experience.
For example I've been thinking of removing persistant-mapped buffers entirely.

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

Successfully merging this pull request may close these issues.

None yet

2 participants