Files
86Box/src/qt/qt_hardwarerenderer.cpp

45 lines
1.0 KiB
C++
Raw Normal View History

#include "qt_hardwarerenderer.hpp"
void HardwareRenderer::resizeGL(int w, int h)
{
glViewport(0, 0, w, h);
}
void HardwareRenderer::initializeGL()
{
initializeOpenGLFunctions();
}
void HardwareRenderer::paintGL()
{
QPainter painter(this);
painter.drawImage(QRect(0, 0, width(), height()), image, QRect(sx, sy, sw, sh));
// "release" image, reducing it's refcount, so renderstack::blit()
// won't have to reallocate
image = QImage();
}
void HardwareRenderer::setRenderType(RenderType type) {
QSurfaceFormat format;
switch (type) {
case RenderType::OpenGL:
setTextureFormat(GL_RGB);
format.setRenderableType(QSurfaceFormat::OpenGL);
break;
case RenderType::OpenGLES:
setTextureFormat(GL_RGBA);
format.setRenderableType(QSurfaceFormat::OpenGLES);
break;
}
setFormat(format);
}
void HardwareRenderer::onBlit(const QImage& img, int x, int y, int w, int h) {
image = img;
sx = x;
sy = y;
sw = w;
sh = h;
update();
}