#include "CoordinateTools.h" std::pair physicalToLogical(const float screenX, const float screenY, SDL_Renderer* renderer) { if (renderer == nullptr) { SDL_Log("Renderer is null in physicalToLogical\n"); return {static_cast(screenX), static_cast(screenY)}; } // 将窗口坐标转为逻辑坐标 float logicalX, logicalY; SDL_RenderCoordinatesFromWindow( renderer, static_cast(screenX), static_cast(screenY), &logicalX, &logicalY ); int mouseX = static_cast(logicalX); int mouseY = static_cast(logicalY); return {logicalX, logicalY}; }