diff options
| author | Matthew Parlane <parlane@gmail.com> | 2017-03-28 15:38:32 +1300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-03-28 15:38:32 +1300 |
| commit | 94dd43533665dcad941f27b4b3fc23040a4859d7 (patch) | |
| tree | 676da28581f4057db09364971e8d3a8d2a7b016a /Source/Core/VideoCommon/VertexLoaderBase.cpp | |
| parent | 3000cc7c0554a745d30b90f1777fad6afdc6c409 (diff) | |
| parent | 9ebd84e54afecee306b4bbc97fa15604def37310 (diff) | |
Merge pull request #5176 from lioncash/retval
VertexLoader: Return debug strings by value
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoaderBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/VertexLoaderBase.cpp | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/Source/Core/VideoCommon/VertexLoaderBase.cpp b/Source/Core/VideoCommon/VertexLoaderBase.cpp index ce637401ac..21a149c169 100644 --- a/Source/Core/VideoCommon/VertexLoaderBase.cpp +++ b/Source/Core/VideoCommon/VertexLoaderBase.cpp @@ -2,6 +2,9 @@ // Licensed under GPLv2+ // Refer to the license.txt file included. +#include "VideoCommon/VertexLoaderBase.h" + +#include <array> #include <cinttypes> #include <cstring> #include <memory> @@ -15,7 +18,6 @@ #include "VideoCommon/DataReader.h" #include "VideoCommon/VertexLoader.h" -#include "VideoCommon/VertexLoaderBase.h" #ifdef _M_X86_64 #include "VideoCommon/VertexLoaderX64.h" @@ -70,55 +72,56 @@ void VertexLoaderBase::SetVAT(const VAT& vat) m_VtxAttr.texCoord[7].Frac = vat.g2.Tex7Frac; }; -void VertexLoaderBase::AppendToString(std::string* dest) const +std::string VertexLoaderBase::ToString() const { - dest->reserve(250); + std::string dest; + dest.reserve(250); - dest->append(GetName()); - dest->append(": "); + dest += GetName(); + dest += ": "; - static const char* posMode[4] = { + static constexpr std::array<const char*, 4> pos_mode{{ "Inv", "Dir", "I8", "I16", - }; - static const char* posFormats[8] = { + }}; + static constexpr std::array<const char*, 8> pos_formats{{ "u8", "s8", "u16", "s16", "flt", "Inv", "Inv", "Inv", - }; - static const char* colorFormat[8] = { + }}; + static constexpr std::array<const char*, 8> color_format{{ "565", "888", "888x", "4444", "6666", "8888", "Inv", "Inv", - }; + }}; - dest->append(StringFromFormat("%ib skin: %i P: %i %s-%s ", m_VertexSize, (u32)m_VtxDesc.PosMatIdx, - m_VtxAttr.PosElements ? 3 : 2, posMode[m_VtxDesc.Position], - posFormats[m_VtxAttr.PosFormat])); + dest += StringFromFormat("%ib skin: %i P: %i %s-%s ", m_VertexSize, (u32)m_VtxDesc.PosMatIdx, + m_VtxAttr.PosElements ? 3 : 2, pos_mode[m_VtxDesc.Position], + pos_formats[m_VtxAttr.PosFormat]); if (m_VtxDesc.Normal) { - dest->append(StringFromFormat("Nrm: %i %s-%s ", m_VtxAttr.NormalElements, - posMode[m_VtxDesc.Normal], posFormats[m_VtxAttr.NormalFormat])); + dest += StringFromFormat("Nrm: %i %s-%s ", m_VtxAttr.NormalElements, pos_mode[m_VtxDesc.Normal], + pos_formats[m_VtxAttr.NormalFormat]); } - u64 color_mode[2] = {m_VtxDesc.Color0, m_VtxDesc.Color1}; - for (int i = 0; i < 2; i++) + const std::array<u64, 2> color_mode{{m_VtxDesc.Color0, m_VtxDesc.Color1}}; + for (size_t i = 0; i < color_mode.size(); i++) { if (color_mode[i]) { - dest->append(StringFromFormat("C%i: %i %s-%s ", i, m_VtxAttr.color[i].Elements, - posMode[color_mode[i]], colorFormat[m_VtxAttr.color[i].Comp])); + dest += StringFromFormat("C%zu: %i %s-%s ", i, m_VtxAttr.color[i].Elements, + pos_mode[color_mode[i]], color_format[m_VtxAttr.color[i].Comp]); } } - u64 tex_mode[8] = {m_VtxDesc.Tex0Coord, m_VtxDesc.Tex1Coord, m_VtxDesc.Tex2Coord, - m_VtxDesc.Tex3Coord, m_VtxDesc.Tex4Coord, m_VtxDesc.Tex5Coord, - m_VtxDesc.Tex6Coord, m_VtxDesc.Tex7Coord}; - for (int i = 0; i < 8; i++) + const std::array<u64, 8> tex_mode{{m_VtxDesc.Tex0Coord, m_VtxDesc.Tex1Coord, m_VtxDesc.Tex2Coord, + m_VtxDesc.Tex3Coord, m_VtxDesc.Tex4Coord, m_VtxDesc.Tex5Coord, + m_VtxDesc.Tex6Coord, m_VtxDesc.Tex7Coord}}; + for (size_t i = 0; i < tex_mode.size(); i++) { if (tex_mode[i]) { - dest->append(StringFromFormat("T%i: %i %s-%s ", i, m_VtxAttr.texCoord[i].Elements, - posMode[tex_mode[i]], - posFormats[m_VtxAttr.texCoord[i].Format])); + dest += StringFromFormat("T%zu: %i %s-%s ", i, m_VtxAttr.texCoord[i].Elements, + pos_mode[tex_mode[i]], pos_formats[m_VtxAttr.texCoord[i].Format]); } } - dest->append(StringFromFormat(" - %i v", m_numLoadedVertices)); + dest += StringFromFormat(" - %i v", m_numLoadedVertices); + return dest; } // a hacky implementation to compare two vertex loaders |
