Changeset 773


Ignore:
Timestamp:
Jun 11, 2011, 10:12:25 PM (8 years ago)
Author:
sam
Message:

debug: add vertex shader examples to the debug quad.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/debugquad.cpp

    r772 r773  
    110110                data->image[0][(j * 32 + i) * 4 + 1] = wb;
    111111                data->image[0][(j * 32 + i) * 4 + 2] = wb;
    112                 data->image[0][(j * 32 + i) * 4 + 3] = wb;
     112                data->image[0][(j * 32 + i) * 4 + 3] = 0xff;
    113113            }
    114114        /* Use GL_RGBA instead of 4 for the internal format (Android) */
     
    155155
    156156        /* Quad #6: apply texture in fragment shader */
     157        /* Quad #8: vertex buffer, apply texture in fragment shader */
    157158        data->shader[2] = Shader::Create(
    158159            "void main()"
     
    265266    glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, 0);
    266267
     268    glBindBuffer(GL_ARRAY_BUFFER, 0);
     269
    267270    glDrawArrays(GL_TRIANGLES, 0, 6);
    268271
     
    278281    glLoadIdentity();
    279282    glDisable(GL_TEXTURE_2D);
     283    glBindBuffer(GL_ARRAY_BUFFER, 0);
    280284    glUseProgram(0);
    281285
     
    344348        glVertex3f(data->aa.x, data->bb.y, 0.0f);
    345349    glEnd();
     350    glDisable(GL_TEXTURE_2D);
    346351
    347352    Advance();
     
    406411    glEnd();
    407412    glUseProgram(0);
     413    glDisable(GL_TEXTURE_2D);
     414
     415    Advance();
     416
     417    /* Quad #7: simple vertex buffer */
     418    GLfloat const v1[] = { data->aa.x, data->bb.y, 0.0f,
     419                           data->bb.x, data->bb.y, 0.0f,
     420                           data->bb.x, data->aa.y, 0.0f,
     421                           data->bb.x, data->aa.y, 0.0f,
     422                           data->aa.x, data->aa.y, 0.0f,
     423                           data->aa.x, data->bb.y, 0.0f };
     424    GLfloat const c1[] = { f1, f2, f3, f4, f2, f1, f3, f1, f4,
     425                           f3, f1, f4, f4, f3, f2, f1, f2, f3 };
     426
     427    glEnableClientState(GL_COLOR_ARRAY);
     428    glEnableClientState(GL_VERTEX_ARRAY);
     429
     430    glColorPointer(3, GL_FLOAT, 0, c1);
     431    glVertexPointer(3, GL_FLOAT, 0, v1);
     432    glDrawArrays(GL_TRIANGLES, 0, 6);
     433
     434    glDisableClientState(GL_VERTEX_ARRAY);
     435    glDisableClientState(GL_COLOR_ARRAY);
     436
     437    Advance();
     438
     439    /* Quad #8: vertex buffer, apply texture in fragment shader */
     440    data->shader[2]->Bind();
     441    GLfloat const v2[] = { data->aa.x, data->bb.y, 0.0f,
     442                           data->bb.x, data->bb.y, 0.0f,
     443                           data->bb.x, data->aa.y, 0.0f,
     444                           data->bb.x, data->aa.y, 0.0f,
     445                           data->aa.x, data->aa.y, 0.0f,
     446                           data->aa.x, data->bb.y, 0.0f };
     447    GLfloat const t2[] = { f1, f3, f3, f2, f2, f4, f2, f4, f4, f1, f1, f3 };
     448
     449    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
     450    glEnableClientState(GL_VERTEX_ARRAY);
     451
     452    glTexCoordPointer(2, GL_FLOAT, 0, t2);
     453    glVertexPointer(3, GL_FLOAT, 0, v2);
     454    glDrawArrays(GL_TRIANGLES, 0, 6);
     455
     456    glDisableClientState(GL_VERTEX_ARRAY);
     457    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    408458
    409459    Advance();
Note: See TracChangeset for help on using the changeset viewer.