mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-10-31 13:00:26 -04:00 
			
		
		
		
	OpenGL modernization: draw waterfall grid frequency lines the new way
This commit is contained in:
		
							parent
							
								
									6c48fbb6ac
								
							
						
					
					
						commit
						5bc899f9c6
					
				| @ -549,7 +549,8 @@ void GLSpectrum::paintGL() | |||||||
| 	glClear(GL_COLOR_BUFFER_BIT); | 	glClear(GL_COLOR_BUFFER_BIT); | ||||||
| 
 | 
 | ||||||
| 	// paint waterfall
 | 	// paint waterfall
 | ||||||
| 	if(m_displayWaterfall) { | 	if (m_displayWaterfall) | ||||||
|  | 	{ | ||||||
| 		glPushMatrix(); | 		glPushMatrix(); | ||||||
| 		glTranslatef(m_glWaterfallRect.x(), m_glWaterfallRect.y(), 0); | 		glTranslatef(m_glWaterfallRect.x(), m_glWaterfallRect.y(), 0); | ||||||
| 		glScalef(m_glWaterfallRect.width(), m_glWaterfallRect.height(), 1); | 		glScalef(m_glWaterfallRect.width(), m_glWaterfallRect.height(), 1); | ||||||
| @ -559,14 +560,18 @@ void GLSpectrum::paintGL() | |||||||
| 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); | ||||||
| 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); | 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); | ||||||
| 		glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); | 		glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); | ||||||
|  | 
 | ||||||
| 		for(int i = 0; i < m_waterfallBufferPos; i++) { | 		for(int i = 0; i < m_waterfallBufferPos; i++) { | ||||||
| 			glTexSubImage2D(GL_TEXTURE_2D, 0, 0, m_waterfallTexturePos, m_fftSize, 1, GL_RGBA, GL_UNSIGNED_BYTE, m_waterfallBuffer->scanLine(i)); | 			glTexSubImage2D(GL_TEXTURE_2D, 0, 0, m_waterfallTexturePos, m_fftSize, 1, GL_RGBA, GL_UNSIGNED_BYTE, m_waterfallBuffer->scanLine(i)); | ||||||
| 			m_waterfallTexturePos = (m_waterfallTexturePos + 1) % m_waterfallTextureHeight; | 			m_waterfallTexturePos = (m_waterfallTexturePos + 1) % m_waterfallTextureHeight; | ||||||
| 		} | 		} | ||||||
|  | 
 | ||||||
| 		m_waterfallBufferPos = 0; | 		m_waterfallBufferPos = 0; | ||||||
|  | 
 | ||||||
| 		float prop_y = m_waterfallTexturePos / (m_waterfallTextureHeight - 1.0); | 		float prop_y = m_waterfallTexturePos / (m_waterfallTextureHeight - 1.0); | ||||||
| 		float off = 1.0 / (m_waterfallTextureHeight - 1.0); | 		float off = 1.0 / (m_waterfallTextureHeight - 1.0); | ||||||
| 		glEnable(GL_TEXTURE_2D); | 		glEnable(GL_TEXTURE_2D); | ||||||
|  | 
 | ||||||
| #ifdef GL_DEPRECATED | #ifdef GL_DEPRECATED | ||||||
| 		glBegin(GL_QUADS); | 		glBegin(GL_QUADS); | ||||||
| 		glTexCoord2f(0, prop_y + 1 - off); | 		glTexCoord2f(0, prop_y + 1 - off); | ||||||
| @ -613,11 +618,20 @@ void GLSpectrum::paintGL() | |||||||
| 		} | 		} | ||||||
| #endif | #endif | ||||||
| 		glDisable(GL_TEXTURE_2D); | 		glDisable(GL_TEXTURE_2D); | ||||||
|  | 		glPopMatrix(); | ||||||
|  | 
 | ||||||
|  | 		glPushMatrix(); | ||||||
|  | 		glTranslatef(m_glWaterfallRect.x(), m_glWaterfallRect.y(), 0); | ||||||
|  | 		glScalef(m_glWaterfallRect.width(), m_glWaterfallRect.height(), 1); | ||||||
|  | 
 | ||||||
| 		// paint channels
 | 		// paint channels
 | ||||||
| 		if(m_mouseInside) { | 		if (m_mouseInside) | ||||||
| 			for(int i = 0; i < m_channelMarkerStates.size(); ++i) { | 		{ | ||||||
|  | 			for (int i = 0; i < m_channelMarkerStates.size(); ++i) | ||||||
|  | 			{ | ||||||
| 				ChannelMarkerState* dv = m_channelMarkerStates[i]; | 				ChannelMarkerState* dv = m_channelMarkerStates[i]; | ||||||
| 				if(dv->m_channelMarker->getVisible()) { | 				if (dv->m_channelMarker->getVisible()) | ||||||
|  | 				{ | ||||||
| 					glPushMatrix(); | 					glPushMatrix(); | ||||||
| 					glTranslatef(dv->m_glRect.x(), dv->m_glRect.y(), 0); | 					glTranslatef(dv->m_glRect.x(), dv->m_glRect.y(), 0); | ||||||
| 					glScalef(dv->m_glRect.width(), dv->m_glRect.height(), 1); | 					glScalef(dv->m_glRect.width(), dv->m_glRect.height(), 1); | ||||||
| @ -659,6 +673,12 @@ void GLSpectrum::paintGL() | |||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		glPopMatrix(); | ||||||
|  | 
 | ||||||
|  | 		glPushMatrix(); | ||||||
|  | 		glTranslatef(m_glWaterfallRect.x(), m_glWaterfallRect.y(), 0); | ||||||
|  | 		glScalef(m_glWaterfallRect.width(), m_glWaterfallRect.height(), 1); | ||||||
|  | 
 | ||||||
| 		// draw rect around
 | 		// draw rect around
 | ||||||
| 		glEnable(GL_BLEND); | 		glEnable(GL_BLEND); | ||||||
| 		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | 		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | ||||||
| @ -699,11 +719,14 @@ void GLSpectrum::paintGL() | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// paint histogram
 | 	// paint histogram
 | ||||||
| 	if(m_displayHistogram || m_displayMaxHold || m_displayCurrent) { | 	if(m_displayHistogram || m_displayMaxHold || m_displayCurrent) | ||||||
|  | 	{ | ||||||
| 		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); | ||||||
| 		if(m_displayHistogram) { | 
 | ||||||
|  | 		if(m_displayHistogram) | ||||||
|  | 		{ | ||||||
| 			// import new lines into the texture
 | 			// import new lines into the texture
 | ||||||
| 			quint32* pix; | 			quint32* pix; | ||||||
| 			quint8* bs = m_histogram; | 			quint8* bs = m_histogram; | ||||||
| @ -773,12 +796,21 @@ void GLSpectrum::paintGL() | |||||||
| 			glDisable(GL_TEXTURE_2D); | 			glDisable(GL_TEXTURE_2D); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		glPopMatrix(); | ||||||
|  | 
 | ||||||
|  | 		glPushMatrix(); | ||||||
|  | 		glTranslatef(m_glHistogramRect.x(), m_glHistogramRect.y(), 0); | ||||||
|  | 		glScalef(m_glHistogramRect.width(), m_glHistogramRect.height(), 1); | ||||||
|  | 
 | ||||||
| 		// paint channels
 | 		// paint channels
 | ||||||
| 		if(m_mouseInside) { | 		if(m_mouseInside) | ||||||
|  | 		{ | ||||||
| 			// Effective BW overlays
 | 			// Effective BW overlays
 | ||||||
| 			for(int i = 0; i < m_channelMarkerStates.size(); ++i) { | 			for(int i = 0; i < m_channelMarkerStates.size(); ++i) | ||||||
|  | 			{ | ||||||
| 				ChannelMarkerState* dv = m_channelMarkerStates[i]; | 				ChannelMarkerState* dv = m_channelMarkerStates[i]; | ||||||
| 				if(dv->m_channelMarker->getVisible()) { | 				if(dv->m_channelMarker->getVisible()) | ||||||
|  | 				{ | ||||||
| 					glPushMatrix(); | 					glPushMatrix(); | ||||||
| 					glTranslatef(dv->m_glRect.x(), dv->m_glRect.y(), 0); | 					glTranslatef(dv->m_glRect.x(), dv->m_glRect.y(), 0); | ||||||
| 					glScalef(dv->m_glRect.width(), dv->m_glRect.height(), 1); | 					glScalef(dv->m_glRect.width(), dv->m_glRect.height(), 1); | ||||||
| @ -819,9 +851,11 @@ void GLSpectrum::paintGL() | |||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// Center line overlays based on DSB enveloppe
 | 			// Center line overlays based on DSB enveloppe
 | ||||||
| 			for(int i = 0; i < m_channelMarkerStates.size(); ++i) { | 			for(int i = 0; i < m_channelMarkerStates.size(); ++i) | ||||||
|  | 			{ | ||||||
| 				ChannelMarkerState* dv = m_channelMarkerStates[i]; | 				ChannelMarkerState* dv = m_channelMarkerStates[i]; | ||||||
| 				if(dv->m_channelMarker->getVisible()) { | 				if(dv->m_channelMarker->getVisible()) | ||||||
|  | 				{ | ||||||
| 					glPushMatrix(); | 					glPushMatrix(); | ||||||
| 					glTranslatef(dv->m_glRectDsb.x(), dv->m_glRectDsb.y(), 0); | 					glTranslatef(dv->m_glRectDsb.x(), dv->m_glRectDsb.y(), 0); | ||||||
| 					glScalef(dv->m_glRectDsb.width(), dv->m_glRectDsb.height(), 1); | 					glScalef(dv->m_glRectDsb.width(), dv->m_glRectDsb.height(), 1); | ||||||
| @ -891,7 +925,8 @@ void GLSpectrum::paintGL() | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// paint left scales (time and power)
 | 	// paint left scales (time and power)
 | ||||||
| 	if(m_displayWaterfall || m_displayMaxHold || m_displayCurrent || m_displayHistogram ) { | 	if (m_displayWaterfall || m_displayMaxHold || m_displayCurrent || m_displayHistogram ) | ||||||
|  | 	{ | ||||||
| 		glPushMatrix(); | 		glPushMatrix(); | ||||||
| 		glTranslatef(m_glLeftScaleRect.x(), m_glLeftScaleRect.y(), 0); | 		glTranslatef(m_glLeftScaleRect.x(), m_glLeftScaleRect.y(), 0); | ||||||
| 		glScalef(m_glLeftScaleRect.width(), m_glLeftScaleRect.height(), 1); | 		glScalef(m_glLeftScaleRect.width(), m_glLeftScaleRect.height(), 1); | ||||||
| @ -952,7 +987,8 @@ 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 ) | ||||||
|  | 	{ | ||||||
| 		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); | ||||||
| @ -1019,9 +1055,11 @@ void GLSpectrum::paintGL() | |||||||
| 		glScalef(m_glWaterfallRect.width(), m_glFrequencyScaleRect.height(), 1); | 		glScalef(m_glWaterfallRect.width(), m_glFrequencyScaleRect.height(), 1); | ||||||
| 
 | 
 | ||||||
| 		// Effective bandwidth overlays
 | 		// Effective bandwidth overlays
 | ||||||
| 		for(int i = 0; i < m_channelMarkerStates.size(); ++i) { | 		for(int i = 0; i < m_channelMarkerStates.size(); ++i) | ||||||
|  | 		{ | ||||||
| 			ChannelMarkerState* dv = m_channelMarkerStates[i]; | 			ChannelMarkerState* dv = m_channelMarkerStates[i]; | ||||||
| 			if(dv->m_channelMarker->getVisible()) { | 			if(dv->m_channelMarker->getVisible()) | ||||||
|  | 			{ | ||||||
| 				glPushMatrix(); | 				glPushMatrix(); | ||||||
| 				glTranslatef(dv->m_glRect.x(), dv->m_glRect.y(), 0); | 				glTranslatef(dv->m_glRect.x(), dv->m_glRect.y(), 0); | ||||||
| 				glScalef(dv->m_glRect.width(), dv->m_glRect.height(), 1); | 				glScalef(dv->m_glRect.width(), dv->m_glRect.height(), 1); | ||||||
| @ -1062,10 +1100,13 @@ void GLSpectrum::paintGL() | |||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		// Center frequency mark on highlighted channels based on DSB enveloppe
 | 		// Center frequency mark on highlighted channels based on DSB enveloppe
 | ||||||
| 		for(int i = 0; i < m_channelMarkerStates.size(); ++i) { | 		for(int i = 0; i < m_channelMarkerStates.size(); ++i) | ||||||
|  | 		{ | ||||||
| 			ChannelMarkerState* dv = m_channelMarkerStates[i]; | 			ChannelMarkerState* dv = m_channelMarkerStates[i]; | ||||||
| 			if(dv->m_channelMarker->getVisible()) { | 			if(dv->m_channelMarker->getVisible()) | ||||||
| 				if (dv->m_channelMarker->getHighlighted()) { | 			{ | ||||||
|  | 				if (dv->m_channelMarker->getHighlighted()) | ||||||
|  | 				{ | ||||||
| 					glPushMatrix(); | 					glPushMatrix(); | ||||||
| 					glTranslatef(dv->m_glRectDsb.x(), dv->m_glRectDsb.y(), 0); | 					glTranslatef(dv->m_glRectDsb.x(), dv->m_glRectDsb.y(), 0); | ||||||
| 					glScalef(dv->m_glRectDsb.width(), dv->m_glRectDsb.height(), 1); | 					glScalef(dv->m_glRectDsb.width(), dv->m_glRectDsb.height(), 1); | ||||||
| @ -1103,10 +1144,13 @@ void GLSpectrum::paintGL() | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// paint max hold lines on top of histogram
 | 	// paint max hold lines on top of histogram
 | ||||||
| 	if(m_displayMaxHold) { | 	if (m_displayMaxHold) | ||||||
| 		if(m_maxHold.size() < (uint)m_fftSize) | 	{ | ||||||
|  | 		if (m_maxHold.size() < (uint)m_fftSize) | ||||||
| 			m_maxHold.resize(m_fftSize); | 			m_maxHold.resize(m_fftSize); | ||||||
| 		for(int i = 0; i < m_fftSize; i++) { | 
 | ||||||
|  | 		for(int i = 0; i < m_fftSize; i++) | ||||||
|  | 		{ | ||||||
| 			int j; | 			int j; | ||||||
| 			quint8* bs = m_histogram + i * 100; | 			quint8* bs = m_histogram + i * 100; | ||||||
| 			for(j = 99; j > 1; j--) { | 			for(j = 99; j > 1; j--) { | ||||||
| @ -1228,7 +1272,13 @@ void GLSpectrum::paintGL() | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// paint waterfall grid
 | 	// paint waterfall grid
 | ||||||
| 	if(m_displayWaterfall && m_displayGrid) { | 	if(m_displayWaterfall && m_displayGrid) | ||||||
|  | 	{ | ||||||
|  | 		const ScaleEngine::TickList* tickList; | ||||||
|  | 		const ScaleEngine::Tick* tick; | ||||||
|  | 		tickList = &m_timeScale.getTickList(); | ||||||
|  | 
 | ||||||
|  | #ifdef GL_DEPRECATED | ||||||
| 		glPushMatrix(); | 		glPushMatrix(); | ||||||
| 		glTranslatef(m_glWaterfallRect.x(), m_glWaterfallRect.y(), 0); | 		glTranslatef(m_glWaterfallRect.x(), m_glWaterfallRect.y(), 0); | ||||||
| 		glScalef(m_glWaterfallRect.width(), m_glWaterfallRect.height(), 1); | 		glScalef(m_glWaterfallRect.width(), m_glWaterfallRect.height(), 1); | ||||||
| @ -1236,14 +1286,8 @@ 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); | ||||||
| 		glLineWidth(1.0f); | 		glLineWidth(1.0f); | ||||||
| 		//glColor4f(1, 1, 1, 0.05f);
 |  | ||||||
| 		glColor4f(1, 1, 1, m_displayGridIntensity / 100.0); | 		glColor4f(1, 1, 1, m_displayGridIntensity / 100.0); | ||||||
| 
 | 
 | ||||||
| 		const ScaleEngine::TickList* tickList; |  | ||||||
| 		const ScaleEngine::Tick* tick; |  | ||||||
| 
 |  | ||||||
| 		tickList = &m_timeScale.getTickList(); |  | ||||||
| #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]; | ||||||
| 			if(tick->major) { | 			if(tick->major) { | ||||||
| @ -1256,14 +1300,20 @@ void GLSpectrum::paintGL() | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | 
 | ||||||
|  | 		glPopMatrix(); | ||||||
| #else | #else | ||||||
| 		{ | 		{ | ||||||
| 			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_timeScale.getSize(); | 						float y = tick->pos / m_timeScale.getSize(); | ||||||
| 						q3[4*effectiveTicks] = 0; | 						q3[4*effectiveTicks] = 0; | ||||||
| 						q3[4*effectiveTicks+1] = y; | 						q3[4*effectiveTicks+1] = y; | ||||||
| @ -1273,21 +1323,31 @@ void GLSpectrum::paintGL() | |||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| #ifdef GL_ANDROID | 
 | ||||||
| 			glEnableVertexAttribArray(GL_VERTEX_ARRAY); | 			glPushMatrix(); | ||||||
| 			glVertexAttribPointer(GL_VERTEX_ARRAY, 2, GL_FLOAT, GL_FALSE, 0, q3); | 			glTranslatef(m_glWaterfallRect.x(), m_glWaterfallRect.y(), 0); | ||||||
| 			glDrawArrays(GL_LINES, 0, 2*effectiveTicks); | 			glScalef(m_glWaterfallRect.width(), m_glWaterfallRect.height(), 1); | ||||||
| 			glDisableVertexAttribArray(GL_VERTEX_ARRAY); | 
 | ||||||
| #else | 			glEnable(GL_BLEND); | ||||||
|  | 			glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | ||||||
|  | 			glLineWidth(1.0f); | ||||||
|  | 			glColor4f(1, 1, 1, m_displayGridIntensity / 100.0); | ||||||
|  | 
 | ||||||
| 			glEnableClientState(GL_VERTEX_ARRAY); | 			glEnableClientState(GL_VERTEX_ARRAY); | ||||||
| 			glVertexPointer(2, GL_FLOAT, 0, q3); | 			glVertexPointer(2, GL_FLOAT, 0, q3); | ||||||
| 			glDrawArrays(GL_LINES, 0, 2*effectiveTicks); | 			glDrawArrays(GL_LINES, 0, 2*effectiveTicks); | ||||||
| 			glDisableClientState(GL_VERTEX_ARRAY); | 			glDisableClientState(GL_VERTEX_ARRAY); | ||||||
| #endif | 
 | ||||||
|  | 			glPopMatrix(); | ||||||
| 		} | 		} | ||||||
| #endif | #endif | ||||||
| 		tickList = &m_frequencyScale.getTickList(); | 		tickList = &m_frequencyScale.getTickList(); | ||||||
|  | 
 | ||||||
| #ifdef GL_DEPRECATED | #ifdef GL_DEPRECATED | ||||||
|  | 		glPushMatrix(); | ||||||
|  | 		glTranslatef(m_glWaterfallRect.x(), m_glWaterfallRect.y(), 0); | ||||||
|  | 		glScalef(m_glWaterfallRect.width(), m_glWaterfallRect.height(), 1); | ||||||
|  | 
 | ||||||
| 		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) { | ||||||
| @ -1300,14 +1360,20 @@ void GLSpectrum::paintGL() | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | 
 | ||||||
|  | 		glPopMatrix(); | ||||||
| #else | #else | ||||||
| 		{ | 		{ | ||||||
| 			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 x = tick->pos / m_frequencyScale.getSize(); | 						float x = tick->pos / m_frequencyScale.getSize(); | ||||||
| 						q3[4*effectiveTicks] = x; | 						q3[4*effectiveTicks] = x; | ||||||
| 						q3[4*effectiveTicks+1] = 0; | 						q3[4*effectiveTicks+1] = 0; | ||||||
| @ -1317,21 +1383,22 @@ 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_glWaterfallBoxMatrix, color, q3, 2*effectiveTicks); | ||||||
| 			glDrawArrays(GL_LINES, 0, 2*effectiveTicks); | 
 | ||||||
| 			glDisableVertexAttribArray(GL_VERTEX_ARRAY); | //			glPushMatrix();
 | ||||||
| #else | //			glTranslatef(m_glWaterfallRect.x(), m_glWaterfallRect.y(), 0);
 | ||||||
| 			glEnableClientState(GL_VERTEX_ARRAY); | //			glScalef(m_glWaterfallRect.width(), m_glWaterfallRect.height(), 1);
 | ||||||
| 			glVertexPointer(2, GL_FLOAT, 0, q3); | //
 | ||||||
| 			glDrawArrays(GL_LINES, 0, 2*effectiveTicks); | //			glEnableClientState(GL_VERTEX_ARRAY);
 | ||||||
| 			glDisableClientState(GL_VERTEX_ARRAY); | //			glVertexPointer(2, GL_FLOAT, 0, q3);
 | ||||||
| #endif | //			glDrawArrays(GL_LINES, 0, 2*effectiveTicks);
 | ||||||
|  | //			glDisableClientState(GL_VERTEX_ARRAY);
 | ||||||
|  | //
 | ||||||
|  | //			glPopMatrix();
 | ||||||
| 		} | 		} | ||||||
| #endif | #endif | ||||||
| 
 |  | ||||||
| 		glPopMatrix(); |  | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// paint histogram grid
 | 	// paint histogram grid
 | ||||||
| @ -1369,16 +1436,6 @@ void GLSpectrum::paintGL() | |||||||
| 
 | 
 | ||||||
| 		glPopMatrix(); | 		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; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user