58 lines
1.7 KiB
Diff
58 lines
1.7 KiB
Diff
|
--- angleproject/src/libANGLE/renderer/d3d/RendererD3D.cpp.orig 2016-03-23 19:22:28.000000000 +0100
|
||
|
+++ angleproject/src/libANGLE/renderer/d3d/RendererD3D.cpp 2016-03-23 21:24:13.194525939 +0100
|
||
|
@@ -25,9 +25,27 @@
|
||
|
#include "libANGLE/State.h"
|
||
|
#include "libANGLE/VertexArray.h"
|
||
|
|
||
|
+#include <string>
|
||
|
+#include <windows.h>
|
||
|
+
|
||
|
namespace rx
|
||
|
{
|
||
|
|
||
|
+inline std::wstring widen(const char *to_widen)
|
||
|
+{
|
||
|
+ // determine length of original string
|
||
|
+ int len = strlen(to_widen);
|
||
|
+ if(!len) {
|
||
|
+ return std::wstring();
|
||
|
+ }
|
||
|
+ // construct new string of required length
|
||
|
+ std::wstring ret(::MultiByteToWideChar(CP_UTF8, 0, to_widen, len, 0, 0), L'\0');
|
||
|
+ // convert old string to new string
|
||
|
+ ::MultiByteToWideChar(CP_UTF8, 0, to_widen, len, &ret[0], (int)ret.length());
|
||
|
+ // return new string
|
||
|
+ return ret;
|
||
|
+}
|
||
|
+
|
||
|
namespace
|
||
|
{
|
||
|
// If we request a scratch buffer requesting a smaller size this many times,
|
||
|
@@ -639,24 +657,12 @@
|
||
|
|
||
|
void RendererD3D::insertEventMarker(GLsizei length, const char *marker)
|
||
|
{
|
||
|
- std::vector<wchar_t> wcstring (length + 1);
|
||
|
- size_t convertedChars = 0;
|
||
|
- errno_t err = mbstowcs_s(&convertedChars, wcstring.data(), length + 1, marker, _TRUNCATE);
|
||
|
- if (err == 0)
|
||
|
- {
|
||
|
- getAnnotator()->setMarker(wcstring.data());
|
||
|
- }
|
||
|
+ getAnnotator()->setMarker(widen(marker).data());
|
||
|
}
|
||
|
|
||
|
void RendererD3D::pushGroupMarker(GLsizei length, const char *marker)
|
||
|
{
|
||
|
- std::vector<wchar_t> wcstring(length + 1);
|
||
|
- size_t convertedChars = 0;
|
||
|
- errno_t err = mbstowcs_s(&convertedChars, wcstring.data(), length + 1, marker, _TRUNCATE);
|
||
|
- if (err == 0)
|
||
|
- {
|
||
|
- getAnnotator()->beginEvent(wcstring.data());
|
||
|
- }
|
||
|
+ getAnnotator()->beginEvent(widen(marker).data());
|
||
|
}
|
||
|
|
||
|
void RendererD3D::popGroupMarker()
|