caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jon Harrop <jon@jdh30.plus.com>
To: caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Cross-platform "Hello, World" graphical application in OCaml
Date: Wed, 23 Feb 2005 03:57:45 +0000	[thread overview]
Message-ID: <200502230357.46234.jon@jdh30.plus.com> (raw)
In-Reply-To: <ed79d7ad2875a2f2ba283cfa7ece256a@epfl.ch>


This is getting off topic so I'll keep it brief...

On Wednesday 23 February 2005 03:13, Daniel Bünzli wrote:
> a) An OpenGL context is not a lightweight structure. Especially if you
> are doing realtime rendering, a context switch is a heavy operation.

I've never had a performance problem with context switching. As a test, try 
running multiple copies of my OpenGL demos:

  http://www.ffconsultancy.com/products/ocaml_for_scientists/visualisation

> Very often it is much more efficent to have a single context in which
> you draw various subregion by setting the viewport and scissor rect
> rather than creating many opengl contexts.

If you want multiple windows you can't do this, of course.

> b) OpenGL context management is not defined in the opengl specification
> but by platform specific libraries (e.g. agl, wgl, glx, etc) that
> behave quite differently and this means that you may run into various
> issues (like platform dependent context texture sharing policy).

Whatever library created the contexts for you tends to handle all that, e.g. 
FLTK and Qt do. This isn't rocket science though. OpenGL users have to do 
this themselves if they want to use pbuffers, for example:

  http://www.chem.pwf.cam.ac.uk/~jdh30/programming/opengl/pbuffer/index.html

> Sure but if they do then :
>
> 1) Either they don't work at the level of OpenGL. That is they use the
> platform specific gui libraries to provide their cross-platform
> abstraction. Then we are not talking about the same thing (I was
> talking about opengl-based gui systems).

I see, you were referring to toolkits which render native-like GUIs using 
OpenGL. Sorry, I was talking about actually calling real native GUIs from an 
OpenGL app.

> 2) Or they try to mimic the platform-specific look in their rendering,
> an imitation that can become obsolated by any system update.

Yes. GLUI mimics Windows 9x using OpenGL, for example.

> But looking at the end of your message I think that we may not be
> talking about the same thing.

Yes, I think we were talking at cross purposes.

To recap, if you must have some native-looking windows in an OpenGL app, you 
should be able to implement it quite easily (in theory). In practice, I have 
been unable to do this from OCaml, so I'd be very interested if anyone has a 
demo of this working. :-)

I'd suggest sticking to lablglut and writing your own GUI entirely using 
OpenGL though, as I have found this to be much more stable. I don't really 
think users will be too bothered by a slightly-different-looking GUI though, 
especially if it looks better. :-)

-- 
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://ffconsultancy.com


  reply	other threads:[~2005-02-23  3:56 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-22 12:03 Richard Jones
2005-02-22 12:15 ` [Caml-list] " Sven Luther
2005-02-22 12:28   ` Richard Jones
2005-02-22 12:35     ` Sven Luther
2005-02-22 12:53       ` Richard Jones
2005-02-22 14:27         ` Sven Luther
2005-02-22 13:36 ` Vincenzo Ciancia
2005-02-22 14:03   ` [Caml-list] " Richard Jones
2005-02-22 17:46     ` Christophe TROESTLER
2005-02-22 23:50       ` Oliver Bandel
2005-02-23 13:58         ` Christophe TROESTLER
2005-02-23  8:15       ` Sven Luther
2005-02-23 14:08         ` Christophe TROESTLER
2005-02-23 16:15           ` Sven Luther
2005-02-24 16:20             ` Christophe TROESTLER
2005-02-23  8:07     ` Evan Martin
2005-02-22 14:08   ` Michael Walter
2005-02-22 17:05 ` [Caml-list] " Blair Zajac
2005-02-22 17:23   ` Richard Jones
2005-02-22 19:24     ` Jon Harrop
2005-02-22 20:24       ` Richard Jones
2005-02-22 21:23         ` Jon Harrop
2005-02-22 22:13           ` chris.danx
2005-02-22 23:00             ` Jon Harrop
2005-02-23  0:18               ` Oliver Bandel
2005-02-23 17:24               ` Christopher Campbell
2005-02-22 23:38           ` Richard Jones
2005-02-22 21:26         ` chris.danx
2005-02-22 22:16           ` Jon Harrop
2005-02-22 23:30             ` Daniel Bünzli
2005-02-23  0:05               ` Jon Harrop
2005-02-23  3:05                 ` Michael Walter
2005-02-23  3:13                 ` Daniel Bünzli
2005-02-23  3:57                   ` Jon Harrop [this message]
2005-02-23  7:29                 ` Bardur Arantsson
2005-02-23 11:21                   ` Jon Harrop
2005-02-23 11:45                     ` Bardur Arantsson
2005-02-23  0:27               ` Oliver Bandel
2005-02-22 20:57       ` chris.danx
2005-02-23  9:58         ` Olivier Andrieu
2005-02-23 17:23           ` Christopher Campbell
2005-02-23  0:02       ` Oliver Bandel
2005-02-23 11:37         ` Jon Harrop
2005-03-01 14:35         ` Ingo Bormuth
2005-02-22 23:59     ` Oliver Bandel
2005-02-23 15:21       ` William D. Neumann
2005-02-24  0:44         ` Oliver Bandel
     [not found] <20050223054011.3414.28936.Mailman@yquem.inria.fr>
2005-03-02  6:36 ` Ken Rawlings
2005-03-02  6:56   ` Nicolas Cannasse
2005-03-02 11:40   ` Richard Jones
2005-03-02 12:06     ` Nicolas Cannasse
2005-03-05 12:51     ` Sven Luther
2005-03-05 12:31 Grégory Guyomarc'h
2005-03-05 13:09 Gregory Guyomarc'h

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=200502230357.46234.jon@jdh30.plus.com \
    --to=jon@jdh30.plus.com \
    --cc=caml-list@yquem.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).