| 1730 | } |
| 1731 | |
| 1732 | void 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_", ""); \ |
nothing calls this directly
no test coverage detected