DolphinQt: Add IRPassthrough indicator.
This commit is contained in:
parent
72bcdadc16
commit
62caa24d40
|
@ -17,6 +17,8 @@
|
||||||
|
|
||||||
#include "Common/MathUtil.h"
|
#include "Common/MathUtil.h"
|
||||||
|
|
||||||
|
#include "Core/HW/WiimoteEmu/Camera.h"
|
||||||
|
|
||||||
#include "InputCommon/ControlReference/ControlReference.h"
|
#include "InputCommon/ControlReference/ControlReference.h"
|
||||||
#include "InputCommon/ControllerEmu/Control/Control.h"
|
#include "InputCommon/ControllerEmu/Control/Control.h"
|
||||||
#include "InputCommon/ControllerEmu/ControlGroup/Cursor.h"
|
#include "InputCommon/ControllerEmu/ControlGroup/Cursor.h"
|
||||||
|
@ -823,6 +825,35 @@ void GyroMappingIndicator::Draw()
|
||||||
p.drawEllipse(QPointF{}, INPUT_DOT_RADIUS, INPUT_DOT_RADIUS);
|
p.drawEllipse(QPointF{}, INPUT_DOT_RADIUS, INPUT_DOT_RADIUS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IRPassthroughMappingIndicator::Draw()
|
||||||
|
{
|
||||||
|
QPainter p(this);
|
||||||
|
DrawBoundingBox(p);
|
||||||
|
TransformPainter(p);
|
||||||
|
|
||||||
|
p.scale(1.0, -1.0);
|
||||||
|
|
||||||
|
auto pen = GetInputDotPen(m_ir_group.enabled ? GetAdjustedInputColor() : GetRawInputColor());
|
||||||
|
|
||||||
|
for (std::size_t i = 0; i != WiimoteEmu::CameraLogic::NUM_POINTS; ++i)
|
||||||
|
{
|
||||||
|
const auto size = m_ir_group.GetObjectSize(i);
|
||||||
|
|
||||||
|
const bool is_visible = size > 0;
|
||||||
|
if (!is_visible)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
const auto point =
|
||||||
|
(QPointF{m_ir_group.GetObjectPositionX(i), m_ir_group.GetObjectPositionY(i)} -
|
||||||
|
QPointF{0.5, 0.5}) *
|
||||||
|
2.0;
|
||||||
|
|
||||||
|
pen.setWidth(size * NORMAL_INDICATOR_WIDTH / 2);
|
||||||
|
p.setPen(pen);
|
||||||
|
p.drawPoint(point);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ReshapableInputIndicator::DrawCalibration(QPainter& p, Common::DVec2 point)
|
void ReshapableInputIndicator::DrawCalibration(QPainter& p, Common::DVec2 point)
|
||||||
{
|
{
|
||||||
const auto center = m_calibration_widget->GetCenter();
|
const auto center = m_calibration_widget->GetCenter();
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <deque>
|
#include <deque>
|
||||||
|
|
||||||
#include "Core/HW/WiimoteEmu/Dynamics.h"
|
#include "Core/HW/WiimoteEmu/Dynamics.h"
|
||||||
|
#include "InputCommon/ControllerEmu/ControlGroup/IRPassthrough.h"
|
||||||
#include "InputCommon/ControllerEmu/StickGate.h"
|
#include "InputCommon/ControllerEmu/StickGate.h"
|
||||||
|
|
||||||
namespace ControllerEmu
|
namespace ControllerEmu
|
||||||
|
@ -180,6 +181,19 @@ private:
|
||||||
u32 m_stable_steps = 0;
|
u32 m_stable_steps = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class IRPassthroughMappingIndicator : public SquareIndicator
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit IRPassthroughMappingIndicator(ControllerEmu::IRPassthrough& ir_group)
|
||||||
|
: m_ir_group(ir_group)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
void Draw() override;
|
||||||
|
|
||||||
|
ControllerEmu::IRPassthrough& m_ir_group;
|
||||||
|
};
|
||||||
class CalibrationWidget : public QToolButton
|
class CalibrationWidget : public QToolButton
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -95,6 +95,11 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con
|
||||||
indicator = new AnalogStickIndicator(*static_cast<ControllerEmu::ReshapableInput*>(group));
|
indicator = new AnalogStickIndicator(*static_cast<ControllerEmu::ReshapableInput*>(group));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ControllerEmu::GroupType::IRPassthrough:
|
||||||
|
indicator =
|
||||||
|
new IRPassthroughMappingIndicator(*static_cast<ControllerEmu::IRPassthrough*>(group));
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue