Changeset 705


Ignore:
Timestamp:
Feb 28, 2011, 3:26:30 AM (9 years ago)
Author:
sam
Message:

Various changes to the Scene class. Not sure what's useful.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/scene.cpp

    r698 r705  
    3737extern Shader *stdshader;
    3838#endif
    39 extern mat4 model_matrix;
     39extern mat4 proj_matrix, view_matrix, model_matrix;
    4040
    4141/*
     
    178178    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    179179#else
    180     glEnable(GL_DEPTH_TEST);
    181     glDepthFunc(GL_LEQUAL);
    182     glEnable(GL_ALPHA_TEST);
    183     glAlphaFunc(GL_GEQUAL, 0.01f);
     180    //glEnable(GL_DEPTH_TEST);
     181    //glDepthFunc(GL_LEQUAL);
     182    //glEnable(GL_ALPHA_TEST);
     183    //glAlphaFunc(GL_GEQUAL, 0.01f);
     184    //glEnable(GL_BLEND);
     185    //glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
     186
     187#if 0
     188    /* Reset all model-view-projection matrices */
     189    glMatrixMode(GL_PROJECTION);
     190    glPushMatrix();
     191    glLoadIdentity();
     192    glMultMatrixf(&proj_matrix[0][0]);
     193#endif
     194    glMatrixMode(GL_MODELVIEW);
     195    glPushMatrix();
     196    glLoadIdentity();
     197    //glMultMatrixf(&model_matrix[0][0]);
     198    glMultMatrixf(&view_matrix[0][0]);
     199
     200    /* Set up state machine */
     201    glDisable(GL_DEPTH_TEST);
     202    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
     203    glEnable(GL_TEXTURE_2D);
     204    glEnableClientState(GL_VERTEX_ARRAY);
    184205    glEnable(GL_BLEND);
    185206    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    186 
    187     glLoadIdentity();
    188     glMultMatrixf(&model_matrix[0][0]);
    189207#endif
    190208
     
    218236        stdshader->Bind();
    219237#endif
    220         glActiveTexture(GL_TEXTURE0);
     238
     239        /* Bind texture */
    221240        Tiler::Bind(data->tiles[i].code);
    222241
     242        /* Bind vertex, color and texture coordinate buffers */
    223243#if defined HAVE_GL_2X || defined HAVE_GLES_2X
    224244#   if !defined HAVE_GLES_2X
     
    227247        glEnableVertexAttribArray(attr_pos);
    228248        glEnableVertexAttribArray(attr_tex);
    229 #else
    230         glEnableClientState(GL_VERTEX_ARRAY);
    231         glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    232 #endif
    233 
    234 #if defined HAVE_GL_2X || defined HAVE_GLES_2X
     249
    235250        glBindBuffer(GL_ARRAY_BUFFER, data->bufs[buf]);
    236251        glBufferData(GL_ARRAY_BUFFER, 18 * (n - i) * sizeof(GLfloat),
    237252                     vertex, GL_STATIC_DRAW);
    238253        glVertexAttribPointer(attr_pos, 3, GL_FLOAT, GL_FALSE, 0, 0);
     254
     255        glBindBuffer(GL_ARRAY_BUFFER, data->bufs[buf + 1]);
     256        glBufferData(GL_ARRAY_BUFFER, 12 * (n - i) * sizeof(GLfloat),
     257                     texture, GL_STATIC_DRAW);
     258        glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, 0);
    239259#elif defined HAVE_GL_1X
    240260        glBindBuffer(GL_ARRAY_BUFFER, data->bufs[buf]);
     
    242262                     vertex, GL_STATIC_DRAW);
    243263        glVertexPointer(3, GL_FLOAT, 0, NULL);
    244 #else
    245         glVertexPointer(3, GL_FLOAT, 0, vertex);
    246 #endif
    247 
    248 #if defined HAVE_GL_2X || defined HAVE_GLES_2X
    249         glBindBuffer(GL_ARRAY_BUFFER, data->bufs[buf + 1]);
    250         glBufferData(GL_ARRAY_BUFFER, 12 * (n - i) * sizeof(GLfloat),
    251                      texture, GL_STATIC_DRAW);
    252         glVertexAttribPointer(attr_tex, 2, GL_FLOAT, GL_FALSE, 0, 0);
    253 #elif defined HAVE_GL_1X
     264
    254265        glBindBuffer(GL_ARRAY_BUFFER, data->bufs[buf + 1]);
    255266        glBufferData(GL_ARRAY_BUFFER, 12 * (n - i) * sizeof(GLfloat),
     
    257268        glTexCoordPointer(2, GL_FLOAT, 0, NULL);
    258269#else
     270        glVertexPointer(3, GL_FLOAT, 0, vertex);
    259271        glTexCoordPointer(2, GL_FLOAT, 0, texture);
    260272#endif
    261273
     274        /* Draw arrays */
    262275        glDrawArrays(GL_TRIANGLES, 0, (n - i) * 6);
    263276
     
    268281        glDisableVertexAttribArray(attr_pos);
    269282        glDisableVertexAttribArray(attr_tex);
    270 #else
    271         glDisableClientState(GL_VERTEX_ARRAY);
    272         glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    273283#endif
    274284
     
    277287    }
    278288
     289#if defined HAVE_GL_1X || defined HAVE_GLES_1X
     290    /* Disable state machine features */
     291    glDisableClientState(GL_VERTEX_ARRAY);
     292    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
     293
     294    /* Restore matrices */
     295    glMatrixMode(GL_PROJECTION);
     296    glPopMatrix();
     297    glMatrixMode(GL_MODELVIEW);
     298    glPopMatrix();
     299#endif
     300
    279301    free(data->tiles);
    280302    data->tiles = 0;
Note: See TracChangeset for help on using the changeset viewer.