mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-06-11 17:57:49 +00:00
Compare commits
13 Commits
01fc5d6466
...
9d8a090030
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9d8a090030 | ||
![]() |
185b080f03 | ||
![]() |
903eafcf65 | ||
![]() |
2a7e8a4003 | ||
![]() |
5ec5db9240 | ||
![]() |
974c56d3c5 | ||
![]() |
977f2da6a7 | ||
![]() |
b1d114f7f7 | ||
![]() |
be3d48ec5f | ||
![]() |
ae26b38fc0 | ||
![]() |
b9bea58f0f | ||
![]() |
ec29d120b5 | ||
![]() |
d48e6e25ad |
9
Data/Sys/GameSettings/SCYE4Q.ini
Normal file
9
Data/Sys/GameSettings/SCYE4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SCYE4Q - Cars 2
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x8019CB1C:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/SCYP4Q.ini
Normal file
9
Data/Sys/GameSettings/SCYP4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SCYP4Q - Cars 2
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x8019CB1C:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/SCYR4Q.ini
Normal file
9
Data/Sys/GameSettings/SCYR4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SCYR4Q - Cars 2
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x8019B4EC:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/SCYX4Q.ini
Normal file
9
Data/Sys/GameSettings/SCYX4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SCYX4Q - Cars 2
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x8019CBBC:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/SCYY4Q.ini
Normal file
9
Data/Sys/GameSettings/SCYY4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SCYY4Q - Cars 2
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x8019B55C:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/SCYZ4Q.ini
Normal file
9
Data/Sys/GameSettings/SCYZ4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SCYZ4Q - Cars 2
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x8019B55C:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
@ -1,4 +1,4 @@
|
|||||||
# SQIE4Q, SQIP4Q - Disney Infinity
|
# SQIE4Q, SQIP4Q, SQIY4Q - Disney Infinity
|
||||||
|
|
||||||
[Core]
|
[Core]
|
||||||
# Values set here will override the main Dolphin settings.
|
# Values set here will override the main Dolphin settings.
|
||||||
|
9
Data/Sys/GameSettings/SQIE4Q.ini
Normal file
9
Data/Sys/GameSettings/SQIE4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SQIE4Q - Disney Infinity
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x8008E60C:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/SQIP4Q.ini
Normal file
9
Data/Sys/GameSettings/SQIP4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SQIP4Q - Disney Infinity
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x8008E60C:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/SQIY4Q.ini
Normal file
9
Data/Sys/GameSettings/SQIY4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# SQIY4Q - Disney Infinity
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x8008E60C:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/STSE4Q.ini
Normal file
9
Data/Sys/GameSettings/STSE4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# STSE4Q - Toy Story 3
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x801FA2E4:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/STSP4Qr1.ini
Normal file
9
Data/Sys/GameSettings/STSP4Qr1.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# STSP4Q - Toy Story 3
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x801FA2E4:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/STSP4Qr2.ini
Normal file
9
Data/Sys/GameSettings/STSP4Qr2.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# STSP4Q - Toy Story 3
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x801FA354:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/STSX4Q.ini
Normal file
9
Data/Sys/GameSettings/STSX4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# STSX4Q - Toy Story 3
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x801FA354:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/STSY4Qr0.ini
Normal file
9
Data/Sys/GameSettings/STSY4Qr0.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# STSY4Q - Toy Story 3
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x801FA2E4:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/STSY4Qr1.ini
Normal file
9
Data/Sys/GameSettings/STSY4Qr1.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# STSY4Q - Toy Story 3
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x801FA354:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
9
Data/Sys/GameSettings/STSZ4Q.ini
Normal file
9
Data/Sys/GameSettings/STSZ4Q.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# STSZ4Q - Toy Story 3 Toy Box Special Edition
|
||||||
|
|
||||||
|
[OnFrame]
|
||||||
|
#This speedhack modifies the way the game manages memory to run faster in Dolphin.
|
||||||
|
$BAT Speedhack
|
||||||
|
0x801FA2E4:dword:0x48000180
|
||||||
|
|
||||||
|
[OnFrame_Enabled]
|
||||||
|
$BAT Speedhack
|
@ -45,6 +45,7 @@ const Info<bool> MAIN_ACCURATE_CPU_CACHE{{System::Main, "Core", "AccurateCPUCach
|
|||||||
const Info<bool> MAIN_DSP_HLE{{System::Main, "Core", "DSPHLE"}, true};
|
const Info<bool> MAIN_DSP_HLE{{System::Main, "Core", "DSPHLE"}, true};
|
||||||
const Info<int> MAIN_MAX_FALLBACK{{System::Main, "Core", "MaxFallback"}, 100};
|
const Info<int> MAIN_MAX_FALLBACK{{System::Main, "Core", "MaxFallback"}, 100};
|
||||||
const Info<int> MAIN_TIMING_VARIANCE{{System::Main, "Core", "TimingVariance"}, 40};
|
const Info<int> MAIN_TIMING_VARIANCE{{System::Main, "Core", "TimingVariance"}, 40};
|
||||||
|
const Info<bool> MAIN_CORRECT_TIME_DRIFT{{System::Main, "Core", "CorrectTimeDrift"}, false};
|
||||||
const Info<bool> MAIN_CPU_THREAD{{System::Main, "Core", "CPUThread"}, true};
|
const Info<bool> MAIN_CPU_THREAD{{System::Main, "Core", "CPUThread"}, true};
|
||||||
const Info<bool> MAIN_SYNC_ON_SKIP_IDLE{{System::Main, "Core", "SyncOnSkipIdle"}, true};
|
const Info<bool> MAIN_SYNC_ON_SKIP_IDLE{{System::Main, "Core", "SyncOnSkipIdle"}, true};
|
||||||
const Info<std::string> MAIN_DEFAULT_ISO{{System::Main, "Core", "DefaultISO"}, ""};
|
const Info<std::string> MAIN_DEFAULT_ISO{{System::Main, "Core", "DefaultISO"}, ""};
|
||||||
|
@ -63,6 +63,7 @@ extern const Info<bool> MAIN_ACCURATE_CPU_CACHE;
|
|||||||
extern const Info<bool> MAIN_DSP_HLE;
|
extern const Info<bool> MAIN_DSP_HLE;
|
||||||
extern const Info<int> MAIN_MAX_FALLBACK;
|
extern const Info<int> MAIN_MAX_FALLBACK;
|
||||||
extern const Info<int> MAIN_TIMING_VARIANCE;
|
extern const Info<int> MAIN_TIMING_VARIANCE;
|
||||||
|
extern const Info<bool> MAIN_CORRECT_TIME_DRIFT;
|
||||||
extern const Info<bool> MAIN_CPU_THREAD;
|
extern const Info<bool> MAIN_CPU_THREAD;
|
||||||
extern const Info<bool> MAIN_SYNC_ON_SKIP_IDLE;
|
extern const Info<bool> MAIN_SYNC_ON_SKIP_IDLE;
|
||||||
extern const Info<std::string> MAIN_DEFAULT_ISO;
|
extern const Info<std::string> MAIN_DEFAULT_ISO;
|
||||||
|
@ -105,10 +105,20 @@ void CoreTimingManager::Init()
|
|||||||
|
|
||||||
m_last_oc_factor = m_config_oc_factor;
|
m_last_oc_factor = m_config_oc_factor;
|
||||||
m_globals.last_OC_factor_inverted = m_config_oc_inv_factor;
|
m_globals.last_OC_factor_inverted = m_config_oc_inv_factor;
|
||||||
|
|
||||||
|
m_on_state_changed_handle = Core::AddOnStateChangedCallback([this](Core::State state) {
|
||||||
|
if (state == Core::State::Running)
|
||||||
|
{
|
||||||
|
// We don't want Throttle to attempt catch-up for all the time lost while paused.
|
||||||
|
ResetThrottle(GetTicks());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void CoreTimingManager::Shutdown()
|
void CoreTimingManager::Shutdown()
|
||||||
{
|
{
|
||||||
|
Core::RemoveOnStateChangedCallback(&m_on_state_changed_handle);
|
||||||
|
|
||||||
std::lock_guard lk(m_ts_write_lock);
|
std::lock_guard lk(m_ts_write_lock);
|
||||||
MoveEvents();
|
MoveEvents();
|
||||||
ClearPendingEvents();
|
ClearPendingEvents();
|
||||||
@ -131,6 +141,8 @@ void CoreTimingManager::RefreshConfig()
|
|||||||
|
|
||||||
m_max_variance = std::chrono::duration_cast<DT>(DT_ms(Config::Get(Config::MAIN_TIMING_VARIANCE)));
|
m_max_variance = std::chrono::duration_cast<DT>(DT_ms(Config::Get(Config::MAIN_TIMING_VARIANCE)));
|
||||||
|
|
||||||
|
m_correct_time_drift = Config::Get(Config::MAIN_CORRECT_TIME_DRIFT);
|
||||||
|
|
||||||
if (AchievementManager::GetInstance().IsHardcoreModeActive() &&
|
if (AchievementManager::GetInstance().IsHardcoreModeActive() &&
|
||||||
Config::Get(Config::MAIN_EMULATION_SPEED) < 1.0f &&
|
Config::Get(Config::MAIN_EMULATION_SPEED) < 1.0f &&
|
||||||
Config::Get(Config::MAIN_EMULATION_SPEED) > 0.0f)
|
Config::Get(Config::MAIN_EMULATION_SPEED) > 0.0f)
|
||||||
@ -428,7 +440,9 @@ void CoreTimingManager::Throttle(const s64 target_cycle)
|
|||||||
const TimePoint time = Clock::now();
|
const TimePoint time = Clock::now();
|
||||||
|
|
||||||
const TimePoint min_target = time - m_max_fallback;
|
const TimePoint min_target = time - m_max_fallback;
|
||||||
if (target_time < min_target)
|
|
||||||
|
// "Correct Time Drift" setting prevents timing relaxing.
|
||||||
|
if (!m_correct_time_drift && target_time < min_target)
|
||||||
{
|
{
|
||||||
// Core is running too slow.. i.e. CPU bottleneck.
|
// Core is running too slow.. i.e. CPU bottleneck.
|
||||||
const DT adjustment = min_target - target_time;
|
const DT adjustment = min_target - target_time;
|
||||||
|
@ -211,6 +211,7 @@ private:
|
|||||||
|
|
||||||
DT m_max_fallback = {};
|
DT m_max_fallback = {};
|
||||||
DT m_max_variance = {};
|
DT m_max_variance = {};
|
||||||
|
bool m_correct_time_drift = false;
|
||||||
double m_emulation_speed = 1.0;
|
double m_emulation_speed = 1.0;
|
||||||
|
|
||||||
bool IsSpeedUnlimited() const;
|
bool IsSpeedUnlimited() const;
|
||||||
@ -225,6 +226,8 @@ private:
|
|||||||
std::atomic_bool m_use_precision_timer = false;
|
std::atomic_bool m_use_precision_timer = false;
|
||||||
Common::PrecisionTimer m_precision_cpu_timer;
|
Common::PrecisionTimer m_precision_cpu_timer;
|
||||||
Common::PrecisionTimer m_precision_gpu_timer;
|
Common::PrecisionTimer m_precision_gpu_timer;
|
||||||
|
|
||||||
|
int m_on_state_changed_handle;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace CoreTiming
|
} // namespace CoreTiming
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
AboutDialog::AboutDialog(QWidget* parent) : QDialog(parent)
|
AboutDialog::AboutDialog(QWidget* parent) : QDialog(parent)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("About Dolphin"));
|
setWindowTitle(tr("About Dolphin"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
QString branch_str = QString::fromStdString(Common::GetScmBranchStr());
|
QString branch_str = QString::fromStdString(Common::GetScmBranchStr());
|
||||||
const int commits_ahead = Common::GetScmCommitsAheadMaster();
|
const int commits_ahead = Common::GetScmCommitsAheadMaster();
|
||||||
|
@ -27,7 +27,6 @@
|
|||||||
AchievementsWindow::AchievementsWindow(QWidget* parent) : QDialog(parent)
|
AchievementsWindow::AchievementsWindow(QWidget* parent) : QDialog(parent)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Achievements"));
|
setWindowTitle(tr("Achievements"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
CreateMainLayout();
|
CreateMainLayout();
|
||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
|
@ -69,8 +69,8 @@ add_executable(dolphin-emu
|
|||||||
Config/ControllerInterface/DualShockUDPClientWidget.h
|
Config/ControllerInterface/DualShockUDPClientWidget.h
|
||||||
Config/ControllerInterface/ServerStringValidator.cpp
|
Config/ControllerInterface/ServerStringValidator.cpp
|
||||||
Config/ControllerInterface/ServerStringValidator.h
|
Config/ControllerInterface/ServerStringValidator.h
|
||||||
Config/ControllersWindow.cpp
|
Config/ControllersPane.cpp
|
||||||
Config/ControllersWindow.h
|
Config/ControllersPane.h
|
||||||
Config/FilesystemWidget.cpp
|
Config/FilesystemWidget.cpp
|
||||||
Config/FilesystemWidget.h
|
Config/FilesystemWidget.h
|
||||||
Config/FreeLookWidget.cpp
|
Config/FreeLookWidget.cpp
|
||||||
|
@ -26,7 +26,6 @@ CheatsManager::CheatsManager(Core::System& system, QWidget* parent)
|
|||||||
: QDialog(parent), m_system(system)
|
: QDialog(parent), m_system(system)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Cheats Manager"));
|
setWindowTitle(tr("Cheats Manager"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this,
|
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this,
|
||||||
&CheatsManager::OnStateChanged);
|
&CheatsManager::OnStateChanged);
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
|
|
||||||
CheatCodeEditor::CheatCodeEditor(QWidget* parent) : QDialog(parent)
|
CheatCodeEditor::CheatCodeEditor(QWidget* parent) : QDialog(parent)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowTitle(tr("Cheat Code Editor"));
|
setWindowTitle(tr("Cheat Code Editor"));
|
||||||
|
|
||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
|
@ -17,7 +17,6 @@ ControllerInterfaceWindow::ControllerInterfaceWindow(QWidget* parent) : QDialog(
|
|||||||
CreateMainLayout();
|
CreateMainLayout();
|
||||||
|
|
||||||
setWindowTitle(tr("Alternate Input Sources"));
|
setWindowTitle(tr("Alternate Input Sources"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ControllerInterfaceWindow::CreateMainLayout()
|
void ControllerInterfaceWindow::CreateMainLayout()
|
||||||
|
@ -29,7 +29,6 @@ DualShockUDPClientAddServerDialog::DualShockUDPClientAddServerDialog(QWidget* pa
|
|||||||
void DualShockUDPClientAddServerDialog::CreateWidgets()
|
void DualShockUDPClientAddServerDialog::CreateWidgets()
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Add New DSU Server"));
|
setWindowTitle(tr("Add New DSU Server"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
m_main_layout = new QGridLayout;
|
m_main_layout = new QGridLayout;
|
||||||
|
|
||||||
|
35
Source/Core/DolphinQt/Config/ControllersPane.cpp
Normal file
35
Source/Core/DolphinQt/Config/ControllersPane.cpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Copyright 2025 Dolphin Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include "DolphinQt/Config/ControllersPane.h"
|
||||||
|
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
|
#include "DolphinQt/Config/CommonControllersWidget.h"
|
||||||
|
#include "DolphinQt/Config/GamecubeControllersWidget.h"
|
||||||
|
#include "DolphinQt/Config/WiimoteControllersWidget.h"
|
||||||
|
|
||||||
|
ControllersPane::ControllersPane()
|
||||||
|
{
|
||||||
|
CreateMainLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ControllersPane::showEvent(QShowEvent* event)
|
||||||
|
{
|
||||||
|
QWidget::showEvent(event);
|
||||||
|
|
||||||
|
m_wiimote_controllers->UpdateBluetoothAvailableStatus();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ControllersPane::CreateMainLayout()
|
||||||
|
{
|
||||||
|
auto* const layout = new QVBoxLayout{this};
|
||||||
|
|
||||||
|
auto* const gamecube_controllers = new GamecubeControllersWidget(this);
|
||||||
|
m_wiimote_controllers = new WiimoteControllersWidget(this);
|
||||||
|
auto* const common = new CommonControllersWidget(this);
|
||||||
|
|
||||||
|
layout->addWidget(gamecube_controllers);
|
||||||
|
layout->addWidget(m_wiimote_controllers);
|
||||||
|
layout->addWidget(common);
|
||||||
|
}
|
23
Source/Core/DolphinQt/Config/ControllersPane.h
Normal file
23
Source/Core/DolphinQt/Config/ControllersPane.h
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// Copyright 2025 Dolphin Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
class WiimoteControllersWidget;
|
||||||
|
|
||||||
|
class ControllersPane final : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ControllersPane();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void showEvent(QShowEvent* event) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void CreateMainLayout();
|
||||||
|
|
||||||
|
WiimoteControllersWidget* m_wiimote_controllers;
|
||||||
|
};
|
@ -1,51 +0,0 @@
|
|||||||
// Copyright 2017 Dolphin Emulator Project
|
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
#include "DolphinQt/Config/ControllersWindow.h"
|
|
||||||
|
|
||||||
#include <QDialogButtonBox>
|
|
||||||
#include <QVBoxLayout>
|
|
||||||
|
|
||||||
#include "DolphinQt/Config/CommonControllersWidget.h"
|
|
||||||
#include "DolphinQt/Config/GamecubeControllersWidget.h"
|
|
||||||
#include "DolphinQt/Config/WiimoteControllersWidget.h"
|
|
||||||
#include "DolphinQt/QtUtils/QtUtils.h"
|
|
||||||
#include "DolphinQt/QtUtils/WrapInScrollArea.h"
|
|
||||||
|
|
||||||
ControllersWindow::ControllersWindow(QWidget* parent) : QDialog(parent)
|
|
||||||
{
|
|
||||||
setWindowTitle(tr("Controller Settings"));
|
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
m_gamecube_controllers = new GamecubeControllersWidget(this);
|
|
||||||
m_wiimote_controllers = new WiimoteControllersWidget(this);
|
|
||||||
m_common = new CommonControllersWidget(this);
|
|
||||||
CreateMainLayout();
|
|
||||||
ConnectWidgets();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ControllersWindow::showEvent(QShowEvent* event)
|
|
||||||
{
|
|
||||||
QDialog::showEvent(event);
|
|
||||||
m_wiimote_controllers->UpdateBluetoothAvailableStatus();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ControllersWindow::CreateMainLayout()
|
|
||||||
{
|
|
||||||
auto* layout = new QVBoxLayout();
|
|
||||||
m_button_box = new QDialogButtonBox(QDialogButtonBox::Close);
|
|
||||||
|
|
||||||
layout->addWidget(m_gamecube_controllers);
|
|
||||||
layout->addWidget(m_wiimote_controllers);
|
|
||||||
layout->addWidget(m_common);
|
|
||||||
layout->addStretch();
|
|
||||||
layout->addWidget(m_button_box);
|
|
||||||
|
|
||||||
WrapInScrollArea(this, layout);
|
|
||||||
QtUtils::AdjustSizeWithinScreen(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ControllersWindow::ConnectWidgets()
|
|
||||||
{
|
|
||||||
connect(m_button_box, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
|
||||||
}
|
|
@ -1,31 +0,0 @@
|
|||||||
// Copyright 2017 Dolphin Emulator Project
|
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <QDialog>
|
|
||||||
|
|
||||||
class CommonControllersWidget;
|
|
||||||
class GamecubeControllersWidget;
|
|
||||||
class QDialogButtonBox;
|
|
||||||
class QShowEvent;
|
|
||||||
class WiimoteControllersWidget;
|
|
||||||
|
|
||||||
class ControllersWindow final : public QDialog
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
public:
|
|
||||||
explicit ControllersWindow(QWidget* parent);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void showEvent(QShowEvent* event) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
void CreateMainLayout();
|
|
||||||
void ConnectWidgets();
|
|
||||||
|
|
||||||
QDialogButtonBox* m_button_box;
|
|
||||||
GamecubeControllersWidget* m_gamecube_controllers;
|
|
||||||
WiimoteControllersWidget* m_wiimote_controllers;
|
|
||||||
CommonControllersWidget* m_common;
|
|
||||||
};
|
|
@ -17,7 +17,6 @@ FreeLookWindow::FreeLookWindow(QWidget* parent) : QDialog(parent)
|
|||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
|
|
||||||
setWindowTitle(tr("Free Look Settings"));
|
setWindowTitle(tr("Free Look Settings"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FreeLookWindow::CreateMainLayout()
|
void FreeLookWindow::CreateMainLayout()
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
ColorCorrectionConfigWindow::ColorCorrectionConfigWindow(QWidget* parent) : QDialog(parent)
|
ColorCorrectionConfigWindow::ColorCorrectionConfigWindow(QWidget* parent) : QDialog(parent)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Color Correction Configuration"));
|
setWindowTitle(tr("Color Correction Configuration"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
Create();
|
Create();
|
||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
|
@ -28,7 +28,6 @@ GraphicsWindow::GraphicsWindow(MainWindow* parent) : QDialog(parent), m_main_win
|
|||||||
CreateMainLayout();
|
CreateMainLayout();
|
||||||
|
|
||||||
setWindowTitle(tr("Graphics"));
|
setWindowTitle(tr("Graphics"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
OnBackendChanged(QString::fromStdString(Config::Get(Config::MAIN_GFX_BACKEND)));
|
OnBackendChanged(QString::fromStdString(Config::Get(Config::MAIN_GFX_BACKEND)));
|
||||||
|
|
||||||
|
@ -42,7 +42,6 @@ PostProcessingConfigWindow::PostProcessingConfigWindow(EnhancementsWidget* paren
|
|||||||
}
|
}
|
||||||
|
|
||||||
setWindowTitle(tr("Post-Processing Shader Configuration"));
|
setWindowTitle(tr("Post-Processing Shader Configuration"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
PopulateGroups();
|
PopulateGroups();
|
||||||
Create();
|
Create();
|
||||||
|
@ -17,8 +17,6 @@
|
|||||||
GCPadWiiUConfigDialog::GCPadWiiUConfigDialog(int port, QWidget* parent)
|
GCPadWiiUConfigDialog::GCPadWiiUConfigDialog(int port, QWidget* parent)
|
||||||
: QDialog(parent), m_port{port}
|
: QDialog(parent), m_port{port}
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
CreateLayout();
|
CreateLayout();
|
||||||
|
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
|
@ -268,7 +268,6 @@ IOWindow::IOWindow(MappingWindow* window, ControllerEmu::EmulatedController* con
|
|||||||
connect(&Settings::Instance(), &Settings::ConfigChanged, this, &IOWindow::ConfigChanged);
|
connect(&Settings::Instance(), &Settings::ConfigChanged, this, &IOWindow::ConfigChanged);
|
||||||
|
|
||||||
setWindowTitle(type == IOWindow::Type::Input ? tr("Configure Input") : tr("Configure Output"));
|
setWindowTitle(type == IOWindow::Type::Input ? tr("Configure Input") : tr("Configure Output"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
ConfigChanged();
|
ConfigChanged();
|
||||||
|
|
||||||
|
@ -65,7 +65,6 @@ MappingWindow::MappingWindow(QWidget* parent, Type type, int port_num)
|
|||||||
: QDialog(parent), m_port(port_num)
|
: QDialog(parent), m_port(port_num)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Port %1").arg(port_num + 1));
|
setWindowTitle(tr("Port %1").arg(port_num + 1));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
CreateDevicesLayout();
|
CreateDevicesLayout();
|
||||||
CreateProfilesLayout();
|
CreateProfilesLayout();
|
||||||
|
@ -38,7 +38,6 @@ NewPatchDialog::NewPatchDialog(QWidget* parent, PatchEngine::Patch& patch)
|
|||||||
: QDialog(parent), m_patch(patch)
|
: QDialog(parent), m_patch(patch)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Patch Editor"));
|
setWindowTitle(tr("Patch Editor"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
|
@ -9,6 +9,9 @@
|
|||||||
#include <QStackedWidget>
|
#include <QStackedWidget>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
|
#include "Common/EnumUtils.h"
|
||||||
|
|
||||||
|
#include "DolphinQt/Config/ControllersPane.h"
|
||||||
#include "DolphinQt/QtUtils/QtUtils.h"
|
#include "DolphinQt/QtUtils/QtUtils.h"
|
||||||
#include "DolphinQt/QtUtils/WrapInScrollArea.h"
|
#include "DolphinQt/QtUtils/WrapInScrollArea.h"
|
||||||
#include "DolphinQt/Settings/AdvancedPane.h"
|
#include "DolphinQt/Settings/AdvancedPane.h"
|
||||||
@ -21,8 +24,6 @@
|
|||||||
|
|
||||||
StackedSettingsWindow::StackedSettingsWindow(QWidget* parent) : QDialog{parent}
|
StackedSettingsWindow::StackedSettingsWindow(QWidget* parent) : QDialog{parent}
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
// This eliminates the ugly line between the title bar and window contents with KDE Plasma.
|
// This eliminates the ugly line between the title bar and window contents with KDE Plasma.
|
||||||
setStyleSheet(QStringLiteral("QDialog { border: none; }"));
|
setStyleSheet(QStringLiteral("QDialog { border: none; }"));
|
||||||
|
|
||||||
@ -133,7 +134,9 @@ SettingsWindow::SettingsWindow(QWidget* parent) : StackedSettingsWindow{parent}
|
|||||||
{
|
{
|
||||||
setWindowTitle(tr("Settings"));
|
setWindowTitle(tr("Settings"));
|
||||||
|
|
||||||
|
// If you change the order, don't forget to update the SettingsWindowPaneIndex enum.
|
||||||
AddWrappedPane(new GeneralPane, tr("General"));
|
AddWrappedPane(new GeneralPane, tr("General"));
|
||||||
|
AddWrappedPane(new ControllersPane, tr("Controllers"));
|
||||||
AddWrappedPane(new InterfacePane, tr("Interface"));
|
AddWrappedPane(new InterfacePane, tr("Interface"));
|
||||||
AddWrappedPane(new AudioPane, tr("Audio"));
|
AddWrappedPane(new AudioPane, tr("Audio"));
|
||||||
AddWrappedPane(new PathPane, tr("Paths"));
|
AddWrappedPane(new PathPane, tr("Paths"));
|
||||||
@ -144,12 +147,7 @@ SettingsWindow::SettingsWindow(QWidget* parent) : StackedSettingsWindow{parent}
|
|||||||
OnDoneCreatingPanes();
|
OnDoneCreatingPanes();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsWindow::SelectAudioPane()
|
void SettingsWindow::SelectPane(SettingsWindowPaneIndex index)
|
||||||
{
|
{
|
||||||
ActivatePane(static_cast<int>(TabIndex::Audio));
|
ActivatePane(Common::ToUnderlying(index));
|
||||||
}
|
|
||||||
|
|
||||||
void SettingsWindow::SelectGeneralPane()
|
|
||||||
{
|
|
||||||
ActivatePane(static_cast<int>(TabIndex::General));
|
|
||||||
}
|
}
|
||||||
|
@ -31,10 +31,16 @@ private:
|
|||||||
QListWidget* m_navigation_list;
|
QListWidget* m_navigation_list;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class TabIndex
|
enum class SettingsWindowPaneIndex : int
|
||||||
{
|
{
|
||||||
General = 0,
|
General = 0,
|
||||||
Audio = 2
|
Controllers,
|
||||||
|
Interface,
|
||||||
|
Audio,
|
||||||
|
Paths,
|
||||||
|
GameCube,
|
||||||
|
Wii,
|
||||||
|
Advanced,
|
||||||
};
|
};
|
||||||
|
|
||||||
class SettingsWindow final : public StackedSettingsWindow
|
class SettingsWindow final : public StackedSettingsWindow
|
||||||
@ -43,6 +49,5 @@ class SettingsWindow final : public StackedSettingsWindow
|
|||||||
public:
|
public:
|
||||||
explicit SettingsWindow(QWidget* parent = nullptr);
|
explicit SettingsWindow(QWidget* parent = nullptr);
|
||||||
|
|
||||||
void SelectGeneralPane();
|
void SelectPane(SettingsWindowPaneIndex);
|
||||||
void SelectAudioPane();
|
|
||||||
};
|
};
|
||||||
|
@ -42,7 +42,6 @@ ConvertDialog::ConvertDialog(QList<std::shared_ptr<const UICommon::GameFile>> fi
|
|||||||
ASSERT(!m_files.empty());
|
ASSERT(!m_files.empty());
|
||||||
|
|
||||||
setWindowTitle(tr("Convert"));
|
setWindowTitle(tr("Convert"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
QGridLayout* grid_layout = new QGridLayout;
|
QGridLayout* grid_layout = new QGridLayout;
|
||||||
grid_layout->setColumnStretch(1, 1);
|
grid_layout->setColumnStretch(1, 1);
|
||||||
|
@ -41,7 +41,6 @@ QString HtmlFormatErrorLine(const Common::GekkoAssembler::AssemblerError& err)
|
|||||||
AssembleInstructionDialog::AssembleInstructionDialog(QWidget* parent, u32 address, u32 value)
|
AssembleInstructionDialog::AssembleInstructionDialog(QWidget* parent, u32 address, u32 value)
|
||||||
: QDialog(parent), m_code(value), m_address(address)
|
: QDialog(parent), m_code(value), m_address(address)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowModality(Qt::WindowModal);
|
setWindowModality(Qt::WindowModal);
|
||||||
setWindowTitle(tr("Instruction"));
|
setWindowTitle(tr("Instruction"));
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
|
|||||||
: QDialog(parent), m_system(system), m_branch_watch(branch_watch), m_code_widget(code_widget)
|
: QDialog(parent), m_system(system), m_branch_watch(branch_watch), m_code_widget(code_widget)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Branch Watch Tool"));
|
setWindowTitle(tr("Branch Watch Tool"));
|
||||||
setWindowFlags((windowFlags() | Qt::WindowMinMaxButtonsHint) & ~Qt::WindowContextHelpButtonHint);
|
setWindowFlags(windowFlags() | Qt::WindowMinMaxButtonsHint);
|
||||||
|
|
||||||
// Branch Watch Table
|
// Branch Watch Table
|
||||||
m_table_view = new QTableView(nullptr);
|
m_table_view = new QTableView(nullptr);
|
||||||
|
@ -24,7 +24,6 @@
|
|||||||
BreakpointDialog::BreakpointDialog(BreakpointWidget* parent)
|
BreakpointDialog::BreakpointDialog(BreakpointWidget* parent)
|
||||||
: QDialog(parent), m_parent(parent), m_open_mode(OpenMode::New)
|
: QDialog(parent), m_parent(parent), m_open_mode(OpenMode::New)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowTitle(tr("New Breakpoint"));
|
setWindowTitle(tr("New Breakpoint"));
|
||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
@ -36,7 +35,6 @@ BreakpointDialog::BreakpointDialog(BreakpointWidget* parent)
|
|||||||
BreakpointDialog::BreakpointDialog(BreakpointWidget* parent, const TBreakPoint* breakpoint)
|
BreakpointDialog::BreakpointDialog(BreakpointWidget* parent, const TBreakPoint* breakpoint)
|
||||||
: QDialog(parent), m_parent(parent), m_open_mode(OpenMode::EditBreakPoint)
|
: QDialog(parent), m_parent(parent), m_open_mode(OpenMode::EditBreakPoint)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowTitle(tr("Edit Breakpoint"));
|
setWindowTitle(tr("Edit Breakpoint"));
|
||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
@ -56,7 +54,6 @@ BreakpointDialog::BreakpointDialog(BreakpointWidget* parent, const TBreakPoint*
|
|||||||
BreakpointDialog::BreakpointDialog(BreakpointWidget* parent, const TMemCheck* memcheck)
|
BreakpointDialog::BreakpointDialog(BreakpointWidget* parent, const TMemCheck* memcheck)
|
||||||
: QDialog(parent), m_parent(parent), m_open_mode(OpenMode::EditMemCheck)
|
: QDialog(parent), m_parent(parent), m_open_mode(OpenMode::EditMemCheck)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowTitle(tr("Edit Breakpoint"));
|
setWindowTitle(tr("Edit Breakpoint"));
|
||||||
|
|
||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
PatchInstructionDialog::PatchInstructionDialog(QWidget* parent, u32 address, u32 value)
|
PatchInstructionDialog::PatchInstructionDialog(QWidget* parent, u32 address, u32 value)
|
||||||
: QDialog(parent), m_address(address)
|
: QDialog(parent), m_address(address)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowModality(Qt::WindowModal);
|
setWindowModality(Qt::WindowModal);
|
||||||
setWindowTitle(tr("Instruction"));
|
setWindowTitle(tr("Instruction"));
|
||||||
|
|
||||||
|
@ -21,7 +21,6 @@ DiscordJoinRequestDialog::DiscordJoinRequestDialog(QWidget* parent, const std::s
|
|||||||
: QDialog(parent), m_user_id(id), m_close_timestamp(std::time(nullptr) + s_max_lifetime_seconds)
|
: QDialog(parent), m_user_id(id), m_close_timestamp(std::time(nullptr) + s_max_lifetime_seconds)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Request to Join Your Party"));
|
setWindowTitle(tr("Request to Join Your Party"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
QPixmap avatar_pixmap;
|
QPixmap avatar_pixmap;
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
<ClCompile Include="Config\ControllerInterface\DualShockUDPClientAddServerDialog.cpp" />
|
<ClCompile Include="Config\ControllerInterface\DualShockUDPClientAddServerDialog.cpp" />
|
||||||
<ClCompile Include="Config\ControllerInterface\DualShockUDPClientWidget.cpp" />
|
<ClCompile Include="Config\ControllerInterface\DualShockUDPClientWidget.cpp" />
|
||||||
<ClCompile Include="Config\ControllerInterface\ServerStringValidator.cpp" />
|
<ClCompile Include="Config\ControllerInterface\ServerStringValidator.cpp" />
|
||||||
<ClCompile Include="Config\ControllersWindow.cpp" />
|
<ClCompile Include="Config\ControllersPane.cpp" />
|
||||||
<ClCompile Include="Config\FilesystemWidget.cpp" />
|
<ClCompile Include="Config\FilesystemWidget.cpp" />
|
||||||
<ClCompile Include="Config\FreeLookWidget.cpp" />
|
<ClCompile Include="Config\FreeLookWidget.cpp" />
|
||||||
<ClCompile Include="Config\FreeLookWindow.cpp" />
|
<ClCompile Include="Config\FreeLookWindow.cpp" />
|
||||||
@ -293,7 +293,7 @@
|
|||||||
<QtMoc Include="Config\ControllerInterface\DualShockUDPClientAddServerDialog.h" />
|
<QtMoc Include="Config\ControllerInterface\DualShockUDPClientAddServerDialog.h" />
|
||||||
<QtMoc Include="Config\ControllerInterface\DualShockUDPClientWidget.h" />
|
<QtMoc Include="Config\ControllerInterface\DualShockUDPClientWidget.h" />
|
||||||
<QtMoc Include="Config\ControllerInterface\ServerStringValidator.h" />
|
<QtMoc Include="Config\ControllerInterface\ServerStringValidator.h" />
|
||||||
<QtMoc Include="Config\ControllersWindow.h" />
|
<QtMoc Include="Config\ControllersPane.h" />
|
||||||
<QtMoc Include="Config\FilesystemWidget.h" />
|
<QtMoc Include="Config\FilesystemWidget.h" />
|
||||||
<QtMoc Include="Config\FreeLookWidget.h" />
|
<QtMoc Include="Config\FreeLookWidget.h" />
|
||||||
<QtMoc Include="Config\FreeLookWindow.h" />
|
<QtMoc Include="Config\FreeLookWindow.h" />
|
||||||
|
@ -59,10 +59,18 @@ FIFOPlayerWindow::FIFOPlayerWindow(FifoPlayer& fifo_player, FifoRecorder& fifo_r
|
|||||||
});
|
});
|
||||||
|
|
||||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
|
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
|
||||||
|
// We don't want to trigger OnEmulationStarted when going from Paused to Running,
|
||||||
|
// and nothing in UpdateControls treats Paused and Running differently
|
||||||
|
if (state == Core::State::Paused)
|
||||||
|
state = Core::State::Running;
|
||||||
|
|
||||||
|
// Skip redundant updates
|
||||||
if (state == m_emu_state)
|
if (state == m_emu_state)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (state == Core::State::Running && m_emu_state != Core::State::Paused)
|
UpdateControls();
|
||||||
|
|
||||||
|
if (state == Core::State::Running)
|
||||||
OnEmulationStarted();
|
OnEmulationStarted();
|
||||||
else if (state == Core::State::Uninitialized)
|
else if (state == Core::State::Uninitialized)
|
||||||
OnEmulationStopped();
|
OnEmulationStopped();
|
||||||
@ -266,8 +274,6 @@ void FIFOPlayerWindow::StopRecording()
|
|||||||
|
|
||||||
void FIFOPlayerWindow::OnEmulationStarted()
|
void FIFOPlayerWindow::OnEmulationStarted()
|
||||||
{
|
{
|
||||||
UpdateControls();
|
|
||||||
|
|
||||||
if (m_fifo_player.GetFile())
|
if (m_fifo_player.GetFile())
|
||||||
OnFIFOLoaded();
|
OnFIFOLoaded();
|
||||||
}
|
}
|
||||||
@ -278,7 +284,6 @@ void FIFOPlayerWindow::OnEmulationStopped()
|
|||||||
if (m_fifo_recorder.IsRecording())
|
if (m_fifo_recorder.IsRecording())
|
||||||
StopRecording();
|
StopRecording();
|
||||||
|
|
||||||
UpdateControls();
|
|
||||||
// When emulation stops, switch away from the analyzer tab, as it no longer shows anything useful
|
// When emulation stops, switch away from the analyzer tab, as it no longer shows anything useful
|
||||||
m_tab_widget->setCurrentWidget(m_main_widget);
|
m_tab_widget->setCurrentWidget(m_main_widget);
|
||||||
m_analyzer->Update();
|
m_analyzer->Update();
|
||||||
|
@ -60,7 +60,6 @@ GCMemcardCreateNewDialog::GCMemcardCreateNewDialog(QWidget* parent) : QDialog(pa
|
|||||||
});
|
});
|
||||||
|
|
||||||
setWindowTitle(tr("Create New Memory Card"));
|
setWindowTitle(tr("Create New Memory Card"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GCMemcardCreateNewDialog::~GCMemcardCreateNewDialog() = default;
|
GCMemcardCreateNewDialog::~GCMemcardCreateNewDialog() = default;
|
||||||
|
@ -98,7 +98,6 @@ GCMemcardManager::GCMemcardManager(QWidget* parent) : QDialog(parent)
|
|||||||
resize(650, 500);
|
resize(650, 500);
|
||||||
|
|
||||||
setWindowTitle(tr("GameCube Memory Card Manager"));
|
setWindowTitle(tr("GameCube Memory Card Manager"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GCMemcardManager::~GCMemcardManager() = default;
|
GCMemcardManager::~GCMemcardManager() = default;
|
||||||
|
@ -77,7 +77,6 @@
|
|||||||
#include "DolphinQt/AboutDialog.h"
|
#include "DolphinQt/AboutDialog.h"
|
||||||
#include "DolphinQt/Achievements/AchievementsWindow.h"
|
#include "DolphinQt/Achievements/AchievementsWindow.h"
|
||||||
#include "DolphinQt/CheatsManager.h"
|
#include "DolphinQt/CheatsManager.h"
|
||||||
#include "DolphinQt/Config/ControllersWindow.h"
|
|
||||||
#include "DolphinQt/Config/FreeLookWindow.h"
|
#include "DolphinQt/Config/FreeLookWindow.h"
|
||||||
#include "DolphinQt/Config/Graphics/GraphicsWindow.h"
|
#include "DolphinQt/Config/Graphics/GraphicsWindow.h"
|
||||||
#include "DolphinQt/Config/LogConfigWidget.h"
|
#include "DolphinQt/Config/LogConfigWidget.h"
|
||||||
@ -1283,16 +1282,8 @@ void MainWindow::HideRenderWidget(bool reinit, bool is_exit)
|
|||||||
|
|
||||||
void MainWindow::ShowControllersWindow()
|
void MainWindow::ShowControllersWindow()
|
||||||
{
|
{
|
||||||
if (!m_controllers_window)
|
ShowSettingsWindow();
|
||||||
{
|
m_settings_window->SelectPane(SettingsWindowPaneIndex::Controllers);
|
||||||
m_controllers_window = new ControllersWindow(this);
|
|
||||||
InstallHotkeyFilter(m_controllers_window);
|
|
||||||
}
|
|
||||||
|
|
||||||
SetQWidgetWindowDecorations(m_controllers_window);
|
|
||||||
m_controllers_window->show();
|
|
||||||
m_controllers_window->raise();
|
|
||||||
m_controllers_window->activateWindow();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::ShowFreeLookWindow()
|
void MainWindow::ShowFreeLookWindow()
|
||||||
@ -1331,13 +1322,13 @@ void MainWindow::ShowSettingsWindow()
|
|||||||
void MainWindow::ShowAudioWindow()
|
void MainWindow::ShowAudioWindow()
|
||||||
{
|
{
|
||||||
ShowSettingsWindow();
|
ShowSettingsWindow();
|
||||||
m_settings_window->SelectAudioPane();
|
m_settings_window->SelectPane(SettingsWindowPaneIndex::Audio);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::ShowGeneralWindow()
|
void MainWindow::ShowGeneralWindow()
|
||||||
{
|
{
|
||||||
ShowSettingsWindow();
|
ShowSettingsWindow();
|
||||||
m_settings_window->SelectGeneralPane();
|
m_settings_window->SelectPane(SettingsWindowPaneIndex::General);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::ShowAboutDialog()
|
void MainWindow::ShowAboutDialog()
|
||||||
|
@ -27,7 +27,6 @@ class BreakpointWidget;
|
|||||||
struct BootParameters;
|
struct BootParameters;
|
||||||
class CheatsManager;
|
class CheatsManager;
|
||||||
class CodeWidget;
|
class CodeWidget;
|
||||||
class ControllersWindow;
|
|
||||||
class DiscordHandler;
|
class DiscordHandler;
|
||||||
class DragEnterEvent;
|
class DragEnterEvent;
|
||||||
class FIFOPlayerWindow;
|
class FIFOPlayerWindow;
|
||||||
@ -246,7 +245,6 @@ private:
|
|||||||
u32 m_state_slot = 1;
|
u32 m_state_slot = 1;
|
||||||
std::unique_ptr<BootParameters> m_pending_boot;
|
std::unique_ptr<BootParameters> m_pending_boot;
|
||||||
|
|
||||||
ControllersWindow* m_controllers_window = nullptr;
|
|
||||||
SettingsWindow* m_settings_window = nullptr;
|
SettingsWindow* m_settings_window = nullptr;
|
||||||
GraphicsWindow* m_graphics_window = nullptr;
|
GraphicsWindow* m_graphics_window = nullptr;
|
||||||
FIFOPlayerWindow* m_fifo_window = nullptr;
|
FIFOPlayerWindow* m_fifo_window = nullptr;
|
||||||
|
@ -27,7 +27,6 @@ NANDRepairDialog::NANDRepairDialog(const WiiUtils::NANDCheckResult& result, QWid
|
|||||||
: QDialog(parent)
|
: QDialog(parent)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("NAND Check"));
|
setWindowTitle(tr("NAND Check"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowIcon(Resources::GetAppIcon());
|
setWindowIcon(Resources::GetAppIcon());
|
||||||
|
|
||||||
QVBoxLayout* main_layout = new QVBoxLayout();
|
QVBoxLayout* main_layout = new QVBoxLayout();
|
||||||
|
@ -30,7 +30,6 @@ bool NKitWarningDialog::ShowUnlessDisabled(QWidget* parent)
|
|||||||
NKitWarningDialog::NKitWarningDialog(QWidget* parent) : QDialog(parent)
|
NKitWarningDialog::NKitWarningDialog(QWidget* parent) : QDialog(parent)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("NKit Warning"));
|
setWindowTitle(tr("NKit Warning"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowIcon(Resources::GetAppIcon());
|
setWindowIcon(Resources::GetAppIcon());
|
||||||
|
|
||||||
QVBoxLayout* main_layout = new QVBoxLayout;
|
QVBoxLayout* main_layout = new QVBoxLayout;
|
||||||
|
@ -45,7 +45,6 @@ ChunkedProgressDialog::ChunkedProgressDialog(QWidget* parent) : QDialog(parent)
|
|||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
setWindowTitle(tr("Data Transfer"));
|
setWindowTitle(tr("Data Transfer"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChunkedProgressDialog::CreateWidgets()
|
void ChunkedProgressDialog::CreateWidgets()
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
GameListDialog::GameListDialog(const GameListModel& game_list_model, QWidget* parent)
|
GameListDialog::GameListDialog(const GameListModel& game_list_model, QWidget* parent)
|
||||||
: QDialog(parent), m_game_list_model(game_list_model)
|
: QDialog(parent), m_game_list_model(game_list_model)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowTitle(tr("Select a game"));
|
setWindowTitle(tr("Select a game"));
|
||||||
|
|
||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
|
@ -32,7 +32,6 @@
|
|||||||
NetPlayBrowser::NetPlayBrowser(QWidget* parent) : QDialog(parent)
|
NetPlayBrowser::NetPlayBrowser(QWidget* parent) : QDialog(parent)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("NetPlay Session Browser"));
|
setWindowTitle(tr("NetPlay Session Browser"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
RestoreSettings();
|
RestoreSettings();
|
||||||
@ -297,7 +296,6 @@ void NetPlayBrowser::accept()
|
|||||||
{
|
{
|
||||||
QInputDialog dialog(this);
|
QInputDialog dialog(this);
|
||||||
|
|
||||||
dialog.setWindowFlags(dialog.windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
dialog.setWindowTitle(tr("Enter password"));
|
dialog.setWindowTitle(tr("Enter password"));
|
||||||
dialog.setLabelText(tr("This session requires a password:"));
|
dialog.setLabelText(tr("This session requires a password:"));
|
||||||
dialog.setWindowModality(Qt::WindowModal);
|
dialog.setWindowModality(Qt::WindowModal);
|
||||||
|
@ -97,8 +97,6 @@ NetPlayDialog::NetPlayDialog(const GameListModel& game_list_model,
|
|||||||
: QDialog(parent), m_game_list_model(game_list_model),
|
: QDialog(parent), m_game_list_model(game_list_model),
|
||||||
m_start_game_callback(std::move(start_game_callback))
|
m_start_game_callback(std::move(start_game_callback))
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
setWindowTitle(tr("NetPlay"));
|
setWindowTitle(tr("NetPlay"));
|
||||||
setWindowIcon(Resources::GetAppIcon());
|
setWindowIcon(Resources::GetAppIcon());
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ NetPlaySetupDialog::NetPlaySetupDialog(const GameListModel& game_list_model, QWi
|
|||||||
: QDialog(parent), m_game_list_model(game_list_model)
|
: QDialog(parent), m_game_list_model(game_list_model)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("NetPlay Setup"));
|
setWindowTitle(tr("NetPlay Setup"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
CreateMainLayout();
|
CreateMainLayout();
|
||||||
|
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
|
|
||||||
PadMappingDialog::PadMappingDialog(QWidget* parent) : QDialog(parent)
|
PadMappingDialog::PadMappingDialog(QWidget* parent) : QDialog(parent)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowTitle(tr("Assign Controllers"));
|
setWindowTitle(tr("Assign Controllers"));
|
||||||
|
|
||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
|
@ -26,7 +26,6 @@ public:
|
|||||||
ParallelProgressDialog(Args&&... args) : m_dialog{std::forward<Args>(args)...}
|
ParallelProgressDialog(Args&&... args) : m_dialog{std::forward<Args>(args)...}
|
||||||
{
|
{
|
||||||
setParent(m_dialog.parent());
|
setParent(m_dialog.parent());
|
||||||
m_dialog.setWindowFlags(m_dialog.windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
ConnectSignalsAndSlots();
|
ConnectSignalsAndSlots();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,6 @@ ResourcePackManager::ResourcePackManager(QWidget* widget) : QDialog(widget)
|
|||||||
RepopulateTable();
|
RepopulateTable();
|
||||||
|
|
||||||
setWindowTitle(tr("Resource Pack Manager"));
|
setWindowTitle(tr("Resource Pack Manager"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
resize(QSize(900, 600));
|
resize(QSize(900, 600));
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,6 @@ RiivolutionBootWidget::RiivolutionBootWidget(std::string game_id, std::optional<
|
|||||||
m_base_game_path(std::move(base_game_path))
|
m_base_game_path(std::move(base_game_path))
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Start with Riivolution Patches"));
|
setWindowTitle(tr("Start with Riivolution Patches"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
CreateWidgets();
|
CreateWidgets();
|
||||||
ConnectWidgets();
|
ConnectWidgets();
|
||||||
|
@ -89,6 +89,18 @@ void AdvancedPane::CreateLayout()
|
|||||||
"needed.<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
|
"needed.<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
|
||||||
cpu_options_group_layout->addWidget(m_accurate_cpu_cache_checkbox);
|
cpu_options_group_layout->addWidget(m_accurate_cpu_cache_checkbox);
|
||||||
|
|
||||||
|
auto* const timing_group = new QGroupBox(tr("Timing"));
|
||||||
|
main_layout->addWidget(timing_group);
|
||||||
|
auto* timing_group_layout = new QVBoxLayout{timing_group};
|
||||||
|
auto* const correct_time_drift =
|
||||||
|
new ConfigBool{tr("Correct Time Drift"), Config::MAIN_CORRECT_TIME_DRIFT};
|
||||||
|
correct_time_drift->SetDescription(
|
||||||
|
tr("Allow the emulated console to run fast after stutters,"
|
||||||
|
"<br>pursuing accurate overall elapsed time unless paused or speed-adjusted."
|
||||||
|
"<br><br>This may be useful for internet play."
|
||||||
|
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
|
||||||
|
timing_group_layout->addWidget(correct_time_drift);
|
||||||
|
|
||||||
auto* clock_override = new QGroupBox(tr("Clock Override"));
|
auto* clock_override = new QGroupBox(tr("Clock Override"));
|
||||||
auto* clock_override_layout = new QVBoxLayout();
|
auto* clock_override_layout = new QVBoxLayout();
|
||||||
clock_override->setLayout(clock_override_layout);
|
clock_override->setLayout(clock_override_layout);
|
||||||
|
@ -95,7 +95,6 @@ void BroadbandAdapterSettingsDialog::InitControls()
|
|||||||
}
|
}
|
||||||
|
|
||||||
setWindowTitle(window_title);
|
setWindowTitle(window_title);
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
m_address_input = new QLineEdit(current_address);
|
m_address_input = new QLineEdit(current_address);
|
||||||
m_address_input->setPlaceholderText(address_placeholder);
|
m_address_input->setPlaceholderText(address_placeholder);
|
||||||
|
@ -42,7 +42,6 @@ USBDeviceAddToWhitelistDialog::USBDeviceAddToWhitelistDialog(QWidget* parent) :
|
|||||||
void USBDeviceAddToWhitelistDialog::InitControls()
|
void USBDeviceAddToWhitelistDialog::InitControls()
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("Add New USB Device"));
|
setWindowTitle(tr("Add New USB Device"));
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
m_whitelist_buttonbox = new QDialogButtonBox();
|
m_whitelist_buttonbox = new QDialogButtonBox();
|
||||||
auto* add_button = new QPushButton(tr("Add"));
|
auto* add_button = new QPushButton(tr("Add"));
|
||||||
|
@ -45,7 +45,6 @@ ControllerEmu::InputOverrideFunction InputOverrider::GetInputOverrideFunction()
|
|||||||
|
|
||||||
TASInputWindow::TASInputWindow(QWidget* parent) : QDialog(parent)
|
TASInputWindow::TASInputWindow(QWidget* parent) : QDialog(parent)
|
||||||
{
|
{
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
setWindowIcon(Resources::GetAppIcon());
|
setWindowIcon(Resources::GetAppIcon());
|
||||||
|
|
||||||
QGridLayout* settings_layout = new QGridLayout;
|
QGridLayout* settings_layout = new QGridLayout;
|
||||||
|
@ -59,7 +59,6 @@ void Updater::OnUpdateAvailable(const NewVersionInformation& info)
|
|||||||
QDialog* dialog = new QDialog(m_parent);
|
QDialog* dialog = new QDialog(m_parent);
|
||||||
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||||
dialog->setWindowTitle(tr("Update available"));
|
dialog->setWindowTitle(tr("Update available"));
|
||||||
dialog->setWindowFlags(dialog->windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
|
|
||||||
auto* label = new QLabel(
|
auto* label = new QLabel(
|
||||||
tr("<h2>A new version of Dolphin is available!</h2>Dolphin %1 is available for "
|
tr("<h2>A new version of Dolphin is available!</h2>Dolphin %1 is available for "
|
||||||
|
@ -96,7 +96,6 @@ static WiiUtils::UpdateResult ShowProgress(QWidget* parent, Callable function, A
|
|||||||
UpdateProgressDialog dialog{parent};
|
UpdateProgressDialog dialog{parent};
|
||||||
dialog.setLabelText(QObject::tr("Preparing to update...\nThis can take a while."));
|
dialog.setLabelText(QObject::tr("Preparing to update...\nThis can take a while."));
|
||||||
dialog.setWindowTitle(QObject::tr("Updating"));
|
dialog.setWindowTitle(QObject::tr("Updating"));
|
||||||
dialog.setWindowFlags(dialog.windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
|
||||||
// QProgressDialog doesn't set its minimum size correctly.
|
// QProgressDialog doesn't set its minimum size correctly.
|
||||||
dialog.setMinimumSize(360, 150);
|
dialog.setMinimumSize(360, 150);
|
||||||
|
|
||||||
|
@ -1007,6 +1007,12 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos
|
|||||||
out.Write("\tfrag_input.tex{0} = tex{0};\n", i);
|
out.Write("\tfrag_input.tex{0} = tex{0};\n", i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Initialize other texture coordinates that are unused
|
||||||
|
for (u32 i = uid_data->genMode_numtexgens; i < 8; i++)
|
||||||
|
{
|
||||||
|
out.Write("\tfrag_input.tex{0} = vec3(0, 0, 0);\n", i);
|
||||||
|
}
|
||||||
|
|
||||||
if (!custom_contents.shader.empty())
|
if (!custom_contents.shader.empty())
|
||||||
GenerateCustomLighting(&out, uid_data->lighting);
|
GenerateCustomLighting(&out, uid_data->lighting);
|
||||||
|
|
||||||
@ -2061,11 +2067,7 @@ static void WriteFragmentDefinitions(APIType api_type, const ShaderHostConfig& h
|
|||||||
out.Write("\tint layer;\n");
|
out.Write("\tint layer;\n");
|
||||||
out.Write("\tvec3 normal;\n");
|
out.Write("\tvec3 normal;\n");
|
||||||
out.Write("\tvec3 position;\n");
|
out.Write("\tvec3 position;\n");
|
||||||
for (u32 i = 0; i < uid_data->genMode_numtexgens; i++)
|
for (u32 i = 0; i < 8; i++)
|
||||||
{
|
|
||||||
out.Write("\tvec3 tex{};\n", i);
|
|
||||||
}
|
|
||||||
for (u32 i = uid_data->genMode_numtexgens; i < 8; i++)
|
|
||||||
{
|
{
|
||||||
out.Write("\tvec3 tex{};\n", i);
|
out.Write("\tvec3 tex{};\n", i);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user