mirror of
https://github.com/simple64/simple64.git
synced 2026-07-11 09:33:59 +02:00
52 lines
1.3 KiB
C++
52 lines
1.3 KiB
C++
|
|
#include "vkwindow.h"
|
|
#include "mainwindow.h"
|
|
#include "interface/core_commands.h"
|
|
|
|
VkWindow::VkWindow(QWindow *parent)
|
|
: QWindow(parent)
|
|
{
|
|
setSurfaceType(QWindow::VulkanSurface);
|
|
}
|
|
|
|
VkWindow::~VkWindow()
|
|
{
|
|
if (w->getCoreLib())
|
|
{
|
|
m64p_handle configVideoParallel = NULL;
|
|
(*ConfigOpenSection)("Video-Parallel", &configVideoParallel);
|
|
(*ConfigSetParameter)(configVideoParallel, "ScreenWidth", M64TYPE_INT, &orig_width);
|
|
(*ConfigSetParameter)(configVideoParallel, "ScreenHeight", M64TYPE_INT, &orig_height);
|
|
(*ConfigSaveSection)("Video-Parallel");
|
|
}
|
|
}
|
|
|
|
void VkWindow::resizeEvent(QResizeEvent *event)
|
|
{
|
|
QWindow::resizeEvent(event);
|
|
if (timerId)
|
|
{
|
|
killTimer(timerId);
|
|
timerId = 0;
|
|
}
|
|
timerId = startTimer(500);
|
|
orig_width = event->size().width();
|
|
orig_height = event->size().height();
|
|
m_width = orig_width * devicePixelRatio();
|
|
m_height = orig_height * devicePixelRatio();
|
|
}
|
|
|
|
void VkWindow::timerEvent(QTimerEvent *te)
|
|
{
|
|
int size = (m_width << 16) + m_height;
|
|
int current_size = 0;
|
|
|
|
(*CoreDoCommand)(M64CMD_CORE_STATE_QUERY, M64CORE_VIDEO_SIZE, ¤t_size);
|
|
if (current_size != size)
|
|
(*CoreDoCommand)(M64CMD_CORE_STATE_SET, M64CORE_VIDEO_SIZE, &size);
|
|
|
|
killTimer(te->timerId());
|
|
timerId = 0;
|
|
requestActivate();
|
|
}
|