public TextureChunkController(NSFController nsfcontroller,TextureChunk texturechunk)
     : base(nsfcontroller,texturechunk)
 {
     this.texturechunk = texturechunk;
     Node.Text = string.Format("Texture Chunk ({0})",Entry.EIDToString(texturechunk.EID));
     Node.ImageKey = "texturechunk";
     Node.SelectedImageKey = "texturechunk";
 }
Beispiel #2
0
 public TextureChunkBox(TextureChunk chunk)
 {
     tbcTabs = new TabControl();
     tbcTabs.Dock = DockStyle.Fill;
     {
         MysteryBox mystery = new MysteryBox(chunk.Data);
         mystery.Dock = DockStyle.Fill;
         TabPage page = new TabPage("Hex");
         page.Controls.Add(mystery);
         tbcTabs.TabPages.Add(page);
     }
     {
         Bitmap bitmap = new Bitmap(512,128,PixelFormat.Format16bppArgb1555);
         Rectangle brect = new Rectangle(Point.Empty,bitmap.Size);
         BitmapData bdata = bitmap.LockBits(brect,ImageLockMode.WriteOnly,PixelFormat.Format16bppArgb1555);
         try
         {
             for (int y = 0;y < 128;y++)
             {
                 for (int x = 0;x < 512;x++)
                 {
                     byte color = chunk.Data[x + y * 512];
                     color >>= 3;
                     short color16 = PixelConv.Pack1555(1,color,color,color);
                     System.Runtime.InteropServices.Marshal.WriteInt16(bdata.Scan0,x * 2 + y * bdata.Stride,color16);
                 }
             }
         }
         finally
         {
             bitmap.UnlockBits(bdata);
         }
         PictureBox picture = new PictureBox();
         picture.Dock = DockStyle.Fill;
         picture.Image = bitmap;
         TabPage page = new TabPage("Monochrome 8");
         page.Controls.Add(picture);
         tbcTabs.TabPages.Add(page);
         tbcTabs.SelectedTab = page;
     }
     {
         Bitmap bitmap = new Bitmap(256,128,PixelFormat.Format16bppArgb1555);
         Rectangle brect = new Rectangle(Point.Empty,bitmap.Size);
         BitmapData bdata = bitmap.LockBits(brect,ImageLockMode.WriteOnly,PixelFormat.Format16bppArgb1555);
         try
         {
             for (int y = 0;y < 128;y++)
             {
                 for (int x = 0;x < 256;x++)
                 {
                     short color = BitConv.FromInt16(chunk.Data,x * 2 + y * 512);
                     byte alpha;
                     byte red;
                     byte green;
                     byte blue;
                     PixelConv.Unpack1555(color,out alpha,out blue,out green,out red);
                     color = PixelConv.Pack1555(1,red,green,blue);
                     System.Runtime.InteropServices.Marshal.WriteInt16(bdata.Scan0,x * 2 + y * bdata.Stride,color);
                 }
             }
         }
         finally
         {
             bitmap.UnlockBits(bdata);
         }
         PictureBox picture = new PictureBox();
         picture.Dock = DockStyle.Fill;
         picture.Image = bitmap;
         TabPage page = new TabPage("BGR555");
         page.Controls.Add(picture);
         tbcTabs.TabPages.Add(page);
     }
     Controls.Add(tbcTabs);
 }