GUIサーバ高速化/05.部分描画実装(libbaygui)/実装/コメント


Top / GUIサーバ高速化 / 05.部分描画実装(libbaygui) / 実装 / コメント

この話題に関連する以下のひげぽんさんの日記のコメントを関連情報を交えて整理します。

http://d.hatena.ne.jp/higepon/20060910/1157875302#c

用語

定番の用語かどうかは保証できません。

  1. スクリーン座標系=グローバル座標系=絶対座標
    • 画面の左上が原点
  2. ローカル座標系=ウィンドウ座標系=相対座標
    • ウィンドウの外枠を除いた部分の左上が原点
    • 外枠というのはタイトルバーを含む外の枠のこと
    • 外枠も含んだウィンドウの左上と原点の差分をオフセットという
axis.png

この図はExcelで描きました:fileaxis.xls

補足

GUIは基本的にそのウィンドウ(トップレベルに限らずすべて)を基準にしたローカル座標系を使います。位置は親ウィンドウのローカル座標系を使います。トップレベルウィンドウの親ウィンドウはルート(壁紙)なので、ルートのローカル座標系=グローバル座標系ということになるだけです。ですから基本的にグローバル座標系を基準にして考えることはないはずです。この設計はほぼすべてのGUIに共通しています。

ウィンドウ自体の領域(x, y, w, h)の定義はシステムによって異なります。

座標系にまつわる問題

GUIサーバ高速化/03.部分描画実装(サーバー)

// ウィンドウ描画要求
case MSG_GUISERVER_DRAWWINDOW:
  if (msg->arg2 != 0 && msg->arg3 != 0) {
    // 部分描画
    DrawWindow(GetWindowPointer(msg->arg1),
      GET_X_DWORD(msg->arg2), GET_Y_DWORD(msg->arg2),
      GET_X_DWORD(msg->arg3), GET_Y_DWORD(msg->arg3), true);
  } else {
    DrawWindow(GetWindowPointer(msg->arg1), true);
  }
  Message::reply(msg);
  break;

GUIサーバ高速化/04.部分描画実装(libbaygui)


GUIサーバ高速化/05.部分描画実装(libbaygui)/方針


2006/09/10 部分描画実装中

※この件に関して具体的にどの部分の話なのか噛み合いませんでしたが、 最終的に判明した結論は以下の通りです。


その他BayGUIについて

コメント

コメントはありません。 コメント/GUIサーバ高速化/05.部分描画実装(libbaygui)/実装/コメント?

お名前:

MENU

now: 2

リンク


最新の20件
2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-12-09 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 3130, today: 2, yesterday: 0

添付ファイル: fileaxis.xls 1155件 [詳細] fileaxis.png 331件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:47:54 (3676d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.055 sec.