Cross buffer blend

Currently, the blend operations do not allow to use the current values of color buffer A with color buffer B in an MRT set. For example, lets us suppose that there are up to N-color buffers, I would like to add the following enumerations to glBlendFunc :

GL_DST_MRTi_COLOR --> coefficient is value in color buffer i

and similarly same jazz for GL_ONE_MINUS_DST_MRTi_COLOR, GL_DST_MRTi_ALPHA and GL_ONE_MINUS_DST_MRTi_ALPHA. For example using glBlendFunc(0, GL_DST_MRT1_COLOR, GL_ZERO) and if the MRT0 gets (1,1,1,1) written to it in it’s fragment shader, then the values of color buffer 1 are copied to color buffer 0 over the area of the primitive.

A separate extension would also be for GL_SRC_MRTi_COLOR, and it’s relatives, the MRT there so it does not get confused with the current dual blending jazz.

I suspect that the current hardware’s ROP’s are not as flexible, so this is likely a GL5 request… atleast I am not asking for GL_EXT_framebuffer_fetch :biggrin-new: