I know color multiply exists, but not blendalphamultiply. I was told in a previous post to accomplish this (since hge doesnt currently support this) you have to get a device to the d3d pointer directly with code like something simular to this.
I think it may use the d3drs_modulate SetRenderState. The overall effect I'm trying to do is cast a light map onto a non lit image so:
pure black on the lightmap over the non-lit map = pure black pure white on the lightmap over the non-lit map = no change to non-lit anything in between on the lightmap over the non-lit map = a darkened image
Well, I looked into HGE's source code and just found that BLEND_COLORMUL does what you need. In fact, if you call SetColor() with this blend mode, it behaves just like you want. But it only works for SetColor... You could try this : (realy don't know if that's going to do anything)
1 2 3 4 5 6 7 8 9
hge->BeginScene(lightTarget) //Render your light map hge->EndScene()
I don't know when texture stage states are applied. If they are applied when EndScene() is called (so only the last state you set is used), then you'll need to use an intermediate render target.
BlendColor does a 1 color to all bitmap multiplication. I need each pixel of the lightmap multiplied (modulated) by the corresponding pixel of other bitmap. That example you gave may just do the trick, I'm unsure of the render states as well. If anyone knows exactly how to do this, please chime in.