[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mgp-users-jp 01382] Re: 1.11aのリ リース
- To: nishida@csl.sony.co.jp
- Subject: [mgp-users-jp 01382] Re: 1.11aのリ リース
- From: Kenichi Handa <handa@m17n.org>
- Date: Wed, 1 Sep 2004 21:30:19 +0900 (JST)
- Cc: mgp-users-jp@mew.org
- Delivered-to: mailing list mgp-users-jp@mew.org
- Delivered-to: moderator for mgp-users-jp@mew.org
- In-reply-to: <>
- Mailing-list: contact mgp-users-jp-help@mew.org; run by ezmlm
- References: <> <> <> <>
- User-agent: SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/21.3 (sparc-sun-solaris2.6) MULE/5.0 (SAKAKI)
In article <>, nishida@csl.sony.co.jp writes:
>> ちょっと気をつけなければいけないのは、 -o で起動した上で mgp
>> の window の一部をスクリーンから外に出している状態だと、
>> XGetImage が BadMatch (だっけな?)のエラーを起こすことです。
>> このエラーを避けようとするとちょっと面倒なので、上記のような
>> 場合だけは、現在のコードを使うようにするのが良いと思います。
>> どうせ実際のプレゼンの場ではそんな状況にはならないはずなので。
> なるほど。こんな感じにしてみました。
えっと、これは基本的に window を作ってそれを移動させるという
点は何も変っていなくって、単に「%grad で横や斜め方向に色を変
えていると背景の処理が変になる」というのを fix したというも
のですよね。
僕の提案は subwindow は作らずに、直接 state->target に draw
して、XFlush&usleep 後に予め XGetImage していたimage のうち
draw されたエリアに対応する部分のみ XPutImage で元に戻すとい
うものです。
それはともかくとして
> + XTranslateCoordinates(display, window, DefaultRootWindow(display),
> + 0, 0, &root_x ,&root_y, &junkwin);
> + use_copy = 1;
> + if ((root_x + window_width > xa.width) || (root_y + window_height > xa.height))
> + use_copy = 0;
> +
root_x と root_y が負の場合も use_copy = 0 だと思います。
> + if (use_copy) copywin = XGetImage(display, window, 0, 0,
> + window_width, window_height, AllPlanes, ZPixmap);
> +
これはさすがに無駄が多いとおもうんですが。必要な image の領
域 (X, Y, WIDTH, HEIGHT) は
X = sate->xoff + MIN (sx, lx)
Y = state->yoff + ly
WIDTH = state_line_width + ABS (sx - lx)
HEIGHT = state->max_ascent + state->max_descent
だけですから。
−− 半田@AIST
handa@m17n.org