diff --git a/plugins/channelrx/demodatv/glshaderarray.cpp b/plugins/channelrx/demodatv/glshaderarray.cpp index f04ce9947..60f8f5d7f 100644 --- a/plugins/channelrx/demodatv/glshaderarray.cpp +++ b/plugins/channelrx/demodatv/glshaderarray.cpp @@ -19,32 +19,34 @@ const QString GLShaderArray::m_strVertexShaderSourceArray = QString( "uniform highp mat4 uMatrix;\n" - "attribute highp vec4 vertex;\n" - "attribute highp vec2 texCoord;\n" - "varying mediump vec2 texCoordVar;\n" - "void main() {\n" - " gl_Position = uMatrix * vertex;\n" - " texCoordVar = texCoord;\n" - "}\n" - ); + "attribute highp vec4 vertex;\n" + "attribute highp vec2 texCoord;\n" + "varying mediump vec2 texCoordVar;\n" + "void main() {\n" + " gl_Position = uMatrix * vertex;\n" + " texCoordVar = texCoord;\n" + "}\n"); const QString GLShaderArray::m_strFragmentShaderSourceColored = QString( "uniform lowp sampler2D uTexture;\n" - "varying mediump vec2 texCoordVar;\n" - "void main() {\n" - " gl_FragColor = texture2D(uTexture, texCoordVar);\n" - "}\n" - ); + "varying mediump vec2 texCoordVar;\n" + "void main() {\n" + " gl_FragColor = texture2D(uTexture, texCoordVar);\n" + "}\n"); GLShaderArray::GLShaderArray() { - m_objProgram=NULL; - m_objImage = NULL; - m_objTexture = NULL; - m_intCols=0; - m_intRows=0; - m_blnInitialized=false; - m_objCurrentRow=NULL; + m_objProgram = 0; + m_objImage = 0; + m_objTexture = 0; + m_intCols = 0; + m_intRows = 0; + m_blnInitialized = false; + m_objCurrentRow = 0; + + m_objTextureLoc = 0; + m_objColorLoc = 0; + m_objMatrixLoc = 0; } GLShaderArray::~GLShaderArray() @@ -56,32 +58,38 @@ void GLShaderArray::InitializeGL(int intCols, int intRows) { QMatrix4x4 objQMatrix; - m_blnInitialized=false; + m_blnInitialized = false; - m_intCols=0; - m_intRows=0; + m_intCols = 0; + m_intRows = 0; - m_objCurrentRow=NULL; + m_objCurrentRow = 0; - if(m_objProgram==NULL) + if (m_objProgram == 0) { m_objProgram = new QOpenGLShaderProgram(); - if (!m_objProgram->addShaderFromSourceCode(QOpenGLShader::Vertex, m_strVertexShaderSourceArray)) + if (!m_objProgram->addShaderFromSourceCode(QOpenGLShader::Vertex, + m_strVertexShaderSourceArray)) { - qDebug() << "GLShaderArray::initializeGL: error in vertex shader: " << m_objProgram->log(); + qDebug() << "GLShaderArray::initializeGL: error in vertex shader: " + << m_objProgram->log(); } - if (!m_objProgram->addShaderFromSourceCode(QOpenGLShader::Fragment, m_strFragmentShaderSourceColored)) + if (!m_objProgram->addShaderFromSourceCode(QOpenGLShader::Fragment, + m_strFragmentShaderSourceColored)) { - qDebug() << "GLShaderArray::initializeGL: error in fragment shader: " << m_objProgram->log(); + qDebug() + << "GLShaderArray::initializeGL: error in fragment shader: " + << m_objProgram->log(); } m_objProgram->bindAttributeLocation("vertex", 0); if (!m_objProgram->link()) { - qDebug() << "GLShaderArray::initializeGL: error linking shader: " << m_objProgram->log(); + qDebug() << "GLShaderArray::initializeGL: error linking shader: " + << m_objProgram->log(); } m_objProgram->bind(); @@ -94,15 +102,15 @@ void GLShaderArray::InitializeGL(int intCols, int intRows) m_objTextureLoc = m_objProgram->uniformLocation("uTexture"); m_objColorLoc = m_objProgram->uniformLocation("uColour"); - if(m_objTexture!=NULL) + if (m_objTexture != 0) { delete m_objTexture; - m_objTexture=NULL; + m_objTexture = 0; } //Image container - m_objImage = new QImage(intCols,intRows,QImage::Format_RGBA8888); - m_objImage->fill(QColor(0,0,0)); + m_objImage = new QImage(intCols, intRows, QImage::Format_RGBA8888); + m_objImage->fill(QColor(0, 0, 0)); m_objTexture = new QOpenGLTexture(*m_objImage); m_objTexture->setMinificationFilter(QOpenGLTexture::Linear); @@ -112,83 +120,72 @@ void GLShaderArray::InitializeGL(int intCols, int intRows) m_intCols = intCols; m_intRows = intRows; - m_blnInitialized=true; + m_blnInitialized = true; } QRgb * GLShaderArray::GetRowBuffer(int intRow) { - if(m_blnInitialized==false) + if (m_blnInitialized == false) { - return NULL; + return 0; } - if(m_objImage==NULL) + if (m_objImage == 0) { - return NULL; + return 0; } - if(intRow>m_intRows) + if (intRow > m_intRows) { - return NULL; + return 0; } - return (QRgb *)m_objImage->scanLine(intRow); + return (QRgb *) m_objImage->scanLine(intRow); } - void GLShaderArray::RenderPixels(unsigned char *chrData) -{ +{ QOpenGLFunctions *ptrF; int intI; int intJ; - int intNbVertices=4; + int intNbVertices = 4; QMatrix4x4 objQMatrix; GLfloat arrVertices[] = - { - -1.0f, -1.0f, - -1.0f, 1.0f, - 1.0f, 1.0f, - 1.0f, -1.0f - }; + { -1.0f, -1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f }; GLfloat arrTextureCoords[] = - { - 0.0f, 1.0f, - 0.0f, 0.0f, - 1.0f, 0.0f, - 1.0f, 1.0f - }; + { 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f }; QRgb *ptrLine; int intVal; - if(m_blnInitialized==false) + if (m_blnInitialized == false) { return; } - if(m_objImage==NULL) + if (m_objImage == 0) { - return ; + return; } - if(chrData!=NULL) + if (chrData != 0) { - for(intJ=0; intJscanLine(intJ); + ptrLine = (QRgb *) m_objImage->scanLine(intJ); - for(intI=0; intIbind(); - ptrF->glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_intCols, m_intRows, GL_RGBA, GL_UNSIGNED_BYTE, m_objImage->bits()); + ptrF->glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, m_intCols, m_intRows, GL_RGBA, + GL_UNSIGNED_BYTE, m_objImage->bits()); ptrF->glEnableVertexAttribArray(0); // vertex ptrF->glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, arrVertices); @@ -225,7 +223,7 @@ void GLShaderArray::RenderPixels(unsigned char *chrData) void GLShaderArray::ResetPixels() { - if(m_objImage!=NULL) + if (m_objImage != 0) { m_objImage->fill(0); } @@ -233,71 +231,65 @@ void GLShaderArray::ResetPixels() void GLShaderArray::Cleanup() { - m_blnInitialized=false; + m_blnInitialized = false; - m_intCols=0; - m_intRows=0; + m_intCols = 0; + m_intRows = 0; - m_objCurrentRow=NULL; + m_objCurrentRow = 0; if (m_objProgram) { delete m_objProgram; - m_objProgram = NULL; + m_objProgram = 0; } - if(m_objTexture!=NULL) + if (m_objTexture != 0) { delete m_objTexture; - m_objTexture=NULL; + m_objTexture = 0; } - if (m_objImage!=NULL) + if (m_objImage != 0) { delete m_objImage; - m_objImage = NULL; + m_objImage = 0; } } - bool GLShaderArray::SelectRow(int intLine) { - bool blnRslt=false; + bool blnRslt = false; - if(m_blnInitialized) + if (m_blnInitialized) { - if((intLine=0)) + if ((intLine < m_intRows) && (intLine >= 0)) { - m_objCurrentRow=(QRgb *)m_objImage->scanLine(intLine); - blnRslt=true; + m_objCurrentRow = (QRgb *) m_objImage->scanLine(intLine); + blnRslt = true; } else { - m_objCurrentRow=NULL; + m_objCurrentRow = 0; } } return blnRslt; } -bool GLShaderArray::SetDataColor(int intCol,QRgb objColor) +bool GLShaderArray::SetDataColor(int intCol, QRgb objColor) { - bool blnRslt=false; + bool blnRslt = false; - if(m_blnInitialized) + if (m_blnInitialized) { - if((intCol=0) - &&(m_objCurrentRow!=NULL)) + if ((intCol < m_intCols) && (intCol >= 0) && (m_objCurrentRow != 0)) { - m_objCurrentRow[intCol]=objColor; - blnRslt=true; + m_objCurrentRow[intCol] = objColor; + blnRslt = true; } } return blnRslt; - } -