]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/gui/glwidget.cpp
Incremental changes to get Jaguar engine to work in QT environment.
[virtualjaguar] / src / gui / glwidget.cpp
index 109c1c9b1ec235b2e6cc9098e391691f6dae972f..9788bc3b4f65e53cc6cd5fb039e01f3ee827b59d 100644 (file)
 #include "glwidget.h"
 
 #include "settings.h"
+#include "tom.h"
+#include "video.h"
 
 GLWidget::GLWidget(QWidget * parent/*= 0*/): QGLWidget(parent), texture(0),
-       textureWidth(0), textureHeight(0), buffer(0), rasterWidth(64), rasterHeight(64)
-//     textureWidth(0), textureHeight(0), buffer(0), rasterWidth(256), rasterHeight(256)
+       textureWidth(0), textureHeight(0), buffer(0), rasterWidth(320), rasterHeight(240)
 {
+//     tomDeviceWidth = rasterWidth;
+       tomDeviceWidth = 1024;  // It has to be the texture width...
+
+       // Set up the backbuffer
+       // To be safe, this should be 1280 * 625 * 2...
+       backbuffer = (uint32_t *)malloc(1280 * 625 * sizeof(uint32_t));
+//     memset(backbuffer, 0x44, rasterWidth *
+       memset(backbuffer, 0xFF, 1024 *
+               (vjs.hardwareTypeNTSC ? rasterHeight : VIRTUAL_SCREEN_HEIGHT_PAL)
+               * sizeof(uint32_t));
 }
 
 GLWidget::~GLWidget()
 {
+       delete[] backbuffer;
 }
 
 void GLWidget::initializeGL()
@@ -42,6 +54,9 @@ void GLWidget::initializeGL()
 
 void GLWidget::paintGL()
 {
+//kludge
+rasterHeight = (vjs.hardwareTypeNTSC ? 240 : 256);
+
        unsigned outputWidth  = width();
        unsigned outputHeight = height();
 
@@ -53,10 +68,8 @@ void GLWidget::paintGL()
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
 
-       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, (smoothGLOutput ? GL_LINEAR : GL_NEAREST));
-       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, (smoothGLOutput ? GL_LINEAR : GL_NEAREST));
-//     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST /*GL_LINEAR*/);
-//     glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST /*GL_LINEAR*/);
+       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, (vjs.glFilter ? GL_LINEAR : GL_NEAREST));
+       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, (vjs.glFilter ? GL_LINEAR : GL_NEAREST));
 //     glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, rasterWidth, rasterHeight, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, buffer);
        glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, rasterWidth, rasterHeight, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, buffer);