caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Oliver Bandel <oliver@first.in-berlin.de>
To: caml-list@inria.fr
Subject: Re: [Caml-list] Example slowing down... (OpenGL/lablgl)
Date: Thu, 12 Apr 2007 16:33:30 +0200	[thread overview]
Message-ID: <20070412143329.GB396@first.in-berlin.de> (raw)
In-Reply-To: <200704120815.24433.jon@ffconsultancy.com>

On Thu, Apr 12, 2007 at 08:15:24AM +0100, Jon Harrop wrote:
> On Wednesday 11 April 2007 23:25, Oliver Bandel wrote:
> >   http://en.wikipedia.org/wiki/OCaml
> >
> > =================================================================
> >  let _ =
> >     ignore( Glut.init Sys.argv );
> >     Glut.initDisplayMode ~double_buffer:true ();
> >     ignore (Glut.createWindow ~title:"OpenGL Demo");
> >     let render () =
> >       GlClear.clear [ `color ];
> >       GlMat.rotate ~angle:(Sys.time() *. 0.01) ~z:1. ();
> >       GlDraw.begins `triangles;
> >       List.iter GlDraw.vertex2 [-1., -1.; 0., 1.; 1., -1.];
> >       GlDraw.ends ();
> >       Glut.swapBuffers () in
> >     Glut.displayFunc ~cb:render;
> >     Glut.idleFunc ~cb:(Some Glut.postRedisplay);
> >     Glut.mainLoop ()
> > =================================================================
> 
> You'll notice the uncanny resemblance of that code to the code from OCaml for 
> Scientists:
> 
>   http://www.ffconsultancy.com/products/ocaml_for_scientists/visualisation/
> 

There I get an error messaage that glutCreateWindow is called before
glutInit.


> > Or is the OCaml-code in the above example
> > written in bad OpenGl-style?
> 
> Yes. I should not have used Sys.time() in the Wikipedia example because it 
> measures CPU time. Thus, as the program takes longer to run (e.g. in a larger 
> window) the rate of spinning will be affected. So you cannot infer the 
> graphics performance from the rate of spinning.

OK.
I have not looked at the examle in detail,
but if it's not an OCaml-problem then that's fine.
So I can switch my OpenGL-based programming to
Ocaml and can put my C-sources into my museum of Sorce code :)



> Instead, you must add a time 
> to count how many frames of animation are displayed each second.
> 

It's too long ago, when I thought about theese timing issues, but
as far as I know that is not to much a problem.
The Redbook is for C-language but explains the detail very good,
so if it's an OpenGL-programming problem, this can be fixed.
It would be bad if it would be an OCaml-problem, becaue I then
would have to mix C- and OCaml-code; and if possible I prever
pure OCaml-code.

As far as I know the idle-task can be used for timing-things;
but I have to re-read the redbook (or my C-code) to be sure.



> This may be the problem. However, I'd be surprised if that makes a visible 
> difference because your machine should be easily capable of spinning a 
> triangle using only software rendering.

Maybe one could think this.
But it's a single core machine and if a lot goes on there,
something slows down.
A accelerated graphics driver accelerates the rendering stuff,
but if the commands that invoke these commands are not comming
fast enough, no acceleration could help.
And if the machine makes many things at the same time...

It's good to let the graphics card do the work, instead
to make too much with the CPU, what the graphics card
could do. Then it slow's down and the graphics renderer is bored.

BTW: the machine Is amazingly fast compared to my five/six years
old Powerbook (slow disk also), but full-screen means 19'' and it's
not fastest machine around.  It was the cheapest ;-)

About 4054 bogomips (whatever that means ;-) .. it's bogo ;-))
and the CPU runs on 2 GHz, even if the board could be used faster.
It's not a highend-machine, but for me it's a step forward and fine.

Ciao,
   Oliver


  reply	other threads:[~2007-04-12 14:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-11 22:25 Oliver Bandel
2007-04-12  0:07 ` [Caml-list] " skaller
2007-04-12 14:09   ` Oliver Bandel
2007-04-12  7:15 ` Jon Harrop
2007-04-12 14:33   ` Oliver Bandel [this message]
2007-04-12 19:46     ` Jon Harrop
2007-04-12 20:26       ` Martin Jambon
2007-04-12 22:19         ` Jon Harrop
2007-04-13  0:30           ` Martin Jambon
2007-04-13  0:44             ` Jon Harrop
2007-04-12 20:47       ` Oliver Bandel
2007-04-13  1:12       ` skaller

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=20070412143329.GB396@first.in-berlin.de \
    --to=oliver@first.in-berlin.de \
    --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).