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; } }
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"; } }
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; }
//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); }