Пример #1
0
 private unsafe static void exeDR_AREA(PSX_LIBGPU.DR_AREA *ObjPtr)
 {
     PSXGPU.drAreaX = (Int32)(ObjPtr->code[1] >> 16);
     if (PSXGPU.drAreaX != 0)
     {
         GL.Viewport(new Rect(0f, 0f, (Single)PSXTextureMgr.GEN_TEXTURE_W, (Single)PSXTextureMgr.GEN_TEXTURE_H));
         GL.LoadIdentity();
         Matrix4x4 mat = Matrix4x4.Ortho(0f, (Single)PSXTextureMgr.GEN_TEXTURE_W, 0f, (Single)PSXTextureMgr.GEN_TEXTURE_H, FieldMap.HalfScreenWidth, 65536f);
         mat.m22 = -1f;
         mat.m23 = 0f;
         GL.LoadProjectionMatrix(mat);
         PSXGPU.drOffset.x       = PSXGPU.drOffset.x - (Single)PSXTextureMgr.GEN_TEXTURE_X;
         PSXGPU.drOffset.y       = PSXGPU.drOffset.y - (Single)PSXTextureMgr.GEN_TEXTURE_Y;
         PSXGPU.curRenderTexture = RenderTexture.active;
         RenderTexture.active    = PSXTextureMgr.genTexture;
     }
     else
     {
         SFX.ResetViewPort();
         if (SFX.isDebugPng)
         {
             Texture2D texture2D = new Texture2D(PSXTextureMgr.GEN_TEXTURE_W, PSXTextureMgr.GEN_TEXTURE_H, TextureFormat.ARGB32, false);
             texture2D.ReadPixels(new Rect(0f, 0f, (Single)PSXTextureMgr.GEN_TEXTURE_W, (Single)PSXTextureMgr.GEN_TEXTURE_H), 0, 0);
             texture2D.Apply();
             Byte[] bytes = texture2D.EncodeToPNG();
             File.WriteAllBytes("Temp/gen.png", bytes);
         }
         RenderTexture.active = PSXGPU.curRenderTexture;
     }
 }
Пример #2
0
    private unsafe static void DR_AREA(PSX_LIBGPU.DR_AREA *obj)
    {
        SFXRender.PushCommandBuffer();
        Int32 num = (Int32)(obj->code[1] >> 16);

        if (num != 0)
        {
            SFXMeshBase.drOffsetX -= PSXTextureMgr.GEN_TEXTURE_X;
            SFXMeshBase.drOffsetY -= PSXTextureMgr.GEN_TEXTURE_Y;
            SFXRender.commandBuffer.Add(new SFXRenderTextureBegin());
        }
        else
        {
            SFXRender.commandBuffer.Add(new SFXRenderTextureEnd());
        }
    }