Project
Loading...
Searching...
No Matches
GPUDisplayInterface.h
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#ifndef GPUDISPLAYINTERFACE_H
16#define GPUDISPLAYINTERFACE_H
17
18#include <cstdint>
19
20namespace o2::gpu
21{
22
23class GPUChainTracking;
24class GPUQA;
25struct GPUParam;
26struct GPUTrackingInOutPointers;
27template <class T>
28struct ConstPtr;
29template <template <typename T> class S>
30struct GPUCalibObjectsTemplate;
31typedef GPUCalibObjectsTemplate<ConstPtr> GPUCalibObjectsConst;
32struct GPUDisplayFrontendInterface;
33struct GPUSettingsDisplay;
34struct GPUSettingsProcessing;
35
37{
38 public:
40 virtual ~GPUDisplayInterface();
41 virtual int32_t StartDisplay() = 0;
42 virtual void ShowNextEvent(const GPUTrackingInOutPointers* ptrs = nullptr) = 0;
43 virtual void WaitForNextEvent() = 0;
44 virtual void SetCollisionFirstCluster(uint32_t collision, int32_t sector, int32_t cluster) = 0;
45 virtual void UpdateCalib(const GPUCalibObjectsConst* calib) = 0;
46 virtual void UpdateParam(const GPUParam* param) = 0;
47 static GPUDisplayInterface* getDisplay(GPUDisplayFrontendInterface* frontend, GPUChainTracking* chain, GPUQA* qa, const GPUParam* param = nullptr, const GPUCalibObjectsConst* calib = nullptr, const GPUSettingsDisplay* config = nullptr, const GPUSettingsProcessing* proc = nullptr);
48
49 protected:
51};
52
54{
55 public:
57 static GPUDisplayFrontendInterface* getFrontend(const char* type);
58 virtual void DisplayExit() = 0;
59 virtual bool EnableSendKey() = 0;
60 virtual int32_t getDisplayControl() const = 0;
61 virtual int32_t getSendKey() const = 0;
62 virtual int32_t getNeedUpdate() const = 0;
63 virtual void setDisplayControl(int32_t v) = 0;
64 virtual void setSendKey(int32_t v) = 0;
65 virtual void setNeedUpdate(int32_t v) = 0;
66 virtual const char* frontendName() const = 0;
67
68 protected:
70};
71
72} // namespace o2::gpu
73
74#endif // GPUDISPLAYINTERFACE_H
GPUChain * chain
virtual void setSendKey(int32_t v)=0
static GPUDisplayFrontendInterface * getFrontend(const char *type)
virtual int32_t getSendKey() const =0
virtual void setDisplayControl(int32_t v)=0
virtual int32_t getDisplayControl() const =0
virtual int32_t getNeedUpdate() const =0
virtual void setNeedUpdate(int32_t v)=0
virtual const char * frontendName() const =0
virtual void ShowNextEvent(const GPUTrackingInOutPointers *ptrs=nullptr)=0
virtual void UpdateCalib(const GPUCalibObjectsConst *calib)=0
virtual void SetCollisionFirstCluster(uint32_t collision, int32_t sector, int32_t cluster)=0
virtual void UpdateParam(const GPUParam *param)=0
virtual int32_t StartDisplay()=0
virtual void WaitForNextEvent()=0
static GPUDisplayInterface * getDisplay(GPUDisplayFrontendInterface *frontend, GPUChainTracking *chain, GPUQA *qa, const GPUParam *param=nullptr, const GPUCalibObjectsConst *calib=nullptr, const GPUSettingsDisplay *config=nullptr, const GPUSettingsProcessing *proc=nullptr)
GPUDisplayInterface(const GPUDisplayInterface &)=delete
const GLdouble * v
Definition glcorearb.h:832
GLint GLint GLsizei GLint GLenum GLenum type
Definition glcorearb.h:275
GLenum GLfloat param
Definition glcorearb.h:271
GPUCalibObjectsTemplate< ConstPtr > GPUCalibObjectsConst