mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-11-26 23:10:38 +00:00
Split out QtHost.h from HostTypes.h
This commit is contained in:
parent
b74634aa3b
commit
448e8fb49a
@ -733,6 +733,8 @@ elseif(USING_QT_UI)
|
||||
${QT_UI_GEN}
|
||||
Qt/QtMain.cpp
|
||||
Qt/QtMain.h
|
||||
Qt/QtHost.cpp
|
||||
Qt/QtHost.h
|
||||
Qt/mainwindow.cpp
|
||||
Qt/mainwindow.h
|
||||
Qt/Debugger/ctrldisasmview.cpp
|
||||
|
@ -10,8 +10,9 @@
|
||||
#include "Core/Host.h"
|
||||
#include "base/display.h"
|
||||
#include "mainwindow.h"
|
||||
#include "UI/HostTypes.h"
|
||||
//commented out until someone bothers to maintain it
|
||||
#include "Qt/QtHost.h"
|
||||
|
||||
//commented out until someone bothers to maintain it (see below)
|
||||
//#include "GPU/GLES/VertexDecoder.h"
|
||||
|
||||
Debugger_DisplayList::Debugger_DisplayList(DebugInterface *_cpu, Draw::DrawContext *draw, MainWindow* mainWindow_, QWidget *parent) :
|
||||
|
29
Qt/QtHost.cpp
Normal file
29
Qt/QtHost.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
// Copyright (c) 2014- PPSSPP Project.
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, version 2.0 or later versions.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official git repository and contact information can be found at
|
||||
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
|
||||
|
||||
#include <string>
|
||||
#include "Qt/QtHost.h"
|
||||
|
||||
const char* QtHost::SymbolMapFilename(std::string currentFilename) {
|
||||
std::string result = currentFilename;
|
||||
size_t dot = result.rfind('.');
|
||||
if (dot == result.npos)
|
||||
return (result + ".map").c_str();
|
||||
|
||||
result.replace(dot, result.npos, ".map");
|
||||
return result.c_str();
|
||||
}
|
119
Qt/QtHost.h
Normal file
119
Qt/QtHost.h
Normal file
@ -0,0 +1,119 @@
|
||||
// Copyright (c) 2014- PPSSPP Project.
|
||||
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, version 2.0 or later versions.
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License 2.0 for more details.
|
||||
|
||||
// A copy of the GPL 2.0 should have been included with the program.
|
||||
// If not, see http://www.gnu.org/licenses/
|
||||
|
||||
// Official git repository and contact information can be found at
|
||||
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Core/Host.h"
|
||||
#include "UI/OnScreenDisplay.h"
|
||||
|
||||
#include "Core/Debugger/SymbolMap.h"
|
||||
#include "Qt/mainwindow.h"
|
||||
|
||||
class QtHost : public Host {
|
||||
public:
|
||||
QtHost(MainWindow *mainWindow_)
|
||||
{
|
||||
mainWindow = mainWindow_;
|
||||
m_GPUStep = false;
|
||||
m_GPUFlag = 0;
|
||||
}
|
||||
|
||||
virtual void UpdateUI() override {
|
||||
mainWindow->updateMenus();
|
||||
}
|
||||
|
||||
virtual void UpdateMemView() override {
|
||||
if(mainWindow->GetDialogMemory())
|
||||
mainWindow->GetDialogMemory()->Update();
|
||||
}
|
||||
virtual void UpdateDisassembly() override {
|
||||
if(mainWindow->GetDialogDisasm())
|
||||
mainWindow->GetDialogDisasm()->Update();
|
||||
if(mainWindow->GetDialogDisplaylist())
|
||||
mainWindow->GetDialogDisplaylist()->Update();
|
||||
}
|
||||
|
||||
virtual void SetDebugMode(bool mode) override {
|
||||
if(mainWindow->GetDialogDisasm())
|
||||
mainWindow->GetDialogDisasm()->SetDebugMode(mode);
|
||||
}
|
||||
|
||||
virtual bool InitGraphics(std::string *error_message, GraphicsContext **ctx) override { return true; }
|
||||
virtual void ShutdownGraphics() override {}
|
||||
|
||||
virtual void InitSound() override;
|
||||
virtual void UpdateSound() override {}
|
||||
virtual void ShutdownSound() override;
|
||||
|
||||
// this is sent from EMU thread! Make sure that Host handles it properly!
|
||||
virtual void BootDone() override {
|
||||
g_symbolMap->SortSymbols();
|
||||
mainWindow->Notify(MainWindowMsg::BOOT_DONE);
|
||||
}
|
||||
|
||||
virtual bool IsDebuggingEnabled() override {
|
||||
#ifdef _DEBUG
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
virtual bool AttemptLoadSymbolMap() override {
|
||||
return false;
|
||||
// TODO: Make this work with Qt and threaded GL... not sure what's so broken.
|
||||
// auto fn = SymbolMapFilename(PSP_CoreParameter().fileToStart);
|
||||
// return g_symbolMap->LoadSymbolMap(fn);
|
||||
}
|
||||
void PrepareShutdown() {
|
||||
g_symbolMap->SaveSymbolMap(SymbolMapFilename(PSP_CoreParameter().fileToStart));
|
||||
}
|
||||
void SetWindowTitle(const char *message) override {
|
||||
QString title = "PPSSPP " + QString(PPSSPP_GIT_VERSION) + " - " + QString::fromUtf8(message);
|
||||
|
||||
mainWindow->setWindowTitle(title);
|
||||
}
|
||||
|
||||
void NotifyUserMessage(const std::string &message, float duration = 1.0f, u32 color = 0x00FFFFFF, const char *id = nullptr) override {
|
||||
osm.Show(message, duration, color, -1, true, id);
|
||||
}
|
||||
|
||||
void SendUIMessage(const std::string &message, const std::string &value) override {
|
||||
NativeMessageReceived(message.c_str(), value.c_str());
|
||||
}
|
||||
|
||||
bool GPUDebuggingActive() override {
|
||||
auto dialogDisplayList = mainWindow->GetDialogDisplaylist();
|
||||
if (dialogDisplayList && dialogDisplayList->isVisible()) {
|
||||
if (m_GPUStep && m_GPUFlag == -1)
|
||||
m_GPUFlag = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
void SetGPUStep(bool value, int flag = 0, u32 data = 0) {
|
||||
m_GPUStep = value;
|
||||
m_GPUFlag = flag;
|
||||
m_GPUData = data;
|
||||
}
|
||||
private:
|
||||
const char* SymbolMapFilename(std::string currentFilename);
|
||||
MainWindow* mainWindow;
|
||||
bool m_GPUStep;
|
||||
int m_GPUFlag;
|
||||
u32 m_GPUData;
|
||||
};
|
117
UI/HostTypes.h
117
UI/HostTypes.h
@ -20,11 +20,6 @@
|
||||
#include "Core/Host.h"
|
||||
#include "UI/OnScreenDisplay.h"
|
||||
|
||||
#if !defined(MOBILE_DEVICE) && defined(USING_QT_UI)
|
||||
#include "Core/Debugger/SymbolMap.h"
|
||||
#include "Qt/mainwindow.h"
|
||||
#endif
|
||||
|
||||
class NativeHost : public Host {
|
||||
public:
|
||||
NativeHost() {}
|
||||
@ -58,115 +53,3 @@ public:
|
||||
NativeMessageReceived(message.c_str(), value.c_str());
|
||||
}
|
||||
};
|
||||
|
||||
#if !defined(MOBILE_DEVICE) && defined(USING_QT_UI)
|
||||
static const char* SymbolMapFilename(std::string currentFilename)
|
||||
{
|
||||
std::string result = currentFilename;
|
||||
size_t dot = result.rfind('.');
|
||||
if (dot == result.npos)
|
||||
return (result + ".map").c_str();
|
||||
|
||||
result.replace(dot, result.npos, ".map");
|
||||
return result.c_str();
|
||||
}
|
||||
|
||||
class QtHost : public Host {
|
||||
public:
|
||||
QtHost(MainWindow *mainWindow_)
|
||||
{
|
||||
mainWindow = mainWindow_;
|
||||
m_GPUStep = false;
|
||||
m_GPUFlag = 0;
|
||||
}
|
||||
|
||||
virtual void UpdateUI() override {
|
||||
mainWindow->updateMenus();
|
||||
}
|
||||
|
||||
virtual void UpdateMemView() override {
|
||||
if(mainWindow->GetDialogMemory())
|
||||
mainWindow->GetDialogMemory()->Update();
|
||||
}
|
||||
virtual void UpdateDisassembly() override {
|
||||
if(mainWindow->GetDialogDisasm())
|
||||
mainWindow->GetDialogDisasm()->Update();
|
||||
if(mainWindow->GetDialogDisplaylist())
|
||||
mainWindow->GetDialogDisplaylist()->Update();
|
||||
}
|
||||
|
||||
virtual void SetDebugMode(bool mode) override {
|
||||
if(mainWindow->GetDialogDisasm())
|
||||
mainWindow->GetDialogDisasm()->SetDebugMode(mode);
|
||||
}
|
||||
|
||||
virtual bool InitGraphics(std::string *error_message, GraphicsContext **ctx) override { return true; }
|
||||
virtual void ShutdownGraphics() override {}
|
||||
|
||||
virtual void InitSound() override;
|
||||
virtual void UpdateSound() override {}
|
||||
virtual void ShutdownSound();
|
||||
|
||||
// this is sent from EMU thread! Make sure that Host handles it properly!
|
||||
virtual void BootDone() {
|
||||
g_symbolMap->SortSymbols();
|
||||
mainWindow->Notify(MainWindowMsg::BOOT_DONE);
|
||||
}
|
||||
|
||||
virtual bool IsDebuggingEnabled() {
|
||||
#ifdef _DEBUG
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
virtual bool AttemptLoadSymbolMap() {
|
||||
return false;
|
||||
// TODO: Make this work with Qt and threaded GL... not sure what's so broken.
|
||||
// auto fn = SymbolMapFilename(PSP_CoreParameter().fileToStart);
|
||||
// return g_symbolMap->LoadSymbolMap(fn);
|
||||
}
|
||||
virtual void PrepareShutdown() {
|
||||
g_symbolMap->SaveSymbolMap(SymbolMapFilename(PSP_CoreParameter().fileToStart));
|
||||
}
|
||||
virtual void ResetSymbolMap() {}
|
||||
virtual void AddSymbol(std::string name, u32 addr, u32 size, int type=0) {}
|
||||
virtual void SetWindowTitle(const char *message) {
|
||||
QString title = "PPSSPP " + QString(PPSSPP_GIT_VERSION) + " - " + QString::fromUtf8(message);
|
||||
|
||||
mainWindow->setWindowTitle(title);
|
||||
}
|
||||
|
||||
void NotifyUserMessage(const std::string &message, float duration = 1.0f, u32 color = 0x00FFFFFF, const char *id = nullptr) override {
|
||||
osm.Show(message, duration, color, -1, true, id);
|
||||
}
|
||||
|
||||
void SendUIMessage(const std::string &message, const std::string &value) override {
|
||||
NativeMessageReceived(message.c_str(), value.c_str());
|
||||
}
|
||||
|
||||
bool GPUDebuggingActive()
|
||||
{
|
||||
auto dialogDisplayList = mainWindow->GetDialogDisplaylist();
|
||||
if (dialogDisplayList && dialogDisplayList->isVisible())
|
||||
{
|
||||
if (m_GPUStep && m_GPUFlag == -1)
|
||||
m_GPUFlag = 0;
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
void SetGPUStep(bool value, int flag = 0, u32 data = 0)
|
||||
{
|
||||
m_GPUStep = value;
|
||||
m_GPUFlag = flag;
|
||||
m_GPUData = data;
|
||||
}
|
||||
private:
|
||||
MainWindow* mainWindow;
|
||||
bool m_GPUStep;
|
||||
int m_GPUFlag;
|
||||
u32 m_GPUData;
|
||||
};
|
||||
#endif
|
||||
|
@ -101,6 +101,10 @@
|
||||
#include "Common/KeyMap.h"
|
||||
#endif
|
||||
|
||||
#if !defined(MOBILE_DEVICE) && defined(USING_QT_UI)
|
||||
#include "Qt/QtHost.h"
|
||||
#endif
|
||||
|
||||
// The new UI framework, for initialization
|
||||
|
||||
static UI::Theme ui_theme;
|
||||
|
Loading…
Reference in New Issue
Block a user