Project
Loading...
Searching...
No Matches
o2::gpu::GPUDisplayBackend Class Referenceabstract

#include <GPUDisplayBackend.h>

Inherited by o2::gpu::GPUDisplayBackendOpenGL, and o2::gpu::GPUDisplayBackendVulkan.

Classes

struct  DrawArraysIndirectCommand
 
struct  FontSymbol
 

Public Types

enum  drawType { POINTS = 0 , LINES = 1 , LINE_STRIP = 2 }
 
enum  backendTypes { TYPE_INVALID = -1 , TYPE_OPENGL = 0 , TYPE_VULKAN = 1 }
 
typedef std::tuple< uint32_t, uint32_t, int32_t > vboList
 

Public Member Functions

 GPUDisplayBackend ()
 
virtual ~GPUDisplayBackend ()
 
virtual int32_t ExtInit ()
 
virtual bool CoreProfile ()
 
virtual uint32_t DepthBits ()=0
 
virtual uint32_t drawVertices (const vboList &v, const drawType t)=0
 
virtual uint32_t drawField ()
 
virtual void ActivateColor (std::array< float, 4 > &color)=0
 
virtual void setQuality ()
 
virtual void SetVSync (bool enable)
 
virtual bool backendNeedRedraw ()
 
virtual void setDepthBuffer ()=0
 
virtual int32_t InitBackendA ()=0
 
virtual void ExitBackendA ()=0
 
int32_t InitBackend ()
 
void ExitBackend ()
 
virtual void loadDataToGPU (size_t totalVertizes)=0
 
virtual void prepareDraw (const hmm_mat4 &proj, const hmm_mat4 &view, bool requestScreenshot=false, bool toMixBuffer=false, float includeMixImage=0.f)=0
 
virtual void finishDraw (bool doScreenshot, bool toMixBuffer=false, float includeMixImage=0.f)=0
 
virtual void finishFrame (bool doScreenshot, bool toMixBuffer=false, float includeMixImage=0.f)=0
 
virtual void prepareText ()=0
 
virtual void finishText ()=0
 
virtual void pointSizeFactor (float factor)=0
 
virtual void lineWidthFactor (float factor)=0
 
backendTypes backendType () const
 
const charbackendName () const
 
virtual void resizeScene (uint32_t width, uint32_t height)
 
virtual size_t needMultiVBO ()
 
virtual void OpenGLPrint (const char *s, float x, float y, float *color, float scale)=0
 
std::vector< chargetPixels ()
 
virtual float getYFactor () const
 
virtual int32_t getMaxMSAA () const
 

Static Public Member Functions

static GPUDisplayBackendgetBackend (const char *type)
 

Protected Member Functions

virtual void addFontSymbol (int32_t symbol, int32_t sizex, int32_t sizey, int32_t offsetx, int32_t offsety, int32_t advance, void *data)=0
 
virtual void initializeTextDrawing ()=0
 
float getDownsampleFactor (bool screenshot=false)
 
void fillIndirectCmdBuffer ()
 
bool smoothFont ()
 

Protected Attributes

GPUDisplaymDisplay = nullptr
 
std::vector< int32_t > mIndirectSectorOffset
 
vecpod< DrawArraysIndirectCommandmCmdBuffer
 
bool mFreetypeInitialized = false
 
bool mFrontendCompatTextDraw = false
 
std::vector< charmScreenshotPixels
 
int32_t mDownsampleFactor = 1
 
uint32_t mRenderWidth = 0
 
uint32_t mRenderHeight = 0
 
uint32_t mScreenWidth = 0
 
uint32_t mScreenHeight = 0
 
backendTypes mBackendType = TYPE_INVALID
 
const charmBackendName = nullptr
 
std::unique_ptr< GPUDisplayMagneticFieldmMagneticFieldVisualization
 

Detailed Description

Definition at line 37 of file GPUDisplayBackend.h.

Member Typedef Documentation

◆ vboList

typedef std::tuple<uint32_t, uint32_t, int32_t> o2::gpu::GPUDisplayBackend::vboList

Definition at line 49 of file GPUDisplayBackend.h.

Member Enumeration Documentation

◆ backendTypes

Enumerator
TYPE_INVALID 
TYPE_OPENGL 
TYPE_VULKAN 

Definition at line 57 of file GPUDisplayBackend.h.

◆ drawType

Enumerator
POINTS 
LINES 
LINE_STRIP 

Definition at line 51 of file GPUDisplayBackend.h.

Constructor & Destructor Documentation

◆ GPUDisplayBackend()

GPUDisplayBackend::GPUDisplayBackend ( )
default

◆ ~GPUDisplayBackend()

GPUDisplayBackend::~GPUDisplayBackend ( )
virtualdefault

Member Function Documentation

◆ ActivateColor()

virtual void o2::gpu::GPUDisplayBackend::ActivateColor ( std::array< float, 4 > &  color)
pure virtual

◆ addFontSymbol()

virtual void o2::gpu::GPUDisplayBackend::addFontSymbol ( int32_t  symbol,
int32_t  sizex,
int32_t  sizey,
int32_t  offsetx,
int32_t  offsety,
int32_t  advance,
void data 
)
protectedpure virtual

◆ backendName()

const char * o2::gpu::GPUDisplayBackend::backendName ( ) const
inline

Definition at line 98 of file GPUDisplayBackend.h.

◆ backendNeedRedraw()

virtual bool o2::gpu::GPUDisplayBackend::backendNeedRedraw ( )
inlinevirtual

Reimplemented in o2::gpu::GPUDisplayBackendVulkan.

Definition at line 83 of file GPUDisplayBackend.h.

◆ backendType()

backendTypes o2::gpu::GPUDisplayBackend::backendType ( ) const
inline

Definition at line 97 of file GPUDisplayBackend.h.

◆ CoreProfile()

virtual bool o2::gpu::GPUDisplayBackend::CoreProfile ( )
inlinevirtual

Reimplemented in o2::gpu::GPUDisplayBackendOpenGL.

Definition at line 46 of file GPUDisplayBackend.h.

◆ DepthBits()

virtual uint32_t o2::gpu::GPUDisplayBackend::DepthBits ( )
pure virtual

◆ drawField()

virtual uint32_t o2::gpu::GPUDisplayBackend::drawField ( )
inlinevirtual

Reimplemented in o2::gpu::GPUDisplayBackendOpenGL.

Definition at line 79 of file GPUDisplayBackend.h.

◆ drawVertices()

virtual uint32_t o2::gpu::GPUDisplayBackend::drawVertices ( const vboList v,
const drawType  t 
)
pure virtual

◆ ExitBackend()

void GPUDisplayBackend::ExitBackend ( )

Definition at line 126 of file GPUDisplayBackend.cxx.

◆ ExitBackendA()

virtual void o2::gpu::GPUDisplayBackend::ExitBackendA ( )
pure virtual

◆ ExtInit()

virtual int32_t o2::gpu::GPUDisplayBackend::ExtInit ( )
inlinevirtual

Reimplemented in o2::gpu::GPUDisplayBackendOpenGL.

Definition at line 45 of file GPUDisplayBackend.h.

◆ fillIndirectCmdBuffer()

void GPUDisplayBackend::fillIndirectCmdBuffer ( )
protected

Definition at line 138 of file GPUDisplayBackend.cxx.

◆ finishDraw()

virtual void o2::gpu::GPUDisplayBackend::finishDraw ( bool  doScreenshot,
bool  toMixBuffer = false,
float  includeMixImage = 0.f 
)
pure virtual

◆ finishFrame()

virtual void o2::gpu::GPUDisplayBackend::finishFrame ( bool  doScreenshot,
bool  toMixBuffer = false,
float  includeMixImage = 0.f 
)
pure virtual

◆ finishText()

virtual void o2::gpu::GPUDisplayBackend::finishText ( )
pure virtual

◆ getBackend()

GPUDisplayBackend * GPUDisplayBackend::getBackend ( const char type)
static

Definition at line 44 of file GPUDisplayBackend.cxx.

◆ getDownsampleFactor()

float GPUDisplayBackend::getDownsampleFactor ( bool  screenshot = false)
protected

Definition at line 151 of file GPUDisplayBackend.cxx.

◆ getMaxMSAA()

virtual int32_t o2::gpu::GPUDisplayBackend::getMaxMSAA ( ) const
inlinevirtual

Reimplemented in o2::gpu::GPUDisplayBackendVulkan.

Definition at line 105 of file GPUDisplayBackend.h.

◆ getPixels()

std::vector< char > GPUDisplayBackend::getPixels ( )

Definition at line 131 of file GPUDisplayBackend.cxx.

◆ getYFactor()

virtual float o2::gpu::GPUDisplayBackend::getYFactor ( ) const
inlinevirtual

Reimplemented in o2::gpu::GPUDisplayBackendVulkan.

Definition at line 104 of file GPUDisplayBackend.h.

◆ InitBackend()

int32_t GPUDisplayBackend::InitBackend ( )

Definition at line 59 of file GPUDisplayBackend.cxx.

◆ InitBackendA()

virtual int32_t o2::gpu::GPUDisplayBackend::InitBackendA ( )
pure virtual

◆ initializeTextDrawing()

virtual void o2::gpu::GPUDisplayBackend::initializeTextDrawing ( )
protectedpure virtual

◆ lineWidthFactor()

virtual void o2::gpu::GPUDisplayBackend::lineWidthFactor ( float  factor)
pure virtual

◆ loadDataToGPU()

virtual void o2::gpu::GPUDisplayBackend::loadDataToGPU ( size_t  totalVertizes)
pure virtual

◆ needMultiVBO()

virtual size_t o2::gpu::GPUDisplayBackend::needMultiVBO ( )
inlinevirtual

Reimplemented in o2::gpu::GPUDisplayBackendOpenGL.

Definition at line 100 of file GPUDisplayBackend.h.

◆ OpenGLPrint()

virtual void o2::gpu::GPUDisplayBackend::OpenGLPrint ( const char s,
float  x,
float  y,
float *  color,
float  scale 
)
pure virtual

◆ pointSizeFactor()

virtual void o2::gpu::GPUDisplayBackend::pointSizeFactor ( float  factor)
pure virtual

◆ prepareDraw()

virtual void o2::gpu::GPUDisplayBackend::prepareDraw ( const hmm_mat4 proj,
const hmm_mat4 view,
bool  requestScreenshot = false,
bool  toMixBuffer = false,
float  includeMixImage = 0.f 
)
pure virtual

◆ prepareText()

virtual void o2::gpu::GPUDisplayBackend::prepareText ( )
pure virtual

◆ resizeScene()

virtual void o2::gpu::GPUDisplayBackend::resizeScene ( uint32_t  width,
uint32_t  height 
)
inlinevirtual

◆ setDepthBuffer()

virtual void o2::gpu::GPUDisplayBackend::setDepthBuffer ( )
pure virtual

◆ setQuality()

virtual void o2::gpu::GPUDisplayBackend::setQuality ( )
inlinevirtual

Reimplemented in o2::gpu::GPUDisplayBackendOpenGL.

Definition at line 81 of file GPUDisplayBackend.h.

◆ SetVSync()

virtual void o2::gpu::GPUDisplayBackend::SetVSync ( bool  enable)
inlinevirtual

Reimplemented in o2::gpu::GPUDisplayBackendVulkan.

Definition at line 82 of file GPUDisplayBackend.h.

◆ smoothFont()

bool GPUDisplayBackend::smoothFont ( )
protected

Definition at line 165 of file GPUDisplayBackend.cxx.

Member Data Documentation

◆ mBackendName

const char* o2::gpu::GPUDisplayBackend::mBackendName = nullptr
protected

Definition at line 130 of file GPUDisplayBackend.h.

◆ mBackendType

backendTypes o2::gpu::GPUDisplayBackend::mBackendType = TYPE_INVALID
protected

Definition at line 129 of file GPUDisplayBackend.h.

◆ mCmdBuffer

vecpod<DrawArraysIndirectCommand> o2::gpu::GPUDisplayBackend::mCmdBuffer
protected

Definition at line 117 of file GPUDisplayBackend.h.

◆ mDisplay

GPUDisplay* o2::gpu::GPUDisplayBackend::mDisplay = nullptr
protected

Definition at line 115 of file GPUDisplayBackend.h.

◆ mDownsampleFactor

int32_t o2::gpu::GPUDisplayBackend::mDownsampleFactor = 1
protected

Definition at line 122 of file GPUDisplayBackend.h.

◆ mFreetypeInitialized

bool o2::gpu::GPUDisplayBackend::mFreetypeInitialized = false
protected

Definition at line 118 of file GPUDisplayBackend.h.

◆ mFrontendCompatTextDraw

bool o2::gpu::GPUDisplayBackend::mFrontendCompatTextDraw = false
protected

Definition at line 119 of file GPUDisplayBackend.h.

◆ mIndirectSectorOffset

std::vector<int32_t> o2::gpu::GPUDisplayBackend::mIndirectSectorOffset
protected

Definition at line 116 of file GPUDisplayBackend.h.

◆ mMagneticFieldVisualization

std::unique_ptr<GPUDisplayMagneticField> o2::gpu::GPUDisplayBackend::mMagneticFieldVisualization
protected

Definition at line 132 of file GPUDisplayBackend.h.

◆ mRenderHeight

uint32_t o2::gpu::GPUDisplayBackend::mRenderHeight = 0
protected

Definition at line 125 of file GPUDisplayBackend.h.

◆ mRenderWidth

uint32_t o2::gpu::GPUDisplayBackend::mRenderWidth = 0
protected

Definition at line 124 of file GPUDisplayBackend.h.

◆ mScreenHeight

uint32_t o2::gpu::GPUDisplayBackend::mScreenHeight = 0
protected

Definition at line 127 of file GPUDisplayBackend.h.

◆ mScreenshotPixels

std::vector<char> o2::gpu::GPUDisplayBackend::mScreenshotPixels
protected

Definition at line 120 of file GPUDisplayBackend.h.

◆ mScreenWidth

uint32_t o2::gpu::GPUDisplayBackend::mScreenWidth = 0
protected

Definition at line 126 of file GPUDisplayBackend.h.


The documentation for this class was generated from the following files: