Text archives Help
- From: Carson Brownlee <
>
- To:
- Subject: [Manta] Re: Re: Re: transactions in manta - setting camera
- Date: Tue, 9 Dec 2008 15:56:28 -0700
I think in general any state changes aren't thread safe and should be
done outside the rendering loop. This includes changes to cameras,
materials, etc. You would need to add notThreadSafe() to just about
everything. In most scenes all of the state data will be setup in
make_scene, before going into a render loop. For changing things
while in the rendering loop transactions should often be used. I
think it makes sense, though it can be a pain making transactions for
everything I suppose.
Carson
On Dec 9, 2008, at 3:43 PM, J. Davison de St. Germain wrote:
Why does setBasicCameraData() exist (or at least why is it visible) if
it 'really' shouldn't be used? If it is necessary, perhaps it should
be renamed to "setBasicCameraData_notThreadSafe()" or some such?
Thanks,
Dav
Carson Brownlee wrote:
the difference is that the transaction will be called when manta
isn't rendering. the transaction is "safer" incase you have a
shader that is referencing camera data in parallel to the gui code
setting it. This is unlikely but possible, all calls like that
should be done in a transaction. It wouldn't be a major loss in
this case though as memory isn't being remapped, I don't think
setBasicCameraData deletes the old cameraData.
Carson
On Dec 9, 2008, at 3:37 PM, J. Davison de St. Germain wrote:
Hi,
What is the difference between:
data = manta_new(BasicCameraData(eye,lookat,up,fov,fov))
engine.getCamera(0).setBasicCameraData(data)
And creating a transaction to do the same thing?
Thanks,
Dav
--
-----------------------------------------------------------------------
- J. Davison de St. Germain
(801) 581-4078 -
- Chief Software Engineer
http://www.cs.utah.edu/~dav -
- SCI Institute, SE C-SAFE University of Utah -
-----------------------------------------------------------------------
Archive powered by MHonArc 2.6.16.