1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-06-27 23:14:05 +00:00
GLideN64/src/DisplayLoadProgress.cpp
DaMarkov f42ee1e7f8 Added gfx_force_43 to switch the aspect ratio to 4:3 on the fly.
I had to add a new method `forceResizeWindow` for this.
Also added NO_LOAD_PROGRESS_DISPLAY.
2022-02-10 21:27:45 +01:00

52 lines
1.2 KiB
C++

#include <stdarg.h>
#include <string.h>
#include <cstdlib>
#include "GLideNHQ/TxFilterExport.h"
#include <Graphics/Context.h>
#include <Graphics/Parameters.h>
#include "FrameBuffer.h"
#include "DisplayWindow.h"
#include "DisplayLoadProgress.h"
void displayLoadProgress(const wchar_t *format, ...)
{
#ifndef NO_LOAD_PROGRESS_DISPLAY
va_list args;
wchar_t wbuf[INFO_BUF];
char buf[INFO_BUF];
// process input
#ifdef OS_ANDROID
const u32 bufSize = 2048;
char cbuf[bufSize];
char fmt[bufSize];
wcstombs(fmt, format, bufSize);
va_start(args, format);
vsprintf(cbuf, fmt, args);
va_end(args);
mbstowcs(wbuf, cbuf, INFO_BUF);
#else
va_start(args, format);
vswprintf(wbuf, INFO_BUF, format, args);
va_end(args);
#endif
// XXX: convert to multibyte
wcstombs(buf, wbuf, INFO_BUF);
FrameBuffer* pBuffer = frameBufferList().getCurrent();
if (pBuffer != nullptr)
gfxContext.bindFramebuffer(graphics::bufferTarget::DRAW_FRAMEBUFFER, graphics::ObjectHandle::defaultFramebuffer);
GraphicsDrawer & drawer = dwnd().getDrawer();
drawer.clearColorBuffer(nullptr);
if (strlen(buf) > 0)
drawer.drawText(buf, -0.9f, 0);
dwnd().swapBuffers();
if (pBuffer != nullptr)
gfxContext.bindFramebuffer(graphics::bufferTarget::DRAW_FRAMEBUFFER, pBuffer->m_FBO);
#endif
}