MCPcopy Create free account
hub / github.com/SaschaWillems/VulkanCapsViewer / displayDeviceFormats

Method displayDeviceFormats

vulkanCapsViewer.cpp:1732–1839  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1730}
1731
1732void VulkanCapsViewer::displayDeviceFormats(VulkanDeviceInfo *device)
1733{
1734 models.formats.clear();
1735 QStandardItem *rootItem = models.formats.invisibleRootItem();
1736 for (auto const &format : device->formats)
1737 {
1738 QList<QStandardItem *> rowItems;
1739 rowItems << new QStandardItem(QString::fromStdString(vulkanResources::formatString(format.format)));
1740
1741 std::vector<VkFormatFeatureFlags> featureFlags =
1742 {
1743 format.properties.linearTilingFeatures,
1744 format.properties.optimalTilingFeatures,
1745 format.properties.bufferFeatures
1746 };
1747
1748 uint32_t i = 1;
1749 for (auto& featureFlag : featureFlags)
1750 {
1751 rowItems << new QStandardItem((featureFlag != 0) ? "true" : "false");
1752 rowItems[i]->setForeground((featureFlag != 0) ? QColor::fromRgb(0, 128, 0) : QColor::fromRgb(255, 0, 0));
1753 ++i;
1754 }
1755
1756 rootItem->appendRow(rowItems);
1757
1758 struct featureSet {
1759 std::string name;
1760 VkFlags flags;
1761 };
1762 std::vector<featureSet> featureSets =
1763 {
1764 { "Linear tiling flags", format.properties.linearTilingFeatures },
1765 { "Optimal tiling flags", format.properties.optimalTilingFeatures },
1766 { "Buffer features flags", format.properties.bufferFeatures }
1767 };
1768
1769 if (format.supported)
1770 {
1771 for (auto& featureSet : featureSets)
1772 {
1773 QList<QStandardItem *> flagItems;
1774 flagItems << new QStandardItem(QString::fromStdString(featureSet.name));
1775
1776 if (featureSet.flags == 0)
1777 {
1778 QList<QStandardItem *> flagItem;
1779 flagItem << new QStandardItem("none");
1780 flagItems[0]->appendRow(flagItem);
1781 }
1782 else
1783 {
1784 #define ADD_FLAG(flag) \
1785 if (featureSet.flags & flag) \
1786 { \
1787 QList<QStandardItem *> flagItem; \
1788 QString flagname(#flag); \
1789 flagname = flagname.replace("VK_FORMAT_FEATURE_", ""); \

Callers

nothing calls this directly

Calls 1

formatStringFunction · 0.85

Tested by

no test coverage detected