예제 #1
0
        private void FormCudaSettings_Load(object sender, EventArgs e)
        {
            if (CudaPainter.isCudaAvailable())
            {
                if (CudaPainter.corrupted)
                {
                    label1.Text          = "There was error in CUDA. Restart application.";
                    labelProperties.Text = CudaPainter.errorMessage;
                    groupBox1.Enabled    = false;
                }
                else
                {
                    label1.Text       = "CUDA is available!";
                    groupBox1.Enabled = true;

                    if (CudaPainter.enabled)
                    {
                        checkBox1.Checked    = true;
                        labelProperties.Text = CudaPainter.getPropertiesString();
                    }
                    else
                    {
                        checkBox1.Checked    = false;
                        labelProperties.Text = "";
                    }
                }
            }
            else
            {
                label1.Text       = "CUDA is unavailable. You must have Nvidia GPU and CUDA driver installed.";
                groupBox1.Enabled = false;
            }
        }
예제 #2
0
        void refreshWindow()
        {
            int frameCount = movie.frameCount();

            labelFrameInfo.Text                         = getShowFrameInfo();
            hScrollBarFrames.Enabled                    = frameCount != 0;
            tabPageAnimation.Enabled                    = frameCount != 0;
            removeFrameToolStripMenuItem.Enabled        = frameCount != 0;
            cloneToWorkingAreaToolStripMenuItem.Enabled = frameCount != 0;
            makeAnimationToolStripMenuItem.Enabled      = frameCount != 0;
            remove1FrameToolStripMenuItem.Enabled       = (frameCount > 1);
            remove10ToolStripMenuItem.Enabled           = (frameCount > 10);
            replaceToolStripMenuItem.Enabled            = (frameCount != 0);
            clearToolStripMenuItem.Enabled              = (frameCount != 0);


            this.Text = applicationTitle + " - " +
                        ((currentProjectFile == null)? "New project": currentProjectFile)
                        + (currentProjectModified ? "*" : "");

            panel1.BackColor = workFrame.colorMap[(int)numericUpDown10.Value];
            panelAnnotationColor.BackColor = grid.annotationColor;



            if (CudaPainter.enabled)
            {
                if (CudaPainter.canRender(workFrame))
                {
                    LabelCuda.Text = "CUDA Enabled";
                }
                else
                {
                    LabelCuda.Text = "CUDA Enabled but cannot be used";
                }
            }
            else
            {
                LabelCuda.Text = "CUDA Disabled";
            }
        }
예제 #3
0
        private void checkBox1_Click(object sender, EventArgs e)
        {
            if (checkBox1.Checked && !CudaPainter.enabled)
            {
                CudaPainter.cudaEnable();
                if (!CudaPainter.enabled)
                {
                    labelProperties.Text = "Error while enabling CUDA:\n" + CudaPainter.errorMessage;
                }
                else
                {
                    labelProperties.Text = CudaPainter.getPropertiesString();
                }
            }
            else
            {
                CudaPainter.cudaDisable();
                labelProperties.Text = "";
            }

            checkBox1.Checked = CudaPainter.enabled;
        }
예제 #4
0
파일: Frame.cs 프로젝트: fedimser/Aldyparen
        //Real size is twice more!
        unsafe public Bitmap getFrame(int halfWidth, int halfHeight, Grid grid)
        {
            setSize(2 * halfWidth, 2 * halfHeight);
            Bitmap result = null;

            if (CudaPainter.enabled && CudaPainter.canRender(this) && !CudaPainter.corrupted && !CudaPainter.busy)
            {
                try
                {
                    result = CudaPainter.render(realHalfWidth, realHalfHeight, this);
                }
                catch (Exception ex)
                {
                    CudaPainter.corrupted = true;
                    MessageBox.Show("Error while rendering picture on GPU.\n" +
                                    ex.Message +
                                    "\n\nRecommendations:\n" +
                                    "0.Restart application immidiately.\n" +
                                    "1.Increase timeout in registry (HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\GraphicsDrivers\\...)\n" +
                                    "2.Use row Scan\n" +
                                    "3.Request smaller frame\n" +
                                    "4.Don't use CUDA.");
                    return(null);
                }
            }
            else
            {
                if (genMode == GeneratingMode.Delegate)
                {
                    result = getFrameDelegate();
                }
                else
                {
                    result = getFrameFormula();
                }
            }
            drawGrid(ref result, grid);
            return(result);
        }