build: Add toolchain

This commit is contained in:
robshape 2023-04-14 17:51:40 +02:00
parent 3c6310d4e3
commit 6373955e86
17 changed files with 3292 additions and 0 deletions

View file

@ -0,0 +1,80 @@
--- a/include/SDL_keysym.h
+++ b/include/SDL_keysym.h
@@ -296,6 +296,19 @@
SDLK_UNDO = 322, /**< Atari keyboard has Undo */
/*@}*/
+ /** @name RG35XX keys */
+ /*@{*/
+ SDLK_KATAKANA = 323,
+ SDLK_HIRAGANA = 324,
+ SDLK_HENKAN = 325,
+ SDLK_KATAKANAHIRAGANA = 326,
+ SDLK_MUHENKAN = 327,
+ SDLK_KP_JPCOMMA = 328,
+ SDLK_KP_SLASH = 329,
+ SDLK_CURSORBLOCKUP = 330,
+ SDLK_CURSORBLOCKDOWN = 331,
+ /*@}*/
+
/* Add any other keys here */
SDLK_LAST
--- a/src/video/fbcon/SDL_fbevents.c
+++ b/src/video/fbcon/SDL_fbevents.c
@@ -1133,6 +1133,38 @@
case 127:
keymap[i] = SDLK_MENU;
break;
+
+ /* RG35XX */
+ case SCANCODE_KATAKANA:
+ keymap[i] = SDLK_KATAKANA;
+ break;
+ case SCANCODE_HIRAGANA:
+ keymap[i] = SDLK_HIRAGANA;
+ break;
+ case SCANCODE_HENKAN:
+ keymap[i] = SDLK_HENKAN;
+ break;
+ case SCANCODE_KATAKANAHIRAGANA:
+ keymap[i] = SDLK_KATAKANAHIRAGANA;
+ break;
+ case SCANCODE_MUHENKAN:
+ keymap[i] = SDLK_MUHENKAN;
+ break;
+ case SCANCODE_KPJPCOMMA:
+ keymap[i] = SDLK_KP_JPCOMMA;
+ break;
+ case SCANCODE_KEYPADENTER:
+ keymap[i] = SDLK_KP_ENTER;
+ break;
+ case SCANCODE_CURSORBLOCKUP:
+ keymap[i] = SDLK_CURSORBLOCKUP;
+ break;
+ case SCANCODE_CURSORBLOCKDOWN:
+ keymap[i] = SDLK_CURSORBLOCKDOWN;
+ break;
+
+
+
/* this should take care of all standard ascii keys */
default:
keymap[i] = KVAL(vga_keymap[0][i]);
--- a/src/video/fbcon/SDL_fbkeys.h
+++ b/src/video/fbcon/SDL_fbkeys.h
@@ -114,6 +114,14 @@
#define SCANCODE_F11 87
#define SCANCODE_F12 88
+/* RG35XX */
+#define SCANCODE_KATAKANA 90
+#define SCANCODE_HIRAGANA 91
+#define SCANCODE_HENKAN 92
+#define SCANCODE_KATAKANAHIRAGANA 93
+#define SCANCODE_MUHENKAN 94
+#define SCANCODE_KPJPCOMMA 95
+
#define SCANCODE_KEYPADENTER 96
#define SCANCODE_RIGHTCONTROL 97
#define SCANCODE_CONTROL 97

View file

@ -0,0 +1,35 @@
--- a/src/video/fbcon/SDL_fbvideo.c
+++ b/src/video/fbcon/SDL_fbvideo.c
@@ -1907,15 +1907,12 @@
static void FB_VideoQuit(_THIS)
{
int i, j;
+ const char *dontClearPixels = SDL_getenv("SDL_FBCON_DONT_CLEAR");
if ( this->screen ) {
- /* Clear screen and tell SDL not to free the pixels */
-
- const char *dontClearPixels = SDL_getenv("SDL_FBCON_DONT_CLEAR");
-
/* If the framebuffer is not to be cleared, make sure that we won't
* display the previous frame when disabling double buffering. */
- if ( dontClearPixels && flip_page == 0 ) {
+ if ( dontClearPixels && (this->screen->flags & SDL_DOUBLEBUF) && flip_page == 0 ) {
SDL_memcpy(flip_address[0], flip_address[1], this->screen->pitch * this->screen->h);
}
@@ -1969,7 +1966,13 @@
/* Restore the original video mode and palette */
if ( FB_InGraphicsMode(this) ) {
- FB_RestorePalette(this);
+ if (dontClearPixels) {
+ /* Restore only panning, keep current mode */
+ ioctl(console_fd, FBIOGET_VSCREENINFO, &saved_vinfo);
+ saved_vinfo.yoffset = saved_vinfo.xoffset = 0;
+ } else {
+ FB_RestorePalette(this);
+ }
ioctl(console_fd, FBIOPUT_VSCREENINFO, &saved_vinfo);
}