mcpe/source/common/StandardOut.cpp
Brent 2e55f99a54
Options Logic Cleanup (#71)
* Output/Logging Overhaul
* Added StandardOut class
* Renamed LOGX macros to LOG_X
* Removed LogMsg macros in favor of LOG_X
* Added console window for debug Windows builds

* Options Refactor
* Moved options loading code from AppPlatform classes to Options class
* Added AppPlatform::singleton()
* Minecraft::m_options is now only accessible via Minecraft::getOptions() (as it should be)
* Making this work with SDL2 next

* Options Cleanup for SDL2

* Added AppPlatform::hasFileSystemAccess()
* Options won't try to load if hasFileSystemAccess returns false. Emscripten build will be happy.

---------

Co-authored-by: Brent Da Mage <BrentDaMage@users.noreply.github.com>
2023-09-04 12:11:36 +03:00

46 lines
No EOL
893 B
C++

#include <iostream>
#include <stdarg.h>
#ifdef _WIN32
#include <windows.h>
#endif
#include "StandardOut.hpp"
#include "Util.hpp"
StandardOut* const StandardOut::singleton()
{
// This is automatically allocated when accessed for the first time,
// and automatically deallocated when runtime concludes.
static StandardOut standardOut = StandardOut();
return &standardOut;
}
void StandardOut::print(const char* const str)
{
std::cout << str << std::endl;
#ifdef _WIN32
OutputDebugStringA(str);
OutputDebugStringA("\n");
#endif
}
void StandardOut::print(std::string str)
{
print(str.c_str());
}
void StandardOut::vprintf(const char* const fmt, va_list argPtr)
{
print(Util::vformat(fmt, argPtr));
}
void StandardOut::printf(const char* const fmt, ...)
{
va_list argList;
va_start(argList, fmt);
vprintf(fmt, argList);
va_end(argList);
}