Hi. I have a problem with drawing outside paintGL():
void SQ_GLWidget::slotShowImage(int)
{
int z;
QCString cstr;
cstr.resize(sdev->bytesAvailable());
sdev->readBlock(cstr.data(), sdev->bytesAvailable());
QString str = cstr;
sdev->flush();
int kk = str.toInt();
for(z = parts->tilesx * kk;z < parts->tilesx * (kk+1);z++)
{
glBindTexture(GL_TEXTURE_2D, parts->m_parts[z].tex);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, 4, SQ_DIV, SQ_DIV, 0, GL_RGBA, GL_UNSIGNED_BYTE, parts->m_parts[z].part);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, parts->m_parts[z].tex);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex2f(parts->m_parts[z].x1, parts->m_parts[z].y1);
glTexCoord2f(1.0f, 0.0f); glVertex2f(parts->m_parts[z].x2, parts->m_parts[z].y1);
glTexCoord2f(1.0f, 1.0f); glVertex2f(parts->m_parts[z].x2, parts->m_parts[z].y2);
glTexCoord2f(0.0f, 1.0f); glVertex2f(parts->m_parts[z].x1, parts->m_parts[z].y2);
glEnd();
glDisable(GL_TEXTURE_2D);
}
}
Result: Texture is invisible ! The same code in paintGL() works fine.