mieki256's diary



2018/02/24() [n年前の日記]

#1 [dxruby] DXOpalのz値指定描画について

DXOpalを触った際に、z値を指定して描画したら前後関係がおかしくなった、ような気がしたのだけど本当にそうなるのか動作確認をしてみたり。

DXRubyで動作確認。 :

まず、DXRuby で動作確認。右下から左上に向かって、z値を、256 → 0 に減らしつつ描画。

_main.rb

dxruby_screenshot.png

DXOpalで動作確認。 :

次に、DXOpal で動作確認。

_DXOpal z order

Google Chrome 上での結果。

dxopal_ss_chrome.png

Firefox ESR 上での結果。

dxopal_ss_firefox.png


やはり気のせいではなかったらしい。しかも、Google Chrome と Firefox ESR で試したら、異なる結果画面になった…。

つまり、DXOpal でz値を指定しつつ描画しても、前後関係は不定になる模様。

少し調べてみた。 :

もしかして z値は無視しているのかなと思ったけれど、 _dxopal/window.rb at master - yhara/dxopal を眺めた感じでは、キューをソートしてるように見える。変だな…。何故こんな動作に…。

どうやら、描画要求をキューに登録する際、現在のキューの個数、つまり登録した順番も記録しておくことで、後に同じz値の描画要求があった時は登録順とも比較してソートする、という処理をしようとしてるっぽい。

ということは、登録順の数値の範囲と重ならない大きなz値、もしくは小さなz値を指定してやれば問題を回避できるのかな。と思ったけれど、Firefox上では予想通りの結果になったものの、Google Chrome上では相変わらず前後が不定な状態になった。なんでや…。

ん? そもそも、まずはz値同士で比較して、という形になってないような気がしてきた。
irb(main):026:0> a = [[5, 0], [4, 1], [3, 2], [2, 3], [1, 4]]
=> [[5, 0], [4, 1], [3, 2], [2, 3], [1, 4]]

irb(main):027:0> a.sort{ |a,b| a[0] == b[0] ? a[1] <=> b[1] : a[0] <=> a[1] }
=> [[1, 4], [2, 3], [3, 2], [5, 0], [4, 1]]

irb(main):028:0> a.sort{ |a,b| a[0] == b[0] ? a[1] <=> b[1] : a[0] <=> b[0] }
=> [[1, 4], [2, 3], [3, 2], [4, 1], [5, 0]]
もしかして、こうじゃないかな…。たぶん…。

以上です。

過去ログ表示

Prev - 2018/02 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project