Improve encapsulation of shmem and dxgi GpuMemoryBufferHandles This CL attempts to move shared memory and DXGI GpuMemoryBufferHandles towards a model that are easier to move into a std::variant. The trickiest part of this is updating use of the shared memory region: previous refactorings here ignored this by simply dynamically dispatching depending on the type of the std::variant. While it is possible to continue implementing this behavior, being explicit here probably has long-term benefits for code readability... Summary of changes: - Extracting a shared memory regions or DXGI handle from a GpuMemoryBufferHandle is now a consuming operation, i.e. the GpuMemoryBufferHandle becomes an EMPTY_BUFFER. - Mutable getters and setters for these two subtypes no longer exist, to make it impossible to have a SHARED_MEMORY_BUFFER with an invalid region. - Add overloads for constructing a GpuMemoryBufferHandle from a shared memory region or DXGI handle. Bug: 40584691 Change-Id: I580a85be460035e063d1bf65e3c031104cb5410c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6381717 Reviewed-by: Frank Liberato <liberato@chromium.org> Reviewed-by: Piotr Bialecki <bialpio@chromium.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@chromium.org> Reviewed-by: Colin Blundell <blundell@chromium.org> Reviewed-by: vikas soni <vikassoni@chromium.org> Commit-Queue: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Min Chen <minch@chromium.org> Reviewed-by: Peter McNeeley <petermcneeley@google.com> Cr-Commit-Position: refs/heads/main@{#1445133}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.