Merge branch '86Box:master' into nec-v20
This commit is contained in:
@@ -23,7 +23,9 @@
|
||||
#ifndef PLAT_WIN_H
|
||||
#define PLAT_WIN_H
|
||||
|
||||
#ifndef UNICODE
|
||||
#define UNICODE
|
||||
#endif
|
||||
#define BITMAP WINDOWS_BITMAP
|
||||
#if 0
|
||||
# ifdef _WIN32_WINNT
|
||||
|
@@ -329,9 +329,11 @@ net_slirp_thread(void *priv)
|
||||
break;
|
||||
|
||||
case NET_EVENT_TX:
|
||||
int packets = network_tx_popv(slirp->card, slirp->pkt_tx_v, SLIRP_PKT_BATCH);
|
||||
for (int i = 0; i < packets; i++) {
|
||||
net_slirp_in(slirp, slirp->pkt_tx_v[i].data, slirp->pkt_tx_v[i].len);
|
||||
{
|
||||
int packets = network_tx_popv(slirp->card, slirp->pkt_tx_v, SLIRP_PKT_BATCH);
|
||||
for (int i = 0; i < packets; i++) {
|
||||
net_slirp_in(slirp, slirp->pkt_tx_v[i].data, slirp->pkt_tx_v[i].len);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
@@ -21,7 +21,10 @@
|
||||
#include "qt_hardwarerenderer.hpp"
|
||||
#include <QApplication>
|
||||
#include <QVector2D>
|
||||
#include <QOpenGLPixelTransferOptions>
|
||||
|
||||
#include <atomic>
|
||||
#include <cstdint>
|
||||
#include <vector>
|
||||
|
||||
extern "C" {
|
||||
@@ -196,7 +199,14 @@ void HardwareRenderer::onBlit(int buf_idx, int x, int y, int w, int h) {
|
||||
return;
|
||||
}
|
||||
m_context->makeCurrent(this);
|
||||
m_texture->setData(QOpenGLTexture::PixelFormat::RGBA, QOpenGLTexture::PixelType::UInt8, (const void*)imagebufs[buf_idx].get());
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
|
||||
m_texture->setData(x, y, 0, w, h, 0, QOpenGLTexture::PixelFormat::RGBA, QOpenGLTexture::PixelType::UInt8, (const void*)((uintptr_t)imagebufs[buf_idx].get() + (uintptr_t)(2048 * 4 * y + x * 4)), &m_transferOptions);
|
||||
#else
|
||||
m_texture->bind();
|
||||
glPixelStorei(GL_UNPACK_ROW_LENGTH, 2048);
|
||||
glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, w, h, QOpenGLTexture::PixelFormat::RGBA, QOpenGLTexture::PixelType::UInt8, (const void*)((uintptr_t)imagebufs[buf_idx].get() + (uintptr_t)(2048 * 4 * y + x * 4)));
|
||||
m_texture->release();
|
||||
#endif
|
||||
buf_usage[buf_idx].clear();
|
||||
source.setRect(x, y, w, h);
|
||||
if (origSource != source) onResize(this->width(), this->height());
|
||||
|
@@ -8,6 +8,7 @@
|
||||
#include <QOpenGLShader>
|
||||
#include <QOpenGLShaderProgram>
|
||||
#include <QOpenGLTextureBlitter>
|
||||
#include <QOpenGLPixelTransferOptions>
|
||||
#include <QPainter>
|
||||
#include <QEvent>
|
||||
#include <QKeyEvent>
|
||||
@@ -38,6 +39,8 @@ private:
|
||||
QOpenGLTextureBlitter* m_blt{nullptr};
|
||||
QOpenGLBuffer m_vbo[2];
|
||||
QOpenGLVertexArrayObject m_vao;
|
||||
QOpenGLPixelTransferOptions m_transferOptions;
|
||||
|
||||
public:
|
||||
enum class RenderType {
|
||||
OpenGL,
|
||||
@@ -67,6 +70,8 @@ public:
|
||||
parentWidget = parent;
|
||||
setRenderType(rtype);
|
||||
|
||||
m_transferOptions.setRowLength(2048);
|
||||
|
||||
m_context = new QOpenGLContext();
|
||||
m_context->setFormat(format());
|
||||
m_context->create();
|
||||
|
@@ -293,7 +293,7 @@ int main(int argc, char* argv[]) {
|
||||
QObject::connect(&discordupdate, &QTimer::timeout, &app, [] {
|
||||
discord_run_callbacks();
|
||||
});
|
||||
discordupdate.start(0);
|
||||
discordupdate.start(1000);
|
||||
}
|
||||
|
||||
/* Initialize the rendering window, or fullscreen. */
|
||||
|
@@ -205,15 +205,15 @@ void joystick_get_capabilities(raw_joystick_t* rawjoy, plat_joystick_t* joy) {
|
||||
|
||||
void joystick_get_device_name(raw_joystick_t* rawjoy, plat_joystick_t* joy, PRID_DEVICE_INFO info) {
|
||||
UINT size = 0;
|
||||
char *device_name = NULL;
|
||||
WCHAR *device_name = NULL;
|
||||
WCHAR device_desc_wide[200] = {0};
|
||||
|
||||
GetRawInputDeviceInfoA(rawjoy->hdevice, RIDI_DEVICENAME, device_name, &size);
|
||||
device_name = calloc(size, sizeof(char));
|
||||
if (GetRawInputDeviceInfoA(rawjoy->hdevice, RIDI_DEVICENAME, device_name, &size) <= 0)
|
||||
GetRawInputDeviceInfoW(rawjoy->hdevice, RIDI_DEVICENAME, device_name, &size);
|
||||
device_name = calloc(size, sizeof(WCHAR));
|
||||
if (GetRawInputDeviceInfoW(rawjoy->hdevice, RIDI_DEVICENAME, device_name, &size) <= 0)
|
||||
fatal("joystick_get_capabilities: Failed to get device name.\n");
|
||||
|
||||
HANDLE hDevObj = CreateFile(device_name, GENERIC_READ | GENERIC_WRITE,
|
||||
HANDLE hDevObj = CreateFileW(device_name, GENERIC_READ | GENERIC_WRITE,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
|
||||
if (hDevObj) {
|
||||
HidD_GetProductString(hDevObj, device_desc_wide, sizeof(WCHAR) * 200);
|
||||
|
@@ -220,15 +220,15 @@ void
|
||||
joystick_get_device_name(raw_joystick_t *rawjoy, plat_joystick_t *joy, PRID_DEVICE_INFO info)
|
||||
{
|
||||
UINT size = 0;
|
||||
char *device_name = NULL;
|
||||
WCHAR *device_name = NULL;
|
||||
WCHAR device_desc_wide[200] = { 0 };
|
||||
|
||||
GetRawInputDeviceInfoA(rawjoy->hdevice, RIDI_DEVICENAME, device_name, &size);
|
||||
device_name = calloc(size, sizeof(char));
|
||||
if (GetRawInputDeviceInfoA(rawjoy->hdevice, RIDI_DEVICENAME, device_name, &size) <= 0)
|
||||
GetRawInputDeviceInfoW(rawjoy->hdevice, RIDI_DEVICENAME, device_name, &size);
|
||||
device_name = calloc(size, sizeof(WCHAR));
|
||||
if (GetRawInputDeviceInfoW(rawjoy->hdevice, RIDI_DEVICENAME, device_name, &size) <= 0)
|
||||
fatal("joystick_get_capabilities: Failed to get device name.\n");
|
||||
|
||||
HANDLE hDevObj = CreateFile(device_name, GENERIC_READ | GENERIC_WRITE,
|
||||
HANDLE hDevObj = CreateFileW(device_name, GENERIC_READ | GENERIC_WRITE,
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
|
||||
if (hDevObj) {
|
||||
HidD_GetProductString(hDevObj, device_desc_wide, sizeof(WCHAR) * 200);
|
||||
|
Reference in New Issue
Block a user