Das liegt nicht daran, dass
OpenGL das nicht könnte, sondern daran, dass du die falschen Blending-/Alpha-Parameter benutzt.
wie sieht denn z.B. deine glblendfunc aus? Sieht nämlich sehr nach 1-Bit Alpha aus (GL_ONE).
Bevor ich mir hier nen Wolf tippe, hier kannst du das ganze detailliert nachlesen, wie man in
OpenGL mit und ohne Alphachannel blendet:
glBlendFunc:
http://wiki.delphigl.com/index.php/glBlendFunc
glAlphaFunc:
http://wiki.delphigl.com/index.php/glAlphaFunc
normalerweise nimmt man für eine Transparenz mit Alphachannel beim Blending mode:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);