プログラミング一覧

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

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

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


Visual Studio 2017 インストール編

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


SharpVulkan のTutorial を追加しました

SharpVulkan のチュートリアルページを書き足しました。
http://blog.techlab-xe.net/sharp_vulkan

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

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

続きを読む


Nexus5X を Android 7.1.1

Nexus5X の端末に Android 7.1.1 の OS が配信されてきたので更新してみました。
Android 6.0.1 からの更新となり、 7.0 を飛ばしてしまった感じになりました。

更新結果

動作そのものが重くなるかなと思いましたが、逆にレスポンス良く動くようになった気がします。
そして OpenGL ES 3.2 のコンテキストで初期化できるようになったようです!今までに ES 3.2 のコンテキストで動く端末を見てなかったので感動です。

続きを読む