Move ScreenToGameViewport from Engine to Screen

And make it accessible from the C# side
This commit is contained in:
stefnotch
2021-03-15 20:18:39 +01:00
parent 97ab226d7e
commit fb28cae2b4
5 changed files with 34 additions and 34 deletions

View File

@@ -413,24 +413,6 @@ bool Engine::HasGameViewportFocus()
#endif
}
Vector2 Engine::ScreenToGameViewport(const Vector2& screenPos)
{
#if USE_EDITOR
return Editor::Managed->ScreenToGameViewport(screenPos);
#else
return MainWindow ? MainWindow->ScreenToClient(screenPos) : Vector2::Minimum;
#endif
}
Vector2 Engine::GameViewportToScreen(const Vector2& viewportPos)
{
#if USE_EDITOR
return Editor::Managed->GameViewportToScreen(viewportPos);
#else
return MainWindow ? MainWindow->ClientToScreen(viewportPos) : Vector2::Minimum;
#endif
}
void Engine::OnPause()
{
LOG(Info, "App paused");

View File

@@ -153,20 +153,6 @@ public:
/// <returns>True if game viewport is focused, otherwise false.</returns>
static bool HasGameViewportFocus();
/// <summary>
/// Converts the screen-space position to the game viewport position.
/// </summary>
/// <param name="screenPos">The screen-space position.</param>
/// <returns>The game viewport position.</returns>
static Vector2 ScreenToGameViewport(const Vector2& screenPos);
/// <summary>
/// Converts the game viewport position to the screen-space position.
/// </summary>
/// <param name="viewportPos">The game viewport position.</param>
/// <returns>The screen-space position.</returns>
static Vector2 GameViewportToScreen(const Vector2& viewportPos);
private:
static void OnPause();

View File

@@ -66,6 +66,24 @@ void Screen::SetSize(const Vector2& value)
Size = value;
}
Vector2 Screen::ScreenToGameViewport(const Vector2& screenPos)
{
#if USE_EDITOR
return Editor::Managed->ScreenToGameViewport(screenPos);
#else
return MainWindow ? MainWindow->ScreenToClient(screenPos) : Vector2::Minimum;
#endif
}
Vector2 Screen::GameViewportToScreen(const Vector2& viewportPos)
{
#if USE_EDITOR
return Editor::Managed->GameViewportToScreen(viewportPos);
#else
return MainWindow ? MainWindow->ClientToScreen(viewportPos) : Vector2::Minimum;
#endif
}
bool Screen::GetCursorVisible()
{
#if USE_EDITOR

View File

@@ -33,6 +33,20 @@ DECLARE_SCRIPTING_TYPE_NO_SPAWN(Screen);
/// <returns>The value</returns>
API_PROPERTY() static Vector2 GetSize();
/// <summary>
/// Converts the screen-space position to the game viewport position.
/// </summary>
/// <param name="screenPos">The screen-space position.</param>
/// <returns>The game viewport position.</returns>
API_FUNCTION() static Vector2 ScreenToGameViewport(const Vector2& screenPos);
/// <summary>
/// Converts the game viewport position to the screen-space position.
/// </summary>
/// <param name="viewportPos">The game viewport position.</param>
/// <returns>The screen-space position.</returns>
API_FUNCTION() static Vector2 GameViewportToScreen(const Vector2& viewportPos);
/// <summary>
/// Sets the window size.
/// </summary>