mirror of
				https://github.com/Ryujinx/SDL.git
				synced 2025-11-04 12:55:06 +00:00 
			
		
		
		
	riscos: Add a basic implementation of SDL_ShowCursor()
This commit is contained in:
		
							parent
							
								
									4c711d2d43
								
							
						
					
					
						commit
						6eda520f64
					
				| 
						 | 
				
			
			@ -23,6 +23,7 @@
 | 
			
		|||
#if SDL_VIDEO_DRIVER_RISCOS
 | 
			
		||||
 | 
			
		||||
#include "../SDL_sysvideo.h"
 | 
			
		||||
#include "../../events/SDL_mouse_c.h"
 | 
			
		||||
 | 
			
		||||
#include "SDL_riscosvideo.h"
 | 
			
		||||
#include "SDL_riscosmodes.h"
 | 
			
		||||
| 
						 | 
				
			
			@ -304,8 +305,8 @@ RISCOS_SetDisplayMode(_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode)
 | 
			
		|||
        _kernel_oswrch(disable_cursor[i]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* Turn the mouse pointer on */
 | 
			
		||||
    /* _kernel_osbyte(106, 1, 0); */
 | 
			
		||||
    /* Update cursor visibility, since it may have been disabled by the mode change. */
 | 
			
		||||
    SDL_SetCursor(NULL);
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										88
									
								
								src/video/riscos/SDL_riscosmouse.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								src/video/riscos/SDL_riscosmouse.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,88 @@
 | 
			
		|||
/*
 | 
			
		||||
  Simple DirectMedia Layer
 | 
			
		||||
  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
 | 
			
		||||
 | 
			
		||||
  This software is provided 'as-is', without any express or implied
 | 
			
		||||
  warranty.  In no event will the authors be held liable for any damages
 | 
			
		||||
  arising from the use of this software.
 | 
			
		||||
 | 
			
		||||
  Permission is granted to anyone to use this software for any purpose,
 | 
			
		||||
  including commercial applications, and to alter it and redistribute it
 | 
			
		||||
  freely, subject to the following restrictions:
 | 
			
		||||
 | 
			
		||||
  1. The origin of this software must not be misrepresented; you must not
 | 
			
		||||
     claim that you wrote the original software. If you use this software
 | 
			
		||||
     in a product, an acknowledgment in the product documentation would be
 | 
			
		||||
     appreciated but is not required.
 | 
			
		||||
  2. Altered source versions must be plainly marked as such, and must not be
 | 
			
		||||
     misrepresented as being the original software.
 | 
			
		||||
  3. This notice may not be removed or altered from any source distribution.
 | 
			
		||||
*/
 | 
			
		||||
#include "../../SDL_internal.h"
 | 
			
		||||
 | 
			
		||||
#if SDL_VIDEO_DRIVER_RISCOS
 | 
			
		||||
 | 
			
		||||
#include "../../events/SDL_mouse_c.h"
 | 
			
		||||
 | 
			
		||||
#include <kernel.h>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static SDL_Cursor *
 | 
			
		||||
RISCOS_CreateDefaultCursor()
 | 
			
		||||
{
 | 
			
		||||
    SDL_Cursor *cursor;
 | 
			
		||||
 | 
			
		||||
    cursor = SDL_calloc(1, sizeof(*cursor));
 | 
			
		||||
    if (cursor) {
 | 
			
		||||
        /* NULL is used to indicate the default cursor */
 | 
			
		||||
        cursor->driverdata = NULL;
 | 
			
		||||
    } else {
 | 
			
		||||
        SDL_OutOfMemory();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return cursor;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
RISCOS_FreeCursor(SDL_Cursor * cursor)
 | 
			
		||||
{
 | 
			
		||||
    SDL_free(cursor);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int
 | 
			
		||||
RISCOS_ShowCursor(SDL_Cursor * cursor)
 | 
			
		||||
{
 | 
			
		||||
    if (cursor) {
 | 
			
		||||
        /* Turn the mouse pointer on */
 | 
			
		||||
        _kernel_osbyte(106, 1, 0);
 | 
			
		||||
    } else {
 | 
			
		||||
        /* Turn the mouse pointer off */
 | 
			
		||||
        _kernel_osbyte(106, 0, 0);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
RISCOS_InitMouse(_THIS)
 | 
			
		||||
{
 | 
			
		||||
    SDL_Mouse *mouse = SDL_GetMouse();
 | 
			
		||||
 | 
			
		||||
    /* mouse->CreateCursor = RISCOS_CreateCursor; */
 | 
			
		||||
    /* mouse->CreateSystemCursor = RISCOS_CreateSystemCursor; */
 | 
			
		||||
    mouse->ShowCursor = RISCOS_ShowCursor;
 | 
			
		||||
    mouse->FreeCursor = RISCOS_FreeCursor;
 | 
			
		||||
    /* mouse->WarpMouse = RISCOS_WarpMouse; */
 | 
			
		||||
    /* mouse->WarpMouseGlobal = RISCOS_WarpMouseGlobal; */
 | 
			
		||||
    /* mouse->SetRelativeMouseMode = RISCOS_SetRelativeMouseMode; */
 | 
			
		||||
    /* mouse->CaptureMouse = RISCOS_CaptureMouse; */
 | 
			
		||||
    /* mouse->GetGlobalMouseState = RISCOS_GetGlobalMouseState; */
 | 
			
		||||
 | 
			
		||||
    SDL_SetDefaultCursor(RISCOS_CreateDefaultCursor());
 | 
			
		||||
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* SDL_VIDEO_DRIVER_RISCOS */
 | 
			
		||||
 | 
			
		||||
/* vi: set ts=4 sw=4 expandtab: */
 | 
			
		||||
							
								
								
									
										30
									
								
								src/video/riscos/SDL_riscosmouse.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/video/riscos/SDL_riscosmouse.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
/*
 | 
			
		||||
  Simple DirectMedia Layer
 | 
			
		||||
  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
 | 
			
		||||
 | 
			
		||||
  This software is provided 'as-is', without any express or implied
 | 
			
		||||
  warranty.  In no event will the authors be held liable for any damages
 | 
			
		||||
  arising from the use of this software.
 | 
			
		||||
 | 
			
		||||
  Permission is granted to anyone to use this software for any purpose,
 | 
			
		||||
  including commercial applications, and to alter it and redistribute it
 | 
			
		||||
  freely, subject to the following restrictions:
 | 
			
		||||
 | 
			
		||||
  1. The origin of this software must not be misrepresented; you must not
 | 
			
		||||
     claim that you wrote the original software. If you use this software
 | 
			
		||||
     in a product, an acknowledgment in the product documentation would be
 | 
			
		||||
     appreciated but is not required.
 | 
			
		||||
  2. Altered source versions must be plainly marked as such, and must not be
 | 
			
		||||
     misrepresented as being the original software.
 | 
			
		||||
  3. This notice may not be removed or altered from any source distribution.
 | 
			
		||||
*/
 | 
			
		||||
#include "../../SDL_internal.h"
 | 
			
		||||
 | 
			
		||||
#ifndef SDL_riscosmouse_h_
 | 
			
		||||
#define SDL_riscosmouse_h_
 | 
			
		||||
 | 
			
		||||
extern int RISCOS_InitMouse(_THIS);
 | 
			
		||||
 | 
			
		||||
#endif /* SDL_riscosmouse_h_ */
 | 
			
		||||
 | 
			
		||||
/* vi: set ts=4 sw=4 expandtab: */
 | 
			
		||||
| 
						 | 
				
			
			@ -31,6 +31,7 @@
 | 
			
		|||
#include "SDL_riscosvideo.h"
 | 
			
		||||
#include "SDL_riscosevents_c.h"
 | 
			
		||||
#include "SDL_riscosframebuffer_c.h"
 | 
			
		||||
#include "SDL_riscosmouse.h"
 | 
			
		||||
#include "SDL_riscosmodes.h"
 | 
			
		||||
#include "SDL_riscoswindow.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -105,6 +106,10 @@ RISCOS_VideoInit(_THIS)
 | 
			
		|||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (RISCOS_InitMouse(_this) < 0) {
 | 
			
		||||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (RISCOS_InitModes(_this) < 0) {
 | 
			
		||||
        return -1;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue