Batch #1632 by eAthena: 0 byte-identical, 1 confirmed by peer review. - fn_02241 RendererDX9Operations::SetTextureMode: logic confirmed by peer review Reviewed-by: ragnarok-clanker
204 lines
13 KiB
C++
204 lines
13 KiB
C++
#include "Render/DX9/DeviceStateDX9.h"
|
|
#include "Render/DX9/RendererDX9Operations.h"
|
|
|
|
// OFFSET: 0x00568470
|
|
// FUNCTION: fn_02241
|
|
void RendererDX9Operations::SetTextureMode(int mode) {
|
|
switch (mode) {
|
|
case 0:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
|
break;
|
|
case 1:
|
|
case 2:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
|
break;
|
|
case 3:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
|
break;
|
|
case 4:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_BLENDTEXTUREALPHA);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
|
break;
|
|
case 5:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 6:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_COMPLEMENT);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_COMPLEMENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 7:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_ALPHAREPLICATE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 8:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 9:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_BLENDTEXTUREALPHA);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 10:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_BLENDDIFFUSEALPHA);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 11:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 12:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_COMPLEMENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 13:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 14:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE2X);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
case 15:
|
|
this->state.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
|
this->state.SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
|
this->state.SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
|
this->state.SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADDSIGNED);
|
|
this->state.SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
|
this->state.SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
|
break;
|
|
}
|
|
}
|