Beispiel #1
0
    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);
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    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;
    }