Make RendererD3D a bit smaller.
Move some D3D11-specific stuff into Renderer11, and remove a few
virtual methods that weren't needed to be virtual.
BUG=angleproject:1369
Change-Id: Id37e7271ffc28b089dbea123dca70f38c1a06ffb
Reviewed-on: https://chromium-review.googlesource.com/345913
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/common/string_utils.cpp b/src/common/string_utils.cpp
index acb0376..73da759 100644
--- a/src/common/string_utils.cpp
+++ b/src/common/string_utils.cpp
@@ -12,6 +12,8 @@
#include <fstream>
#include <sstream>
+#include "common/platform.h"
+
namespace angle
{
@@ -133,4 +135,24 @@
return !inFile.fail();
}
+Optional<std::vector<wchar_t>> WidenString(size_t length, const char *cString)
+{
+ std::vector<wchar_t> wcstring(length + 1);
+#if !defined(ANGLE_PLATFORM_WINDOWS)
+ size_t written = mbstowcs(wcstring.data(), cString, length + 1);
+ if (written == 0)
+ {
+ return Optional<std::vector<wchar_t>>::Invalid();
+ }
+#else
+ size_t convertedChars = 0;
+ errno_t err = mbstowcs_s(&convertedChars, wcstring.data(), length + 1, cString, _TRUNCATE);
+ if (err != 0)
+ {
+ return Optional<std::vector<wchar_t>>::Invalid();
+ }
+#endif
+ return Optional<std::vector<wchar_t>>(wcstring);
}
+
+} // namespace angle