mirror of
https://github.com/love2d/love.git
synced 2026-08-17 11:00:31 +02:00
Removed the system cursor variant of love.mouse.newCursor and added love.mouse.getSystemCursor. love.mouse.newCursor can now take a file(path). Resolves issue #741.
This commit is contained in:
@@ -46,6 +46,9 @@ Mouse::~Mouse()
|
||||
{
|
||||
if (curCursor)
|
||||
setCursor();
|
||||
|
||||
for (auto it = systemCursors.begin(); it != systemCursors.end(); ++it)
|
||||
it->second->release();
|
||||
}
|
||||
|
||||
love::mouse::Cursor *Mouse::newCursor(love::image::ImageData *data, int hotx, int hoty)
|
||||
@@ -53,9 +56,20 @@ love::mouse::Cursor *Mouse::newCursor(love::image::ImageData *data, int hotx, in
|
||||
return new Cursor(data, hotx, hoty);
|
||||
}
|
||||
|
||||
love::mouse::Cursor *Mouse::newCursor(love::mouse::Cursor::SystemCursor cursortype)
|
||||
love::mouse::Cursor *Mouse::getSystemCursor(Cursor::SystemCursor cursortype)
|
||||
{
|
||||
return new Cursor(cursortype);
|
||||
Cursor *cursor = NULL;
|
||||
auto it = systemCursors.find(cursortype);
|
||||
|
||||
if (it != systemCursors.end())
|
||||
cursor = it->second;
|
||||
else
|
||||
{
|
||||
cursor = new Cursor(cursortype);
|
||||
systemCursors[cursortype] = cursor;
|
||||
}
|
||||
|
||||
return cursor;
|
||||
}
|
||||
|
||||
void Mouse::setCursor(love::mouse::Cursor *cursor)
|
||||
|
||||
@@ -25,6 +25,9 @@
|
||||
#include "mouse/Mouse.h"
|
||||
#include "Cursor.h"
|
||||
|
||||
// C++
|
||||
#include <map>
|
||||
|
||||
namespace love
|
||||
{
|
||||
namespace mouse
|
||||
@@ -43,7 +46,7 @@ public:
|
||||
~Mouse();
|
||||
|
||||
love::mouse::Cursor *newCursor(love::image::ImageData *data, int hotx, int hoty);
|
||||
love::mouse::Cursor *newCursor(love::mouse::Cursor::SystemCursor cursortype);
|
||||
love::mouse::Cursor *getSystemCursor(Cursor::SystemCursor cursortype);
|
||||
|
||||
void setCursor(love::mouse::Cursor *cursor);
|
||||
void setCursor();
|
||||
@@ -66,6 +69,8 @@ private:
|
||||
|
||||
love::mouse::Cursor *curCursor;
|
||||
|
||||
std::map<Cursor::SystemCursor, Cursor *> systemCursors;
|
||||
|
||||
}; // Mouse
|
||||
|
||||
} // sdl
|
||||
|
||||
Reference in New Issue
Block a user