Changeset 1238


Ignore:
Timestamp:
Apr 18, 2012, 11:15:15 PM (8 years ago)
Author:
sam
Message:

tutorial: use an interleaved vertex/color buffer.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/tutorial/tut02.cpp

    r1236 r1238  
    4848        m_angle = 0;
    4949
    50         /* Front */
    51         m_vertices[0] = vec3(-1.0, -1.0, 1.0);
    52         m_vertices[1] = vec3( 1.0, -1.0,  1.0);
    53         m_vertices[2] = vec3( 1.0,  1.0,  1.0);
    54         m_vertices[3] = vec3(-1.0,  1.0,  1.0);
     50        /* Front vertices/colors */
     51        m_mesh[0] = vec3(-1.0, -1.0,  1.0); m_mesh[1] = vec3(1.0, 0.0, 1.0);
     52        m_mesh[2] = vec3( 1.0, -1.0,  1.0); m_mesh[3] = vec3(0.0, 1.0, 0.0);
     53        m_mesh[4] = vec3( 1.0,  1.0,  1.0); m_mesh[5] = vec3(1.0, 0.5, 0.0);
     54        m_mesh[6] = vec3(-1.0,  1.0,  1.0); m_mesh[7] = vec3(1.0, 1.0, 0.0);
    5555        /* Back */
    56         m_vertices[4] = vec3(-1.0, -1.0, -1.0);
    57         m_vertices[5] = vec3( 1.0, -1.0, -1.0);
    58         m_vertices[6] = vec3( 1.0,  1.0, -1.0);
    59         m_vertices[7] = vec3(-1.0,  1.0, -1.0);
    60 
    61         m_colors[0] = vec3(1.0, 0.0, 0.0);
    62         m_colors[1] = vec3(0.0, 1.0, 0.0);
    63         m_colors[2] = vec3(0.0, 0.0, 1.0);
    64         m_colors[3] = vec3(1.0, 1.0, 1.0);
    65         m_colors[4] = vec3(1.0, 0.0, 0.0);
    66         m_colors[5] = vec3(0.0, 1.0, 0.0);
    67         m_colors[6] = vec3(0.0, 0.0, 1.0);
    68         m_colors[7] = vec3(1.0, 1.0, 1.0);
     56        m_mesh[8]  = vec3(-1.0, -1.0, -1.0); m_mesh[9]  = vec3(1.0, 0.0, 0.0);
     57        m_mesh[10] = vec3( 1.0, -1.0, -1.0); m_mesh[11] = vec3(0.0, 0.5, 0.0);
     58        m_mesh[12] = vec3( 1.0,  1.0, -1.0); m_mesh[13] = vec3(0.0, 0.5, 1.0);
     59        m_mesh[14] = vec3(-1.0,  1.0, -1.0); m_mesh[15] = vec3(0.0, 0.0, 1.0);
    6960
    7061        m_indices[0] = i16vec3(0, 1, 2);
     
    146137
    147138            m_vdecl =
    148               new VertexDeclaration(VertexStream<vec3>(VertexUsage::Position),
    149                                     VertexStream<vec3>(VertexUsage::Color));
    150 
    151             m_vbo = new VertexBuffer(sizeof(m_vertices));
    152             void *vertices = m_vbo->Lock(0, 0);
    153             memcpy(vertices, m_vertices, sizeof(m_vertices));
     139              new VertexDeclaration(VertexStream<vec3,vec3>(VertexUsage::Position,
     140                                                            VertexUsage::Color));
     141
     142            m_vbo = new VertexBuffer(sizeof(m_mesh));
     143            void *mesh = m_vbo->Lock(0, 0);
     144            memcpy(mesh, m_mesh, sizeof(m_mesh));
    154145            m_vbo->Unlock();
    155 
    156             m_cbo = new VertexBuffer(sizeof(m_colors));
    157             void *colors = m_cbo->Lock(0, 0);
    158             memcpy(colors, m_colors, sizeof(m_colors));
    159             m_cbo->Unlock();
    160146
    161147#if !defined __CELLOS_LV2__ && !defined __ANDROID__ && !defined __APPLE__ && !defined _XBOX && !defined USE_D3D9
     
    181167        }
    182168
    183     Video::SetClearColor(vec4(0.0f, 0.0f, 0.0f, 1.0f));
     169        Video::SetClearColor(vec4(0.0f, 0.0f, 0.0f, 1.0f));
    184170
    185171        m_shader->Bind();
    186172        m_shader->SetUniform(m_mvp, m_matrix);
    187         m_vdecl->SetStream(m_vbo, m_coord);
    188         m_vdecl->SetStream(m_cbo, m_color);
     173        m_vdecl->SetStream(m_vbo, m_coord, m_color);
    189174        m_vdecl->Bind();
    190175
     
    206191        glBindBuffer(GL_ARRAY_BUFFER, 0);
    207192#else
     193        /* FIXME */
    208194        glEnableClientState(GL_VERTEX_ARRAY);
    209195        glVertexPointer(3, GL_FLOAT, 0, m_vertices);
     
    216202    float m_angle;
    217203    mat4 m_matrix;
    218     vec3 m_vertices[8];
    219     vec3 m_colors[8];
     204    vec3 m_mesh[16];
    220205    i16vec3 m_indices[12];
    221206    Shader *m_shader;
     
    223208    ShaderUniform m_mvp;
    224209    VertexDeclaration *m_vdecl;
    225     VertexBuffer *m_vbo, *m_cbo;
     210    VertexBuffer *m_vbo;
    226211#if defined USE_D3D9
    227212    IDirect3DIndexBuffer9 *m_ibo;
Note: See TracChangeset for help on using the changeset viewer.