Beispiel #1
0
        public void CalcPaletteSplit()
        {
            int[] curPal = new int[16];
            for (int i = 0; i < 16; i++)
            {
                curPal[i] = Palette[0, 0, i];
            }

            // Raz splits
            for (int y = 0; y < 272; y++)
            {
                for (int x = 0; x < 96; x++)
                {
                    for (int i = 0; i < 16; i++)
                    {
                        Palette[x, y, i] = curPal[i];
                    }
                }
            }

            int numCol = 0;

            for (int y = 0; y < 272; y++)
            {
                LigneSplit lSpl = splitEcran.LignesSplit[y];
                numCol = lSpl.numPen;
                int xpos = lSpl.retard >> 2;
                // de x à xpos => faire palette = curPal
                int x = AppliquePalette(0, y, xpos, curPal);
                for (int ns = 0; ns < 6; ns++)
                {
                    Split s = lSpl.GetSplit(ns);
                    if (s.enable)
                    {
                        xpos          += s.longueur >> 2;
                        curPal[numCol] = s.couleur;
                        if (xpos > 96)
                        {
                            xpos = 96;
                        }

                        // de x à xpos => faire palette = curPal
                        x = AppliquePalette(x, y, xpos, curPal);
                    }
                    else
                    {
                        break;
                    }
                }
                // Terminer ligne
                AppliquePalette(x, y, 96, curPal);
                if (y < 271 && lSpl.changeMode)
                {
                    tabMode[y + 1] = lSpl.newMode;
                }
            }
        }
Beispiel #2
0
        public void Render()
        {
            if (doRender)
            {
                bitmapCpc.CalcPaletteSplit();
                bitmapCpc.Render(bmpLock, offsetX, offsetY, false);
                DrawZoomPicture();
                if (chkChgt.Checked)
                {
                    LigneSplit lSpl = bitmapCpc.splitEcran.GetLigne((int)numLigne.Value);
                    Graphics   g    = Graphics.FromImage(pictureBox.Image);
                    numCol = lSpl.numPen;
                    int xpos = lSpl.retard >> 2;
                    int x    = xpos;
                    XorDrawing.DrawXorLine(g, (Bitmap)pictureBox.Image, x << 3, 0, x << 3, pictureBox.Image.Height);
                    for (int ns = 0; ns < 6; ns++)
                    {
                        Split s = lSpl.GetSplit(ns);
                        if (s.enable)
                        {
                            xpos += s.longueur >> 2;

                            if (xpos > 96)
                            {
                                xpos = 96;
                            }

                            // de x à xpos => faire palette = curPal
                            x = xpos;
                            XorDrawing.DrawXorLine(g, (Bitmap)pictureBox.Image, x << 3, 0, x << 3, pictureBox.Image.Height);
                        }
                        else
                        {
                            break;
                        }
                    }
                }
                pictureBox.Refresh();
            }
        }
Beispiel #3
0
 private void DisplayLigne(bool forceRender)
 {
     doRender            = false;
     curLigneSplit       = bitmapCpc.splitEcran.GetLigne((int)numLigne.Value);
     numPen.Value        = curLigneSplit.numPen;
     lblColor0.Visible   = largSplit0.Visible = chkSplit0.Checked = curLigneSplit.GetSplit(0).enable;
     largSplit0.Value    = curLigneSplit.GetSplit(0).longueur;
     lblColor0.BackColor = System.Drawing.Color.FromArgb(BitmapCpc.RgbCPC[curLigneSplit.GetSplit(0).couleur].GetColorArgb);
     lblColor1.Visible   = largSplit1.Visible = chkSplit1.Checked = curLigneSplit.GetSplit(1).enable;
     largSplit1.Value    = curLigneSplit.GetSplit(1).longueur;
     lblColor1.BackColor = System.Drawing.Color.FromArgb(BitmapCpc.RgbCPC[curLigneSplit.GetSplit(1).couleur].GetColorArgb);
     lblColor2.Visible   = largSplit2.Visible = chkSplit2.Checked = curLigneSplit.GetSplit(2).enable;
     largSplit2.Value    = curLigneSplit.GetSplit(2).longueur;
     lblColor2.BackColor = System.Drawing.Color.FromArgb(BitmapCpc.RgbCPC[curLigneSplit.GetSplit(2).couleur].GetColorArgb);
     lblColor3.Visible   = largSplit3.Visible = chkSplit3.Checked = curLigneSplit.GetSplit(3).enable;
     largSplit3.Value    = curLigneSplit.GetSplit(3).longueur;
     lblColor3.BackColor = System.Drawing.Color.FromArgb(BitmapCpc.RgbCPC[curLigneSplit.GetSplit(3).couleur].GetColorArgb);
     lblColor4.Visible   = largSplit4.Visible = chkSplit4.Checked = curLigneSplit.GetSplit(4).enable;
     largSplit4.Value    = curLigneSplit.GetSplit(4).longueur;
     lblColor4.BackColor = System.Drawing.Color.FromArgb(BitmapCpc.RgbCPC[curLigneSplit.GetSplit(4).couleur].GetColorArgb);
     lblColor5.Visible   = largSplit5.Visible = chkSplit5.Checked = curLigneSplit.GetSplit(5).enable;
     largSplit5.Value    = curLigneSplit.GetSplit(5).longueur;
     lblColor5.BackColor = System.Drawing.Color.FromArgb(BitmapCpc.RgbCPC[curLigneSplit.GetSplit(5).couleur].GetColorArgb);
     doRender            = true;
     if (chkAutoApplique.Checked || forceRender)
     {
         UpdatePalette();
         Render();
     }
 }
Beispiel #4
0
 private void ChangeLargeur(int index, NumericUpDown val)
 {
     curLigneSplit.GetSplit(index).longueur = ((int)val.Value) & 0xFFC;
     DisplayLigne(false);
 }