Linux/X11入力図書館を作成せずにウィンドウ
-
09-06-2019 - |
質問
り良い図書館の利用収集のユーザー入力がLinuxからのマウス/キーボード-ジョイスティックな力を可視のウィンドウだろうか?SDLするユーザの入力について心配する必要がなくなるよう力作成ウィンドウのが面倒な場合は抽象化制御の制御機する必要はありませんと同じ描画機です。ただし、制御および描画する機械には、この結果、醜いっSDL画面の上に表示されます。
編集の解明:
レンダリングして出力ウィンドウは、通常の利用場合は、そのウィンドウは画面の場合を除き、両方とも同一コンピュータについての注意をお読みくだ付与することが可能であり、コントローラーです。ができるので複数のレンダリングの表示とは違った視点での同じデータを異なるコンピュータ制御による同一コントローラー、そのための総合/減結合回路網の入力から出力(に建X11クライアント/サーバーも展示未使用)また、複数のコントローラ用のレンダリングも可能です。の間の通信コントローラおよびレンダリングすることができソケット
解決
OKであれば、下X11び出すためのものではありませんのkbd行う必要があります。ブ.いない場合は、良い答えはncursesからの端子です。
この方法を掴んでもキーボードからリリースしてもらうことを目的として
/* Demo code, needs more error checking, compile * with "gcc nameofthisfile.c -lX11". /* weird formatting for markdown follows. argh! */
#include <X11/Xlib.h>
int main(int argc, char **argv) { Display *dpy; XEvent ev; char *s; unsigned int kc; int quit = 0; if (NULL==(dpy=XOpenDisplay(NULL))) { perror(argv[0]); exit(1); } /* * You might want to warp the pointer to somewhere that you know * is not associated with anything that will drain events. * (void)XWarpPointer(dpy, None, DefaultRootWindow(dpy), 0, 0, 0, 0, x, y); */ XGrabKeyboard(dpy, DefaultRootWindow(dpy), True, GrabModeAsync, GrabModeAsync, CurrentTime); printf("KEYBOARD GRABBED! Hit 'q' to quit!\n" "If this job is killed or you get stuck, use Ctrl-Alt-F1\n" "to switch to a console (if possible) and run something that\n" "ungrabs the keyboard.\n"); /* A very simple event loop: start at "man XEvent" for more info. */ /* Also see "apropos XGrab" for various ways to lock down access to * certain types of info. coming out of or going into the server */ for (;!quit;) { XNextEvent(dpy, &ev); switch (ev.type) { case KeyPress: kc = ((XKeyPressedEvent*)&ev)->keycode; s = XKeysymToString(XKeycodeToKeysym(dpy, kc, 0)); /* s is NULL or a static no-touchy return string. */ if (s) printf("KEY:%s\n", s); if (!strcmp(s, "q")) quit=~0; break; case Expose: /* Often, it's a good idea to drain residual exposes to * avoid visiting Blinky's Fun Club. */ while (XCheckTypedEvent(dpy, Expose, &ev)) /* empty body */ ; break; case ButtonPress: case ButtonRelease: case KeyRelease: case MotionNotify: case ConfigureNotify: default: break; } } XUngrabKeyboard(dpy, CurrentTime); if (XCloseDisplay(dpy)) { perror(argv[0]); exit(1); } return 0; }
この端末から、すべてのkbdイベントのヒットです。私の下でテストをチプラットフォームなツール がこの由緒ある、安定したヘメカニズム。
武器agiは、dexで下がらないboxerぐ.
に気をつけなければなりヘ下X.だ新しいもので 想起時間の遅延プロセスにungrabのサーバーがん 検査コードを及ぼす場合がありますので座って走ungrab毎カップルが含まれております。これにより省を止スイッチからサーバー外部リセットします。
ここから欲しかったですか多重renderes.読む のXGrabKeyboard docsおよびXEvent docsを取得します。い小さな窓な間隔の黒線と白線からなる解像画面のコーナーまでジャム のポインタを一つのコーナーを選択し、コントローラです。XWarpPointerで 故-パー-メッツの損失はポイントの一つの手段としてのコードです。
もう一点:をつかんで、ポインタとしても、その他の資源です。またコントローラのボックスの前で座り、キーボードやマウスの入力スイッチでオープンソケットの異なるレンダリング.ただし必要なサイズの変更の出力ウィンドウに以下の全画面はもうこのアプローチです。り、また実際にドアルファブレンドオーバーレイットの形状や複合拡張子を取得しの素敵なオーバーレイ機能に対応ユーザの入力をするものとしてカウント金メッキにリリィ).
他のヒント