Pass format to the QGLWidget and use atomic instead of mutex.
This commit is contained in:
		@@ -33,7 +33,7 @@ void EmuThread::SetFilename(std::string filename)
 | 
			
		||||
void EmuThread::run()
 | 
			
		||||
{
 | 
			
		||||
    stop_run = false;
 | 
			
		||||
    while (true)
 | 
			
		||||
    while (!stop_run)
 | 
			
		||||
    {
 | 
			
		||||
        for (int tight_loop = 0; tight_loop < 10000; ++tight_loop)
 | 
			
		||||
        {
 | 
			
		||||
@@ -49,9 +49,6 @@ void EmuThread::run()
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        QMutexLocker lock(&mutex);
 | 
			
		||||
        if (stop_run)
 | 
			
		||||
            break;
 | 
			
		||||
    }
 | 
			
		||||
    render_window->moveContext();
 | 
			
		||||
 | 
			
		||||
@@ -65,11 +62,7 @@ void EmuThread::Stop()
 | 
			
		||||
        INFO_LOG(MASTER_LOG, "EmuThread::Stop called while emu thread wasn't running, returning...");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
        QMutexLocker lock(&mutex);
 | 
			
		||||
        stop_run = true;
 | 
			
		||||
    }
 | 
			
		||||
    stop_run = true;
 | 
			
		||||
 | 
			
		||||
    //core::g_state = core::SYS_DIE;
 | 
			
		||||
 | 
			
		||||
@@ -94,7 +87,7 @@ void EmuThread::Stop()
 | 
			
		||||
class GGLWidgetInternal : public QGLWidget
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    GGLWidgetInternal(QGLFormat fmt, GRenderWindow* parent) : QGLWidget(parent)
 | 
			
		||||
    GGLWidgetInternal(QGLFormat fmt, GRenderWindow* parent) : QGLWidget(fmt, parent)
 | 
			
		||||
    {
 | 
			
		||||
        parent_ = parent;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
#include <QMutex>
 | 
			
		||||
#include <QThread>
 | 
			
		||||
#include <QGLWidget>
 | 
			
		||||
#include <atomic>
 | 
			
		||||
#include "common/common.h"
 | 
			
		||||
#include "common/emu_window.h"
 | 
			
		||||
 | 
			
		||||
@@ -67,8 +67,7 @@ private:
 | 
			
		||||
 | 
			
		||||
    bool exec_cpu_step;
 | 
			
		||||
    bool cpu_running;
 | 
			
		||||
    bool stop_run;
 | 
			
		||||
    QMutex mutex;
 | 
			
		||||
    std::atomic<bool> stop_run;
 | 
			
		||||
 | 
			
		||||
    GRenderWindow* render_window;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user