A texture one logical device has shared with the others over the same browser device. More...
#include "donner/gpu/browser/BrowserBridge.h"
Public Member Functions | |
| virtual BrowserTextureShareId | shareId () const =0 |
| The share, as the browser side names it. | |
| virtual const void * | sharedDeviceIdentity () const =0 |
| Identity of the browser device the texture belongs to, as BrowserBridge::sharedDeviceIdentity reports it for every bridge over that device. | |
| Public Member Functions inherited from donner::gpu::ExportedTextureBacking | |
| ExportedTextureBacking (const ExportedTextureBacking &)=delete | |
| ExportedTextureBacking & | operator= (const ExportedTextureBacking &)=delete |
| virtual void | releaseBackingNow () const |
| Releases the allocation at once, for a producer that asked to give its backing back while another device still read it. | |
A texture one logical device has shared with the others over the same browser device.
This is the backend half of an exported texture (ExportedTextureBacking). The runtime keeps it for as long as an export token or a registration made from the export is alive, and the browser texture lives at least that long: the producer releasing its own identifier does not destroy a texture a share still holds, and the implementation lets the browser side go of it when this object is destroyed. Browser objects belong to the worker that obtained the device, so that release runs only on the thread that made the share: one destroyed elsewhere hands its release to that thread, which runs it the next time it yields to the browser. A share whose thread has exited goes with its browser device, which destroys every texture a share still holds when the last logical device over it is released.