mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-17 13:51:47 -05:00
GLScope: modulo for trace color repetition
This commit is contained in:
parent
db3e75154c
commit
8126cbeb5c
@ -52,6 +52,7 @@ GLScope::GLScope(QWidget *parent) : QGLWidget(parent),
|
||||
m_timeOfsProMill(0),
|
||||
m_triggerPre(0),
|
||||
m_traceSize(0),
|
||||
m_traceModulo(0),
|
||||
m_timeBase(1),
|
||||
m_timeOffset(0),
|
||||
m_focusedTraceIndex(0),
|
||||
@ -891,7 +892,7 @@ void GLScope::setTraceSize(int traceSize, bool emitSignal)
|
||||
m_mutex.lock();
|
||||
m_traceSize = traceSize;
|
||||
m_q3Colors.allocate(3*traceSize);
|
||||
setColorPalette(traceSize, m_q3Colors.m_array);
|
||||
setColorPalette(traceSize, m_traceModulo, m_q3Colors.m_array);
|
||||
m_configChanged = true;
|
||||
m_mutex.unlock();
|
||||
update();
|
||||
@ -1972,11 +1973,12 @@ void GLScope::drawCircle(float cx, float cy, float r, int num_segments, bool dot
|
||||
}
|
||||
|
||||
// https://stackoverflow.com/questions/19452530/how-to-render-a-rainbow-spectrum
|
||||
void GLScope::setColorPalette(int nbVertices, GLfloat *colors)
|
||||
void GLScope::setColorPalette(int nbVertices, int modulo, GLfloat *colors)
|
||||
{
|
||||
for (int v = 0; v < nbVertices; v++)
|
||||
{
|
||||
float x = 0.8f*(((float) v)/nbVertices);
|
||||
int ci = modulo < 2 ? v : v % modulo;
|
||||
float x = 0.8f*(((float) ci)/modulo);
|
||||
QColor c = QColor::fromHslF(x, 0.8f, 0.6f);
|
||||
colors[3*v] = c.redF();
|
||||
colors[3*v+1] = c.greenF();
|
||||
|
@ -81,6 +81,7 @@ public:
|
||||
void setDisplayXYPoints(bool value) { m_displayXYPoints = value; }
|
||||
void setDisplayXYPolarGrid(bool value) { m_displayPolGrid = value; }
|
||||
const QAtomicInt& getProcessingTraceIndex() const { return m_processingTraceIndex; }
|
||||
void setTraceModulo(int modulo) { m_traceModulo = modulo; }
|
||||
|
||||
signals:
|
||||
void sampleRateChanged(int);
|
||||
@ -105,6 +106,7 @@ private:
|
||||
int m_timeOfsProMill;
|
||||
uint32_t m_triggerPre;
|
||||
int m_traceSize;
|
||||
int m_traceModulo; //!< ineffective if <2
|
||||
int m_timeBase;
|
||||
int m_timeOffset;
|
||||
uint32_t m_focusedTraceIndex;
|
||||
@ -189,7 +191,7 @@ private:
|
||||
void drawRectGrid2();
|
||||
void drawPolarGrid2();
|
||||
static void drawCircle(float cx, float cy, float r, int num_segments, bool dotted, GLfloat *vertices);
|
||||
static void setColorPalette(int nbVertices, GLfloat *colors);
|
||||
static void setColorPalette(int nbVertices, int modulo, GLfloat *colors);
|
||||
|
||||
protected slots:
|
||||
void cleanup();
|
||||
|
Loading…
Reference in New Issue
Block a user