[osg-users] OSG 3.2.1 and Qt5 Widget integration

John Vidar Larring john.larring at chyronhego.com
Tue Aug 18 04:32:08 PDT 2015


Hi Can,

Have you posted / published you full example yet? If so could you reply
with a link? Thanks in advance.

Best regards,
John

On Mon, Aug 3, 2015 at 4:57 PM, Can Olcek <can.olcek at gmail.com> wrote:

> Hi Sebastian,
>
> I have almost completed the example. My original implementation is a
> little bit complex than this. Thanks to the couple of private replies and
> discussion, I will post it tomorrow.
>
> But for keyboard inputs, I'm using an event filter.
>
> Something like this:
>
>
> Code:
>
>
> class QInputFilter : public QObject
> {
>   Q_OBJECT
>
> protected:
>   bool eventFilter(QObject *obj, QEvent *event);
>
>   void onKeyPress(QKeyEvent *e);
>   void onKeyRelease(QKeyEvent *e);
> };
>
> bool QInputFilter::eventFilter(QObject *obj, QEvent *event)
> {
>   switch(event->type())
>   {
>     case QEvent::KeyPress:
>       onKeyPress(static_cast<QKeyEvent *>(event));
>       break;
>     case QEvent::KeyRelease:
>       onKeyRelease(static_cast<QKeyEvent *>(event));
>       break;
>   }
>
>   return QObject::eventFilter(obj, event);
> }
>
> void QInputFilter::onKeyPress(QKeyEvent *e)
> {
>   if(e->isAutoRepeat())
>   {
>     e->ignore();
>     return;
>   }
>
>   unsigned int key = e->key();
>   // add pressed keys and add changed keys for current frame
>   // renderwidget will clear changed keys at the end of frame
>   Input::PrivateAccess::pressedKeys().insert(key);
>   Input::PrivateAccess::changedKeys().insert(key);
>
>   e->accept();
> }
>
> void QInputFilter::onKeyPress(QKeyEvent *e)
> {
>   if(e->isAutoRepeat())
>   {
>     e->ignore();
>     return;
>   }
>
>   unsigned int key = e->key();
>   // remove released keys and add changed keys for current frame
>   // renderwidget will clear changed keys at the end of frame
>   Input::PrivateAccess::pressedKeys().erase(e->key());
>   Input::PrivateAccess::changedKeys().insert(e->key());
>
>   e->accept();
> }
>
>
>
>
>
> Add input listener to your Qt app:
>
>
> Code:
>
>
> sdt::Author::QInputFilter inputFilter;
> app.installEventFilter(&inputFilter);
>
>
>
>
>
> I have almost fully static Input class to access keys and mouse states
> during each frame (paintGL()) I've actually tried to implement Unity3D like
> approach so inside cull or update traversal I can use Input::getButton(),
> Input::getKey(), Input::isKeyUp(), etc. methods.
>
> I can add full implemention of this to my full example.
>
> Cheers,
> Can
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=64591#64591
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
> --
> This email was Anti Virus checked by Astaro Security Gateway.
> http://www.sophos.com
>
>
> --
> This email was Anti Virus checked by Astaro Security Gateway.
> http://www.sophos.com
>



-- 

<http://chyronhego.com/press-release/chyronhego-nab-show-2015-product-preview>
<http://chyronhego.com/press-release/chyronhego-nab-show-2015-product-preview>

*John Vidar Larring* *| Senior Developer*

*ChyronHego Norge AS* *- *Sandakerveien 114a, 0484 Oslo, Norway
Office. +47 2279 7030 - Mobile.+47 4889 9795 - www.chyronhego.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20150818/ecf3bff8/attachment-0003.htm>


More information about the osg-users mailing list