opengl – Is there a way to blend an opacity overlay in a “mix” like nature without using an FBO?

I have done this many times whilst using FBO’s, but in this unique case i would prefer not to use an FBO.

I have tried a multitude of gl.BlendFunc() and gl.BlendFuncSeparate() variations and none of them comes close to the desired result. The color of the background and the overlay are the same, so basically all i want to do is to paint over the already drawn with the overlay texture.

When using gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA) it works as expected for the text and button, but also makes makes the background darker, which i don’t want.

I am not sure whether or not this is actually possible without using an FBO. I have a few rather complicated ideas of how to fix this, but i thought i would ask here in case there is a simple gl.BlendFunc() combination or something equivelant.

I have two things i would like “blended” together and provide the following results:

Before overlay:
enter image description here

Overlay:(alpha 1 in top and alpha 0 in bottom)
enter image description here

The desired result:
enter image description here