mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-16 13:21:50 -05:00
OpenGL modernization: draw the frequency scale the new way
This commit is contained in:
parent
2720969a84
commit
3aabeb4399
@ -132,18 +132,18 @@ private:
|
|||||||
Real m_waterfallShare;
|
Real m_waterfallShare;
|
||||||
|
|
||||||
QPixmap m_leftMarginPixmap;
|
QPixmap m_leftMarginPixmap;
|
||||||
|
QPixmap m_frequencyPixmap;
|
||||||
#ifdef GL_DEPRECATED
|
#ifdef GL_DEPRECATED
|
||||||
bool m_leftMarginTextureAllocated;
|
bool m_leftMarginTextureAllocated;
|
||||||
GLuint m_leftMarginTexture;
|
GLuint m_leftMarginTexture;
|
||||||
QRectF m_glLeftScaleRect;
|
QRectF m_glLeftScaleRect;
|
||||||
#endif
|
|
||||||
QPixmap m_frequencyPixmap;
|
|
||||||
bool m_frequencyTextureAllocated;
|
bool m_frequencyTextureAllocated;
|
||||||
GLuint m_frequencyTexture;
|
GLuint m_frequencyTexture;
|
||||||
|
QRectF m_glFrequencyScaleRect;
|
||||||
|
#endif
|
||||||
ScaleEngine m_timeScale;
|
ScaleEngine m_timeScale;
|
||||||
ScaleEngine m_powerScale;
|
ScaleEngine m_powerScale;
|
||||||
ScaleEngine m_frequencyScale;
|
ScaleEngine m_frequencyScale;
|
||||||
QRectF m_glFrequencyScaleRect;
|
|
||||||
QRect m_frequencyScaleRect;
|
QRect m_frequencyScaleRect;
|
||||||
QMatrix4x4 m_glFrequencyScaleBoxMatrix;
|
QMatrix4x4 m_glFrequencyScaleBoxMatrix;
|
||||||
QMatrix4x4 m_glLeftScaleBoxMatrix;
|
QMatrix4x4 m_glLeftScaleBoxMatrix;
|
||||||
@ -179,6 +179,7 @@ private:
|
|||||||
|
|
||||||
GLShaderSimple m_glShaderSimple;
|
GLShaderSimple m_glShaderSimple;
|
||||||
GLShaderTextured m_glShaderLeftScale;
|
GLShaderTextured m_glShaderLeftScale;
|
||||||
|
GLShaderTextured m_glShaderFrequencyScale;
|
||||||
int m_matrixLoc;
|
int m_matrixLoc;
|
||||||
int m_colorLoc;
|
int m_colorLoc;
|
||||||
|
|
||||||
|
@ -50,8 +50,8 @@ GLSpectrum::GLSpectrum(QWidget* parent) :
|
|||||||
m_displayCurrent(false),
|
m_displayCurrent(false),
|
||||||
#ifdef GL_DEPRECATED
|
#ifdef GL_DEPRECATED
|
||||||
m_leftMarginTextureAllocated(false),
|
m_leftMarginTextureAllocated(false),
|
||||||
#endif
|
|
||||||
m_frequencyTextureAllocated(false),
|
m_frequencyTextureAllocated(false),
|
||||||
|
#endif
|
||||||
m_waterfallBuffer(NULL),
|
m_waterfallBuffer(NULL),
|
||||||
m_waterfallTextureAllocated(false),
|
m_waterfallTextureAllocated(false),
|
||||||
m_waterfallTextureHeight(-1),
|
m_waterfallTextureHeight(-1),
|
||||||
@ -155,11 +155,11 @@ GLSpectrum::~GLSpectrum()
|
|||||||
deleteTexture(m_leftMarginTexture);
|
deleteTexture(m_leftMarginTexture);
|
||||||
m_leftMarginTextureAllocated = false;
|
m_leftMarginTextureAllocated = false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if(m_frequencyTextureAllocated) {
|
if(m_frequencyTextureAllocated) {
|
||||||
deleteTexture(m_frequencyTexture);
|
deleteTexture(m_frequencyTexture);
|
||||||
m_frequencyTextureAllocated = false;
|
m_frequencyTextureAllocated = false;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLSpectrum::setCenterFrequency(quint64 frequency)
|
void GLSpectrum::setCenterFrequency(quint64 frequency)
|
||||||
@ -511,6 +511,7 @@ void GLSpectrum::initializeGL()
|
|||||||
glDisable(GL_DEPTH_TEST);
|
glDisable(GL_DEPTH_TEST);
|
||||||
m_glShaderSimple.initializeGL();
|
m_glShaderSimple.initializeGL();
|
||||||
m_glShaderLeftScale.initializeGL();
|
m_glShaderLeftScale.initializeGL();
|
||||||
|
m_glShaderFrequencyScale.initializeGL();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLSpectrum::resizeGL(int width, int height)
|
void GLSpectrum::resizeGL(int width, int height)
|
||||||
@ -927,6 +928,7 @@ void GLSpectrum::paintGL()
|
|||||||
// paint frequency scale
|
// paint frequency scale
|
||||||
if (m_displayWaterfall || m_displayMaxHold || m_displayCurrent || m_displayHistogram )
|
if (m_displayWaterfall || m_displayMaxHold || m_displayCurrent || m_displayHistogram )
|
||||||
{
|
{
|
||||||
|
#ifdef GL_DEPRECATED
|
||||||
glPushMatrix();
|
glPushMatrix();
|
||||||
glTranslatef(m_glFrequencyScaleRect.x(), m_glFrequencyScaleRect.y(), 0);
|
glTranslatef(m_glFrequencyScaleRect.x(), m_glFrequencyScaleRect.y(), 0);
|
||||||
glScalef(m_glFrequencyScaleRect.width(), m_glFrequencyScaleRect.height(), 1);
|
glScalef(m_glFrequencyScaleRect.width(), m_glFrequencyScaleRect.height(), 1);
|
||||||
@ -939,7 +941,6 @@ void GLSpectrum::paintGL()
|
|||||||
glEnable(GL_BLEND);
|
glEnable(GL_BLEND);
|
||||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
glEnable(GL_TEXTURE_2D);
|
glEnable(GL_TEXTURE_2D);
|
||||||
#ifdef GL_DEPRECATED
|
|
||||||
glBegin(GL_QUADS);
|
glBegin(GL_QUADS);
|
||||||
glTexCoord2f(0, 1);
|
glTexCoord2f(0, 1);
|
||||||
glVertex2f(0, 1);
|
glVertex2f(0, 1);
|
||||||
@ -950,6 +951,9 @@ void GLSpectrum::paintGL()
|
|||||||
glTexCoord2f(0, 0);
|
glTexCoord2f(0, 0);
|
||||||
glVertex2f(0, 0);
|
glVertex2f(0, 0);
|
||||||
glEnd();
|
glEnd();
|
||||||
|
glDisable(GL_TEXTURE_2D);
|
||||||
|
|
||||||
|
glPopMatrix();
|
||||||
#else
|
#else
|
||||||
{
|
{
|
||||||
GLfloat vtx1[] = {
|
GLfloat vtx1[] = {
|
||||||
@ -964,28 +968,10 @@ void GLSpectrum::paintGL()
|
|||||||
1, 0,
|
1, 0,
|
||||||
0, 0
|
0, 0
|
||||||
};
|
};
|
||||||
#ifdef GL_ANDROID
|
|
||||||
glEnableVertexAttribArray(GL_VERTEX_ARRAY);
|
m_glShaderFrequencyScale.drawSurface(m_glFrequencyScaleBoxMatrix, tex1, vtx1, 4);
|
||||||
glEnableVertexAttribArray(GL_TEXTURE_COORD_ARRAY);
|
|
||||||
glVertexAttribPointer(GL_VERTEX_ARRAY, 2, GL_FLOAT, GL_FALSE, 0, vtx1);
|
|
||||||
glVertexAttribPointer(GL_TEXTURE_COORD_ARRAY, 2, GL_FLOAT, GL_FALSE, 0, tex1);
|
|
||||||
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
|
|
||||||
glDisableVertexAttribArray(GL_VERTEX_ARRAY);
|
|
||||||
glDisableVertexAttribArray(GL_TEXTURE_COORD_ARRAY);
|
|
||||||
#else
|
|
||||||
glEnableClientState(GL_VERTEX_ARRAY);
|
|
||||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
|
||||||
glVertexPointer(2, GL_FLOAT, 0, vtx1);
|
|
||||||
glTexCoordPointer(2, GL_FLOAT, 0, tex1);
|
|
||||||
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
|
|
||||||
glDisableClientState(GL_VERTEX_ARRAY);
|
|
||||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
glDisable(GL_TEXTURE_2D);
|
|
||||||
|
|
||||||
glPopMatrix();
|
|
||||||
|
|
||||||
// paint channels
|
// paint channels
|
||||||
|
|
||||||
@ -1533,13 +1519,14 @@ void GLSpectrum::applyChanges()
|
|||||||
width(),
|
width(),
|
||||||
frequencyScaleHeight
|
frequencyScaleHeight
|
||||||
);
|
);
|
||||||
|
#ifdef GL_DEPRECATED
|
||||||
m_glFrequencyScaleRect = QRectF(
|
m_glFrequencyScaleRect = QRectF(
|
||||||
(float)0,
|
(float)0,
|
||||||
(float)frequencyScaleTop / (float)height(),
|
(float)frequencyScaleTop / (float)height(),
|
||||||
(float)1,
|
(float)1,
|
||||||
(float)frequencyScaleHeight / (float)height()
|
(float)frequencyScaleHeight / (float)height()
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
m_glFrequencyScaleBoxMatrix.setToIdentity();
|
m_glFrequencyScaleBoxMatrix.setToIdentity();
|
||||||
m_glFrequencyScaleBoxMatrix.translate (
|
m_glFrequencyScaleBoxMatrix.translate (
|
||||||
-1.0f,
|
-1.0f,
|
||||||
@ -1631,13 +1618,14 @@ void GLSpectrum::applyChanges()
|
|||||||
width(),
|
width(),
|
||||||
frequencyScaleHeight
|
frequencyScaleHeight
|
||||||
);
|
);
|
||||||
|
#ifdef GL_DEPRECATED
|
||||||
m_glFrequencyScaleRect = QRectF(
|
m_glFrequencyScaleRect = QRectF(
|
||||||
(float)0,
|
(float)0,
|
||||||
(float)frequencyScaleTop / (float)height(),
|
(float)frequencyScaleTop / (float)height(),
|
||||||
(float)1,
|
(float)1,
|
||||||
(float)frequencyScaleHeight / (float)height()
|
(float)frequencyScaleHeight / (float)height()
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
m_glFrequencyScaleBoxMatrix.setToIdentity();
|
m_glFrequencyScaleBoxMatrix.setToIdentity();
|
||||||
m_glFrequencyScaleBoxMatrix.translate (
|
m_glFrequencyScaleBoxMatrix.translate (
|
||||||
-1.0f,
|
-1.0f,
|
||||||
@ -1714,13 +1702,14 @@ void GLSpectrum::applyChanges()
|
|||||||
width(),
|
width(),
|
||||||
frequencyScaleHeight
|
frequencyScaleHeight
|
||||||
);
|
);
|
||||||
|
#ifdef GL_DEPRECATED
|
||||||
m_glFrequencyScaleRect = QRectF(
|
m_glFrequencyScaleRect = QRectF(
|
||||||
(float)0,
|
(float)0,
|
||||||
(float)frequencyScaleTop / (float)height(),
|
(float)frequencyScaleTop / (float)height(),
|
||||||
(float)1,
|
(float)1,
|
||||||
(float)frequencyScaleHeight / (float)height()
|
(float)frequencyScaleHeight / (float)height()
|
||||||
);
|
);
|
||||||
|
#endif
|
||||||
m_glFrequencyScaleBoxMatrix.setToIdentity();
|
m_glFrequencyScaleBoxMatrix.setToIdentity();
|
||||||
m_glFrequencyScaleBoxMatrix.translate (
|
m_glFrequencyScaleBoxMatrix.translate (
|
||||||
-1.0f,
|
-1.0f,
|
||||||
@ -1986,6 +1975,7 @@ void GLSpectrum::applyChanges()
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
#ifdef GL_DEPRECATED
|
||||||
if(m_frequencyTextureAllocated)
|
if(m_frequencyTextureAllocated)
|
||||||
deleteTexture(m_frequencyTexture);
|
deleteTexture(m_frequencyTexture);
|
||||||
m_frequencyTexture = bindTexture(m_frequencyPixmap,
|
m_frequencyTexture = bindTexture(m_frequencyPixmap,
|
||||||
@ -1994,6 +1984,8 @@ void GLSpectrum::applyChanges()
|
|||||||
QGLContext::LinearFilteringBindOption |
|
QGLContext::LinearFilteringBindOption |
|
||||||
QGLContext::MipmapBindOption);
|
QGLContext::MipmapBindOption);
|
||||||
m_frequencyTextureAllocated = true;
|
m_frequencyTextureAllocated = true;
|
||||||
|
#endif
|
||||||
|
m_glShaderFrequencyScale.initTexture(m_frequencyPixmap.toImage());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!m_waterfallTextureAllocated) {
|
if(!m_waterfallTextureAllocated) {
|
||||||
|
Loading…
Reference in New Issue
Block a user