Nagarei

Results 117 comments of Nagarei

既にmasterに入ってしまっていて、完成を遅らせる予定のdxlib_wrap.hppなどはいったんどけたほうが良いのでは。

とりあえず。 > キャストは、`static_cast`にするか独自に`color_cast`を作るべきか。 color_castを作りましょう。 > これを引数に取る関数にスレッドセーフ保障は必要か DrawLine系のスレッドセーフの話をしたのはScreenの方のスレッドセーフに絡むからです。

相互変換の実装を考えてみました。 全てのクラスが - RGBに暗黙に変換できる - RGBから明示的にコンストラクトできる を満たすようにすれば、color_castを多様性を保ちつつ ``` cpp template to color_cast(from&& bace) { return static_cast(std::forward(bace)); } ``` のように単純に実装できます。 これで問題ないでしょうか?

可能な限り一度の処理で変換するとなると、やっぱり直接変換のコンストラクタか`operator`を作るしかないですね。そうするとコンストラクタと`operator`のどっちを作るべきなんでしょう?

RGBというクラス名がwindowsのdefineと干渉してしまいました...。 小文字rgbというのもなにか違うような気がしますし...。 どうしましょう?

yumetodo なるほど。それで#1では小文字だったのか...。 言い出しっぺが言うのもなんですが、先に #9 でクラス名の命名規則を決めたほうが良いと思いました。 他のライブラリと名前が衝突した場合の対処も考えないといけませんね...。

> color_base (一か月前のですが...)共通するメンバ関数がないので、空クラスにしかできないと思いますが、どのようなものを想定していますか? > dx_color クラスのunsigned intへの暗黙の型変換 「間違えて座標を引数にすべきところに色を入れてしまった」といったケースをエラーにしたいので、やりたくないです。 > dx_color_paramクラス コメントのサンプルが全てです。 color系クラスを引数にとってDxLibに転送するためのutilityです。なので、dx_colorに変換可能な型から暗黙にコンストラクトできる代わりに、不可逆にしてあります。 > 0-255のデータをintであつかうのはどうなんでしょうか? これは整数演算ならintがメモリアラインメント的に一番良いと思ったからです。僕はこのあたりには疎いので、間違っているかもしれませんが...。 > signedな理由は? 特に意識してsignedにした訳ではないです。 > rgbクラスのrgb_value_t型 > C#でいうとそれを参考に作っていますか? 上でメンバ変数の型をintにしてしまったため、publicのままだと不正な値の代入を許すことになってしまいます。そこで、C#の文法のプロパティみたいなことをできないかと思って作ったのがrgb_value_t型です。 C#で参考にしたのはこれだけです。(というわけで、貼れるURLが無いです) ## C#のプロパティ ( @Nagarei はC#を触ったことがないので、下のは完全には正しくない可能性があります) ```...

現在の実装だとrgbの引数に大きすぎたり、小さすぎたりする値を入れられたときはassertしていますが、 これは丸めたほうが良いのでしょうか? (負数のときは0、256以上のときは255にする)

キャストしているのはオーバーフロー対策ですね。 二乗の計算は意外とあっさりオーバーフローするので、少なくともデフォルト動作ではdoubleへのキャストは妥当だと思います。