private unsafe static void SPRT(PSX_LIBGPU.SPRT *tag, Int32 w, Int32 h) { UInt32 meshKey = SFXKey.GetCurrentABRTex(tag->code, tag->clut) | 67108864u; SFXMesh mesh = SFXRender.GetMesh(meshKey, tag->code); mesh.SPRT(tag, w, h); }
private unsafe static void exeSPRT(PSX_LIBGPU.SPRT *p) { Boolean abe = PSXGPU.IsSemiTrans(p->code); Boolean tge = PSXGPU.IsShadeTex(p->code); Int32 globalFlagTP = PSXGPU.GlobalFlagTP; Int32 globalFlagABR = PSXGPU.GlobalFlagABR; Int32 globalFlagTY = PSXGPU.GlobalFlagTY; Int32 globalFlagTX = PSXGPU.GlobalFlagTX; Int32 flagClutY = PSXGPU.GetFlagClutY(p->clut); Int32 flagClutX = PSXGPU.GetFlagClutX(p->clut); PSXGPU.DrawSprt(abe, tge, ref p->rgbc, ref p->xy0, ref p->uv0, ref p->wh, globalFlagTP, globalFlagABR, globalFlagTY, globalFlagTX, flagClutY, flagClutX); }
public unsafe void SPRT(PSX_LIBGPU.SPRT *obj, Int32 w, Int32 h) { Single num = (Single)((Int32)obj->x0 + SFXMeshBase.drOffsetX); Single num2 = (Single)((Int32)obj->y0 + SFXMeshBase.drOffsetY); Single num3 = (Single)w - 1f; Single num4 = (Single)h - 1f; SFXMesh.gPos[SFXMesh.gPosIndex].Set(num, num2, SFXMesh.zDepth); this.vbPos[this.vbOffset] = SFXMesh.gPos[SFXMesh.gPosIndex++]; SFXMesh.gPos[SFXMesh.gPosIndex].Set(num + (Single)w, num2, SFXMesh.zDepth); this.vbPos[this.vbOffset + 1] = SFXMesh.gPos[SFXMesh.gPosIndex++]; SFXMesh.gPos[SFXMesh.gPosIndex].Set(num, num2 + (Single)h, SFXMesh.zDepth); this.vbPos[this.vbOffset + 2] = SFXMesh.gPos[SFXMesh.gPosIndex++]; SFXMesh.gPos[SFXMesh.gPosIndex].Set(num + (Single)w, num2 + (Single)h, SFXMesh.zDepth); this.vbPos[this.vbOffset + 3] = SFXMesh.gPos[SFXMesh.gPosIndex++]; SFXMesh.gTex[SFXMesh.gTexIndex].Set((Single)obj->u0, (Single)obj->v0); this.vbTex[this.vbOffset] = SFXMesh.gTex[SFXMesh.gTexIndex++]; SFXMesh.gTex[SFXMesh.gTexIndex].Set((Single)obj->u0 + num3, (Single)obj->v0); this.vbTex[this.vbOffset + 1] = SFXMesh.gTex[SFXMesh.gTexIndex++]; SFXMesh.gTex[SFXMesh.gTexIndex].Set((Single)obj->u0, (Single)obj->v0 + num4); this.vbTex[this.vbOffset + 2] = SFXMesh.gTex[SFXMesh.gTexIndex++]; SFXMesh.gTex[SFXMesh.gTexIndex].Set((Single)obj->u0 + num3, (Single)obj->v0 + num4); this.vbTex[this.vbOffset + 3] = SFXMesh.gTex[SFXMesh.gTexIndex++]; SFXMesh.gCol[SFXMesh.gColIndex].r = obj->r0; SFXMesh.gCol[SFXMesh.gColIndex].g = obj->g0; SFXMesh.gCol[SFXMesh.gColIndex].b = obj->b0; SFXMesh.gCol[SFXMesh.gColIndex].a = this.GetShadeAlpha(obj->code); this.vbCol[this.vbOffset] = (this.vbCol[this.vbOffset + 1] = (this.vbCol[this.vbOffset + 2] = (this.vbCol[this.vbOffset + 3] = SFXMesh.gCol[SFXMesh.gColIndex++]))); this.ibIndex[this.ibOffset++] = this.vbOffset; this.ibIndex[this.ibOffset++] = this.vbOffset + 1; this.ibIndex[this.ibOffset++] = this.vbOffset + 2; this.ibIndex[this.ibOffset++] = this.vbOffset + 1; this.ibIndex[this.ibOffset++] = this.vbOffset + 3; this.ibIndex[this.ibOffset++] = this.vbOffset + 2; this.vbOffset += 4; }