#pragma once
#include "Engine/Core/Types/BaseTypes.h"
#include "Engine/Core/Delegate.h"
API_INJECT_CODE(cpp, "#include \"Engine/Platform/ScreenUtils.h\"");
///
/// Platform-dependent screen utilties.
///
API_CLASS(Static, Name = "ScreenUtils", Tag = "NativeInvokeUseName")
class FLAXENGINE_API ScreenUtilsBase
{
public:
static struct FLAXENGINE_API ScriptingTypeInitializer TypeInitializer;
///
/// Gets the pixel color at the specified coordinates.
///
/// X Coordinate to read.
/// Y Coordinate to read.
/// Pixel color at the specified coordinates.
API_FUNCTION() static Color32 GetPixelAt(int32 x, int32 y);
///
/// Gets the cursor position, in screen cooridnates.
///
/// Cursor position, in screen coordinates.
API_FUNCTION() static Int2 GetScreenCursorPosition();
///
/// Starts async color picking. Will return a color through ColorReturnCallback.
///
/// Blocks mouse input and runs a callback
///
API_FUNCTION() static void BlockAndReadMouse();
///
/// Called when PickColor() is finished.
///
API_EVENT() static Delegate PickColorDone;
};