Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | add "sdltk framebuffer" command and emergency exit by ctrl-alt-backspace when running with framebuffer video driver |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
26aea6e5ecdb382fb0ccff7e4db2fe89 |
User & Date: | chw 2018-02-24 15:56:13.729 |
Original Comment: | add "sdlkt framebuffer" command and emergency exit by ctrl-alt-backspace when running with framebuffer |
Context
2018-02-27
| ||
05:42 | add selected SDL2 upstream changes plus tweaks to make [undroidwish] run on fedora 27 check-in: c960aeaebd user: chw tags: trunk | |
2018-02-24
| ||
15:56 | add "sdltk framebuffer" command and emergency exit by ctrl-alt-backspace when running with framebuffer video driver check-in: 26aea6e5ec user: chw tags: trunk | |
2018-02-23
| ||
20:11 | add tcl upstream changes check-in: 4726d55c63 user: chw tags: trunk | |
Changes
Changes to jni/sdl2tk/sdl/SdlTkDecframe.c.
︙ | ︙ | |||
692 693 694 695 696 697 698 | 0.0, &x, NULL); if (x > bb[0] - 2 * SdlTkX.dec_frame_width) { break; } p += sizeof (unsigned int); } | > | > | 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 | 0.0, &x, NULL); if (x > bb[0] - 2 * SdlTkX.dec_frame_width) { break; } p += sizeof (unsigned int); } if (encoding) { Tcl_FreeEncoding(encoding); } Tcl_DStringFree(&ds); } } /* Close box */ { int lw2 = SdlTkX.dec_line_width + 2; |
︙ | ︙ |
Changes to jni/sdl2tk/sdl/SdlTkInt.c.
︙ | ︙ | |||
1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 | } else if (sdl_event->type == SDL_KEYUP) { EVLOG(" KEYUP: CODE=0x%02X MOD=0x%X SYM=0x%X", sdl_event->key.keysym.scancode, sdl_event->key.keysym.mod, sdl_event->key.keysym.sym); } #endif event->xkey.keycode = -1; if ((sdl_event->type != SDL_TEXTINPUT) && (sdl_event->type != SDL_TEXTEDITING)) { int scancode = sdl_event->key.keysym.scancode; | > > > > > > > > > > > > > > | 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 | } else if (sdl_event->type == SDL_KEYUP) { EVLOG(" KEYUP: CODE=0x%02X MOD=0x%X SYM=0x%X", sdl_event->key.keysym.scancode, sdl_event->key.keysym.mod, sdl_event->key.keysym.sym); } #endif if (SdlTkX.is_framebuffer) { /* <Control><Alt_L><Backspace> sends SQL_QUIT */ if ((sdl_event->type == SDL_KEYDOWN) && (sdl_event->key.keysym.mod & KMOD_CTRL) && (sdl_event->key.keysym.mod & KMOD_LALT) && (sdl_event->key.keysym.scancode == SDL_SCANCODE_BACKSPACE)) { SDL_Event quit_ev; memset(&quit_ev, 0, sizeof (quit_ev)); quit_ev.type = SDL_QUIT; SDL_PushEvent(&quit_ev); } } event->xkey.keycode = -1; if ((sdl_event->type != SDL_TEXTINPUT) && (sdl_event->type != SDL_TEXTEDITING)) { int scancode = sdl_event->key.keysym.scancode; |
︙ | ︙ | |||
3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 | { if (objc != 1) { Tcl_WrongNumArgs(interp, 1, objv, ""); return TCL_ERROR; } return SdlTkFontList(interp); } static int FullscreenObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { if (objc != 1) { Tcl_WrongNumArgs(interp, 1, objv, ""); | > > > > > > > > > > > > | 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 | { if (objc != 1) { Tcl_WrongNumArgs(interp, 1, objv, ""); return TCL_ERROR; } return SdlTkFontList(interp); } static int FramebufferObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { if (objc != 1) { Tcl_WrongNumArgs(interp, 1, objv, ""); return TCL_ERROR; } Tcl_SetObjResult(interp, Tcl_NewIntObj(SdlTkX.is_framebuffer)); return TCL_OK; } static int FullscreenObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { if (objc != 1) { Tcl_WrongNumArgs(interp, 1, objv, ""); |
︙ | ︙ | |||
4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 | { "accelbuffer", AccelbufferObjCmd, NULL }, { "accelerometer", AccelerometerObjCmd, NULL }, { "addfont", AddfontObjCmd, NULL }, { "android", AndroidObjCmd, NULL }, { "deiconify", DeiconifyObjCmd, NULL }, { "expose", ExposeObjCmd, NULL }, { "fonts", FontsObjCmd, NULL }, { "fullscreen", FullscreenObjCmd, NULL }, { "hasgl", HasglObjCmd, NULL }, { "iconify", IconifyObjCmd, NULL }, { "joystick", JoystickObjCmd, NULL }, { "log", LogObjCmd, NULL }, { "maxroot", MaxrootObjCmd, NULL }, { "opacity", OpacityObjCmd, NULL }, | > | 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 | { "accelbuffer", AccelbufferObjCmd, NULL }, { "accelerometer", AccelerometerObjCmd, NULL }, { "addfont", AddfontObjCmd, NULL }, { "android", AndroidObjCmd, NULL }, { "deiconify", DeiconifyObjCmd, NULL }, { "expose", ExposeObjCmd, NULL }, { "fonts", FontsObjCmd, NULL }, { "framebuffer", FramebufferObjCmd, NULL }, { "fullscreen", FullscreenObjCmd, NULL }, { "hasgl", HasglObjCmd, NULL }, { "iconify", IconifyObjCmd, NULL }, { "joystick", JoystickObjCmd, NULL }, { "log", LogObjCmd, NULL }, { "maxroot", MaxrootObjCmd, NULL }, { "opacity", OpacityObjCmd, NULL }, |
︙ | ︙ |
Changes to jni/sdl2tk/sdl/SdlTkInt.h.
︙ | ︙ | |||
206 207 208 209 210 211 212 | int sdlfocus; int keyuc; int cursor_change; #ifndef ANDROID Tcl_HashTable sdlcursors; #endif | | > | 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | int sdlfocus; int keyuc; int cursor_change; #ifndef ANDROID Tcl_HashTable sdlcursors; #endif /* Screen refresh, life-cycle, etc. */ Region screen_dirty_region; Region screen_update_region; int in_background; int draw_later; Tcl_ThreadId event_tid; int is_framebuffer; /* Command line */ char *arg_width; char *arg_height; int arg_fullscreen; int arg_resizable; int arg_noborder; |
︙ | ︙ |
Changes to jni/sdl2tk/sdl/SdlTkX.c.
︙ | ︙ | |||
5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 | display->qfree = qevent; display->nqtotal++; } SdlTkX.draw_later &= ~(SDLTKX_SCALED | SDLTKX_RENDCLR); #ifdef ANDROID SdlTkX.draw_later |= SDLTKX_DRAW | SDLTKX_DRAWALL; #endif SdlTkX.scale = SdlTkX.scale_min = 1.0f; SdlTkX.outrect = NULL; SdlTkX.viewport.x = 0; SdlTkX.viewport.y = 0; SdlTkX.viewport.w = SdlTkX.sdlsurf->w; SdlTkX.viewport.h = SdlTkX.sdlsurf->h; | > > > > > > > > > > > | 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 | display->qfree = qevent; display->nqtotal++; } SdlTkX.draw_later &= ~(SDLTKX_SCALED | SDLTKX_RENDCLR); #ifdef ANDROID SdlTkX.draw_later |= SDLTKX_DRAW | SDLTKX_DRAWALL; /* Mode is always framebuffer on Android */ SdlTkX.is_framebuffer = 1; #else /* Determine framebuffer mode from video driver */ if (strcmp(SDL_GetCurrentVideoDriver(), "KMSDRM") == 0) { SdlTkX.is_framebuffer = 1; } else if (strcmp(SDL_GetCurrentVideoDriver(), "RPI") == 0) { SdlTkX.is_framebuffer = 1; } else { SdlTkX.is_framebuffer = 0; } #endif SdlTkX.scale = SdlTkX.scale_min = 1.0f; SdlTkX.outrect = NULL; SdlTkX.viewport.x = 0; SdlTkX.viewport.y = 0; SdlTkX.viewport.w = SdlTkX.sdlsurf->w; SdlTkX.viewport.h = SdlTkX.sdlsurf->h; |
︙ | ︙ |