mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-16 13:21:50 -05:00
OpenGL modernization: various fixes
This commit is contained in:
parent
f002d8daa6
commit
ca49e2d990
@ -200,6 +200,7 @@ private:
|
|||||||
void drawPowerOverlay();
|
void drawPowerOverlay();
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
|
void cleanup();
|
||||||
void tick();
|
void tick();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -209,9 +209,8 @@ private:
|
|||||||
void enterEvent(QEvent* event);
|
void enterEvent(QEvent* event);
|
||||||
void leaveEvent(QEvent* event);
|
void leaveEvent(QEvent* event);
|
||||||
|
|
||||||
void cleanup();
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
void cleanup();
|
||||||
void tick();
|
void tick();
|
||||||
void channelMarkerChanged();
|
void channelMarkerChanged();
|
||||||
void channelMarkerDestroyed(QObject* object);
|
void channelMarkerDestroyed(QObject* object);
|
||||||
|
@ -19,16 +19,13 @@
|
|||||||
|
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QMouseEvent>
|
#include <QMouseEvent>
|
||||||
|
#include <QOpenGLContext>
|
||||||
#include "gui/glscope.h"
|
#include "gui/glscope.h"
|
||||||
#include "dsp/dspengine.h"
|
#include "dsp/dspengine.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
|
|
||||||
#ifdef GL_ANDROID
|
|
||||||
#include "util/gleshelp.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
static double log2f(double n)
|
static double log2f(double n)
|
||||||
@ -237,6 +234,25 @@ void GLScope::newTrace(const std::vector<Complex>& trace, int sampleRate)
|
|||||||
|
|
||||||
void GLScope::initializeGL()
|
void GLScope::initializeGL()
|
||||||
{
|
{
|
||||||
|
QOpenGLContext *glCurrentContext = QOpenGLContext::currentContext();
|
||||||
|
|
||||||
|
if (glCurrentContext) {
|
||||||
|
if (QOpenGLContext::currentContext()->isValid()) {
|
||||||
|
qDebug() << "GLScope::initializeGL: context:"
|
||||||
|
<< " major: " << (QOpenGLContext::currentContext()->format()).majorVersion()
|
||||||
|
<< " minor: " << (QOpenGLContext::currentContext()->format()).minorVersion()
|
||||||
|
<< " ES: " << (QOpenGLContext::currentContext()->isOpenGLES() ? "yes" : "no");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
qDebug() << "GLScope::initializeGL: current context is invalid";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
qCritical() << "GLScope::initializeGL: no current context";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
connect(glCurrentContext, &QOpenGLContext::aboutToBeDestroyed, this, &GLScope::cleanup); // TODO: when migrating to QOpenGLWidget
|
||||||
|
|
||||||
glDisable(GL_DEPTH_TEST);
|
glDisable(GL_DEPTH_TEST);
|
||||||
m_glShaderSimple.initializeGL();
|
m_glShaderSimple.initializeGL();
|
||||||
m_glShaderLeft1Scale.initializeGL();
|
m_glShaderLeft1Scale.initializeGL();
|
||||||
@ -2797,3 +2813,15 @@ void GLScope::connectTimer(const QTimer& timer)
|
|||||||
connect(&timer, SIGNAL(timeout()), this, SLOT(tick()));
|
connect(&timer, SIGNAL(timeout()), this, SLOT(tick()));
|
||||||
m_timer.stop();
|
m_timer.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GLScope::cleanup()
|
||||||
|
{
|
||||||
|
makeCurrent();
|
||||||
|
m_glShaderSimple.cleanup();
|
||||||
|
m_glShaderBottom1Scale.cleanup();
|
||||||
|
m_glShaderBottom2Scale.cleanup();
|
||||||
|
m_glShaderLeft1Scale.cleanup();
|
||||||
|
m_glShaderPowerOverlay.cleanup();
|
||||||
|
doneCurrent();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -2274,5 +2274,9 @@ void GLSpectrum::cleanup()
|
|||||||
{
|
{
|
||||||
makeCurrent();
|
makeCurrent();
|
||||||
m_glShaderSimple.cleanup();
|
m_glShaderSimple.cleanup();
|
||||||
|
m_glShaderFrequencyScale.cleanup();
|
||||||
|
m_glShaderHistogram.cleanup();
|
||||||
|
m_glShaderLeftScale.cleanup();
|
||||||
|
m_glShaderWaterfall.cleanup();
|
||||||
doneCurrent();
|
doneCurrent();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user