mirror of
https://github.com/JakubMelka/PDF4QT.git
synced 2025-06-05 21:59:17 +02:00
Issue #123: Blend2D painting implementation
This commit is contained in:
@ -624,7 +624,7 @@ void PDFProgramController::initialize(Features features,
|
||||
|
||||
readSettings(Settings(GeneralSettings | PluginsSettings | RecentFileSettings | CertificateSettings));
|
||||
|
||||
m_pdfWidget = new pdf::PDFWidget(m_CMSManager, m_settings->getRendererEngine(), m_settings->isMultisampleAntialiasingEnabled() ? m_settings->getRendererSamples() : -1, m_mainWindow);
|
||||
m_pdfWidget = new pdf::PDFWidget(m_CMSManager, m_settings->getRendererEngine(), m_mainWindow);
|
||||
m_pdfWidget->setObjectName("pdfWidget");
|
||||
m_pdfWidget->updateCacheLimits(m_settings->getCompiledPageCacheLimit() * 1024, m_settings->getThumbnailsCacheLimit(), m_settings->getFontCacheLimit(), m_settings->getInstancedFontCacheLimit());
|
||||
m_pdfWidget->getDrawWidgetProxy()->setProgress(m_progress);
|
||||
@ -1697,7 +1697,7 @@ void PDFProgramController::updateActionsAvailability()
|
||||
|
||||
void PDFProgramController::onViewerSettingsChanged()
|
||||
{
|
||||
m_pdfWidget->updateRenderer(m_settings->getRendererEngine(), m_settings->isMultisampleAntialiasingEnabled() ? m_settings->getRendererSamples() : -1);
|
||||
m_pdfWidget->updateRenderer(m_settings->getRendererEngine());
|
||||
m_pdfWidget->updateCacheLimits(m_settings->getCompiledPageCacheLimit() * 1024, m_settings->getThumbnailsCacheLimit(), m_settings->getFontCacheLimit(), m_settings->getInstancedFontCacheLimit());
|
||||
m_pdfWidget->getDrawWidgetProxy()->setFeatures(m_settings->getFeatures());
|
||||
m_pdfWidget->getDrawWidgetProxy()->setPreferredMeshResolutionRatio(m_settings->getPreferredMeshResolutionRatio());
|
||||
|
@ -44,8 +44,6 @@ void PDFViewerSettings::readSettings(QSettings& settings, const pdf::PDFCMSSetti
|
||||
m_settings.m_directory = settings.value("defaultDirectory", QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation)).toString();
|
||||
m_settings.m_features = static_cast<pdf::PDFRenderer::Features>(settings.value("rendererFeaturesv2", static_cast<int>(pdf::PDFRenderer::getDefaultFeatures())).toInt());
|
||||
m_settings.m_rendererEngine = static_cast<pdf::RendererEngine>(settings.value("renderingEngine", static_cast<int>(pdf::RendererEngine::Blend2D)).toInt());
|
||||
m_settings.m_multisampleAntialiasing = settings.value("msaa", defaultSettings.m_multisampleAntialiasing).toBool();
|
||||
m_settings.m_rendererSamples = settings.value("rendererSamples", defaultSettings.m_rendererSamples).toInt();
|
||||
m_settings.m_prefetchPages = settings.value("prefetchPages", defaultSettings.m_prefetchPages).toBool();
|
||||
m_settings.m_preferredMeshResolutionRatio = settings.value("preferredMeshResolutionRatio", defaultSettings.m_preferredMeshResolutionRatio).toDouble();
|
||||
m_settings.m_minimalMeshResolutionRatio = settings.value("minimalMeshResolutionRatio", defaultSettings.m_minimalMeshResolutionRatio).toDouble();
|
||||
@ -119,8 +117,6 @@ void PDFViewerSettings::writeSettings(QSettings& settings)
|
||||
settings.setValue("defaultDirectory", m_settings.m_directory);
|
||||
settings.setValue("rendererFeaturesv2", static_cast<int>(m_settings.m_features));
|
||||
settings.setValue("renderingEngine", static_cast<int>(m_settings.m_rendererEngine));
|
||||
settings.setValue("msaa", m_settings.m_multisampleAntialiasing);
|
||||
settings.setValue("rendererSamples", m_settings.m_rendererSamples);
|
||||
settings.setValue("prefetchPages", m_settings.m_prefetchPages);
|
||||
settings.setValue("preferredMeshResolutionRatio", m_settings.m_preferredMeshResolutionRatio);
|
||||
settings.setValue("minimalMeshResolutionRatio", m_settings.m_minimalMeshResolutionRatio);
|
||||
@ -228,20 +224,6 @@ void PDFViewerSettings::setRendererEngine(pdf::RendererEngine rendererEngine)
|
||||
}
|
||||
}
|
||||
|
||||
int PDFViewerSettings::getRendererSamples() const
|
||||
{
|
||||
return m_settings.m_rendererSamples;
|
||||
}
|
||||
|
||||
void PDFViewerSettings::setRendererSamples(int rendererSamples)
|
||||
{
|
||||
if (m_settings.m_rendererSamples != rendererSamples)
|
||||
{
|
||||
m_settings.m_rendererSamples = rendererSamples;
|
||||
Q_EMIT settingsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void PDFViewerSettings::setPreferredMeshResolutionRatio(pdf::PDFReal preferredMeshResolutionRatio)
|
||||
{
|
||||
if (m_settings.m_preferredMeshResolutionRatio != preferredMeshResolutionRatio)
|
||||
@ -272,8 +254,6 @@ void PDFViewerSettings::setColorTolerance(pdf::PDFReal colorTolerance)
|
||||
PDFViewerSettings::Settings::Settings() :
|
||||
m_features(pdf::PDFRenderer::getDefaultFeatures()),
|
||||
m_rendererEngine(pdf::RendererEngine::Blend2D),
|
||||
m_multisampleAntialiasing(true),
|
||||
m_rendererSamples(16),
|
||||
m_prefetchPages(true),
|
||||
m_preferredMeshResolutionRatio(0.02),
|
||||
m_minimalMeshResolutionRatio(0.005),
|
||||
|
@ -111,11 +111,7 @@ public:
|
||||
pdf::RendererEngine getRendererEngine() const;
|
||||
void setRendererEngine(pdf::RendererEngine rendererEngine);
|
||||
|
||||
int getRendererSamples() const;
|
||||
void setRendererSamples(int rendererSamples);
|
||||
|
||||
bool isPagePrefetchingEnabled() const { return m_settings.m_prefetchPages; }
|
||||
bool isMultisampleAntialiasingEnabled() const { return m_settings.m_multisampleAntialiasing; }
|
||||
|
||||
pdf::PDFReal getPreferredMeshResolutionRatio() const { return m_settings.m_preferredMeshResolutionRatio; }
|
||||
void setPreferredMeshResolutionRatio(pdf::PDFReal preferredMeshResolutionRatio);
|
||||
|
@ -105,11 +105,6 @@ PDFViewerSettingsDialog::PDFViewerSettingsDialog(const PDFViewerSettings::Settin
|
||||
ui->renderingEngineComboBox->addItem(tr("Software | QPainter"), static_cast<int>(pdf::RendererEngine::QPainter));
|
||||
ui->renderingEngineComboBox->addItem(tr("Software | Blend2D | Multithreaded"), static_cast<int>(pdf::RendererEngine::Blend2D));
|
||||
|
||||
for (int i : { 1, 2, 4, 8, 16 })
|
||||
{
|
||||
ui->multisampleAntialiasingSamplesCountComboBox->addItem(QString::number(i), i);
|
||||
}
|
||||
|
||||
ui->multithreadingComboBox->addItem(tr("Single thread"), static_cast<int>(pdf::PDFExecutionPolicy::Strategy::SingleThreaded));
|
||||
ui->multithreadingComboBox->addItem(tr("Multithreading (load balanced)"), static_cast<int>(pdf::PDFExecutionPolicy::Strategy::PageMultithreaded));
|
||||
ui->multithreadingComboBox->addItem(tr("Multithreading (maximum threads)"), static_cast<int>(pdf::PDFExecutionPolicy::Strategy::AlwaysMultithreaded));
|
||||
@ -409,14 +404,6 @@ void PDFViewerSettingsDialog::saveData()
|
||||
{
|
||||
m_settings.m_rendererEngine = static_cast<pdf::RendererEngine>(ui->renderingEngineComboBox->currentData().toInt());
|
||||
}
|
||||
else if (sender == ui->multisampleAntialiasingCheckBox)
|
||||
{
|
||||
m_settings.m_multisampleAntialiasing = ui->multisampleAntialiasingCheckBox->isChecked();
|
||||
}
|
||||
else if (sender == ui->multisampleAntialiasingSamplesCountComboBox)
|
||||
{
|
||||
m_settings.m_rendererSamples = ui->multisampleAntialiasingSamplesCountComboBox->currentData().toInt();
|
||||
}
|
||||
else if (sender == ui->prefetchPagesCheckBox)
|
||||
{
|
||||
m_settings.m_prefetchPages = ui->prefetchPagesCheckBox->isChecked();
|
||||
|
Reference in New Issue
Block a user