1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-05-23 10:48:41 -04:00

OpenGL modernization: draw histogram grid power lines the new way

This commit is contained in:
f4exb 2016-03-03 08:50:10 +01:00
parent a8253f0bd0
commit c7b1bb3912

View File

@ -1334,26 +1334,25 @@ void GLSpectrum::paintGL()
glPopMatrix(); glPopMatrix();
} }
// TODO: paint histogram grid // paint histogram grid
if((m_displayHistogram || m_displayMaxHold || m_displayCurrent) && (m_displayGrid)) { if((m_displayHistogram || m_displayMaxHold || m_displayCurrent) && (m_displayGrid))
{
const ScaleEngine::TickList* tickList;
const ScaleEngine::Tick* tick;
tickList = &m_powerScale.getTickList();
#ifdef GL_DEPRECATED
glPushMatrix(); glPushMatrix();
glTranslatef(m_glHistogramRect.x(), m_glHistogramRect.y(), 0); glTranslatef(m_glHistogramRect.x(), m_glHistogramRect.y(), 0);
glScalef(m_glHistogramRect.width(), m_glHistogramRect.height(), 1); glScalef(m_glHistogramRect.width(), m_glHistogramRect.height(), 1);
glEnable(GL_BLEND); for (int i= 0; i < tickList->count(); i++)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); {
glLineWidth(1.0f);
glColor4f(1, 1, 1, m_displayGridIntensity / 100.0);
const ScaleEngine::TickList* tickList;
const ScaleEngine::Tick* tick;
tickList = &m_powerScale.getTickList();
#ifdef GL_DEPRECATED
for(int i= 0; i < tickList->count(); i++) {
tick = &(*tickList)[i]; tick = &(*tickList)[i];
if(tick->major) { if(tick->major)
if(tick->textSize > 0) { {
if(tick->textSize > 0)
{
float y = tick->pos / m_powerScale.getSize(); float y = tick->pos / m_powerScale.getSize();
glBegin(GL_LINE_LOOP); glBegin(GL_LINE_LOOP);
glVertex2f(0, 1-y); glVertex2f(0, 1-y);
@ -1362,14 +1361,35 @@ void GLSpectrum::paintGL()
} }
} }
} }
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glLineWidth(1.0f);
glColor4f(1, 1, 1, m_displayGridIntensity / 100.0);
glPopMatrix();
#else #else
for (int i= 0; i < tickList->count(); i++)
{
tick = &(*tickList)[i];
if(tick->major) {
if(tick->textSize > 0) {
float y = tick->pos / m_powerScale.getSize();
}
}
}
{ {
GLfloat q3[4*tickList->count()]; GLfloat q3[4*tickList->count()];
int effectiveTicks = 0; int effectiveTicks = 0;
for(int i= 0; i < tickList->count(); i++) {
for(int i= 0; i < tickList->count(); i++)
{
tick = &(*tickList)[i]; tick = &(*tickList)[i];
if(tick->major) { if(tick->major)
if(tick->textSize > 0) { {
if(tick->textSize > 0)
{
float y = tick->pos / m_powerScale.getSize(); float y = tick->pos / m_powerScale.getSize();
q3[4*effectiveTicks] = 0; q3[4*effectiveTicks] = 0;
q3[4*effectiveTicks+1] = 1-y; q3[4*effectiveTicks+1] = 1-y;
@ -1379,20 +1399,17 @@ void GLSpectrum::paintGL()
} }
} }
} }
#ifdef GL_ANDROID
glEnableVertexAttribArray(GL_VERTEX_ARRAY); QVector4D color(1.0f, 1.0f, 1.0f, (float) m_displayGridIntensity / 100.0f);
glVertexAttribPointer(GL_VERTEX_ARRAY, 2, GL_FLOAT, GL_FALSE, 0, q3); m_glShaderSimple.drawSegments(m_glHistogramBoxMatrix, color, q3, 2*effectiveTicks);
glDrawArrays(GL_LINES, 0, 2*effectiveTicks);
glDisableVertexAttribArray(GL_VERTEX_ARRAY);
#else
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, q3);
glDrawArrays(GL_LINES, 0, 2*effectiveTicks);
glDisableClientState(GL_VERTEX_ARRAY);
#endif
} }
#endif #endif
tickList = &m_frequencyScale.getTickList(); tickList = &m_frequencyScale.getTickList();
glPushMatrix();
glTranslatef(m_glHistogramRect.x(), m_glHistogramRect.y(), 0);
glScalef(m_glHistogramRect.width(), m_glHistogramRect.height(), 1);
#ifdef GL_DEPRECATED #ifdef GL_DEPRECATED
for(int i= 0; i < tickList->count(); i++) { for(int i= 0; i < tickList->count(); i++) {
tick = &(*tickList)[i]; tick = &(*tickList)[i];