Проблемы с QGLBuffer. Не могу реализовать меш и 2д обьект со своими буферами.



  • Привет всем!
    Может кто-нибудь объяснить, почему у меня крашится программа, если я проворачиваю все операции с буферами в собственном классе?
    Вот мой код.

    My Class:
    @
    class Obj2d
    {
    public:
    Obj2d(float x, float y,float vrt, unsigned int svrt, unsigned int ind, unsigned int sind);
    private:
    QGLBuffer vertexBuffer;
    QGLBuffer indexBuffer;
    bool prepareBufferObject(QGLBuffer
    buffer,
    QGLBuffer::UsagePattern usagePattern,
    const void
    data,
    int dataSize);
    unsigned int *indeces;
    unsigned int svrt; //Size vertices
    unsigned int sind;//indeces
    float *verteces;
    void bufferinit();
    }

    Obj2d::bufferinit()
    {
    if(prepareBufferObject(&vertexBuffer, QGLBuffer::StaticDraw, verteces, svrt))
    return;
    if(prepareBufferObject(&indexBuffer, QGLBuffer::StaticDraw, indeces, sind))
    return;
    vertexBuffer.bind();
    indexBuffer.bind();
    }

    bool Obj2d::prepareBufferObject( QGLBuffer* buffer,
    QGLBuffer::UsagePattern usagePattern,
    const void* data,
    int dataSize )
    {
    buffer->create();
    buffer->setUsagePattern( usagePattern );
    if ( !buffer->bind() )
    {
    qDebug() << "Could not bind buffer object to the context";
    return false;
    }
    buffer->allocate( data, dataSize );
    return true;
    }@

    @
    //In InitializeGL()
    float points[] = {-300.5f, -300.5f, 0.0f, 1.0f,
    -300.5f, 300.5f, 0.0f, 1.0f,
    300.5f, 300.5f, 0.0f, 1.0f,
    300.5f, -300.5f, 0.0f, 1.0f,

                        1.0f,  0.0f, 0.0f, 1.0f,
                        0.0f,  1.0f, 0.0f, 1.0f,
                        0.0f,  0.0f, 1.0f, 1.0f,
                        0.0f,  1.0f, 1.0f, 1.0f};
    unsigned int indeces[] = {0 , 1, 2, 2, 3 ,0};
    quad = new HObj2d(0.0f,0.0f, points, 8*4*sizeof(float), indeces, 3*2*sizeof(unsigned int));
    quad->bufferinit();
    

    @

    @
    //and PaintGL()
    glDrawRangeElements(GL_TRIANGLES, 0,4,6, GL_UNSIGNED_INT, 0);//Program crashed
    @

    Буду рад, если кто-нибудь мне покажет свою реализацию меша или 2д обьекта на Qt для OpenGL.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.