Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[SOLVED]Same Texture Different QGLContext/QGLWidget



  • hi
    I'm currently working for my final Assessment

    so here the situation
    I build three difference QGLWidget Class which has different function and purpose
    Let say I have
    GLWidgetLayer, GLWidgetImage, GLWidgetPreview

    each QGLWidget class render different object and geometry
    when I want to load Texture using bindTexture in GLWidgetLayer object and save TextureID in global variable

    how can I use the same texture in object GLWidgetImage / GLWidgetPreview
    without call bindTexture again?
    so I don't waste texture that already loaded in GLWidgetLayer

    I have read about share context between QGLContext using chooseContext and QGLWidget Contructor
    but I don't understand, how to use it, and can it solve my problem

    Thanks,
    Sapidol2002



  • MAybe what you are trying to do is something like this.

    The QGLWidget constructor:
    @QGLWidget ( QWidget * parent = 0, const QGLWidget * shareWidget = 0, Qt::WindowFlags f = 0 )@

    It includes a call to a sharing context widget. The only thing you need to do is to make your GL instance with a constructor similar to this one, like:
    @GLClass::GLClass(QWidget * parent = 0, const QGLWidget * shareWidget = 0, Qt::WindowFlags f = 0)
    : QGLWidget(parent, shareGLWidget)
    {

    }@

    Finally:
    @ secondGLWidget= new SideWidget(this); //some QGLWidget instance...
    firstGLWidget = new GLClass(this, secondGLWidget); //QGLWidget that shares context w/ anotherQGLWidget@



  • yes it's work!
    now I can loadTexture from secondGLWidget
    and then use it in firstGLWidget

    Thank you very much.


Log in to reply