UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LinuxCursor.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Math/Vector2D.h"
8#include <SDL3/SDL.h>
9
11
12class FLinuxCursor : public ICursor
13{
14public:
16
17 virtual ~FLinuxCursor();
18
19 virtual bool IsCreateCursorFromRGBABufferSupported() const override
20 {
21 return true;
22 }
23
24 virtual void* CreateCursorFromRGBABuffer(const FColor* Pixels, int32 Width, int32 Height, FVector2D InHotSpot) override;
25
26 virtual FVector2D GetPosition() const override;
27
28 virtual void SetPosition( const int32 X, const int32 Y ) override;
29
30 virtual void SetType( const EMouseCursor::Type InNewCursor ) override;
31
32 virtual EMouseCursor::Type GetType() const override
33 {
34 return CurrentType;
35 }
36
37 virtual void GetSize( int32& Width, int32& Height ) const override;
38
39 virtual void Show( bool bShow ) override;
40
41 virtual void Lock( const RECT* const Bounds ) override;
42
43 virtual void SetTypeShape(EMouseCursor::Type InCursorType, void* CursorHandle) override;
44
45public:
46
53
54 bool IsHidden();
55
59 void InvalidateCaches();
60
62 void SetCachedPosition( const float X, const float Y );
63
64private:
65
66 EMouseCursor::Type CurrentType;
67 bool bHidden;
68
71
73 SDL_HCursor CursorOverrideHandles[ EMouseCursor::TotalCursorCount ];
74
75 SDL_Rect CursorClipRect;
76
78 mutable float CachedGlobalXPosition;
79
81 mutable float CachedGlobalYPosition;
82
84 mutable bool bPositionCacheIsValid;
85};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
SDL_Cursor * SDL_HCursor
Definition LinuxCursor.h:10
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
Definition LinuxCursor.h:13
void SetCachedPosition(const float X, const float Y)
Definition LinuxCursor.cpp:220
virtual bool IsCreateCursorFromRGBABufferSupported() const override
Definition LinuxCursor.h:19
virtual void GetSize(int32 &Width, int32 &Height) const override
Definition LinuxCursor.cpp:283
void InvalidateCaches()
Definition LinuxCursor.cpp:215
virtual FVector2D GetPosition() const override
Definition LinuxCursor.cpp:201
virtual ~FLinuxCursor()
Definition LinuxCursor.cpp:139
FLinuxCursor()
Definition LinuxCursor.cpp:10
virtual void SetCustomShape(SDL_HCursor CursorHandle)
Definition LinuxCursor.cpp:196
virtual void * CreateCursorFromRGBABuffer(const FColor *Pixels, int32 Width, int32 Height, FVector2D InHotSpot) override
Definition LinuxCursor.cpp:176
virtual void Show(bool bShow) override
Definition LinuxCursor.cpp:289
virtual EMouseCursor::Type GetType() const override
Definition LinuxCursor.h:32
virtual void SetTypeShape(EMouseCursor::Type InCursorType, void *CursorHandle) override
Definition LinuxCursor.cpp:367
bool IsHidden()
Definition LinuxCursor.cpp:362
virtual void SetType(const EMouseCursor::Type InNewCursor) override
Definition LinuxCursor.cpp:259
virtual void SetPosition(const int32 X, const int32 Y) override
Definition LinuxCursor.cpp:227
Definition ICursor.h:70
Type
Definition ICursor.h:18
@ TotalCursorCount
Definition ICursor.h:65
Definition Color.h:486
Definition AndroidSystemIncludes.h:36