38 lines
624 B
C++
38 lines
624 B
C++
#pragma once
|
|
|
|
#include "Vector2.hpp"
|
|
#include "Util.hpp"
|
|
|
|
struct SDL_Cursor;
|
|
struct SDL_Surface;
|
|
|
|
SDLU_BEGIN
|
|
|
|
class Cursor
|
|
{
|
|
public:
|
|
enum class Type {
|
|
Arrow, IBeam, Wait, Crosshair, WaitArrow,
|
|
SizeNWSE, SizeNESW, SizeWE, SizeNS, SizeAll,
|
|
No, Hand
|
|
};
|
|
|
|
friend class Window;
|
|
|
|
public:
|
|
Cursor();
|
|
Cursor(Type type);
|
|
Cursor(const Cursor& other) = delete;
|
|
Cursor(Cursor&& other) noexcept;
|
|
|
|
~Cursor();
|
|
|
|
bool LoadFromPixels(const Uint8* pixels, Vector2u size, Vector2u hotspot);
|
|
bool LoadFromSurface(SDL_Surface* surface, Vector2u hotspot);
|
|
bool LoadFromSystem(Type type);
|
|
|
|
private:
|
|
SDL_Cursor* cursor;
|
|
};
|
|
|
|
SDLU_END |