I wondering what special state management or 'no nos' to avoid when attempting to make a custom consumer patch compatible with to be rendered within the GLSL macro patch? What I have as a partial working solution is to check for the GL_ACTIVE_PROGRAM in startExecution and store that as an ivar, and re-bind it before rendering out the final geometry. This seems to work, however I have some odd behavior: If I create a GLSL shader that uses a sampler and connect an image input to that sampler input port, I do not render anything at all (not black, literally no output at all). I attempted disabling texturing within my plugin but the behavior remains. Anytime a sampler is made active (fed an image), my rendering stops. Considering that the internals of the GLSL Shader macro are black box, im not sure what to do?
sounds like you need to preserve all the uniforms. That means you have to ask the current program what they are, store them off, activate your GLSL program (which wipes out the old ones), do your thing, revert to the old shader, and restore all the uniforms. I'm not sure if this will solve the problem or not, but it's possible. you should also check for glError, to see if anything interesting is happening (that can lead to no-output scenarios -- when a patch fails to render, all following patches tend to get skipped over, which is a bit unintuitive.)
If you think it sounds torturous, let me assure you, it is ;) -- [ christopher wright ] [email protected] http://kineme.net/
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Do not post admin requests to the list. They will be ignored. Quartzcomposer-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com This email sent to [email protected]

