mirror of
https://github.com/citra-mirror/citra.git
synced 2024-08-21 19:03:23 +02:00
Merge pull request #2300 from lioncash/qt
graphics_cmdlist: Minor changes
This commit is contained in:
commit
926e18d25c
@ -21,7 +21,8 @@
|
|||||||
#include "video_core/pica.h"
|
#include "video_core/pica.h"
|
||||||
#include "video_core/pica_state.h"
|
#include "video_core/pica_state.h"
|
||||||
|
|
||||||
QImage LoadTexture(u8* src, const Pica::DebugUtils::TextureInfo& info) {
|
namespace {
|
||||||
|
QImage LoadTexture(const u8* src, const Pica::DebugUtils::TextureInfo& info) {
|
||||||
QImage decoded_image(info.width, info.height, QImage::Format_ARGB32);
|
QImage decoded_image(info.width, info.height, QImage::Format_ARGB32);
|
||||||
for (int y = 0; y < info.height; ++y) {
|
for (int y = 0; y < info.height; ++y) {
|
||||||
for (int x = 0; x < info.width; ++x) {
|
for (int x = 0; x < info.width; ++x) {
|
||||||
@ -35,7 +36,8 @@ QImage LoadTexture(u8* src, const Pica::DebugUtils::TextureInfo& info) {
|
|||||||
|
|
||||||
class TextureInfoWidget : public QWidget {
|
class TextureInfoWidget : public QWidget {
|
||||||
public:
|
public:
|
||||||
TextureInfoWidget(u8* src, const Pica::DebugUtils::TextureInfo& info, QWidget* parent = nullptr)
|
TextureInfoWidget(const u8* src, const Pica::DebugUtils::TextureInfo& info,
|
||||||
|
QWidget* parent = nullptr)
|
||||||
: QWidget(parent) {
|
: QWidget(parent) {
|
||||||
QLabel* image_widget = new QLabel;
|
QLabel* image_widget = new QLabel;
|
||||||
QPixmap image_pixmap = QPixmap::fromImage(LoadTexture(src, info));
|
QPixmap image_pixmap = QPixmap::fromImage(LoadTexture(src, info));
|
||||||
@ -47,6 +49,7 @@ public:
|
|||||||
setLayout(layout);
|
setLayout(layout);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
} // Anonymous namespace
|
||||||
|
|
||||||
GPUCommandListModel::GPUCommandListModel(QObject* parent) : QAbstractListModel(parent) {}
|
GPUCommandListModel::GPUCommandListModel(QObject* parent) : QAbstractListModel(parent) {}
|
||||||
|
|
||||||
@ -65,7 +68,6 @@ QVariant GPUCommandListModel::data(const QModelIndex& index, int role) const {
|
|||||||
const auto& write = pica_trace.writes[index.row()];
|
const auto& write = pica_trace.writes[index.row()];
|
||||||
|
|
||||||
if (role == Qt::DisplayRole) {
|
if (role == Qt::DisplayRole) {
|
||||||
QString content;
|
|
||||||
switch (index.column()) {
|
switch (index.column()) {
|
||||||
case 0:
|
case 0:
|
||||||
return QString::fromLatin1(Pica::Regs::GetCommandName(write.cmd_id).c_str());
|
return QString::fromLatin1(Pica::Regs::GetCommandName(write.cmd_id).c_str());
|
||||||
@ -122,19 +124,21 @@ void GPUCommandListWidget::OnCommandDoubleClicked(const QModelIndex& index) {
|
|||||||
if (COMMAND_IN_RANGE(command_id, texture0) || COMMAND_IN_RANGE(command_id, texture1) ||
|
if (COMMAND_IN_RANGE(command_id, texture0) || COMMAND_IN_RANGE(command_id, texture1) ||
|
||||||
COMMAND_IN_RANGE(command_id, texture2)) {
|
COMMAND_IN_RANGE(command_id, texture2)) {
|
||||||
|
|
||||||
unsigned index;
|
unsigned texture_index;
|
||||||
if (COMMAND_IN_RANGE(command_id, texture0)) {
|
if (COMMAND_IN_RANGE(command_id, texture0)) {
|
||||||
index = 0;
|
texture_index = 0;
|
||||||
} else if (COMMAND_IN_RANGE(command_id, texture1)) {
|
} else if (COMMAND_IN_RANGE(command_id, texture1)) {
|
||||||
index = 1;
|
texture_index = 1;
|
||||||
} else if (COMMAND_IN_RANGE(command_id, texture2)) {
|
} else if (COMMAND_IN_RANGE(command_id, texture2)) {
|
||||||
index = 2;
|
texture_index = 2;
|
||||||
} else {
|
} else {
|
||||||
UNREACHABLE_MSG("Unknown texture command");
|
UNREACHABLE_MSG("Unknown texture command");
|
||||||
}
|
}
|
||||||
auto config = Pica::g_state.regs.GetTextures()[index].config;
|
|
||||||
auto format = Pica::g_state.regs.GetTextures()[index].format;
|
const auto texture = Pica::g_state.regs.GetTextures()[texture_index];
|
||||||
auto info = Pica::DebugUtils::TextureInfo::FromPicaRegister(config, format);
|
const auto config = texture.config;
|
||||||
|
const auto format = texture.format;
|
||||||
|
const auto info = Pica::DebugUtils::TextureInfo::FromPicaRegister(config, format);
|
||||||
|
|
||||||
// TODO: Open a surface debugger
|
// TODO: Open a surface debugger
|
||||||
}
|
}
|
||||||
@ -148,19 +152,21 @@ void GPUCommandListWidget::SetCommandInfo(const QModelIndex& index) {
|
|||||||
if (COMMAND_IN_RANGE(command_id, texture0) || COMMAND_IN_RANGE(command_id, texture1) ||
|
if (COMMAND_IN_RANGE(command_id, texture0) || COMMAND_IN_RANGE(command_id, texture1) ||
|
||||||
COMMAND_IN_RANGE(command_id, texture2)) {
|
COMMAND_IN_RANGE(command_id, texture2)) {
|
||||||
|
|
||||||
unsigned index;
|
unsigned texture_index;
|
||||||
if (COMMAND_IN_RANGE(command_id, texture0)) {
|
if (COMMAND_IN_RANGE(command_id, texture0)) {
|
||||||
index = 0;
|
texture_index = 0;
|
||||||
} else if (COMMAND_IN_RANGE(command_id, texture1)) {
|
} else if (COMMAND_IN_RANGE(command_id, texture1)) {
|
||||||
index = 1;
|
texture_index = 1;
|
||||||
} else {
|
} else {
|
||||||
index = 2;
|
texture_index = 2;
|
||||||
}
|
}
|
||||||
auto config = Pica::g_state.regs.GetTextures()[index].config;
|
|
||||||
auto format = Pica::g_state.regs.GetTextures()[index].format;
|
|
||||||
|
|
||||||
auto info = Pica::DebugUtils::TextureInfo::FromPicaRegister(config, format);
|
const auto texture = Pica::g_state.regs.GetTextures()[texture_index];
|
||||||
u8* src = Memory::GetPhysicalPointer(config.GetPhysicalAddress());
|
const auto config = texture.config;
|
||||||
|
const auto format = texture.format;
|
||||||
|
|
||||||
|
const auto info = Pica::DebugUtils::TextureInfo::FromPicaRegister(config, format);
|
||||||
|
const u8* src = Memory::GetPhysicalPointer(config.GetPhysicalAddress());
|
||||||
new_info_widget = new TextureInfoWidget(src, info);
|
new_info_widget = new TextureInfoWidget(src, info);
|
||||||
}
|
}
|
||||||
if (command_info_widget) {
|
if (command_info_widget) {
|
||||||
|
Loading…
Reference in New Issue
Block a user