Example #1
0
void SceneSettingsPopup::update()
{
	TSceneProperties *sprop = getProperties();

	QString str;
	m_frameRateFld->setValue(sprop->getOutputProperties()->getFrameRate());

	TPixel32 col1, col2;
	Preferences::instance()->getChessboardColors(col1, col2);
	m_bgColorFld->setChessboardColors(col1, col2);

	TPixel bgColor = sprop->getBgColor();
	m_bgColorFld->setColor(bgColor);

	m_fieldGuideFld->setValue(sprop->getFieldGuideSize());
	m_aspectRatioFld->setValue(sprop->getFieldGuideAspectRatio());

	UnitParameters::setFieldGuideAspectRatio(sprop->getFieldGuideAspectRatio());
	m_fullcolorSubsamplingFld->setValue(sprop->getFullcolorSubsampling());
	if (m_tlvSubsamplingFld)
		m_tlvSubsamplingFld->setValue(sprop->getTlvSubsampling());
	int markerDistance = 0, markerOffset = 0;
	sprop->getMarkers(markerDistance, markerOffset);
	m_markerIntervalFld->setValue(markerDistance);
	m_startFrameFld->setValue(markerOffset + 1);
}
void RenderCommand::flashRender()
{
	ToonzScene *scene = TApp::instance()->getCurrentScene()->getScene();
	TSceneProperties *sprop = scene->getProperties();
	FILE *fileP = fopen(m_fp, "wb");
	if (!fileP)
		return;
	ProgressDialog pb("rendering " + toQString(m_fp), "Cancel", 0, m_numFrames);
	pb.show();

	TDimension cameraSize = scene->getCurrentCamera()->getRes();
	double frameRate = sprop->getOutputProperties()->getFrameRate();
	TFlash flash(
		cameraSize.lx,
		cameraSize.ly,
		m_numFrames,
		frameRate,
		sprop->getOutputProperties()->getFileFormatProperties("swf"));
	flash.setBackgroundColor(sprop->getBgColor());

	std::vector<TXshSoundColumn *> columns;
	scene->getSoundColumns(columns);
	if (!columns.empty()) {
		TXsheet::SoundProperties *prop = new TXsheet::SoundProperties();
		prop->m_frameRate = frameRate;
		TSoundTrack *st = scene->getXsheet()->makeSound(prop);
		if (st)
			flash.putSound(st, 0);
	}

	int i = 0;
	for (i = 0; i < m_numFrames; ++i, m_r += m_stepd) {
		flash.beginFrame(m_step * i + 1);
		TRasterFxP rfx = buildSceneFx(scene, m_r, 0, false);
		assert(rfx);
		rfx->compute(flash, tround(m_r)); // WARNING: This should accept a DOUBLE...
#ifdef BRAVODEMO
		TRasterImageP ri(loadBravo(scene->getCurrentCamera()->getRes()));
		int lx = ri->getRaster()->getLx();
		int ly = ri->getRaster()->getLx();
		flash.pushMatrix();
		int dx = tround(0.1 * (cameraSize.lx - lx));
		int dy = tround(0.1 * (cameraSize.ly - ly));
		flash.multMatrix(TTranslation((cameraSize.lx - lx) / 2 - (dx > 0 ? dx : 0), -(cameraSize.ly - ly) / 2 + (dy > 0 ? dy : 0)));
		flash.draw(ri, 0);
		flash.popMatrix();
#endif
		flash.endFrame(i == m_numFrames - 1, 0, true);
		if (pb.wasCanceled())
			break;
		pb.setValue(i + 1);
	}

	flash.writeMovie(fileP);
	fclose(fileP);

	TSystem::showDocument(m_fp);
	//QDesktopServices::openUrl(QUrl(toQString(m_fp)));

	TImageCache::instance()->remove(toString(m_fp.getWideString() + L".0"));
	TNotifier::instance()->notify(TSceneNameChange());
}
Example #3
0
SceneSettingsPopup::SceneSettingsPopup()
	: QDialog(TApp::instance()->getMainWindow())
{
	setWindowTitle(tr("Scene Settings"));
	setObjectName("SceneSettings");
	TSceneProperties *sprop = getProperties();

	//Frame Rate
	double frameRate = sprop->getOutputProperties()->getFrameRate();
	m_frameRateFld = new DoubleLineEdit(this, frameRate);
	m_frameRateFld->setRange(1, 100);
	m_frameRateFld->setDecimals(2);

	//Camera BG color
	m_bgColorFld = new ColorField(this, true, sprop->getBgColor());

	//Field Guide Size - A/R
	int fieldGuideSize = sprop->getFieldGuideSize();
	m_fieldGuideFld = new IntLineEdit(this, fieldGuideSize, 0, 50);
	m_aspectRatioFld = new DoubleLineEdit(this, 1.38);
	m_aspectRatioFld->setRange(-10000.0, 10000.0);
	m_aspectRatioFld->setDecimals(5);

	//Image Subsampling  - Tlv Subsampling
	int fullcolorSubsampling = sprop->getFullcolorSubsampling();
	m_fullcolorSubsamplingFld = new IntLineEdit(this, fullcolorSubsampling, 1);

	int tlvSubsampling = sprop->getTlvSubsampling();
	m_tlvSubsamplingFld = new IntLineEdit(this, tlvSubsampling, 1);

	//Marker Interval - Start Frame
	int distance, offset;
	sprop->getMarkers(distance, offset);
	m_markerIntervalFld = new IntLineEdit(this, distance, 0);
	m_startFrameFld = new IntLineEdit(this, offset);

	// layout
	QGridLayout *mainLayout = new QGridLayout();
	mainLayout->setMargin(10);
	mainLayout->setHorizontalSpacing(5);
	mainLayout->setVerticalSpacing(15);
	{
		//Frame Rate
		mainLayout->addWidget(new QLabel(tr("Frame Rate:"), this), 0, 0, Qt::AlignRight | Qt::AlignVCenter);
		mainLayout->addWidget(m_frameRateFld, 0, 1);
		//Camera BG color
		mainLayout->addWidget(new QLabel(tr("Camera BG Color:"), this), 1, 0, Qt::AlignRight | Qt::AlignVCenter);
		mainLayout->addWidget(m_bgColorFld, 1, 1, 1, 4);
		//Field Guide Size - A/R
		mainLayout->addWidget(new QLabel(tr("Field Guide Size:"), this), 2, 0, Qt::AlignRight | Qt::AlignVCenter);
		mainLayout->addWidget(m_fieldGuideFld, 2, 1);
		mainLayout->addWidget(new QLabel(tr("A/R:"), this), 2, 2, Qt::AlignRight | Qt::AlignVCenter);
		mainLayout->addWidget(m_aspectRatioFld, 2, 3);
		//Image Subsampling  - Tlv Subsampling
		mainLayout->addWidget(new QLabel(tr("Image Subsampling:"), this), 3, 0, Qt::AlignRight | Qt::AlignVCenter);
		mainLayout->addWidget(m_fullcolorSubsamplingFld, 3, 1);
		if (m_tlvSubsamplingFld) {
			mainLayout->addWidget(new QLabel(tr("TLV Subsampling:"), this), 4, 0, Qt::AlignRight | Qt::AlignVCenter);
			mainLayout->addWidget(m_tlvSubsamplingFld, 4, 1);
		}
		//Marker Interval - Start Frame
		mainLayout->addWidget(new QLabel(tr("Marker Interval:"), this), 5, 0, Qt::AlignRight | Qt::AlignVCenter);
		mainLayout->addWidget(m_markerIntervalFld, 5, 1);
		mainLayout->addWidget(new QLabel(tr("  Start Frame:"), this), 5, 2, Qt::AlignRight | Qt::AlignVCenter);
		mainLayout->addWidget(m_startFrameFld, 5, 3);
	}
	mainLayout->setColumnStretch(0, 0);
	mainLayout->setColumnStretch(1, 0);
	mainLayout->setColumnStretch(2, 0);
	mainLayout->setColumnStretch(3, 0);
	mainLayout->setColumnStretch(4, 1);
	mainLayout->setRowStretch(6, 1);
	setLayout(mainLayout);

	//signal-slot connections
	bool ret = true;
	//Frame Rate
	ret = ret && connect(m_frameRateFld, SIGNAL(editingFinished()), this, SLOT(onFrameRateEditingFinished()));
	//Camera BG color
	ret = ret && connect(m_bgColorFld, SIGNAL(colorChanged(const TPixel32 &, bool)), this, SLOT(setBgColor(const TPixel32 &, bool)));
	//Field Guide Size - A/R
	ret = ret && connect(m_fieldGuideFld, SIGNAL(editingFinished()), this, SLOT(onFieldGuideSizeEditingFinished()));
	ret = ret && connect(m_aspectRatioFld, SIGNAL(editingFinished()), this, SLOT(onFieldGuideAspectRatioEditingFinished()));
	//Image Subsampling  - Tlv Subsampling
	ret = ret && connect(m_fullcolorSubsamplingFld, SIGNAL(editingFinished()), this, SLOT(onFullColorSubsampEditingFinished()));
	if (m_tlvSubsamplingFld)
		ret = ret && connect(m_tlvSubsamplingFld, SIGNAL(editingFinished()), this, SLOT(onTlvSubsampEditingFinished()));
	//Marker Interval - Start Frame
	ret = ret && connect(m_markerIntervalFld, SIGNAL(editingFinished()), this, SLOT(onMakerIntervalEditingFinished()));
	ret = ret && connect(m_startFrameFld, SIGNAL(editingFinished()), this, SLOT(onStartFrameEditingFinished()));
	assert(ret);
}