15#ifndef GPUDISPLAYBACKENDOPENGL_H
16#define GPUDISPLAYBACKENDOPENGL_H
60 bool prepareDraw(
const hmm_mat4& proj,
const hmm_mat4& view,
bool requestScreenshot,
bool toMixBuffer,
float includeMixImage)
override;
64 void finishDraw(
bool doScreenshot,
bool toMixBuffer,
float includeMixImage)
override;
65 void finishFrame(
bool doScreenshot,
bool toMixBuffer,
float includeMixImage)
override;
81 void addFontSymbol(int32_t symbol, int32_t sizex, int32_t sizey, int32_t offsetx, int32_t offsety, int32_t advance,
void*
data)
override;
uint32_t mFragmentShaderDownsample
void lineWidthFactor(float factor) override
void clearScreen(bool alphaOnly=false)
static constexpr int32_t UNIFORM_LOCATION_LINE_WIDTH
void resizeScene(uint32_t width, uint32_t height) override
GPUDisplayBackendOpenGL()
void loadDataToGPU(size_t totalVertizes) override
uint32_t mShaderProgramField
void setQuality() override
bool mUseSmoothLineShader
GLfb mOffscreenBufferMSAA
uint32_t mVertexShaderSmoothLine
bool prepareDraw(const hmm_mat4 &proj, const hmm_mat4 &view, bool requestScreenshot, bool toMixBuffer, float includeMixImage) override
bool canLimitToVSync() const override
uint32_t mShaderProgramSmoothLine
void setFrameBuffer(uint32_t newID=0)
static uint32_t loadShader(uint32_t type, const char *spirv, size_t size)
bool mMagneticFieldFailed
void OpenGLPrint(const char *s, float x, float y, float *color, float scale) override
void drawDownsample(uint32_t srcTexture, uint32_t dstFramebuffer, uint32_t width, uint32_t height, int32_t factor)
uint32_t mFragmentShaderSmoothPoint
uint32_t mShaderProgramDownsample
void finishDraw(bool doScreenshot, bool toMixBuffer, float includeMixImage) override
uint32_t mVertexShaderFullscreen
uint32_t drawField() override
~GPUDisplayBackendOpenGL() override=default
uint32_t mShaderProgramTexture
uint32_t drawVertices(const vboList &v, const drawType t) override
uint32_t mSolenoidParameterizationBuffer
uint32_t mVertexShaderSmoothPoint
int32_t InitBackendA() override
uint32_t mFragmentShaderText
static int32_t checkProgramStatus(uint32_t program)
int32_t ExtInit() override
void createFB(GLfb &fb, bool tex, bool withDepth, bool msaa, uint32_t width, uint32_t height)
uint32_t mShaderProgramSmoothPoint
void pointSizeFactor(float factor) override
void prepareText() override
void clearFontSymbols() override
bool CoreProfile() override
static int32_t checkShaderStatus(uint32_t shader)
void initializeTextDrawing() override
void ClearOffscreenBuffers()
void ExitMagFieldVisualization()
uint32_t mFragmentShaderSmoothLine
bool mUseSmoothPointShader
uint32_t mShaderProgramText
std::vector< uint32_t > mVBOId
uint32_t DepthBits() override
uint32_t mVertexShaderTexture
static constexpr int32_t UNIFORM_LOCATION_POINT_SIZE
static constexpr int32_t UNIFORM_LOCATION_VIEWPORT
uint32_t mDipoleSegmentsBuffer
size_t needMultiVBO() override
static constexpr int32_t UNIFORM_LOCATION_COLOR
void mixImages(float mixSlaveImage)
uint32_t mVertexShaderPassthrough
void updateRenderer(bool withScreenshot)
void finishText() override
std::vector< FontSymbolOpenGL > mFontSymbols
int32_t InitMagFieldVisualization()
uint32_t mDipoleParameterizationBuffer
uint32_t mFragmentShaderTexture
uint32_t mFieldModelViewBuffer
void finishFrame(bool doScreenshot, bool toMixBuffer, float includeMixImage) override
void addFontSymbol(int32_t symbol, int32_t sizex, int32_t sizey, int32_t offsetx, int32_t offsety, int32_t advance, void *data) override
void ActivateColor(std::array< float, 4 > &color) override
static constexpr int32_t UNIFORM_LOCATION_MATRIX
void setDepthBuffer() override
uint32_t mFieldModelConstantsBuffer
void ExitBackendA() override
uint32_t mSolenoidSegmentsBuffer
std::tuple< uint32_t, uint32_t, int32_t > vboList
GLbitfield GLuint program
GLint GLsizei GLsizei height
GLint GLint GLsizei GLint GLenum GLenum type
GLint GLint GLsizei GLsizei GLsizei depth