Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6914553
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T09:21:44+00:00 2026-05-27T09:21:44+00:00

I’m currently developing a game in the LeadWerks 2 engine and I’ve decided to

  • 0

I’m currently developing a game in the LeadWerks 2 engine and I’ve decided to use Qt4 as the GUI and window manager. What I want to do is create a Qt QGLWidget window and have the LeadWerks engine run inside of that.
There is some information of building a basic QGLWidget application here.

I’m really struggling to understand how to do this exactly. I can create a custom GL buffer within the LeadWerks engine and I believe what I need to do is give that buffer the GL context Qt created.
As for the LeadWerks side of things, the main thing I need to do is call a method called CreateCustomBuffer and pass it a few things:

virtual void Buffer::CreateCustom( byte* getsize, byte* makecurrent)

Creates and returns a new custom buffer. GetSize (defined as void _stdcall GetSize(int* width, int* height)) and MakeCurrent (defined as void _stdcall MakeCurrent(void)) are callback functions for the buffer. GetSize should return (by changing the value provided with a pointer) the size of the custum OpenGL buffer/context used. MakeCurrent should set the custom buffer as the current OpenGL context.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T09:21:45+00:00Added an answer on May 27, 2026 at 9:21 am

    and MakeCurrent (defined as void _stdcall MakeCurrent(void)) are callback functions for the buffer

    If I understand it correct, this callback will be called whenever LeadWerks wants the context to become active (it doesn’t manage it itself then), similar the getsize callback is to obtain the size of the available window. So normally you’d use this to activate the context from another interface you’ve access for.

    Unfortunately those callbacks don’t allow for passing a pointer, which means, you can’t pass the QGLWidget class instance pointer, so that you could delegate the call to a class member function. Not being able to pass user data to callbacks is a sign of bad API design, because it makes things hard, which would be easy otherwise.

    There is a library called ffcall which provides a mechanism to get around this http://www.gnu.org/s/libffcall/callback.html

    So you’d write a delegator function

    void qglwidget_makecurrent(void *data, va_list alist)
    {
        GQLWidget *widget = (QGLWidget*) data;
        widget->makeCurrent();
    }
    
    void qglwidget_getsize(void *data, va_list alist)
    {
        int *widthptr, *heightptr;
        GQLWidget *widget = (QGLWidget*) data;
        va_start_ptr(alist, void);
        widthptr = va_arg_ptr(alist, int*);
        heightptr = va_arg_ptr(alist, int*);
        va_return_void(alist);
        *widthptr = widget->width();
        *heightptr = widget->height();
    }
    

    create callback wrappers (as in your QGLWidget derives class’ constructor) as class member variables:

    class MyGLWidget : QGLWidget {
    /* ... */
        __TR_function qglwidget_makecurrent_callback;
        __TR_function qglwidget_getsize_callback;
    }
    
    MyGLWidget::MyGLWidget() {
        qglwidget_makecurrent_callback = alloc_callback(qglwidget_makecurrent, (void)this);
        qglwidget_getsize_callback = alloc_callback(qglwidget_makecurrent, (void*)this);
    }
    

    And those you can pass to LeadEngine:

    buffer->CreateCustom((void(*)(int, int))qglwidget_getsize_callback, (void(*)(void))qglwidget_makecurrent_callback);
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want use html5's new tag to play a wav file (currently only supported
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I want to count how many characters a certain string has in PHP, but
I am trying to understand how to use SyndicationItem to display feed which is
Basically, what I'm trying to create is a page of div tags, each has
I have a string like this: La Torre Eiffel paragonata all’Everest What PHP function
I am currently running into a problem where an element is coming back from
I have a French site that I want to parse, but am running into
I'm parsing an RSS feed that has an ’ in it. SimpleXML turns this
i want to parse a xhtml file and display in UITableView. what is the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.