Opens runtime devices over a GPU backend that its owner selected and keeps alive. More...
#include "donner/svg/renderer/geode/GeodeRuntimeDeviceSource.h"
Public Member Functions | |
| virtual std::unique_ptr< gpu::Device > | openRuntimeDevice ()=0 |
| Opens one runtime device of its own over the owner's backend. | |
Opens runtime devices over a GPU backend that its owner selected and keeps alive.
Every Geode context over the adopted root calls openRuntimeDevice once, so each context keeps its own handle tables, submission serials, caches and retirement over the shared backend.
|
pure virtual |
Opens one runtime device of its own over the owner's backend.
Every device must share the loss condition the root was adopted with, so a loss on one context stops every context over it. That is the source's contract; Geode does not check it. Called once per context, on whichever thread creates that context, so an implementation that may be reached from more than one thread synchronizes itself.