Project
Loading...
Searching...
No Matches
GPUDisplayLoader.cxx
Go to the documentation of this file.
1
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3
// All rights not expressly granted are reserved.
4
//
5
// This software is distributed under the terms of the GNU General Public
6
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7
//
8
// In applying this license CERN does not waive the privileges and immunities
9
// granted to it by virtue of its status as an Intergovernmental Organization
10
// or submit itself to any jurisdiction.
11
14
15
#include "
GPUDisplay.h
"
16
#include "
frontend/GPUDisplayFrontend.h
"
17
#include "
GPUDisplayInterface.h
"
18
19
#include <tuple>
20
#include <stdexcept>
21
22
using namespace
o2::gpu
;
23
24
extern
"C"
void
*
GPUTrackingDisplayLoader
(
const
char
*,
void
*);
25
26
template
<
class
T
,
typename
... Args>
27
static
inline
T
* createHelper(Args... args)
28
{
29
return
new
T
(args...);
30
}
31
32
void
*
GPUTrackingDisplayLoader
(
const
char
*
type
,
void
* args)
33
{
34
if
(strcmp(
type
,
"display"
) == 0) {
35
auto
x
= (std::tuple<GPUDisplayFrontend*, GPUChainTracking*, GPUQA*, const GPUParam*, const GPUCalibObjectsConst*, const GPUSettingsDisplay*>*)args;
36
return
std::apply([](
auto
&&...
y
) {
return
createHelper<GPUDisplay>(
y
...); }, *
x
);
37
}
else
if
(strcmp(
type
,
"frontend"
) == 0) {
38
auto
x
= (std::tuple<const char*>*)args;
39
return
std::apply([](
auto
&&...
y
) {
return
GPUDisplayFrontend::getFrontend
(
y
...); }, *
x
);
40
}
else
{
41
throw
std::runtime_error(
"Invalid display obejct type specified"
);
42
}
43
return
nullptr
;
44
}
GPUDisplayFrontend.h
GPUDisplayInterface.h
GPUTrackingDisplayLoader
void * GPUTrackingDisplayLoader(const char *, void *)
Definition
GPUDisplayLoader.cxx:32
GPUDisplay.h
int
o2::gpu::GPUDisplayFrontend::getFrontend
static GPUDisplayFrontend * getFrontend(const char *type)
Definition
GPUDisplayFrontend.cxx:117
x
GLint GLenum GLint x
Definition
glcorearb.h:403
type
GLint GLint GLsizei GLint GLenum GLenum type
Definition
glcorearb.h:275
o2::gpu
Definition
TrackTRD.h:35
o2::math_utils::detail::T
T
Definition
SMatrixGPU.h:747
GPU
GPUTracking
display
helpers
GPUDisplayLoader.cxx
Generated on Tue Feb 25 2025 17:03:26 for Project by
1.9.8