diff --git a/qrenderdoc/Code/Resources.h b/qrenderdoc/Code/Resources.h
index 422302355..8b193a286 100644
--- a/qrenderdoc/Code/Resources.h
+++ b/qrenderdoc/Code/Resources.h
@@ -76,16 +76,16 @@
RESOURCE_DEF(wireframe_mesh, "wireframe_mesh.png") \
RESOURCE_DEF(wrench, "wrench.png") \
RESOURCE_DEF(zoom, "zoom.png") \
- RESOURCE_DEF(topo_linelist, "topologies/topo_linelist.png") \
- RESOURCE_DEF(topo_linelist_adj, "topologies/topo_linelist_adj.png") \
- RESOURCE_DEF(topo_linestrip, "topologies/topo_linestrip.png") \
- RESOURCE_DEF(topo_linestrip_adj, "topologies/topo_linestrip_adj.png") \
- RESOURCE_DEF(topo_patch, "topologies/topo_patch.png") \
- RESOURCE_DEF(topo_pointlist, "topologies/topo_pointlist.png") \
- RESOURCE_DEF(topo_trilist, "topologies/topo_trilist.png") \
- RESOURCE_DEF(topo_trilist_adj, "topologies/topo_trilist_adj.png") \
- RESOURCE_DEF(topo_tristrip, "topologies/topo_tristrip.png") \
- RESOURCE_DEF(topo_tristrip_adj, "topologies/topo_tristrip_adj.png") \
+ RESOURCE_DEF(topo_linelist, "topologies/topo_linelist.svg") \
+ RESOURCE_DEF(topo_linelist_adj, "topologies/topo_linelist_adj.svg") \
+ RESOURCE_DEF(topo_linestrip, "topologies/topo_linestrip.svg") \
+ RESOURCE_DEF(topo_linestrip_adj, "topologies/topo_linestrip_adj.svg") \
+ RESOURCE_DEF(topo_patch, "topologies/topo_patch.svg") \
+ RESOURCE_DEF(topo_pointlist, "topologies/topo_pointlist.svg") \
+ RESOURCE_DEF(topo_trilist, "topologies/topo_trilist.svg") \
+ RESOURCE_DEF(topo_trilist_adj, "topologies/topo_trilist_adj.svg") \
+ RESOURCE_DEF(topo_tristrip, "topologies/topo_tristrip.svg") \
+ RESOURCE_DEF(topo_tristrip_adj, "topologies/topo_tristrip_adj.svg") \
RESOURCE_DEF(action, "action.png") \
RESOURCE_DEF(action_hover, "action_hover.png")
diff --git a/qrenderdoc/Resources/resources.qrc b/qrenderdoc/Resources/resources.qrc
index e5859ba83..5063fa540 100644
--- a/qrenderdoc/Resources/resources.qrc
+++ b/qrenderdoc/Resources/resources.qrc
@@ -3,16 +3,16 @@
glsl.xml
hlsl.xml
logo.svg
- topologies/topo_linelist.png
- topologies/topo_linelist_adj.png
- topologies/topo_linestrip.png
- topologies/topo_linestrip_adj.png
- topologies/topo_patch.png
- topologies/topo_pointlist.png
- topologies/topo_trilist.png
- topologies/topo_trilist_adj.png
- topologies/topo_tristrip.png
- topologies/topo_tristrip_adj.png
+ topologies/topo_linelist.svg
+ topologies/topo_linelist_adj.svg
+ topologies/topo_linestrip.svg
+ topologies/topo_linestrip_adj.svg
+ topologies/topo_patch.svg
+ topologies/topo_pointlist.svg
+ topologies/topo_trilist.svg
+ topologies/topo_trilist_adj.svg
+ topologies/topo_tristrip.svg
+ topologies/topo_tristrip_adj.svg
action.png
action@2x.png
action_hover.png
diff --git a/qrenderdoc/Resources/topologies/topo_linelist.png b/qrenderdoc/Resources/topologies/topo_linelist.png
deleted file mode 100644
index a9078db14..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_linelist.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_linelist.svg b/qrenderdoc/Resources/topologies/topo_linelist.svg
new file mode 100644
index 000000000..33e4ac547
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_linelist.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Resources/topologies/topo_linelist_adj.png b/qrenderdoc/Resources/topologies/topo_linelist_adj.png
deleted file mode 100644
index e88c03511..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_linelist_adj.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_linelist_adj.svg b/qrenderdoc/Resources/topologies/topo_linelist_adj.svg
new file mode 100644
index 000000000..19cce3556
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_linelist_adj.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Resources/topologies/topo_linestrip.png b/qrenderdoc/Resources/topologies/topo_linestrip.png
deleted file mode 100644
index 08dad1f0a..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_linestrip.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_linestrip.svg b/qrenderdoc/Resources/topologies/topo_linestrip.svg
new file mode 100644
index 000000000..758dda14e
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_linestrip.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Resources/topologies/topo_linestrip_adj.png b/qrenderdoc/Resources/topologies/topo_linestrip_adj.png
deleted file mode 100644
index 11978f508..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_linestrip_adj.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_linestrip_adj.svg b/qrenderdoc/Resources/topologies/topo_linestrip_adj.svg
new file mode 100644
index 000000000..25436e529
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_linestrip_adj.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Resources/topologies/topo_patch.png b/qrenderdoc/Resources/topologies/topo_patch.png
deleted file mode 100644
index 59cb92532..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_patch.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_patch.svg b/qrenderdoc/Resources/topologies/topo_patch.svg
new file mode 100644
index 000000000..53fb646e3
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_patch.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Resources/topologies/topo_pointlist.png b/qrenderdoc/Resources/topologies/topo_pointlist.png
deleted file mode 100644
index 9d69eb3e0..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_pointlist.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_pointlist.svg b/qrenderdoc/Resources/topologies/topo_pointlist.svg
new file mode 100644
index 000000000..ff7bf0aca
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_pointlist.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Resources/topologies/topo_trilist.png b/qrenderdoc/Resources/topologies/topo_trilist.png
deleted file mode 100644
index 7f9a64704..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_trilist.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_trilist.svg b/qrenderdoc/Resources/topologies/topo_trilist.svg
new file mode 100644
index 000000000..d06c24f81
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_trilist.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Resources/topologies/topo_trilist_adj.png b/qrenderdoc/Resources/topologies/topo_trilist_adj.png
deleted file mode 100644
index 80a4b6838..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_trilist_adj.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_trilist_adj.svg b/qrenderdoc/Resources/topologies/topo_trilist_adj.svg
new file mode 100644
index 000000000..bb7410152
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_trilist_adj.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Resources/topologies/topo_tristrip.png b/qrenderdoc/Resources/topologies/topo_tristrip.png
deleted file mode 100644
index 39fd59a75..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_tristrip.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_tristrip.svg b/qrenderdoc/Resources/topologies/topo_tristrip.svg
new file mode 100644
index 000000000..dbd597058
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_tristrip.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Resources/topologies/topo_tristrip_adj.png b/qrenderdoc/Resources/topologies/topo_tristrip_adj.png
deleted file mode 100644
index 7ebcf2297..000000000
Binary files a/qrenderdoc/Resources/topologies/topo_tristrip_adj.png and /dev/null differ
diff --git a/qrenderdoc/Resources/topologies/topo_tristrip_adj.svg b/qrenderdoc/Resources/topologies/topo_tristrip_adj.svg
new file mode 100644
index 000000000..9a443b755
--- /dev/null
+++ b/qrenderdoc/Resources/topologies/topo_tristrip_adj.svg
@@ -0,0 +1 @@
+
diff --git a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.ui b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.ui
index f81d358d9..7bc87327a 100644
--- a/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.ui
+++ b/qrenderdoc/Windows/PipelineState/D3D11PipelineStateViewer.ui
@@ -368,7 +368,7 @@
- :/topologies/topo_trilist.png
+ :/topologies/topo_trilist.svg
Qt::AlignCenter
diff --git a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.ui b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.ui
index 3fe97fa59..957526f7b 100644
--- a/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.ui
+++ b/qrenderdoc/Windows/PipelineState/D3D12PipelineStateViewer.ui
@@ -432,7 +432,7 @@
- :/topologies/topo_trilist.png
+ :/topologies/topo_trilist.svg
Qt::AlignCenter
diff --git a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.ui b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.ui
index 9b4cfd758..055b6adb5 100644
--- a/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.ui
+++ b/qrenderdoc/Windows/PipelineState/GLPipelineStateViewer.ui
@@ -432,7 +432,7 @@
- :/topologies/topo_trilist.png
+ :/topologies/topo_trilist.svg
Qt::AlignCenter
diff --git a/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp b/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp
index fd87ac705..9b9b77d1c 100644
--- a/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp
+++ b/qrenderdoc/Windows/PipelineState/PipelineStateViewer.cpp
@@ -24,6 +24,8 @@
#include "PipelineStateViewer.h"
#include
+#include
+#include
#include
#include "3rdparty/toolwindowmanager/ToolWindowManager.h"
#include "Code/Resources.h"
@@ -429,22 +431,30 @@ void PipelineStateViewer::setTopologyDiagram(QLabel *diagram, Topology topo)
if(m_TopoPixmaps[idx].isNull())
{
- QImage im;
+ QSvgRenderer svg;
switch(topo)
{
- case Topology::PointList: im = Pixmaps::topo_pointlist(diagram).toImage(); break;
- case Topology::LineList: im = Pixmaps::topo_linelist(diagram).toImage(); break;
- case Topology::LineStrip: im = Pixmaps::topo_linestrip(diagram).toImage(); break;
- case Topology::TriangleList: im = Pixmaps::topo_trilist(diagram).toImage(); break;
- case Topology::TriangleStrip: im = Pixmaps::topo_tristrip(diagram).toImage(); break;
- case Topology::LineList_Adj: im = Pixmaps::topo_linelist_adj(diagram).toImage(); break;
- case Topology::LineStrip_Adj: im = Pixmaps::topo_linestrip_adj(diagram).toImage(); break;
- case Topology::TriangleList_Adj: im = Pixmaps::topo_trilist_adj(diagram).toImage(); break;
- case Topology::TriangleStrip_Adj: im = Pixmaps::topo_tristrip_adj(diagram).toImage(); break;
- default: im = Pixmaps::topo_patch(diagram).toImage(); break;
+ case Topology::PointList: svg.load(lit(":/topologies/topo_pointlist.svg")); break;
+ case Topology::LineList: svg.load(lit(":/topologies/topo_linelist.svg")); break;
+ case Topology::LineStrip: svg.load(lit(":/topologies/topo_linestrip.svg")); break;
+ case Topology::TriangleList: svg.load(lit(":/topologies/topo_trilist.svg")); break;
+ case Topology::TriangleStrip: svg.load(lit(":/topologies/topo_tristrip.svg")); break;
+ case Topology::LineList_Adj: svg.load(lit(":/topologies/topo_linelist_adj.svg")); break;
+ case Topology::LineStrip_Adj: svg.load(lit(":/topologies/topo_linestrip_adj.svg")); break;
+ case Topology::TriangleList_Adj: svg.load(lit(":/topologies/topo_trilist_adj.svg")); break;
+ case Topology::TriangleStrip_Adj: svg.load(lit(":/topologies/topo_tristrip_adj.svg")); break;
+ default: svg.load(lit(":/topologies/topo_patch.svg")); break;
}
- im = im.convertToFormat(QImage::Format_ARGB32);
+ QRect rect = svg.viewBox();
+
+ QImage im(rect.size() * diagram->devicePixelRatio(), QImage::Format_ARGB32);
+
+ im.fill(QColor(0, 0, 0, 0));
+
+ QPainter p(&im);
+
+ svg.render(&p);
// convert the colors - black maps to Text (foreground) and white maps to Base (background)
QColor white = diagram->palette().color(QPalette::Active, QPalette::Base);
@@ -480,6 +490,7 @@ void PipelineStateViewer::setTopologyDiagram(QLabel *diagram, Topology topo)
}
m_TopoPixmaps[idx] = QPixmap::fromImage(im);
+ m_TopoPixmaps[idx].setDevicePixelRatio(diagram->devicePixelRatioF());
}
diagram->setPixmap(m_TopoPixmaps[idx]);
diff --git a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.ui b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.ui
index e2d884ac5..c80a05e1a 100644
--- a/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.ui
+++ b/qrenderdoc/Windows/PipelineState/VulkanPipelineStateViewer.ui
@@ -432,7 +432,7 @@
- :/topologies/topo_trilist.png
+ :/topologies/topo_trilist.svg
Qt::AlignCenter
diff --git a/qrenderdoc/qrenderdoc_local.vcxproj b/qrenderdoc/qrenderdoc_local.vcxproj
index e349e624d..99104b144 100644
--- a/qrenderdoc/qrenderdoc_local.vcxproj
+++ b/qrenderdoc/qrenderdoc_local.vcxproj
@@ -88,9 +88,9 @@
ProgramDatabase
true
true
- $(ProjectDir);$(IntDir)generated\;$(SolutionDir)\renderdoc\api\replay;3rdparty\python\include;3rdparty\pyside\include\PySide2;3rdparty\pyside\include\PySide2\QtCore;3rdparty\pyside\include\PySide2\QtGui;3rdparty\pyside\include\PySide2\QtWidgets;3rdparty\pyside\include\shiboken2;3rdparty\qt\$(Platform)\include;3rdparty\qt\$(Platform)\include\QtWidgets;3rdparty\qt\$(Platform)\include\QtGui;3rdparty\qt\$(Platform)\include\QtCore;%(AdditionalIncludeDirectories)
+ $(ProjectDir);$(IntDir)generated\;$(SolutionDir)\renderdoc\api\replay;3rdparty\python\include;3rdparty\pyside\include\PySide2;3rdparty\pyside\include\PySide2\QtCore;3rdparty\pyside\include\PySide2\QtGui;3rdparty\pyside\include\PySide2\QtWidgets;3rdparty\pyside\include\shiboken2;3rdparty\qt\$(Platform)\include;3rdparty\qt\$(Platform)\include\QtWidgets;3rdparty\qt\$(Platform)\include\QtGui;3rdparty\qt\$(Platform)\include\QtCore;3rdparty\qt\$(Platform)\include\QtSvg;%(AdditionalIncludeDirectories)
/Zc:strictStrings /Zc:throwingNew %(AdditionalOptions)
- _WINDOWS;UNICODE;WIN32;WIN64;RENDERDOC_PLATFORM_WIN32;PYSIDE2_ENABLED=1;SCINTILLA_QT=1;MAKING_LIBRARY=1;SCI_LEXER=1;QT_NO_CAST_FROM_ASCII;QT_NO_CAST_TO_ASCII;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)
+ _WINDOWS;UNICODE;WIN32;WIN64;RENDERDOC_PLATFORM_WIN32;PYSIDE2_ENABLED=1;SCINTILLA_QT=1;MAKING_LIBRARY=1;SCI_LEXER=1;QT_NO_CAST_FROM_ASCII;QT_NO_CAST_TO_ASCII;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_SVG_LIB;%(PreprocessorDefinitions)
Level4
true
4100;4127;4189;4714;4718;4996;%(DisableSpecificWarnings)
@@ -100,7 +100,7 @@
Windows
- shiboken2.lib;python36.lib;qtmain.lib;Qt5Widgets.lib;Qt5Gui.lib;Qt5Core.lib;shell32.lib
+ shiboken2.lib;python36.lib;qtmain.lib;Qt5Widgets.lib;Qt5Gui.lib;Qt5Core.lib;Qt5Svg.lib;shell32.lib
3rdparty\pyside\$(Platform);3rdparty\python\$(Platform);3rdparty\qt\$(Platform)\lib;%(AdditionalLibraryDirectories)
true
true
@@ -117,7 +117,7 @@
0
- _WINDOWS;UNICODE;WIN32;RENDERDOC_PLATFORM_WIN32;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)
+ _WINDOWS;UNICODE;WIN32;RENDERDOC_PLATFORM_WIN32;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;QT_SVG_LIB;%(PreprocessorDefinitions)
$(SolutionDir)\renderdoc\api\replay
@@ -148,7 +148,7 @@
MultiThreadedDebugDLL
- shiboken2.lib;python36.lib;qtmaind.lib;Qt5Widgetsd.lib;Qt5Guid.lib;Qt5Cored.lib;shell32.lib
+ shiboken2.lib;python36.lib;qtmaind.lib;Qt5Widgetsd.lib;Qt5Guid.lib;Qt5Cored.lib;Qt5Svgd.lib;shell32.lib