'D3drs_separatedestalphaenable': Identificador no declarado - ¿Aunque se menciona en los comentarios de DirectX?
Pregunta
En d3d9types.h en _d3drenseStateType struct Los últimos 3 tipos son:
D3DRS_SRCBLENDALPHA = 207, /* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */
D3DRS_DESTBLENDALPHA = 208, /* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */
D3DRS_BLENDOPALPHA = 209, /* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */
Tenga en cuenta que menciona que estos se utilizarán si 'd3drs_separatedestalphaenable es verdadero', sin embargo, no hay d3drs_separatedestalphaenable en la estructura. Lo más cercano parece estar: "D3DRS_SEPARATEALPHABLENDENABLE", pero no estoy en absoluto seguro si esto es lo mismo.
Así que me preguntaba qué debía establecerse en verdad para que esos tres últimos renderstates realmente funcionen (¿en todo caso?), Creo firmemente que es D3DRS_SEPARATEALPHABLENDENABLE pero ¿le gustaría que alguien confirme?
Solución
Sí, D3DRS_SEPARATEALPHABLENDENABLE. Parece un error tipográfico en los comentarios.
Del DXSDK:
D3drs_srcblendalpha
Un miembro del tipo enumerado D3Dblend. Este valor se ignora a menos que d3DRS_SEPARATEALPHABLENDENABLE sea cierto. El valor predeterminado es d3dblend_one.
D3drs_destblendalpha
Un miembro del tipo enumerado D3Dblend. Este valor se ignora a menos que d3DRS_SEPARATEALPHABLENDENABLE sea cierto. El valor predeterminado es d3dblend_zero.
D3drs_blendopalpha
Valor utilizado para seleccionar la operación aritmética aplicada a la mezcla alfa separada cuando el estado renderizado, D3DRS_SEPARATEALPHABLENDENABLE, se establece en True.
Los valores válidos se definen por el tipo enumerado D3DBlendop. El valor predeterminado es d3dblendop_add. Si la capacidad del dispositivo D3DPMISCCAPS_BLENDOP no es compatible, entonces se realiza D3DBLENDOP_Add. Ver d3dpmiscaps.