WPFとDirect3D11の連携 --- 三角形描画

下記記事にてWPFとDirect3D11を連携してサーフェスを表示しました。 WPFとDirect3D11の連携 --- 導入 - 何でもプログラミング今回は単純な三角形を描画してWPFで表示してみたいと思います。 Shader作成(csoから) csoデータが存在する場合は、下記関数のみ…

WPFとDirect3D11の連携 --- 導入

下記記事にてWPFとDirect3D9Exを連携する方法を記述しました。 WPFとDirect3D9Exの連携 --- 導入 - 何でもプログラミング最近ではDirect3D11の利用がメジャーになっていますので、今回はWPFとDirect3D11を連携させてみたいと思います。WPF自体はDirect3D9で…

WPFとDirect3D9Exの連携 --- テクスチャ貼り付け

下記記事にて三角形を描画するところまで実装しました。 WPFとDirect3D9Exの連携 --- 三角形描画 - 何でもプログラミング今回はさらにテクスチャを貼り付けを実装してみたいと思います。本記事で利用している、CreateVertexShader、CreatePixelShader、Creat…

WPFとDirect3D9Exの連携 --- 三角形描画

下記記事にてIDirect3DSurface9をWPFで表示しました。 WPFとDirect3D9Exの連携 --- 導入 - 何でもプログラミング今回は単純な三角形を描画してWPFで表示してみたいと思います。本記事で利用しているAssertHR、CliComPtr、CreateDevice、CreateRenderTargetに…

WPFとDirect3D9Exの連携 --- 導入

WPFにDirect3Dのレンダリング結果を貼り付けたい場合、D3DImageクラスが利用できます。CPU経由でBitmapSourceを作成するのに比べ、D3DImageはGPU内で完結するため、より効率的です。今回はD3DImageを利用するところまでを実装したいと思います。 C++/CLI用Co…

SSEで画像処理 --- グレースケール化

下記記事にてSSEで簡単な画像処理をしてみました。 SSEで画像処理 --- 導入 - 何でもプログラミング今回はカラー画像をグレースケール化する処理を実装してみたいと思います。入力はRGBA32bitを仮定しています。(RGB24bitの場合、48Byte毎に処理する必要が…

SSEで画像処理 --- 導入

下記記事にてアラインされたstd::vectorを作成する方法を記述しました。 アラインされたstd::vector - 何でもプログラミング今回はそれを利用して、SSEで簡単な画像処理を行ってみます。 準備 今回はintrinsicを用いて実装するため、#include します。また記…

アラインされたstd::vector

C++

SSEやAVXを利用して処理を高速化する際に、メモリ領域がアラインされている必要があります。アラインされた領域を確保するだけであれば_mm_mallocで可能ですが、_mm_freeを自分で呼ぶ必要があります。今回はstd::vectorでアラインされた領域を確保できるよう…

Bitmap読み書き

C++

下記記事にて、Windows標準ライブラリで画像を読み書きする方法を記述しました。 GDI+ --- 画像ファイル読み書き - 何でもプログラミングBitmapであれば更に何のライブラリも必要なく簡単に読み書きできます。ちょっとした画像関係の動作確認レベルの時に便…

WindowsでOpenGLES --- imgui導入

OpenGL上でGUIを実装するライブラリの一つに、ImGuiがあります。 GitHub - ocornut/imgui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies数ファイル取り込むだけでGUIを実装できるため、簡単なソフトの作成には便…

WindowsでOpenGLES --- 三角形描画

下記記事にてGLFWで、OpenGLESが初期化されたウィンドウを作成しました。 WindowsでOpenGLES --- GLFW導入 - 何でもプログラミング今回はとりあえず三角形を描画してみたいと思います。 shared_ptrでリソースの管理 OpenGLではCreateとDeleteをきちんと管理…

WindowsでOpenGLES --- GLFW導入

下記の記事にてWIN32APIでOpenGLESを利用する方法を記述しました。 WindowsでOpenGLES --- ANGLE準備 - 何でもプログラミング今回は、ウィンドウの作成やOpenGLESの初期化などをクロスプラットフォームに行ってくれるライブラリ、GLFWを導入してみたいと思い…

WindowsでOpenGLES --- ANGLE準備

WindowsでOpenGLESを使いたい場合は、Google開発のANGLEが利用できます。 GitHub - google/angle: A conformant OpenGL ES implementation for Windows, Mac and Linux.ANGLEを利用すれば、OpenGLESで記述したものを、Direct3DやDesktop OpenGLでレンダリン…

Dlib --- 環境準備

DlibはC++で記述された機械学習用のライブラリです。SVMやDeep Learning等、よく聞くアルゴリズムのものは一通り準備されています。ドキュメントやサンプルが整っているのが一番嬉しい点だと思います。 Dlibダウンロード 下記サイトよりファイル一式をダウン…

GDI+ --- 画像ファイル読み書き

C++で画像ファイルを読み書きする際は、libjpegやlibpng等を利用します。しかしWindowsでは標準ライブラリでないため、ライブラリを準備する必要があります。ちょっと動作確認の時など、ライブラリの準備が面倒な時はGDI+を利用することができます。コードは…

F#でWPF --- CatmullRom曲線の描画

図形を描画する際に、指定した点を通る滑らかな曲線を描きたいことがあります。今回はCatmullRom曲線でこれを実現したいと思います。 CatmullRom曲線 2点間の補間は、更にその前後の点を利用して求められます。2点(p1、p2)と、その前後の点(p0、p3)の…

MediaFoundation --- 音声読み書き

下記記事でMediaFoundationを用いて動画の読み書きを行いました。 MediaFoundation --- 動画の読み込み - 何でもプログラミング MediaFoundation --- 動画書き出し - 何でもプログラミング今回は音声データの読み書きを行ってみたいと思います。分かりやすさ…

MediaFoundation --- 動画書き出し

下記記事にてMediaFoundationで動画を読み込む方法を調べました。 MediaFoundation --- 動画の読み込み - 何でもプログラミング今回は書き出しについて調べたいと思います。尚、見通し優先のため、エラー処理は省いてあります。 アプリケーションコード 動画…

MediaFoundation --- 動画の読み込み

下記記事にてOpenCVで動画を読み書きする方法を調べました。 OpenCVで動画読み込み&書き込み - 何でもプログラミング今回はWindows特有のMediaFoundationを利用して動画を読み込んでみます。全体の流れの把握重視の為、エラー処理は全て省いてあります。 ア…

OpenCVで動画読み込み&書き込み --- C++/CLIでラップ

下記記事にてOpenCVで動画を読み書きする方法を調べました。 OpenCVで動画読み込み&書き込み - 何でもプログラミング今回は.Netで利用できるよう、C++/CLIでラップしてみたいと思います。尚、Matクラス(Mat8UC1クラス)は下記記事のものを利用しています。 O…

OpenCVで動画読み込み&書き込み

OpenCVのダウンロードは下記記事を参照してください。 OpenCVをC++/CLIでラップ - 何でもプログラミング VideoCapture 動画を読み込むにはVideoCaptureクラスを利用します。パスを指定して開き、>>オペレータでフレームを取得します。 cv::VideoCapture capt…

F#でWPF --- BitmapImageで画像ロード

下記記事にてOpenCVと連携して画像を表示しました。画像を読み込むだけであればWPFの標準セットで可能であるため、今回はWPFで画像をロードして表示してみます。ついでにグレースケール化も行ってみます。 作成するアプリケーション ファイルダイアログで画…

F#でWPF --- OpenCV連携

下記記事にてOpenCVを.netから利用できるようC++/CLIでラップする方法を紹介しました。 OpenCVをC++/CLIでラップ - 何でもプログラミング今回はWPFと連携させて画像を表示してみたいと思います。 作成するアプリケーション ファイルダイアログで画像を選び、…

C++/CLIラッピング --- 逆引き

C++を.Netで利用する際、C++/CLIで必要になりそうなことをまとめていきます。随時更新予定です。 クラスラップ基本構造 public ref class NetClass { public: NetClass() { _cppClass = new CppClass(); } ~NetClass() { this->!NetClass(); } // Dispose() …

OpenCVをC++/CLIでラップ

今回はOpenCVをF#から扱えるようにしてみたいと思います。OpenCVはC++のライブラリであるため、C++/CLIを用いてF#から扱えるようにします。 OpenCV取得 下記サイトから、バイナリとソースがセットになったファイルをダウンロードします。解凍(exe実行)して…

Elm --- 階層化

Elm

下記記事にてElmを用いてカウンタを実装しました。 Elm --- Model、View、Update - 何でもプログラミング今回はこのカウンタを再利用して、複数のカウンタを配置してみます。内容はElmのTutorialにあるものとほとんど同じです。 作成するアプリケーション カ…

リフレクション 逆引き (F#)

F#

F#でリフレクションを利用するときに、やり方を忘れていることがよくあるため、ここを備忘録にしたいと思います。今後適宜追加していこうと思います。 Type取得 let t = typeof<int> TypeDefinition取得 let t = typedefof<List<_>> TypeDefinitionからType作成 let t = t</list<_></int>…

F#でWPF --- Resource、Content、EmbeddedResource

F#でWPFプログラミングをする際に、XamlファイルのBuild Actionをいくつか選ぶことができます。今回はResource、Content、EmbeddedResource各々でのXamlの読み込み方を記述していきます。 Resource WPFにのみ提供されるBuild Actionです。対象のリソースを実…

Visual Studioと通信(F#)

通常、VisualStudioに機能を追加する際は、VSIXを作成してインストールします。今回は外部からVisualStudioと通信してみます。 VisualStudioを見つける(DTEの取得) RunningObjectTableからDTEのオブジェクトを取得しています。DTEはIDE以外のも取れること…

F# --- TypeProvider --- DependencyProperty自動実装

下記記事にてTypeProviderを作成する方法を記述しました。 F# --- TypeProvider --- クイックスタート - 何でもプログラミング今回は応用としてDependencyPropertyを自動実装するTypeProviderを作成してみます。結果としてあまり実用的ではないものであるた…