User can choose how much he willing to spent on each frame (based on pull request from 'Rolf Aretz Lap'

This commit is contained in:
Laurent Clouet
2017-04-25 13:06:23 +02:00
parent 6f6af88582
commit 0508db7f75
7 changed files with 91 additions and 4 deletions

View File

@@ -44,7 +44,10 @@ import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.JTextField;
import javax.swing.SpinnerNumberModel;
import com.sheepit.client.Configuration;
import com.sheepit.client.Configuration.ComputeType;
import com.sheepit.client.SettingsLoader;
@@ -69,6 +72,7 @@ public class Settings implements Activity {
private List<JCheckBoxGPU> useGPUs;
private JSlider cpuCores;
private JSlider ram;
private JSpinner renderTime;
private JSlider priority;
private JTextField proxy;
@@ -303,7 +307,7 @@ public class Settings implements Activity {
parent.getContentPane().add(compute_devices_panel, constraints);
// other
JPanel advanced_panel = new JPanel(new GridLayout(3, 2));
JPanel advanced_panel = new JPanel(new GridLayout(4, 2));
advanced_panel.setBorder(BorderFactory.createTitledBorder("Advanced options"));
JLabel proxyLabel = new JLabel("Proxy:");
@@ -316,6 +320,17 @@ public class Settings implements Activity {
advanced_panel.add(proxyLabel);
advanced_panel.add(proxy);
JLabel renderTimeLabel = new JLabel("Max time per frame (in minute):");
int val = 0;
if (parent.getConfiguration().getMaxRenderTime() > 0) {
val = parent.getConfiguration().getMaxRenderTime() / 60;
}
renderTime = new JSpinner(new SpinnerNumberModel(val,0,1000,1));
advanced_panel.add(renderTimeLabel);
advanced_panel.add(renderTime);
JLabel customTileSizeLabel = new JLabel("Custom render tile size:");
customTileSize = new JCheckBox("", config.getTileSize() != -1);
advanced_panel.add(customTileSizeLabel);
@@ -533,6 +548,12 @@ public class Settings implements Activity {
config.setMaxMemory(max_ram);
}
int max_rendertime = -1;
if (renderTime != null) {
max_rendertime = (Integer)renderTime.getValue() * 60;
config.setMaxRenderTime(max_rendertime);
}
config.setUsePriority(priority.getValue());
String proxyText = null;
@@ -572,7 +593,7 @@ public class Settings implements Activity {
}
if (saveFile.isSelected()) {
new SettingsLoader(login.getText(), new String(password.getPassword()), proxyText, method, selected_gpu, cpu_cores, max_ram, cachePath, autoSignIn.isSelected(), GuiSwing.type, tile, priority.getValue()).saveFile();
new SettingsLoader(login.getText(), new String(password.getPassword()), proxyText, method, selected_gpu, cpu_cores, max_ram, max_rendertime, cachePath, autoSignIn.isSelected(), GuiSwing.type, tile, priority.getValue()).saveFile();
}
else {
try {