問題タブ [xcb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
x11 - XCB イベント ループがイベントを取得しない
私は Firefox でアドオンを作成しているので、特権 WebWorker である ChromeWorker があります。これは、メインスレッド以外の単なるスレッドです。
ここにはコードはありませんが、これです(js-ctypes [アドオンの言語]ではないように見えるように変更されています)
起動時にこのコードを実行します。これconn
はグローバル変数です。
次に、これを 200ms 間隔で実行します。
ただしevt
、常にnull
イベントが発生することはありません。私の目標は、システム上のすべてのイベントを取得することです。
非常に単純なことが機能しない原因を知っている人はいますか?
私が試してみました
しかし、これはそれを修正しませんでした:(
それを機能させる唯一の方法は実行することですがxcb_create_window
xcb_map_window
、この作成されたウィンドウで発生するイベントのみを取得します。
c++ - Qt5 で X11 イベントを処理する
アプリケーションを Qt4 から Qt5 に移植しています。
私の知る限り、Qt5 は Xlib イベントの処理をサポートしておらず、XCB イベントを使用しています (イベント ハンドラーはxcb_generic_event_t
オブジェクトを取得します)。ただしspnav
、私が使用しているライブラリは X11 イベントのみをサポートしています (XEvent
オブジェクトを解析して必要な情報を取得します)。Qt5でX11イベントを処理したり、変換xcb_generic_event_t
したりすることは可能XEvent
ですか?
Qt4 コードでは次のようになります。
x11 - XkbSetDetectableAutoRepeat に相当する XCB
別のスレッドからコードを実行していたため、Xlib 関数を呼び出すことができず、XCB しか呼び出せませんでした。私は何に相当するのだろうかと思っていましたXkbSetDetectableAutoRepeat
か?
ありがとう
xcb - XCB はすべてのモニターを取得し、それらの x、y 座標を取得します
これまでのところ、私はすべてのモニターを持っています。モニターはスクリーンです。だから私がしたことは:
これにより、幅と高さが得られます。ただし、x と y を取得することが重要です。xとyを取得する途中ですかxcb_get_window_attributes_cookie_t
?screen->root
私はここを読んでいました - http://www.linuxhowtos.org/manpages/3/xcb_get_window_attributes_unchecked.htm - しかし、与えられたx/y座標はありませんでした。
xcb - すべての画面をカバーするウィンドウ - ストラットを含む - フルスクリーンの失敗
2 つのモニターを作成しました。2 つのウィンドウを作成しました。それらを別のモニターに移動して、フルスクリーンにしました。ウィンドウにフォーカスがある間、すべての予約済みの「ストラット」(呼び出されていると思います) がカバーされます。ただし、ウィンドウにフォーカスがない場合、背面からの「支柱」がウィンドウの上に表示されます。
とにかく、ウィンドウを一時的に一番上にする方法はありますか (すべての支柱の上であっても)。ウィンドウが常に一番上になるように設定しています。
xcb - reply_t と request_t - それらを交換可能に渡しますか?
XCB に問題があります。*_reply_t
対*_request_t
タイプの違いがわかりません。
*_reply_t
の代わりに が渡されているように見えますが*_response_t
、構造は大きく異なります。
例えば:
だから今reply
はのタイプです*_reply_t
。しかし今、私は最初の引数がここのドキュメントに従ってxcb_randr_get_screen_resources_current_outputs
型であることを期待するものを使用する必要があります:xcb_randr_get_screen_resources_current_request_t
http://www.linuxhowtos.org/manpages/3/xcb_randr_get_screen_resources_current_outputs.htm
ただし、最初の呼び出しからの応答のタイプはxcb_randr_get_screen_resources_current_reply_t
( *_reply_t
) です。これをキャストせずに出力呼び出しに渡すにはどうすればよいですか? ドキュメントごとに構造が完全に異なります。
そして、の構造体*_request_t
はドキュメントにはありません。ここのソースコードから取得しました:
https://xcb.freedesktop.org/manual/randr_8h_source.html#l00896
私は ctypes を行うので、メソッドの署名のために事前に渡すタイプを宣言する必要があります。reply
そのため、まったく異なる構造 ( ) の何かが、 の構造を持つ 2 番目の呼び出しにどのように入るのかについて、私は非常に混乱していrequest
ます。
c - Wayland、Xlib、XCB、MIR ウィンドウ システムのプリプロセッサ シンボル
Vulkan のドキュメントには、WSI プラットフォームに関する次の記述があります。
Vulkan API は、どのタイプのプラットフォーム オブジェクトも定義しません。プラットフォーム固有の WSI 拡張機能が定義されています。これには、WSI を使用するためのプラットフォーム固有の機能が含まれています。これらの拡張機能の使用は、プリプロセッサ シンボルによって保護されています。
• VK_USE_PLATFORM_ANDROID_KHR - Android
• VK_USE_PLATFORM_MIR_KHR - ミール
• VK_USE_PLATFORM_WAYLAND_KHR - ウェイランド
• VK_USE_PLATFORM_WIN32_KHR - Microsoft Windows
• VK_USE_PLATFORM_XCB_KHR - XCB ライブラリを使用した X Window System
• VK_USE_PLATFORM_XLIB_KHR - Xlib ライブラリを使用した X ウィンドウ システム
プラットフォームまたはウィンドウ システムを選択し、コンパイル前に正しいシンボルを定義する必要があることを理解しています。Android または Windows に対してコンパイルする場合、次のように記述できます。
これまでのところ、OK。Android と Windows には独自のウィンドウ システムがあり、これで十分です。しかし、Linuxにはいくつかのウィンドウシステムがあります-Xlib、XCB、Wayland、およびMIRです。
どのウィンドウ システムがその環境で使用されているかを知るのに役立つ可能性がある C/C++プリプロセッサ シンボルがあるかどうかを知りたいので、混乱することなく各 API を処理できる汎用コードを記述できます。
qt - クラスまたは名前を使用して xcb からウィンドウ ID を取得する
QWindow::fromWinID
Qt の関数を使用して、ウィジェットを外部ウィンドウに描画したいと考えています (これでうまくいくことを願っています)。
残念ながら、特定の名前/クラスを持つウィンドウに描画する必要があります (xwininfo と xprop を使用して表示できます)。これを行うための唯一のコードは xwininfo と xprop のソース内にありますが、単純なことを行うには不要なコードの集まりのように思えます: 特定のプロパティが文字列に等しいウィンドウを見つけ、そのウィンドウ ID を返します。 Qtが使用するため。残念ながら、私は XCB に非常に精通しておらず、開始方法がわかりません。
200行のコードなしでこれを行うにはどうすればよいですか?