use of org.jwildfire.base.ResolutionProfile in project JWildfire by thargor6.
the class TinaController method resolutionProfileCmb_changed.
public void resolutionProfileCmb_changed() {
if (noRefresh) {
return;
}
if (getCurrFlame() == null) {
return;
}
noRefresh = true;
try {
ResolutionProfile profile = getResolutionProfile();
getCurrFlame().setResolutionProfile(profile);
removeFlamePanel();
refreshFlameImage(true, false, 1, true, false);
data.resolutionProfileCmb.requestFocus();
} finally {
noRefresh = false;
}
}
use of org.jwildfire.base.ResolutionProfile in project JWildfire by thargor6.
the class TinaInteractiveRendererController method resumeBtn_clicked.
public void resumeBtn_clicked() {
try {
JFileChooser chooser = new JWFRenderFileChooser(prefs);
if (prefs.getInputFlamePath() != null) {
try {
chooser.setCurrentDirectory(new File(prefs.getInputFlamePath()));
} catch (Exception ex) {
ex.printStackTrace();
}
}
if (chooser.showOpenDialog(imageRootPanel) == JFileChooser.APPROVE_OPTION) {
cancelRender();
File file = chooser.getSelectedFile();
Flame newFlame = new Flame();
FlameRenderer newRenderer = new FlameRenderer(newFlame, prefs, newFlame.isBGTransparency(), false);
ResumedFlameRender resumedRender = newRenderer.resumeRenderFlame(file.getAbsolutePath());
threads = new RenderThreads(resumedRender.getThreads(), new ArrayList<Thread>());
Flame flame = currFlame = newRenderer.getFlame();
// setup size profile
{
int width = newRenderer.getRenderInfo().getImageWidth();
int height = newRenderer.getRenderInfo().getImageHeight();
ResolutionProfile selected = null;
boolean full = false;
boolean halve = false;
boolean quarter = false;
for (int i = 0; i < interactiveResolutionProfileCmb.getItemCount(); i++) {
ResolutionProfile profile = (ResolutionProfile) interactiveResolutionProfileCmb.getItemAt(i);
if (profile.getWidth() == width && profile.getHeight() == height) {
selected = profile;
full = true;
break;
}
}
if (selected == null) {
for (int i = 0; i < interactiveResolutionProfileCmb.getItemCount(); i++) {
ResolutionProfile profile = (ResolutionProfile) interactiveResolutionProfileCmb.getItemAt(i);
if (profile.getWidth() / 2 == width && profile.getHeight() / 2 == height) {
selected = profile;
halve = true;
break;
}
}
}
if (selected == null) {
for (int i = 0; i < interactiveResolutionProfileCmb.getItemCount(); i++) {
ResolutionProfile profile = (ResolutionProfile) interactiveResolutionProfileCmb.getItemAt(i);
if (profile.getWidth() / 4 == width && profile.getHeight() / 4 == height) {
selected = profile;
quarter = true;
break;
}
}
}
if (selected == null) {
selected = new ResolutionProfile(false, width, height);
full = true;
interactiveResolutionProfileCmb.addItem(selected);
}
boolean wasQuarterSelected = quarterSizeButton.isSelected();
boolean wasHalveSelected = halveSizeButton.isSelected();
boolean wasFullSelected = fullSizeButton.isSelected();
refreshing = true;
try {
quarterSizeButton.setSelected(quarter);
halveSizeButton.setSelected(halve);
fullSizeButton.setSelected(full);
} finally {
refreshing = false;
}
ResolutionProfile currSel = (ResolutionProfile) interactiveResolutionProfileCmb.getSelectedItem();
if (currSel == null || !currSel.equals(selected) || wasQuarterSelected != quarter || wasHalveSelected != halve || wasFullSelected != full) {
interactiveResolutionProfileCmb.setSelectedItem(selected);
refreshImagePanel();
} else {
clearScreen();
}
}
//
renderer = newRenderer;
setupProfiles(currFlame);
if (flame.getBgColorRed() > 0 || flame.getBgColorGreen() > 0 || flame.getBgColorBlue() > 0) {
image.fillBackground(flame.getBgColorRed(), flame.getBgColorGreen(), flame.getBgColorBlue());
}
renderer.registerIterationObserver(this);
displayUpdater = createDisplayUpdater();
displayUpdater.initRender(threads.getRenderThreads().size());
pausedRenderTime = resumedRender.getHeader().getElapsedMilliseconds();
renderStartTime = System.currentTimeMillis();
lastQuality = 0.0;
lastQualitySpeed = 0.0;
lastQualityTime = 0;
for (int i = 0; i < threads.getRenderThreads().size(); i++) {
AbstractRenderThread rThread = threads.getRenderThreads().get(i);
Thread eThread = startRenderThread(rThread);
threads.getExecutingThreads().add(eThread);
}
updateDisplayThread = new UpdateDisplayThread();
startDisplayThread(updateDisplayThread);
state = State.RENDER;
enableControls();
}
} catch (Throwable ex) {
errorHandler.handleError(ex);
}
}
use of org.jwildfire.base.ResolutionProfile in project JWildfire by thargor6.
the class ResolutionProfileDialog method setProfile.
public void setProfile(ResolutionProfile pProfile) {
refreshing = true;
try {
if (pProfile == null) {
getProfileCmb().setSelectedIndex(-1);
} else {
boolean found = false;
for (int i = 0; i < getProfileCmb().getItemCount(); i++) {
ResolutionProfile profile = (ResolutionProfile) getProfileCmb().getItemAt(i);
if (profile.toString().equals(pProfile.toString())) {
getProfileCmb().setSelectedIndex(i);
found = true;
break;
}
}
if (!found) {
getProfileCmb().setSelectedIndex(-1);
}
}
editStatus = getProfileCmb().getSelectedItem() != null ? EditStatus.BROWSE : EditStatus.CLOSE;
refreshProfileView();
enableControls();
} finally {
refreshing = false;
}
}
use of org.jwildfire.base.ResolutionProfile in project JWildfire by thargor6.
the class ResolutionProfileDialog method getProfiles.
public List<ResolutionProfile> getProfiles() {
List<ResolutionProfile> res = new ArrayList<ResolutionProfile>();
for (int i = 0; i < getProfileCmb().getItemCount(); i++) {
res.add((ResolutionProfile) getProfileCmb().getItemAt(i));
}
Collections.sort(res, new ResolutionProfileComparator());
return res;
}
use of org.jwildfire.base.ResolutionProfile in project JWildfire by thargor6.
the class ResolutionProfileDialog method refreshProfileView.
private void refreshProfileView() {
ResolutionProfile profile;
if (editStatus == EditStatus.NEW) {
profile = null;
} else {
profile = (ResolutionProfile) getProfileCmb().getSelectedItem();
}
if (profile == null) {
getWidthREd().setText("");
getHeightREd().setText("");
getDefaultCBx().setSelected(false);
} else {
getWidthREd().setText(String.valueOf(profile.getWidth()));
getHeightREd().setText(String.valueOf(profile.getHeight()));
getDefaultCBx().setSelected(profile.isDefaultProfile());
}
}
Aggregations