mirror of https://github.com/mgba-emu/mgba.git
Qt: Fix maxing out at 120 FPS on OS X
This commit is contained in:
parent
ee8dedeea1
commit
2414df6527
|
@ -164,11 +164,13 @@ void Painter::setBacking(const uint32_t* backing) {
|
||||||
void Painter::resize(const QSize& size) {
|
void Painter::resize(const QSize& size) {
|
||||||
m_size = size;
|
m_size = size;
|
||||||
forceDraw();
|
forceDraw();
|
||||||
|
forceDraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Painter::lockAspectRatio(bool lock) {
|
void Painter::lockAspectRatio(bool lock) {
|
||||||
m_lockAspectRatio = lock;
|
m_lockAspectRatio = lock;
|
||||||
forceDraw();
|
forceDraw();
|
||||||
|
forceDraw();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Painter::filter(bool filter) {
|
void Painter::filter(bool filter) {
|
||||||
|
@ -225,6 +227,8 @@ void Painter::draw() {
|
||||||
|
|
||||||
void Painter::forceDraw() {
|
void Painter::forceDraw() {
|
||||||
m_gl->makeCurrent();
|
m_gl->makeCurrent();
|
||||||
|
glViewport(0, 0, m_size.width() * m_gl->devicePixelRatio(), m_size.height() * m_gl->devicePixelRatio());
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
performDraw();
|
performDraw();
|
||||||
m_gl->swapBuffers();
|
m_gl->swapBuffers();
|
||||||
m_gl->doneCurrent();
|
m_gl->doneCurrent();
|
||||||
|
@ -253,10 +257,14 @@ void Painter::unpause() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Painter::performDraw() {
|
void Painter::performDraw() {
|
||||||
glViewport(0, 0, m_size.width() * m_gl->devicePixelRatio(), m_size.height() * m_gl->devicePixelRatio());
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
int w = m_size.width() * m_gl->devicePixelRatio();
|
int w = m_size.width() * m_gl->devicePixelRatio();
|
||||||
int h = m_size.height() * m_gl->devicePixelRatio();
|
int h = m_size.height() * m_gl->devicePixelRatio();
|
||||||
|
#ifndef Q_OS_MAC
|
||||||
|
// TODO: This seems to cause framerates to drag down to 120 FPS on OS X,
|
||||||
|
// even if the emulator can go faster. Look into why.
|
||||||
|
glViewport(0, 0, m_size.width() * m_gl->devicePixelRatio(), m_size.height() * m_gl->devicePixelRatio());
|
||||||
|
glClear(GL_COLOR_BUFFER_BIT);
|
||||||
|
#endif
|
||||||
int drawW = w;
|
int drawW = w;
|
||||||
int drawH = h;
|
int drawH = h;
|
||||||
if (m_lockAspectRatio) {
|
if (m_lockAspectRatio) {
|
||||||
|
|
Loading…
Reference in New Issue