「 プログラミング 」一覧

Paint.Net のファイル形式拡張


Paint.Net はプラグインの導入で、対応するファイルの種類を拡張することができます。
また、 .net で実装されていることもあって、機能拡張を行うには都合の良い状態となっています。 Windows 標準ペイントより都合のよい場面があるので割と愛用しています。
続きを読む


Visual Studio 2017 でオフラインインストール


Visual Studio 2017 は現時点では MSDN のほうでもオンラインインストールのインストーラーのみ提供されていて、 iso イメージが存在しません。
しかし、できることなら複数回のインストールやオフラインのPC用といったことに備えてオフラインインストールできるように準備しておきたいところです。

今回、オフラインのインストールに向けて準備する方法について、記録として残しておきます。
続きを読む


Visual Studio 2017 インストール編


Visual Studio 2017 製品版がリリースされたのでまずインストールしてみました。
リリース直後の状態では、 MSDN のほうでは iso ファイルが提供されておらず、オンラインでのインストールとなりました。
ひとまず Professional 版の導入についてのレポートをしてみたいと思います。
続きを読む


SharpVulkan のTutorial を追加しました


SharpVulkan のチュートリアルページを書き足しました。

C# から使う Vulkan 入門
はじめに ここでは C# による Vulkan 入門を取り扱っていきます。 Vulkan は C/C++ から利用する場面がほとんどですが、 C# からも利用可能であれば使いたい場面はあるかと思います。 ここではそのために用意した...

ひとまずチュートリアル部分を一区切りです。これで SharpVulkan WPF を用いてのキューブの描画が Vulkan コントロールの中で行われるようになります。

この先の予定ですが、 SharpVulkan WPF のパフォーマンスに対して修正していく感じでしょうか。
また、SharpVulkan WPF コントロールを使わずに、でも WPF アプリケーションとして Vulkan API をたたいて描画するといったサンプルを先のページで紹介してみたりということを考えています。

まだ色々と不備が残っていますが、徐々につぶしていければと思います。
今回のチュートリアルを書き上げるまでにも 0.0.3 と初回公開時よりもバージョンが上がりました。


SharpVulkan ページ作りました


C# から Vulkan API をたたくためのラッパーコンポーネント SharpVulkan と、
C# WPF アプリケーションの中に、描画コントロールとして配置する SharpVulkanWPF コントロールを初回公開しました。

まだまだ安定しないですし、バグ大量でしょうがこれから頑張っていきたいと思います。
続きを読む




C# でアンマネージ領域のメモリコピー


単なる memcpy のようなことを、アンマネージ領域で行いたいときの話です。
Marshal.Copy が一見できるかなと期待してしまうのですが、これはマネージド配列からアンマネージドのメモリへコピーするための関数です。(オーバーライドにより逆方向も可能になってます)。

しかしコピー元もコピー先もアンマネージドのオーバーライドはありません。
これをどうするかですが、 memcpy を使用するとちょっと大変なので Win32 API の力を借ります。

CopyMemory という関数が、 kernel32 に含まれているので、これを使います。

memcpy を使おうとすると、 VCランタイムがインストール必須になってしまうのでこちらで。


Vulkan と WPF


年末年始のタイミングで Vulkan を少し勉強してみました。個人的な印象では DirectX12 よりも難しい感触がありました。
しかしながら、発表からある程度の時間が経っており、情報も比較的多くあったため三角形を1枚出せるところまで到達できました。
既に先陣を切ってくれた人が情報を公開してくれていたのが大変参考になりました。

続きを読む


コンテキストメニューについて苦戦した話


Windows エクスプローラーが表示するようなコンテキストメニューを自分のアプリケーションでも表示したいことがあります。
このときに難しいと感じた部分や罠があったので記録として残しておこうと思います。
意外にもまとめてあるページはなかったようなので、誰かの役に立ってくれれば幸いです。

現在のシステムにおいて登録済みのコンテキストメニューを表示するまでの話で、コンテキストメニューの拡張の話では無いのでご注意ください。

続きを読む