caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Rich Neswold <rich.neswold@gmail.com>
Cc: "caml-list@inria.fr" <caml-list@inria.fr>
Subject: Re: [Caml-list] OpenGL and LWT
Date: Mon, 17 Mar 2014 08:39:18 -0500	[thread overview]
Message-ID: <CAGT4q5oLJ+wZo9PMt2hj2zXqZ2GRc-0YVy2Jb6NeNMXcwQ7u2Q@mail.gmail.com> (raw)
In-Reply-To: <8738ihru8r.fsf@golf.niidar.ru>

On Mon, Mar 17, 2014 at 5:32 AM, Ivan Gotovchits <ivg@ieee.org> wrote:
> Unfortunately, I don't know how LabGL is organized.

Most OpenGL bindings (including LabGL) include 'libglut', which is a
library that is bundled with OpenGL that opens a UI window with an
OpenGL context in it. It would be nice to use this library because it
hides these details (i.e. the same code runs on Unix and MacOSX and
Windows.) Unfortunately, the way libglut works is you call main_loop()
which never returns. Before calling main_loop(), you register
callbacks for mouse and keyboard events. You can also register a
callback for periodic timeouts. Lastly, there's a callback which gets
called whenever the libglut main loop is "idle" (with unspecified
latencies, frequency, or guarantees.)

> If it has an event loop it will be better to incorporate it into main event loop of lwt, as
> it was done for lablgtk. Otherwise, I see several solutions. First, use
> Lwt_unix jobs, or, if you find it to tedious, just use an async task
> (see Lwt.async).

What I'll try is to run the GLUT main loop in a async task and when
the idle callback is called, I'll call lwt.yield. The keyboard and
mouse callbacks can post lwt.react.events. This set-up might work.

Thanks!

-- 
Rich

  reply	other threads:[~2014-03-17 13:39 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-15 17:37 Richard Neswold
2014-03-17 10:09 ` Jeremie Dimino
2014-03-17 10:32   ` Ivan Gotovchits
2014-03-17 13:39     ` Rich Neswold [this message]
2014-03-17 14:05       ` Daniel Bünzli
2014-03-17 14:13         ` Daniel Bünzli
2014-03-17 22:50         ` Richard Neswold
2014-03-17 23:50           ` Daniel Bünzli
2014-03-19 12:01             ` Rich Neswold
2014-03-17 10:34   ` Török Edwin
2014-03-17 11:01     ` Daniel Bünzli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAGT4q5oLJ+wZo9PMt2hj2zXqZ2GRc-0YVy2Jb6NeNMXcwQ7u2Q@mail.gmail.com \
    --to=rich.neswold@gmail.com \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).