[過去ログ]
今夜も Wine で乾杯! - 21本目 [無断転載禁止]©2ch.net (1002レス)
上
下
前
次
1-
新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
421
: 2018/02/18(日)05:32
ID:HH6qVqdM(4/9)
AA×
>>420
[240|
320
|
480
|
600
|
100%
|
JPG
|
べ
|
レス栞
|
レス消
]
421: [sage] 2018/02/18(日) 05:32:50.78 ID:HH6qVqdM /wine/dlls/user32/painting.c の中の、 // Set the visible region and X11 drawable for the DC associated to a given window. static void update_visible_region( struct dce *dce ) の中に、 USER_Driver->pGetDC( dce->hdc, dce->hwnd, top_win, &win_rect, &top_rect, flags ); とあって、 void CDECL X11DRV_GetDC( HDC hdc, HWND hwnd, HWND top, const RECT *win_rect, const RECT *top_rect, DWORD flags ) が呼び出される。引数に hwnd と top、win_rect と top_rect が対になっているらしいことに注意。 この関数の中で、x11drv_escape_set_drawable escape; の escape.dc_rect に、win_rect の top_rect の (left, top) からの相対座標が入れられる。 そして、ExtEscape( hdc, X11DRV_ESCAPE, sizeof(escape), (LPSTR)&escape, 0, NULL ); と ExtEscape() が呼び出される。 escape = X11DRV_ESCAPE; escape.code = X11DRV_SET_DRAWABLE; in_data = &escape; の状態で、 X11DRV_PDEVICE *physDev = get_x11drv_dev( dev ); const struct x11drv_escape_set_drawable *data = in_data; physDev->dc_rect = data->dc_rect; となる。physDev->dc_rect が、>>420 の dc_rect に他ならない。 つまり、HWND hwndのwin_rectの、HWND topの左上座標からの相対座標が、 physDev->dc_rect に入ることになると思われる。hwndの「最上位の親」が topだとすると、topだけが XCreateWindow()された本物のWindowであって、 hwnd は 擬似Windowであるとして辻褄が合う。hwndへの描画は、 実は座標だけを修正して top の(本物の X )Window に書き込まれているだけ かも知れない。 http://mao.5ch.io/test/read.cgi/linux/1502540295/421
の中の の中に とあって が呼び出される引数に と と が対になっているらしいことに注意 この関数の中で の に の の からの相対座標が入れられる そして と が呼び出される の状態で となる が の に他ならない つまり のの の左上座標からの相対座標が に入ることになると思われるの最上位の親が だとするとだけが された本物のであって は 擬似であるとして辻が合うへの描画は 実は座標だけを修正して の本物の に書き込まれているだけ かも知れない
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 581 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
ぬこの手
ぬこTOP
0.051s