summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexLoaderBase.cpp
diff options
context:
space:
mode:
authorMatthew Parlane <parlane@gmail.com>2017-03-28 15:38:32 +1300
committerGitHub <noreply@github.com>2017-03-28 15:38:32 +1300
commit94dd43533665dcad941f27b4b3fc23040a4859d7 (patch)
tree676da28581f4057db09364971e8d3a8d2a7b016a /Source/Core/VideoCommon/VertexLoaderBase.cpp
parent3000cc7c0554a745d30b90f1777fad6afdc6c409 (diff)
parent9ebd84e54afecee306b4bbc97fa15604def37310 (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.cpp59
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