mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-25 15:15:40 +00:00
NamcoGunCon: Use mouse position from host display
This commit is contained in:
parent
1000cb30a9
commit
38b075c014
|
@ -3,7 +3,8 @@
|
||||||
#include "common/log.h"
|
#include "common/log.h"
|
||||||
#include "common/state_wrapper.h"
|
#include "common/state_wrapper.h"
|
||||||
#include "gpu.h"
|
#include "gpu.h"
|
||||||
#include "imgui.h"
|
#include "host_display.h"
|
||||||
|
#include "host_interface.h"
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include <array>
|
#include <array>
|
||||||
Log_SetChannel(NamcoGunCon);
|
Log_SetChannel(NamcoGunCon);
|
||||||
|
@ -150,9 +151,10 @@ bool NamcoGunCon::Transfer(const u8 data_in, u8* data_out)
|
||||||
|
|
||||||
void NamcoGunCon::UpdatePosition()
|
void NamcoGunCon::UpdatePosition()
|
||||||
{
|
{
|
||||||
// get screen coordinates. TODO better way
|
// get screen coordinates
|
||||||
const s32 mouse_x = static_cast<s32>(ImGui::GetIO().MousePos.x);
|
const HostDisplay* display = m_system->GetHostInterface()->GetDisplay();
|
||||||
const s32 mouse_y = static_cast<s32>(ImGui::GetIO().MousePos.y);
|
const s32 mouse_x = display->GetMousePositionX();
|
||||||
|
const s32 mouse_y = display->GetMousePositionY();
|
||||||
|
|
||||||
// are we within the active display area?
|
// are we within the active display area?
|
||||||
u32 tick, line;
|
u32 tick, line;
|
||||||
|
@ -168,7 +170,8 @@ void NamcoGunCon::UpdatePosition()
|
||||||
// 8MHz units for X = 44100*768*11/7 = 53222400 / 8000000 = 6.6528
|
// 8MHz units for X = 44100*768*11/7 = 53222400 / 8000000 = 6.6528
|
||||||
m_position_x = static_cast<u16>(static_cast<float>(tick) * (1.0f / 6.6528f));
|
m_position_x = static_cast<u16>(static_cast<float>(tick) * (1.0f / 6.6528f));
|
||||||
m_position_y = static_cast<u16>(line);
|
m_position_y = static_cast<u16>(line);
|
||||||
Log_DebugPrintf("Lightgun window coordinates %d,%d -> tick %u line %u 8mhz ticks %u", tick, line, m_position_x);
|
Log_DebugPrintf("Lightgun window coordinates %d,%d -> tick %u line %u 8mhz ticks %u", mouse_x, mouse_y, tick, line,
|
||||||
|
m_position_x);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<NamcoGunCon> NamcoGunCon::Create(System* system)
|
std::unique_ptr<NamcoGunCon> NamcoGunCon::Create(System* system)
|
||||||
|
|
Loading…
Reference in a new issue