27static constexpr const char* funcName =
"GPUTrackingDisplayLoader";
29static void* loadUnloadLib(
bool load)
31 static size_t count = 0;
33 static void*
func =
nullptr;
35 static std::mutex mut;
36 std::lock_guard<std::mutex> lock(mut);
42 GPUError(
"Cannot load display library %s", libName);
46 if (
func ==
nullptr) {
47 GPUError(
"Error getting factory function from display library %s", libName);
57 throw std::runtime_error(
"reference count mismatch");
70 std::tuple args = {frontend,
chain, qa,
param, calib, config};
72 return func ?
func(
"display", &args) :
nullptr;
77 std::tuple args = {
type};
79 return func ?
func(
"frontend", &args) :
nullptr;
static GPUDisplayFrontendInterface * getFrontend(const char *type)
virtual ~GPUDisplayFrontendInterface()
GPUDisplayFrontendInterface()
virtual ~GPUDisplayInterface()
static GPUDisplayInterface * getDisplay(GPUDisplayFrontendInterface *frontend, GPUChainTracking *chain, GPUQA *qa, const GPUParam *param=nullptr, const GPUCalibObjectsConst *calib=nullptr, const GPUSettingsDisplay *config=nullptr)
GLint GLint GLsizei GLint GLenum GLenum type
#define LIBRARY_EXTENSION
#define LIBRARY_LOAD(name)