Hi,

Recently we have been attempting to get offscreen framebuffers working in
clutter, the codebase has been broken since 0.9 because of the re-write of
clutter_actor_realize()

Essentially the old behaviour was to realize just the actor specified, but now
it realizes the parent actors all the way up to the stage.

Whilst on the whole this is a good idea it does have the side effect of
completely breaking clutters offscreen rendering setup.
Offscreen rendering requires (according to the documentation and test-cases) you
to create an actor but not parent it to the stage (if it were in the stage, it
would get drawn onscreen) and then call clutter_texture_new_from_actor on the
actor.

clutter_texture_new_from_actor needs to realize the actor in order to get its
dimensions to build an FBO of the correct size, which used to work pre 0.9 but
now with the new realizing code the test-cases fail and as far as i can tell,
offscreen rendering is impossible.

It would be nice to investigate how to go about fixing this and get a patch
upstream but I would prefer it if we could have a discussion on the best way to
attack this problem as a community.

There are two options as I see it, either we mark actors as 'offscreen' somehow
and clutter performs some magic in the background to make sure that they are
rendered offscreen or we create some sort of fake offscreen "stage" where
anything that gets attached to it automatically gets rendered into an FBO.

Any thoughts?

the test-case is tests/interactive/test-fbo.c - in 0.8 this test case works fine
, anything later it fails.


Thanks, Gord.
----------------
Gord Allott ([email protected])

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to