All pastes #220972 Raw Edit

Something

public text v1 · immutable
#220972 ·published 2006-10-25 13:00 UTC
rendered paste body
void GLSingleView::effectBlend()
{
    if (m_i > 100) {
        paintTexture();
        m_effectRunning = false;
        m_tmout = -1;
        return;
    }

    int a = (m_curr == 0) ? 1 : 0;
    int b =  m_curr;

    TexItem& ta = m_texItem[a];
    TexItem& tb = m_texItem[b];

    glMatrixMode(GL_TEXTURE);
    glLoadIdentity();
    glRotatef(ta.angle, 0.0, 0.0, 1.0);

    glBindTexture(GL_TEXTURE_2D, ta.tex);
    glBegin(GL_QUADS);
    {
        glColor4f(1.0, 1.0, 1.0, 1.0);
        glTexCoord2f(0, 0);
        glVertex3f(-ta.cx, -ta.cy, 0);

        glTexCoord2f(1, 0);
        glVertex3f(ta.cx, -ta.cy, 0);

        glTexCoord2f(1, 1);
        glVertex3f(ta.cx, ta.cy, 0);

        glTexCoord2f(0, 1);
        glVertex3f(-ta.cx, ta.cy, 0);
    }
    glEnd();

    glBegin(GL_QUADS);
    {
        glColor4f(0.0, 0.0, 0.0, 1.0/(100.0)*(float)m_i);
        glVertex3f(-1, -1, 0);
        glVertex3f(1, -1, 0);
        glVertex3f(1, 1, 0);
        glVertex3f(-1, 1, 0);
    }
    glEnd();

    glMatrixMode(GL_TEXTURE);
    glLoadIdentity();
    glRotatef(tb.angle, 0.0, 0.0, 1.0);

    glBindTexture(GL_TEXTURE_2D, tb.tex);
    glBegin(GL_QUADS);
    {
        glColor4f(1.0, 1.0, 1.0, 1.0/(100.0)*(float)m_i);
        glTexCoord2f(0, 0);
        glVertex3f(-tb.cx, -tb.cy, 0);

        glTexCoord2f(1, 0);
        glVertex3f(tb.cx, -tb.cy, 0);

        glTexCoord2f(1, 1);
        glVertex3f(tb.cx, tb.cy, 0);

        glTexCoord2f(0, 1);
        glVertex3f(-tb.cx, tb.cy, 0);
    }
    glEnd();

    m_i++;
}