On Sun, Sep 14, 2008 at 7:40 PM, vlad <[EMAIL PROTECTED]> wrote:
> I'm creating a 3d game platform for my game development needs. I'll
> use v8 for my scripting needs.

Sounds interesting!

> I need to call a function in the render system of the platform on a
> regular basis, say 30 times per second,  so that display gets updated
> but I'm not sure where to place that call. When calling
> v8::Script::Run(), the virtual machine takes over from here and runs
> the script. I could install a function in the javascript world, say
> render(), that would call the render inside the platform, but I don't
> like that method because it's a burden that I don't want the
> javascript aspect to have to deal with.
>
> How can I setup a way to allow the engine to run internal systems
> (display, networking, etc) on a regular basis?

It sounds like you really want to spawn another thread and then have
that use a loop with a sleep in it to call your render function.  Of
course that thread shouldn't touch Handles and other JS data.  The JS
thread(s) can communicate with the render thread using locked C++ data
structures, where the locks are held only for short times during
callbacks from V8.

If you are doing games you should be aware that V8 is not real time so
there can be no guarantees about pause times.  The GC is a particular
concern here.  Although most pauses are short, every now and again
there will be a full collection and the pause time will be
proportional to the size of the JS heap.

-- 
Erik Corry, Software Engineer
Google Denmark ApS. CVR nr. 28 86 69 84
c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
Copenhagen K, Denmark.

--~--~---------~--~----~------------~-------~--~----~
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to