Exemplo n.º 1
0
void GLC_WorldTo3dxml::writeImageFileIn3dxml(const QList<GLC_Material*>& materialList)
{
	const int size= materialList.size();
	Q_ASSERT(size == m_MaterialIdToTexture3dxmlName.size());
	for (int i= 0; i < size; ++i)
	{
		const GLC_Material* pCurrentMaterial= materialList.at(i);
		const GLC_Texture* pTexture= pCurrentMaterial->textureHandle();
		const QString imageName(m_MaterialIdToTexture3dxmlName.value(pCurrentMaterial->id()));
		// Get the texture image
		if (!pTexture->fileName().isEmpty())
		{
			// Try to load the texture
			QImage textureImage(pTexture->fileName());
			if (! textureImage.isNull())
			{
				addImageTextureTo3dxml(textureImage, imageName);
			}
			else
			{
				addImageTextureTo3dxml(pTexture->imageOfTexture(), imageName);
			}
		}
		else
		{
			addImageTextureTo3dxml(pTexture->imageOfTexture(), imageName);
		}
	}

}
Exemplo n.º 2
0
void draw(SkCanvas* canvas) {
    auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
        if (nullptr == image) {
            return;
        }
        SkPaint paint;
        paint.setAntiAlias(true);
        canvas->drawImage(image, 0, 0);
        canvas->drawString(label, image->width() / 2, image->height() / 4, paint);
        if (canvas->getGrContext()) {
            canvas->drawString(image->isValid(canvas->getGrContext()) ? "is valid on GPU" :
                    "not valid on GPU", 20, image->height() * 5 / 8, paint);
        }
        canvas->drawString(image->isValid(nullptr) ? "is valid on CPU" :
                "not valid on CPU", 20, image->height() * 7 / 8, paint);
    };
    sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));
    sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,
                                kTopLeft_GrSurfaceOrigin, kRGBA_8888_SkColorType,
                                kOpaque_SkAlphaType, nullptr));
    drawImage(image, "image");
    canvas->translate(image->width(), 0);
    drawImage(bitmapImage, "source");
    canvas->translate(-image->width(), image->height());
    drawImage(textureImage, "backEndTexture");
}
Exemplo n.º 3
0
void CubeView::initializeGL(QGLPainter *painter)
{
    QGLBuilder builder;
    builder.newSection(QGL::Faceted);
    builder << QGLCube(1.5f);
    cube = builder.currentNode();

    builder << QGLTeapot();
    teapot = builder.currentNode();

    scene = builder.finalizedSceneNode();
    scene->setParent(this);

    fbo = new QGLFramebufferObject(512, 512, QGLFramebufferObject::Depth);

    QImage textureImage(":/qtlogo.png");
    qtlogo.setImage(textureImage);

    painter->setBlendingEnabled(true);
}