2016-10-01 7 views
0

私のゲームでは、すべてのフレームでPointToClientを呼び出す必要がありますが、現時点ではこのようなボトルネックは発生していないかもしれませんが、ソースコードを見て、機能のパフォーマンスを向上できるかどうかを確認したいと考えていました。ほとんどの.NET関数は、過去にいくつかの.NET関数を使用してリファクタリングすることができます。私はsource reference pageを見て、PointToClientがネイティブ関数MapWindowPointsを呼び出すNativeWindow.PointToClientを呼び出すことを発見しました。.NET PointToClient関数はどのように実装されていますか?

質問:ネイティブソースコードを表示するにはどうすればよいですか?そのようなリポジトリが利用できない場合、どのようにしてこの機能が通常どおり実装されますか?

+0

質問に問題がある場合は、誰かが説明すると欲しいので、修正しようとする可能性があります。 – Krythic

+1

パフォーマンスを最初にプロファイルして、最適化が必要かどうかを調べることができます。これは簡単ではありませんが、他のアプリで頻繁に使用されるので、改良が必要なことはほとんどありません。 – Martheen

+0

前回チェックしたところ、Windowsはオープンソースではありませんでした。 Windowsのソースコードはどこから入手できると思いますか? – Luaan

答えて

2

ネイティブメソッドはおそらくC#でできるよりも速くなります。本当にスピードが必要な場合は、DirectXまたはいくつかのゲームAPIを使用してください。

これは、コントロールに関してスクリーン座標で与えられたポイントのローカル座標(クライアント座標)を取得するために、このコントロールのスクリーン座標を減算する必要があります。画面の座標を取得するには、親の連鎖をフォームに追従させてローカル座標を追加します。

あなた自身で行うことは本当に価値がありません。

関連する問題