Example #1
0
    private unsafe static void exePolyFT4(PSX_LIBGPU.POLY_FT4 *p)
    {
        Boolean tge = PSXGPU.IsShadeTex(p->code);

        PSXGPU.DrawPolyGT3(PSXGPU.DRAW_BEGIN, p->code, p->clut, p->tpage, tge, ref p->rgbc0, ref p->xy0, ref p->uv0, ref p->rgbc0, ref p->xy1, ref p->uv1, ref p->rgbc0, ref p->xy2, ref p->uv2);
        PSXGPU.DrawPolyGT3(PSXGPU.DRAW_END, p->code, p->clut, p->tpage, tge, ref p->rgbc0, ref p->xy2, ref p->uv2, ref p->rgbc0, ref p->xy1, ref p->uv1, ref p->rgbc0, ref p->xy3, ref p->uv3);
    }
Example #2
0
    public static void DrawSprt(Boolean abe, Boolean tge, ref Color32 c0, ref PSX_LIBGPU.XY p0, ref PSX_LIBGPU.UV t0, ref PSX_LIBGPU.WH size, Int32 TP, Int32 ABR, Int32 TY, Int32 TX, Int32 clutY, Int32 clutX)
    {
        Byte a = c0.a;

        PSXGPU.p1.x  = (Single)(p0.x + size.w);
        PSXGPU.p1.y  = (Single)(p0.y + size.h);
        PSXGPU.p1.z  = PSXGPU.zDepth;
        PSXGPU.uv0.x = (Single)t0.u + 0.5f;
        PSXGPU.uv0.y = (Single)t0.v + 0.5f;
        PSXGPU.uv1.x = (Single)((Int16)t0.u + size.w) - 0.5f;
        PSXGPU.uv1.y = (Single)((Int16)t0.v + size.h) - 0.5f;
        PSXGPU.SetMaterial(PSXGPU.matPSXShaderTextureShading);
        PSXGPU.SetTexture(TP, TY, TX, clutY, clutX, FilterMode.Bilinear);
        c0.a = PSXGPU.SetShader(abe, ABR, PSXGPU.drOffset);
        PSXGPU.SetPolygon(7);
        GL.Color(c0);
        GL.TexCoord(PSXGPU.uv0);
        GL.Vertex3((Single)p0.x, (Single)p0.y, PSXGPU.zDepth);
        GL.Color(c0);
        GL.TexCoord2(PSXGPU.uv1.x, PSXGPU.uv0.y);
        GL.Vertex3(PSXGPU.p1.x, (Single)p0.y, PSXGPU.zDepth);
        GL.Color(c0);
        GL.TexCoord(PSXGPU.uv1);
        GL.Vertex(PSXGPU.p1);
        GL.Color(c0);
        GL.TexCoord2(PSXGPU.uv0.x, PSXGPU.uv1.y);
        GL.Vertex3((Single)p0.x, PSXGPU.p1.y, PSXGPU.zDepth);
        GL.End();
        c0.a = a;
    }
Example #3
0
    private unsafe static void exeTILE_16(PSX_LIBGPU.TILE_16 *ObjPtr)
    {
        Boolean abe = PSXGPU.IsSemiTrans(ObjPtr->code);
        Color32 c   = new Color32(ObjPtr->r0, ObjPtr->g0, ObjPtr->b0, Byte.MaxValue);
        Vector3 p   = new Vector3((Single)ObjPtr->x0, (Single)ObjPtr->y0, PSXGPU.zDepth);

        PSXGPU.DrawTile(abe, c, p, new Vector2(16f, 16f));
    }
Example #4
0
    private unsafe static void exeDR_TPAGE(PSX_LIBGPU.DR_TPAGE *ObjPtr)
    {
        UInt16 obj = (UInt16)(ObjPtr->code[0] & 65535u);

        PSXGPU.GlobalFlagTP  = PSXGPU.GetFlagTP(obj);
        PSXGPU.GlobalFlagABR = PSXGPU.GetFlagABR(obj);
        PSXGPU.GlobalFlagTY  = PSXGPU.GetFlagTY(obj);
        PSXGPU.GlobalFlagTX  = PSXGPU.GetFlagTX(obj);
    }
Example #5
0
    private unsafe static void exeLineF2(PSX_LIBGPU.LINE_F2 *ObjPtr)
    {
        Boolean abe    = PSXGPU.IsSemiTrans(ObjPtr->code);
        Color32 color  = new Color32(ObjPtr->r0, ObjPtr->g0, ObjPtr->b0, Byte.MaxValue);
        Vector3 p      = new Vector3((Single)ObjPtr->x0, (Single)ObjPtr->y0, PSXGPU.zDepth);
        Vector3 vector = new Vector3((Single)ObjPtr->x1, (Single)ObjPtr->y1, PSXGPU.zDepth);

        PSXGPU.DrawLineG2(abe, color, p, color, vector);
    }
Example #6
0
    private unsafe static void exePolyF3(PSX_LIBGPU.POLY_F3 *ObjPtr)
    {
        Boolean abe    = PSXGPU.IsSemiTrans(ObjPtr->code);
        Color32 color  = new Color32(ObjPtr->r0, ObjPtr->g0, ObjPtr->b0, Byte.MaxValue);
        Vector3 p      = new Vector3((Single)ObjPtr->x0, (Single)ObjPtr->y0, PSXGPU.zDepth);
        Vector3 vector = new Vector3((Single)ObjPtr->x1, (Single)ObjPtr->y1, PSXGPU.zDepth);
        Vector3 p2     = new Vector3((Single)ObjPtr->x2, (Single)ObjPtr->y2, PSXGPU.zDepth);

        PSXGPU.DrawPolyG3(abe, color, p, color, vector, color, p2);
    }
Example #7
0
 public static void DrawLineG2(Boolean blend, Color32 beginColor, Vector3 begin, Color32 endColor, Vector3 end)
 {
     PSXGPU.SetMaterial(PSXGPU.matPSXShaderNoTexture);
     beginColor.a = (endColor.a = PSXGPU.SetShader(blend, PSXGPU.GlobalFlagABR, PSXGPU.drOffset));
     PSXGPU.SetPolygon(1);
     GL.Color(beginColor);
     GL.Vertex(begin);
     GL.Color(endColor);
     GL.Vertex(end);
     GL.End();
 }
Example #8
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);
    }
Example #9
0
    private unsafe static void exeLineG3(PSX_LIBGPU.LINE_G3 *ObjPtr)
    {
        Boolean abe    = PSXGPU.IsSemiTrans(ObjPtr->code);
        Color32 c      = new Color32(ObjPtr->r0, ObjPtr->g0, ObjPtr->b0, Byte.MaxValue);
        Color32 color  = new Color32(ObjPtr->r1, ObjPtr->g1, ObjPtr->b1, Byte.MaxValue);
        Color32 c2     = new Color32(ObjPtr->r2, ObjPtr->g2, ObjPtr->b2, Byte.MaxValue);
        Vector3 p      = new Vector3((Single)ObjPtr->x0, (Single)ObjPtr->y0, PSXGPU.zDepth);
        Vector3 p2     = new Vector3((Single)ObjPtr->x1, (Single)ObjPtr->y1, PSXGPU.zDepth);
        Vector3 vector = new Vector3((Single)ObjPtr->x2, (Single)ObjPtr->y2, PSXGPU.zDepth);

        PSXGPU.DrawLineG2(abe, c, p, color, p2);
        PSXGPU.DrawLineG2(abe, color, p2, c2, vector);
    }
Example #10
0
 public static void DrawPolyG3(Boolean abe, Color32 c0, Vector3 p0, Color32 c1, Vector3 p1, Color32 c2, Vector3 p2)
 {
     PSXGPU.SetMaterial(PSXGPU.matPSXShaderNoTexture);
     c0.a = (c1.a = (c2.a = PSXGPU.SetShader(abe, PSXGPU.GlobalFlagABR, PSXGPU.drOffset)));
     PSXGPU.SetPolygon(4);
     GL.Color(c0);
     GL.Vertex(p0);
     GL.Color(c1);
     GL.Vertex(p1);
     GL.Color(c2);
     GL.Vertex(p2);
     GL.End();
 }
Example #11
0
 static PSXGPU()
 {
     PSXGPU.InitMaterial();
     PSXGPU.p1            = default(Vector3);
     PSXGPU.uv0           = default(Vector3);
     PSXGPU.uv1           = default(Vector3);
     PSXGPU.constOffset   = new Vector4(-9999f, -9999f, -9999f, 0.5f);
     PSXGPU.constTexSize  = new Vector4(-9999f, -9999f, 0f, 0f);
     PSXGPU.constOffsetB  = new Vector4(-9999f, -9999f, -9999f, 0.5f);
     PSXGPU.constTexSizeB = new Vector4(-9999f, -9999f, 0f, 0f);
     PSXGPU.isNeedSetPass = true;
     PSXGPU.isNeedEnd     = false;
     PSXGPU.blendIndex    = -1;
     PSXGPU.texKey        = 4294967280u;
 }
Example #12
0
 public static void DrawTile(Boolean abe, Color32 c0, Vector3 p0, Vector2 size)
 {
     PSXGPU.SetMaterial(PSXGPU.matPSXShaderNoTexture);
     c0.a = PSXGPU.SetShader(abe, PSXGPU.GlobalFlagABR, PSXGPU.drOffset);
     PSXGPU.SetPolygon(7);
     GL.Color(c0);
     GL.Vertex(p0);
     GL.Color(c0);
     GL.Vertex(p0 + new Vector3(size.x, 0f, 0f));
     GL.Color(c0);
     GL.Vertex(p0 + new Vector3(size.x, size.y, 0f));
     GL.Color(c0);
     GL.Vertex(p0 + new Vector3(0f, size.y, 0f));
     GL.End();
 }
Example #13
0
    private unsafe static void exePolyG4(PSX_LIBGPU.POLY_G4 *ObjPtr)
    {
        Boolean abe     = PSXGPU.IsSemiTrans(ObjPtr->code);
        Color32 c       = new Color32(ObjPtr->r0, ObjPtr->g0, ObjPtr->b0, Byte.MaxValue);
        Color32 c2      = new Color32(ObjPtr->r1, ObjPtr->g1, ObjPtr->b1, Byte.MaxValue);
        Color32 color   = new Color32(ObjPtr->r2, ObjPtr->g2, ObjPtr->b2, Byte.MaxValue);
        Color32 c3      = new Color32(ObjPtr->r3, ObjPtr->g3, ObjPtr->b3, Byte.MaxValue);
        Vector3 p       = new Vector3((Single)ObjPtr->x0, (Single)ObjPtr->y0, PSXGPU.zDepth);
        Vector3 vector  = new Vector3((Single)ObjPtr->x1, (Single)ObjPtr->y1, PSXGPU.zDepth);
        Vector3 vector2 = new Vector3((Single)ObjPtr->x2, (Single)ObjPtr->y2, PSXGPU.zDepth);
        Vector3 p2      = new Vector3((Single)ObjPtr->x3, (Single)ObjPtr->y3, PSXGPU.zDepth);

        PSXGPU.DrawPolyG3(abe, c, p, c2, vector, color, vector2);
        PSXGPU.DrawPolyG3(abe, color, vector2, c2, vector, c3, p2);
    }
Example #14
0
    public static void DrawPolyGT3(Int32 drawMode, Byte code, UInt16 clut, UInt16 tpage, Boolean tge, ref Color32 c0, ref PSX_LIBGPU.XY p0, ref PSX_LIBGPU.UV t0, ref Color32 c1, ref PSX_LIBGPU.XY p1, ref PSX_LIBGPU.UV t1, ref Color32 c2, ref PSX_LIBGPU.XY p2, ref PSX_LIBGPU.UV t2)
    {
        Byte    a       = c0.a;
        Byte    a2      = c1.a;
        Byte    a3      = c2.a;
        Boolean abe     = PSXGPU.IsSemiTrans(code);
        Int32   flagABR = PSXGPU.GetFlagABR(tpage);

        if ((drawMode & 1) != 0)
        {
            Int32 flagTP    = PSXGPU.GetFlagTP(tpage);
            Int32 flagTY    = PSXGPU.GetFlagTY(tpage);
            Int32 flagTX    = PSXGPU.GetFlagTX(tpage);
            Int32 flagClutY = PSXGPU.GetFlagClutY(clut);
            Int32 flagClutX = PSXGPU.GetFlagClutX(clut);
            PSXGPU.SetMaterial(PSXGPU.matPSXShaderTextureShading);
            PSXGPU.SetTexture(flagTP, flagTY, flagTX, flagClutY, flagClutX, FilterMode.Point);
            c0.a = (c1.a = (c2.a = PSXGPU.SetShader(abe, flagABR, PSXGPU.drOffset)));
            PSXGPU.SetPolygon(4);
        }
        else
        {
            c0.a = (c1.a = (c2.a = PSXGPU.GetAlpha(abe, flagABR)));
        }
        GL.Color(c0);
        GL.TexCoord2((Single)t0.u, (Single)t0.v);
        GL.Vertex3((Single)p0.x, (Single)p0.y, PSXGPU.zDepth);
        GL.Color(c1);
        GL.TexCoord2((Single)t1.u, (Single)t1.v);
        GL.Vertex3((Single)p1.x, (Single)p1.y, PSXGPU.zDepth);
        GL.Color(c2);
        GL.TexCoord2((Single)t2.u, (Single)t2.v);
        GL.Vertex3((Single)p2.x, (Single)p2.y, PSXGPU.zDepth);
        if ((drawMode & 2) != 0)
        {
            GL.End();
        }
        c0.a = a;
        c1.a = a2;
        c2.a = a3;
    }
Example #15
0
 private unsafe static void exePolyGT4(PSX_LIBGPU.POLY_GT4 *p)
 {
     PSXGPU.DrawPolyGT3(PSXGPU.DRAW_BEGIN, p->code, p->clut, p->tpage, false, ref p->rgbc0, ref p->xy0, ref p->uv0, ref p->rgbc1, ref p->xy1, ref p->uv1, ref p->rgbc2, ref p->xy2, ref p->uv2);
     PSXGPU.DrawPolyGT3(PSXGPU.DRAW_END, p->code, p->clut, p->tpage, false, ref p->rgbc2, ref p->xy2, ref p->uv2, ref p->rgbc1, ref p->xy1, ref p->uv1, ref p->rgbc3, ref p->xy3, ref p->uv3);
 }
Example #16
0
    public unsafe static void exePrim(void *addr)
    {
        PSXGPU.isNeedEnd   = false;
        PSXGPU.curMaterial = (PSXMaterial)null;
        switch (PSXGPU.ff9debugGetPrimType((PSX_LIBGPU.P_TAG *)addr, true))
        {
        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_POLY_F3:
            PSXGPU.exePolyF3((PSX_LIBGPU.POLY_F3 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_POLY_FT3:
            PSXGPU.exePolyFT3((PSX_LIBGPU.POLY_FT3 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_POLY_G3:
            PSXGPU.exePolyG3((PSX_LIBGPU.POLY_G3 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_POLY_GT3:
            PSXGPU.exePolyGT3((PSX_LIBGPU.POLY_GT3 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_POLY_F4:
            PSXGPU.exePolyF4((PSX_LIBGPU.POLY_F4 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_POLY_FT4:
            PSXGPU.exePolyFT4((PSX_LIBGPU.POLY_FT4 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_POLY_G4:
            PSXGPU.exePolyG4((PSX_LIBGPU.POLY_G4 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_POLY_GT4:
            PSXGPU.exePolyGT4((PSX_LIBGPU.POLY_GT4 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_SPRT_8:
            PSXGPU.exeSPRT_8((PSX_LIBGPU.SPRT_8 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_SPRT_16:
            PSXGPU.exeSPRT_16((PSX_LIBGPU.SPRT_16 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_SPRT:
            PSXGPU.exeSPRT((PSX_LIBGPU.SPRT *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_TILE_1:
            PSXGPU.exeTILE_1((PSX_LIBGPU.TILE_1 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_TILE_8:
            PSXGPU.exeTILE_8((PSX_LIBGPU.TILE_8 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_TILE_16:
            PSXGPU.exeTILE_16((PSX_LIBGPU.TILE_16 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_TILE:
            PSXGPU.exeTILE((PSX_LIBGPU.TILE *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_LINE_F2:
            PSXGPU.exeLineF2((PSX_LIBGPU.LINE_F2 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_LINE_G2:
            PSXGPU.exeLineG2((PSX_LIBGPU.LINE_G2 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_LINE_F3:
            PSXGPU.exeLineF3((PSX_LIBGPU.LINE_F3 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_LINE_G3:
            PSXGPU.exeLineG3((PSX_LIBGPU.LINE_G3 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_LINE_F4:
            PSXGPU.exeLineF4((PSX_LIBGPU.LINE_F4 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_LINE_G4:
            PSXGPU.exeLineG4((PSX_LIBGPU.LINE_G4 *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_DR_TWIN:
            PSXGPU.exeDR_TWIN((PSX_LIBGPU.DR_TWIN *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_DR_AREA:
            PSXGPU.exeDR_AREA((PSX_LIBGPU.DR_AREA *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_DR_OFFSET:
            PSXGPU.exeDR_OFFSET((PSX_LIBGPU.DR_OFFSET *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_DR_MODE:
            PSXGPU.exeDR_MODE((PSX_LIBGPU.DR_MODE *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_DR_ENV:
            PSXGPU.exeDR_ENV((PSX_LIBGPU.DR_ENV *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_DR_LOAD:
            PSXGPU.exeDR_LOAD((PSX_LIBGPU.DR_LOAD *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_DR_TPAGE:
            PSXGPU.exeDR_TPAGE((PSX_LIBGPU.DR_TPAGE *)addr);
            break;

        case PSXGPU.FF9DebugPrimType.FF9DEBUG_PRIMTYPE_DR_STP:
            PSXGPU.exeDR_STP((PSX_LIBGPU.DR_STP *)addr);
            break;
        }
        if (PSXGPU.isNeedEnd)
        {
        }
    }
Example #17
0
 public Color32[] CreateBufferColor32(Int32 tp, Int32 tx, Int32 ty, Int32 u, Int32 v, Int32 w, Int32 h, Int32 clutX, Int32 clutY, Boolean enableSemiTransparent, Int32 abr)
 {
     Color32[] array = new Color32[w * h];
     ty    = PSXGPU.GetPixelCoorTY(ty);
     tx    = PSXGPU.GetPixelCoorTX(tx);
     clutY = PSXGPU.GetPixelCoorClutY(clutY);
     clutX = PSXGPU.GetPixelCoorClutX(clutX);
     if (tp == 0)
     {
         Int32 num = w / 4;
         if (w % 4 != 0)
         {
             num++;
         }
         for (Int32 i = 0; i < h; i++)
         {
             Int32 num2 = 0;
             for (Int32 j = 0; j < num; j++)
             {
                 Int32  num3       = tx + u / 4 + j;
                 Int32  num4       = ty + v + i;
                 Int32  pixelIndex = num3 + num4 * 1024;
                 UInt16 pixel      = this.GetPixel(pixelIndex);
                 Int32  num5       = j * 4 + i * w;
                 if (num2 == w)
                 {
                     break;
                 }
                 Int32 dataFromBit = (Int32)this.GetDataFromBit((UInt32)pixel, 0, 3);
                 array[num5] = PSX.ConvertABGR16toABGR32(this.GetPixel(clutX + clutY * 1024 + dataFromBit), enableSemiTransparent, abr);
                 num2++;
                 num5++;
                 if (num2 == w)
                 {
                     break;
                 }
                 dataFromBit = (Int32)this.GetDataFromBit((UInt32)pixel, 4, 7);
                 array[num5] = PSX.ConvertABGR16toABGR32(this.GetPixel(clutX + clutY * 1024 + dataFromBit), enableSemiTransparent, abr);
                 num2++;
                 num5++;
                 if (num2 == w)
                 {
                     break;
                 }
                 dataFromBit = (Int32)this.GetDataFromBit((UInt32)pixel, 8, 11);
                 array[num5] = PSX.ConvertABGR16toABGR32(this.GetPixel(clutX + clutY * 1024 + dataFromBit), enableSemiTransparent, abr);
                 num2++;
                 num5++;
                 if (num2 == w)
                 {
                     break;
                 }
                 dataFromBit = (Int32)this.GetDataFromBit((UInt32)pixel, 12, 15);
                 array[num5] = PSX.ConvertABGR16toABGR32(this.GetPixel(clutX + clutY * 1024 + dataFromBit), enableSemiTransparent, abr);
                 num2++;
             }
         }
     }
     else if (tp == 1)
     {
         Int32 num6 = w / 2;
         if (w % 2 != 0)
         {
             num6++;
         }
         for (Int32 k = 0; k < h; k++)
         {
             Int32 num7 = 0;
             for (Int32 l = 0; l < num6; l++)
             {
                 Int32  num8        = tx + u / 2 + l;
                 Int32  num9        = ty + v + k;
                 Int32  pixelIndex2 = num8 + num9 * 1024;
                 UInt16 pixel2      = this.GetPixel(pixelIndex2);
                 Int32  num10       = l * 2 + k * w;
                 if (num7 == w)
                 {
                     break;
                 }
                 Int32 dataFromBit2 = (Int32)this.GetDataFromBit((UInt32)pixel2, 0, 7);
                 array[num10] = PSX.ConvertABGR16toABGR32(this.GetPixel(clutX + clutY * 1024 + dataFromBit2), enableSemiTransparent, abr);
                 num7++;
                 num10++;
                 if (num7 == w)
                 {
                     break;
                 }
                 dataFromBit2 = (Int32)this.GetDataFromBit((UInt32)pixel2, 8, 15);
                 array[num10] = PSX.ConvertABGR16toABGR32(this.GetPixel(clutX + clutY * 1024 + dataFromBit2), enableSemiTransparent, abr);
                 num7++;
             }
         }
     }
     else if (tp == 2)
     {
         for (Int32 m = 0; m < h; m++)
         {
             for (Int32 n = 0; n < w; n++)
             {
                 Int32 num11       = tx + u + n;
                 Int32 num12       = ty + v + m;
                 Int32 pixelIndex3 = num11 + num12 * 1024;
                 Int32 num13       = n + m * w;
                 array[num13] = PSX.ConvertABGR16toABGR32(this.GetPixel(pixelIndex3), enableSemiTransparent, abr);
             }
         }
     }
     return(array);
 }
Example #18
0
 public static void DrawLine(Vector3 start, Vector3 end, [Optional] Color color, float duration = 0.0f, bool depthTest = true)
 {
     PSXGPU.DrawLineG2(false, color, start, color, end);
 }