I would like to blend the output of a fragment program with the framebuffer at a constant (= not per pixel) value and still preserve the alpha values coming from the fp.
Looking for a solution without changing the fp…
Are there any extensions for this that I am not aware of?
I never tried this, but according to the spec (I looked in 1.5 and 2.0, not sure about earlier versions) there are the following blend modes that might be useful:
They mean that the source and/or destination will be multiplied by a constant. This constant can be set with the glBlendColor call.
You might also look into glBlendFuncSeperate, with it you can set seperate blend equations for color and alpha, so you can blend the color and leave the alpha value unmodified. This function is also in core OpenGL (AFAIK since 1.4).