Exemplo n.º 1
0
void TextureBrowser::updateConvertedImageAndInfo(const QImage &image)
{
	ui->textureAreaConverted->setImage(image);
	ui->textureAreaConverted->setEnabled(true);
	ui->textureAreaConverted->waitbarShow(false);

	// set info about converted image
	updateInfoConverted();
}
Exemplo n.º 2
0
void TextureBrowser::setTextureView(DAVA::eGPUFamily view, bool forceConvert /* = false */)
{
	bool infoConvertedIsUpToDate = false;

	// if force convert - clear cached images
	if(forceConvert)
	{
		TextureCache::Instance()->clearConverted(curDescriptor, view);
		TextureCache::Instance()->clearConverted(curDescriptor, view);
	}

	curTextureView = view;

	// second set texture view to appropriate state
	if(NULL != curTexture && NULL != curDescriptor)
	{
		bool needConvert = true;

		// set empty image to converted image view. it will be visible until
		// conversion done (signal by textureConvertor).
		ui->textureAreaConverted->setImage(QImage());
		ui->textureAreaConverted->waitbarShow(true);

		// set current tab
		ui->viewTabBar->setCurrentIndex(curTextureView);
		ui->textureProperties->setTextureGPU(curTextureView);

		if(!forceConvert)
		{
			// try to find image in cache
			const DAVA::Vector<QImage>& images = TextureCache::Instance()->getConverted(curDescriptor, view);

			if(images.size() > 0 &&
			   !images[0].isNull())
			{
				// image already in cache, just draw it
				updateConvertedImageAndInfo(images, *curDescriptor);
				
				needConvert = false;
				infoConvertedIsUpToDate = true;
			}
		}

		if(needConvert)
		{
			// Start convert. Signal will be emited when conversion done
			TextureConvertor::Instance()->GetConverted(curDescriptor, view, forceConvert);
		}
	}

	if(infoConvertedIsUpToDate)
	{
		updateInfoConverted();
	}
}
Exemplo n.º 3
0
void TextureBrowser::updateConvertedImageAndInfo(const DAVA::Vector<QImage> &images, DAVA::TextureDescriptor& descriptor)
{
	if(!descriptor.IsCubeMap())
	{
		ui->textureAreaConverted->setImage(images[0]);
	}
	else
	{
		ui->textureAreaConverted->setImage(images, descriptor.faceDescription);
	}
	
	ui->textureAreaConverted->setEnabled(true);
	ui->textureAreaConverted->waitbarShow(false);

	// set info about converted image
	updateInfoConverted();
}
Exemplo n.º 4
0
void TextureBrowser::setTextureView(TextureView view, bool forceConvert /* */)
{
	// if force convert - clear cached images
	if(forceConvert)
	{
		TextureCache::Instance()->clearPVR(curDescriptor);
		TextureCache::Instance()->clearDXT(curDescriptor);
	}

	curTextureView = view;

	// first set texture view to default
	ui->actionViewPVR->setChecked(false);
	ui->actionViewDXT->setChecked(false);

	// second set texture view to appropriate state
	if(NULL != curTexture && NULL != curDescriptor)
	{
		// set empty image to converted image view. it will be visible until
		// conversion done (signal by textureConvertor).
		ui->textureAreaPVR->setImage(QImage());
		ui->textureAreaPVR->waitbarShow(true);

		switch(view)
		{
		case ViewPVR:
			{
				ui->actionViewPVR->setChecked(true);

				QImage img = TextureCache::Instance()->getPVR(curDescriptor);
				if(!forceConvert && !img.isNull())
				{
					// image already in cache, just draw it
					updateConvertedImageAndInfo(img);
				}
				else
				{
					// Start PVR convert. Signal will be emited when conversion done
					TextureConvertor::Instance()->getPVR(curDescriptor, forceConvert);
				}
			}
			break;
		case ViewDXT:
			{
				ui->actionViewDXT->setChecked(true);

				QImage img = TextureCache::Instance()->getDXT(curDescriptor);
				if(!forceConvert && !img.isNull())
				{
					// image already in cache, just draw it
					updateConvertedImageAndInfo(img);
				}
				else
				{
					// Start DXT convert. Signal will be emited when conversion done
					TextureConvertor::Instance()->getDXT(curDescriptor, forceConvert);
				}
			}
			break;
		default:
			break;
		}
	}

	updateInfoConverted();
}