2017-07-21 18:21:34 +02:00
|
|
|
/******************************************************************************
|
|
|
|
* QSkinny - Copyright (C) 2016 Uwe Rathmann
|
|
|
|
* This file may be used under the terms of the QSkinny License, Version 1.0
|
|
|
|
*****************************************************************************/
|
|
|
|
|
|
|
|
#include "QskGraphicTextureFactory.h"
|
2018-10-04 16:15:42 +02:00
|
|
|
#include "QskTextureRenderer.h"
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2018-07-19 14:10:48 +02:00
|
|
|
#include <qquickwindow.h>
|
2017-07-21 18:21:34 +02:00
|
|
|
|
|
|
|
QskGraphicTextureFactory::QskGraphicTextureFactory()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QskGraphicTextureFactory::QskGraphicTextureFactory(
|
2018-08-03 08:15:28 +02:00
|
|
|
const QskGraphic& graphic, const QSize& size )
|
|
|
|
: m_graphic( graphic )
|
|
|
|
, m_size( size )
|
2017-07-21 18:21:34 +02:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
QskGraphicTextureFactory::~QskGraphicTextureFactory()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2020-11-01 10:43:16 +01:00
|
|
|
void QskGraphicTextureFactory::setGraphic( const QskGraphic& graphic )
|
2017-07-21 18:21:34 +02:00
|
|
|
{
|
2020-11-01 10:43:16 +01:00
|
|
|
m_graphic = graphic;
|
|
|
|
}
|
|
|
|
|
|
|
|
QskGraphic QskGraphicTextureFactory::graphic() const
|
|
|
|
{
|
|
|
|
return m_graphic;
|
|
|
|
}
|
|
|
|
|
|
|
|
void QskGraphicTextureFactory::setColorFilter(
|
|
|
|
const QskColorFilter& colorFilter )
|
|
|
|
{
|
|
|
|
m_colorFilter = colorFilter;
|
|
|
|
}
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2020-11-01 10:43:16 +01:00
|
|
|
const QskColorFilter& QskGraphicTextureFactory::colorFilter() const
|
|
|
|
{
|
|
|
|
return m_colorFilter;
|
|
|
|
}
|
2017-07-21 18:21:34 +02:00
|
|
|
|
2020-11-01 10:43:16 +01:00
|
|
|
void QskGraphicTextureFactory::setSize( const QSize& size )
|
|
|
|
{
|
|
|
|
m_size = size;
|
|
|
|
}
|
2020-11-01 08:48:50 +01:00
|
|
|
|
2020-11-01 10:43:16 +01:00
|
|
|
QSize QskGraphicTextureFactory::size() const
|
|
|
|
{
|
|
|
|
return m_size;
|
|
|
|
}
|
2020-11-01 08:48:50 +01:00
|
|
|
|
|
|
|
|
2020-11-01 10:43:16 +01:00
|
|
|
QSGTexture* QskGraphicTextureFactory::createTexture( QQuickWindow* window ) const
|
|
|
|
{
|
|
|
|
using namespace QskTextureRenderer;
|
2020-03-12 09:56:38 +01:00
|
|
|
|
2020-11-01 10:43:16 +01:00
|
|
|
const uint textureId = createTextureFromGraphic(
|
2021-12-13 16:43:34 +01:00
|
|
|
window, QskTextureRenderer::OpenGL, m_size, m_graphic, m_colorFilter,
|
2020-11-01 10:43:16 +01:00
|
|
|
Qt::IgnoreAspectRatio );
|
2020-11-01 08:48:50 +01:00
|
|
|
|
2020-11-01 10:43:16 +01:00
|
|
|
return textureFromId( window, textureId, m_size );
|
2017-07-21 18:21:34 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
QSize QskGraphicTextureFactory::textureSize() const
|
|
|
|
{
|
|
|
|
return m_size;
|
|
|
|
}
|
|
|
|
|
|
|
|
int QskGraphicTextureFactory::textureByteCount() const
|
|
|
|
{
|
|
|
|
return m_size.width() * m_size.height() * 4;
|
|
|
|
}
|
|
|
|
|
|
|
|
QImage QskGraphicTextureFactory::image() const
|
|
|
|
{
|
|
|
|
return m_graphic.toImage( m_size, Qt::KeepAspectRatio );
|
|
|
|
}
|