Decompile fn_02116 (RendererDX7Operations::SetTextureMode)
Batch #1633 by eAthena: 0 byte-identical, 1 confirmed by peer review. - fn_02116 RendererDX7Operations::SetTextureMode: logic confirmed by peer review Reviewed-by: ragnarok-clanker
This commit is contained in:
parent
7dae59d785
commit
207f838d32
1 changed files with 196 additions and 3 deletions
|
|
@ -1,10 +1,203 @@
|
|||
#include "Render/DX7/RendererDX7Operations.h"
|
||||
#include "Render/TextureStageModes.h"
|
||||
|
||||
// OFFSET: 0x0055ED50
|
||||
// FUNCTION: fn_02116
|
||||
void RendererDX7Operations::SetTextureMode(int mode) {
|
||||
for (const auto& write : TextureStageModeWrites(mode)) {
|
||||
this->device->SetTextureStageState(write.stage, static_cast<D3DTEXTURESTAGESTATETYPE>(write.state), write.value);
|
||||
switch (mode) {
|
||||
case 0:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
||||
break;
|
||||
case 1:
|
||||
case 2:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
||||
break;
|
||||
case 3:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
||||
break;
|
||||
case 4:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_BLENDTEXTUREALPHA);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_DISABLE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
|
||||
break;
|
||||
case 5:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 6:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_COMPLEMENT);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_COMPLEMENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 7:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_ALPHAREPLICATE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 8:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADD);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 9:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_BLENDTEXTUREALPHA);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 10:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_BLENDDIFFUSEALPHA);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 11:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADD);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 12:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE | D3DTA_COMPLEMENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADD);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 13:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_ADD);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 14:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_MODULATE2X);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
case 15:
|
||||
this->device->SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, 0);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG2);
|
||||
this->device->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_TEXCOORDINDEX, 1);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLOROP, D3DTOP_ADDSIGNED);
|
||||
this->device->SetTextureStageState(1, D3DTSS_COLORARG2, D3DTA_CURRENT);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
|
||||
this->device->SetTextureStageState(1, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue