Reviewed PR #1407
This commit is contained in:
parent
9833fe45eb
commit
f12db180cd
3 changed files with 20 additions and 57 deletions
|
@ -70,10 +70,7 @@ int main(void)
|
||||||
if (letterCount < 0) letterCount = 0;
|
if (letterCount < 0) letterCount = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (GetMouseCursor() != MOUSE_CURSOR_DEFAULT)
|
else if (GetMouseCursor() != MOUSE_CURSOR_DEFAULT) SetMouseCursor(MOUSE_CURSOR_DEFAULT);
|
||||||
{
|
|
||||||
SetMouseCursor(MOUSE_CURSOR_DEFAULT);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mouseOnText) framesCounter++;
|
if (mouseOnText) framesCounter++;
|
||||||
else framesCounter = 0;
|
else framesCounter = 0;
|
||||||
|
|
40
src/core.c
40
src/core.c
|
@ -423,8 +423,7 @@ typedef struct CoreData {
|
||||||
Vector2 offset; // Mouse offset
|
Vector2 offset; // Mouse offset
|
||||||
Vector2 scale; // Mouse scaling
|
Vector2 scale; // Mouse scaling
|
||||||
|
|
||||||
MouseCursor cursor; // Tracks current mouse cursor
|
int cursor; // Tracks current mouse cursor
|
||||||
void* standardCursors[10]; // Opaque pointers to GLFW cursors
|
|
||||||
bool cursorHidden; // Track if cursor is hidden
|
bool cursorHidden; // Track if cursor is hidden
|
||||||
bool cursorOnScreen; // Tracks if cursor is inside client area
|
bool cursorOnScreen; // Tracks if cursor is inside client area
|
||||||
|
|
||||||
|
@ -756,26 +755,6 @@ void InitWindow(int width, int height, const char *title)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PLATFORM_DESKTOP)
|
|
||||||
// Initialize GLFW's standard cursors
|
|
||||||
const int shapes[] = {
|
|
||||||
0x00036001, // MOUSE_CURSOR_ARROW
|
|
||||||
0x00036002, // MOUSE_CURSOR_IBEAM
|
|
||||||
0x00036003, // MOUSE_CURSOR_CROSSHAIR
|
|
||||||
0x00036004, // MOUSE_CURSOR_POINTING_HAND
|
|
||||||
0x00036005, // MOUSE_CURSOR_RESIZE_EW
|
|
||||||
0x00036006, // MOUSE_CURSOR_RESIZE_NS
|
|
||||||
0x00036007, // MOUSE_CURSOR_RESIZE_NWSE
|
|
||||||
0x00036008, // MOUSE_CURSOR_RESIZE_NESW
|
|
||||||
0x00036009, // MOUSE_CURSOR_RESIZE_ALL
|
|
||||||
0x0003600A, // MOUSE_CURSOR_NOT_ALLOWED
|
|
||||||
};
|
|
||||||
for (int i = 0; i < sizeof(CORE.Input.Mouse.standardCursors) / sizeof(CORE.Input.Mouse.standardCursors[0]); i += 1)
|
|
||||||
{
|
|
||||||
CORE.Input.Mouse.standardCursors[i] = glfwCreateStandardCursor(shapes[i]);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(PLATFORM_WEB)
|
#if defined(PLATFORM_WEB)
|
||||||
// Detect fullscreen change events
|
// Detect fullscreen change events
|
||||||
emscripten_set_fullscreenchange_callback("#canvas", NULL, 1, EmscriptenFullscreenChangeCallback);
|
emscripten_set_fullscreenchange_callback("#canvas", NULL, 1, EmscriptenFullscreenChangeCallback);
|
||||||
|
@ -820,11 +799,6 @@ void CloseWindow(void)
|
||||||
|
|
||||||
rlglClose(); // De-init rlgl
|
rlglClose(); // De-init rlgl
|
||||||
|
|
||||||
#if defined(PLATFORM_DESKTOP)
|
|
||||||
for (int i = 0; i < sizeof(CORE.Input.Mouse.standardCursors) / sizeof(CORE.Input.Mouse.standardCursors[0]); i += 1)
|
|
||||||
glfwDestroyCursor(CORE.Input.Mouse.standardCursors[i]);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB)
|
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB)
|
||||||
glfwDestroyWindow(CORE.Window.handle);
|
glfwDestroyWindow(CORE.Window.handle);
|
||||||
glfwTerminate();
|
glfwTerminate();
|
||||||
|
@ -2762,24 +2736,22 @@ float GetMouseWheelMove(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns mouse cursor
|
// Returns mouse cursor
|
||||||
MouseCursor GetMouseCursor(void)
|
int GetMouseCursor(void)
|
||||||
{
|
{
|
||||||
return CORE.Input.Mouse.cursor;
|
return CORE.Input.Mouse.cursor;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set mouse cursor
|
// Set mouse cursor
|
||||||
// NOTE: This is a no-op on platforms other than PLATFORM_DESKTOP
|
// NOTE: This is a no-op on platforms other than PLATFORM_DESKTOP
|
||||||
void SetMouseCursor(MouseCursor cursor)
|
void SetMouseCursor(int cursor)
|
||||||
{
|
{
|
||||||
#if defined(PLATFORM_DESKTOP)
|
#if defined(PLATFORM_DESKTOP)
|
||||||
CORE.Input.Mouse.cursor = cursor;
|
CORE.Input.Mouse.cursor = cursor;
|
||||||
if (cursor == MOUSE_CURSOR_DEFAULT)
|
if (cursor == MOUSE_CURSOR_DEFAULT) glfwSetCursor(CORE.Window.handle, NULL);
|
||||||
{
|
|
||||||
glfwSetCursor(CORE.Window.handle, NULL);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
glfwSetCursor(CORE.Window.handle, CORE.Input.Mouse.standardCursors[cursor]);
|
// NOTE: We are relating internal GLFW enum values to our MouseCursor enum values
|
||||||
|
glfwSetCursor(CORE.Window.handle, glfwCreateStandardCursor(0x00036000 + cursor));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
32
src/raylib.h
32
src/raylib.h
|
@ -619,23 +619,17 @@ typedef enum {
|
||||||
|
|
||||||
// Mouse cursor types
|
// Mouse cursor types
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MOUSE_CURSOR_DEFAULT = -1,
|
MOUSE_CURSOR_DEFAULT = 0,
|
||||||
MOUSE_CURSOR_ARROW = 0,
|
MOUSE_CURSOR_ARROW = 1,
|
||||||
MOUSE_CURSOR_IBEAM = 1,
|
MOUSE_CURSOR_IBEAM = 2,
|
||||||
MOUSE_CURSOR_CROSSHAIR = 2,
|
MOUSE_CURSOR_CROSSHAIR = 3,
|
||||||
MOUSE_CURSOR_POINTING_HAND = 3,
|
MOUSE_CURSOR_POINTING_HAND = 4,
|
||||||
// The horizontal resize/move arrow shape.
|
MOUSE_CURSOR_RESIZE_EW = 5, // The horizontal resize/move arrow shape
|
||||||
MOUSE_CURSOR_RESIZE_EW = 4,
|
MOUSE_CURSOR_RESIZE_NS = 6, // The vertical resize/move arrow shape
|
||||||
// The vertical resize/move arrow shape.
|
MOUSE_CURSOR_RESIZE_NWSE = 7, // The top-left to bottom-right diagonal resize/move arrow shape
|
||||||
MOUSE_CURSOR_RESIZE_NS = 5,
|
MOUSE_CURSOR_RESIZE_NESW = 8, // The top-right to bottom-left diagonal resize/move arrow shape
|
||||||
// The top-left to bottom-right diagonal resize/move arrow shape.
|
MOUSE_CURSOR_RESIZE_ALL = 9, // The omni-directional resize/move cursor shape
|
||||||
MOUSE_CURSOR_RESIZE_NWSE = 6,
|
MOUSE_CURSOR_NOT_ALLOWED = 10 // The operation-not-allowed shape
|
||||||
// The top-right to bottom-left diagonal resize/move arrow shape.
|
|
||||||
MOUSE_CURSOR_RESIZE_NESW = 7,
|
|
||||||
// The omni-directional resize/move cursor shape.
|
|
||||||
MOUSE_CURSOR_RESIZE_ALL = 8,
|
|
||||||
// The operation-not-allowed shape.
|
|
||||||
MOUSE_CURSOR_NOT_ALLOWED = 9
|
|
||||||
} MouseCursor;
|
} MouseCursor;
|
||||||
|
|
||||||
// Gamepad number
|
// Gamepad number
|
||||||
|
@ -1037,8 +1031,8 @@ RLAPI void SetMousePosition(int x, int y); // Set mouse posit
|
||||||
RLAPI void SetMouseOffset(int offsetX, int offsetY); // Set mouse offset
|
RLAPI void SetMouseOffset(int offsetX, int offsetY); // Set mouse offset
|
||||||
RLAPI void SetMouseScale(float scaleX, float scaleY); // Set mouse scaling
|
RLAPI void SetMouseScale(float scaleX, float scaleY); // Set mouse scaling
|
||||||
RLAPI float GetMouseWheelMove(void); // Returns mouse wheel movement Y
|
RLAPI float GetMouseWheelMove(void); // Returns mouse wheel movement Y
|
||||||
RLAPI MouseCursor GetMouseCursor(void); // Returns mouse cursor
|
RLAPI int GetMouseCursor(void); // Returns mouse cursor if (MouseCursor enum)
|
||||||
RLAPI void SetMouseCursor(MouseCursor cursor); // Set mouse cursor
|
RLAPI void SetMouseCursor(int cursor); // Set mouse cursor
|
||||||
|
|
||||||
// Input-related functions: touch
|
// Input-related functions: touch
|
||||||
RLAPI int GetTouchX(void); // Returns touch position X for touch point 0 (relative to screen size)
|
RLAPI int GetTouchX(void); // Returns touch position X for touch point 0 (relative to screen size)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue