Beispiel #1
0
//----------------------------------------------------------------------------//
void OpenGL3GeometryBuffer::appendGeometry(const Vertex* const vbuff,
    uint vertex_count)
{
    performBatchManagement();

    // update size of current batch
    d_batches.back().vertexCount += vertex_count;

    // buffer these vertices
    GLVertex vd;
    const Vertex* vs = vbuff;
    for (uint i = 0; i < vertex_count; ++i, ++vs)
    {
        // copy vertex info the buffer, converting from CEGUI::Vertex to
        // something directly usable by OpenGL as needed.
        vd.tex[0]      = vs->tex_coords.d_x;
        vd.tex[1]      = vs->tex_coords.d_y;
        vd.colour[0]   = vs->colour_val.getRed();
        vd.colour[1]   = vs->colour_val.getGreen();
        vd.colour[2]   = vs->colour_val.getBlue();
        vd.colour[3]   = vs->colour_val.getAlpha();
        vd.position[0] = vs->position.d_x;
        vd.position[1] = vs->position.d_y;
        vd.position[2] = vs->position.d_z;
        d_vertices.push_back(vd);
    }

    updateOpenGLBuffers();
}
Beispiel #2
0
//----------------------------------------------------------------------------//
void OpenGL3GeometryBuffer::reset()
{
    d_batches.clear();
    d_vertices.clear();
    d_activeTexture = 0;
    updateOpenGLBuffers();
}
//----------------------------------------------------------------------------//
void OpenGLES2GeometryBuffer::reset()
{
    OpenGLGeometryBufferBase::reset();
    updateOpenGLBuffers();
}
//----------------------------------------------------------------------------//
void OpenGLES2GeometryBuffer::appendGeometry(const Vertex* const vbuff,
    uint vertex_count)
{
    OpenGLGeometryBufferBase::appendGeometry(vbuff, vertex_count);
    updateOpenGLBuffers();
}
Beispiel #5
0
//----------------------------------------------------------------------------//
void OpenGL3GeometryBuffer::appendGeometry(const float* vertex_data, std::size_t array_size)
{
    OpenGLGeometryBufferBase::appendGeometry(vertex_data, array_size);

    updateOpenGLBuffers();
}