takaokouji/dxruby_sdl

Image#lineで描画する斜めの線はアンチエイリアスが掛かっていると表示されない箇所がある

sada opened this issue · 3 comments

sada commented

dxruby_sdlのImage#lineは、デフォルトでアンチエイリアスがtrueになっています。
ただ、この設定が必ずtrueになっていると、斜めの線がぼかされて途中で表示されない箇所があります。

    def line(x1, y1, x2, y2, color)
      lock do
        @_surface.draw_line(x1, y1, x2, y2,
-                            to_sdl_color(color), true, to_sdl_alpha(color))
+                            to_sdl_color(color), false, to_sdl_alpha(color))
      end
      return self
    end

以下は参考用のコードです。

dxruby_sdlの0.0.6とsmalrubyの0.0.5の組み合わせで描画した時は、途中で非表示の箇所が幾つかありました。
https://gist.github.com/sada/b7d6201d83b8c7621c98

Ruby/SDLで描画した時は、描画されました。
https://gist.github.com/sada/00d05507592c8fe0cca1

$ sdl-config --version
1.2.15

@sada
情報ありがとう!
ちょっと今は手が付けられなくて...もしよかったらPRを送ってくださいませ 😄

あと、gistのサンプルをsmalruby本体のサンプルとして同梱したいです。
もしよければ、サンプルの上部に著作権やライセンス文を書いたものをPRしてくれたら、幸いです 👍

sada commented

@takaokouji
dxruby_sdlの0.0.6とsmalrubyの0.0.13の組み合わせでは、不具合を再現できませんでした。
最新版では直っているみたいなので、上記の修正はpushしないで様子を見ることにします。

@sada
連絡ありがとう!
それではいったんクローズします。