|
Hiroki Horiuchi |
|
|
こんにちは。
以前ブログに書いたように、PharoでBitBltを録画・再生する実験を行っていま すが、完全には成功していません。どのようにしたらうまく行きますか? よろしくお願いします。 -- 堀内寛己(ほりうちひろき) http://twitter.com/x19290 http://19290.net/wpmu/blog/2011/05/h2-bit-blt-study2.html (このメールの続き) (再現方法) 添付のH2-BitBlt-Study2.stファイルをFileinし、該ファイルの先頭のコメント にしたがいます。該ファイルをFileinすることにより、以下が追加されます。 * H2BltCollectorクラス * H2BltVramクラス * BitBlt>>primDisplayString2:from:to:map:xTable:kern: * BitBlt>>primDisplayString3:from:to:map:xTable:kern: * BitBlt>>copyBits2 * BitBlt>>copyBits3 * BitBlt>>copyBits4 |
|
Hiroki Horiuchi |
|
|
またUTF-8で送ってしまいました。
念のため、読めない場合は、アーカイブ http://www.smalltalk.jp/pipermail/squeak-ja/2011-May/004564.html をご覧ください。 -- 堀内寛己(ほりうちひろき) http://twitter.com/x19290 |
|
Yoshiki Ohshima-2 |
|
|
In reply to this post by Hiroki Horiuchi
At Wed, 11 May 2011 18:46:21 +0900,
Hiroki Horiuchi wrote: > > こんにちは。 > > 以前ブログに書いたように、PharoでBitBltを録画・再生する実験を行っていま > すが、完全には成功していません。どのようにしたらうまく行きますか? 面白い企画ですね。中身は良く見ていませんが、おそらくはBalloonCanvas まわりではないかと予想されます。たとえば、Squeak 4.2イメージで、MVC Projectを開き、そのなかで同様の処理をした場合はいかがでしょうか。 もしそれで動くとすれば、asBalloonCanvasのsendersを見て、 BalloonCanvas経由で描画しているところをFormCanvasの機能でエミュレート するようにするとよいかもしれません。 -- Yoshiki |
|
Hiroki Horiuchi |
|
|
On 2011年05月12日 02:36, Yoshiki Ohshima wrote:
> 面白い企画ですね。 ありがとうございます。励みになります。 > たとえば、Squeak 4.2イメージで、MVC > Projectを開き、そのなかで同様の処理をした場合はいかがでしょうか。 MVCプロジェクト内でウィンドウタイトルは、正常に表示されました。 > もしそれで動くとすれば、asBalloonCanvasのsendersを見て、 > BalloonCanvas経由で描画しているところをFormCanvasの機能でエミュレート > するようにするとよいかもしれません。 これがよくわかりません。あてずっぽうで、BalloonCanvas>>asBalloonCanvasを 削除したところ、結果は同じ(グラデーションが再現されない)でした。 FormCanvas>>asBalloonCanvasを^ self や^ self copyにしたところ、システム がフリーズしました。 なお、前回(ブログで)文字がかすれると書いた問題は、BitBlt>>destForm:を追 加して、(self copy destForm: H2BltVram singleton vram) copyBitsするよう にしたら直りました。 -- 堀内寛己(ほりうちひろき) http://twitter.com/x19290 |
|
Hiroki Horiuchi |
|
|
On 2011年05月12日 11:15, Hiroki Horiuchi wrote:
> なお、前回(ブログで)文字がかすれると書いた問題は、BitBlt>>destForm:を追 > 加して、(self copy destForm: H2BltVram singleton vram) copyBitsするよう > にしたら直りました。 BitBlt>>destForm:は、その名のとおり、ただのセッターです。destFormが DisplayであるBitBlt (GrafPortかもしれない)をコピーして、そのdestFormを このセッターを使ってH2BltVram singleton vramにすげ替えてから、copyBitsし たということです。 -- 堀内寛己(ほりうちひろき) http://twitter.com/x19290 |
|
Yoshiki Ohshima-2 |
|
|
In reply to this post by Hiroki Horiuchi
At Thu, 12 May 2011 11:15:34 +0900,
Hiroki Horiuchi wrote: > > On 2011年05月12日 02:36, Yoshiki Ohshima wrote: > > > 面白い企画ですね。 > > ありがとうございます。励みになります。 > > > たとえば、Squeak 4.2イメージで、MVC > > Projectを開き、そのなかで同様の処理をした場合はいかがでしょうか。 > > MVCプロジェクト内でウィンドウタイトルは、正常に表示されました。 Displayや他のFormを操作するためのエンジンとしては、昔からのBitBltの 他にBalloonEngineというものがあって、グラデーションやアンチエイリア シング付のポリゴン描画などはそちらが使われるようになっています。これが 補足されていないために完全になっていないのではないかと推測しています。 > > もしそれで動くとすれば、asBalloonCanvasのsendersを見て、 > > BalloonCanvas経由で描画しているところをFormCanvasの機能でエミュレート > > するようにするとよいかもしれません。 > > これがよくわかりません。あてずっぽうで、BalloonCanvas>>asBalloonCanvasを > 削除したところ、結果は同じ(グラデーションが再現されない)でした。 > FormCanvas>>asBalloonCanvasを^ self や^ self copyにしたところ、システム > がフリーズしました。 FormCanvas>>drawPolygon:fillStyle:borderWidth:borderColor: drawPolygon: vertices fillStyle: aFillStyle borderWidth: bw borderColor: bc "Use a BalloonCanvas" self asBalloonCanvas drawPolygon: vertices asArray fillStyle: (self shadowColor ifNil:[aFillStyle]) borderWidth: bw borderColor: bc というようになっているので、asBalloonCanvasが自分自身を返すと無限ルー プになってしまいますね。 BalloonCanvas経由の描画をどのように完全に補足するかというのはちょっ と考える必要がありますね。原理的には、copyBitsを補足するのと同様に、 #flushの前でのEngineの状態をコピーすることでできるのかもしれませんが。 -- Yoshiki |
|
Hiroki Horiuchi |
|
|
On 2011年05月12日 14:07, Yoshiki Ohshima wrote:
> BalloonCanvas経由の描画をどのように完全に補足するかというのはちょっ > と考える必要がありますね。原理的には、copyBitsを補足するのと同様に、 > #flushの前でのEngineの状態をコピーすることでできるのかもしれませんが。 -- ありがとうございます。 copyBitsを録画・再生するのと同様の方法で、グラデーションがほぼ再現できま した。いずれまとめるつもりですが、ご報告まで。 -- 堀内寛己(ほりうちひろき) http://twitter.com/x19290 |
| Powered by Nabble | See how NAML generates this page |