blob: c34f1a9178f30dc80cef4291251b0e17af9bbf75 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include "slang-std-writers.h"
#if SLANG_WINDOWS_FAMILY
#include <Windows.h>
#endif
namespace Slang
{
/* static */ StdWriters* StdWriters::s_singleton = nullptr;
/* static */ RefPtr<StdWriters> StdWriters::createDefault()
{
#if SLANG_WINDOWS_FAMILY
SetConsoleCP(CP_UTF8);
SetConsoleOutputCP(CP_UTF8);
#endif
RefPtr<StdWriters> stdWriters(new StdWriters);
RefPtr<FileWriter> stdError(
new FileWriter(stderr, WriterFlag::AutoFlush | WriterFlag::IsUnowned));
RefPtr<FileWriter> stdOut(
new FileWriter(stdout, WriterFlag::AutoFlush | WriterFlag::IsUnowned));
stdWriters->setWriter(SLANG_WRITER_CHANNEL_STD_ERROR, stdError);
stdWriters->setWriter(SLANG_WRITER_CHANNEL_STD_OUTPUT, stdOut);
return stdWriters;
}
/* static */ RefPtr<StdWriters> StdWriters::initDefaultSingleton()
{
if (s_singleton)
{
return s_singleton;
}
auto defaults = createDefault();
setSingleton(defaults);
return defaults;
}
} // namespace Slang
|