すらりん日記は 技術書典9に参加します

すらりん日記は、サークル名「すらりんラボ」として、技術書典9(オンライン)に参加します。今回のすらりんラボでは、相棒の abechanta と共に新刊2冊+α を出します。

技術書典9は 9/12 (土曜) から 9/22 (祝日) の間の 11日間、オンラインイベントとして開催されます。

頒布情報

「無料で楽チン!Markdown で CSS 組版する本」は前回の技術書典8で出す予定でしたが、今回での登場となります。以前「C++ で挑む 2D アニメーション制作演習」の著者(abechanta)が、今回はマークダウンによる執筆環境を作りました。それを用いて執筆するための冊子になります。

続いて、技術書典9に向けて用意している冊子の内容を紹介します。

Unity で使う C# / DLL マーシャリング事典

C# で (ネイティブの)DLL を使うのに、データのマーシャリング(整列処理)が必要になります。通常の .Net framework でのマーシャリング設定は、Web サイトで解説されていることも多いですが、それと同じことを Unity でやろうとすると、様々な罠があります。 .Net framework の場合と違う箇所も多くあるので、Web 上の情報を正しく読み解ける必要があり、難易度が高いものとなっているのが現状かなと思います。

本書は、 Unity において ネイティブ DLL / モジュールを呼び出すのに必要な C# のマーシャリングを解説したものになっています。多くの事例を盛り込んでおり、様々な場面で参考になる事典のようにして使ってもらえたらと考えています。

Unity C# から文字列を Windows(DLL) や Android(so) とやりとりしたときに、困ったことのある人は内容に頷いてもらえるかなと思っています。

目次

本書の目次の概要です。

  1. はじめに
  2. マーシャリング基礎
  3. 簡単なマーシャリング
  4. 配列のマーシャリング
  5. 文字列の表現
  6. 文字列のマーシャリング
  7. 上級マーシャリング
  8. あとがき
  1. はじめに
    • なぜマーシャリングが必要になるのか
    • 対象読者
    • この本での前提事項
    • Unity 環境下での制約
    • 動作環境
    • 禁止事項
    • 免責事項
  2. マーシャリング基礎
    • マーシャリングとは
    • Blittable と非 Blittable
    • In / Out アトリビュート
    • 呼び出し規約
    • インターフェースの形式
    • 大まかな指針
  3. 簡単なマーシャリング
    • プリミティブ型:引数にセットして関数呼び出し
    • プリミティブ型:引数で結果を受け取る場合
    • プリミティブ型:関数戻り値の場合
    • bool / BOOL の注意事項
    • 構造体:引数にセットして関数呼び出し
    • 構造体:引数にセットして関数呼び出し(2)
    • 構造体:引数で結果を受け取る場合
    • 構造体:関数戻り値の場合
    • 構造体:関数戻り値(ポインタ)の場合
    • 共用体
  4. 配列のマーシャリング
    • プリミティブ型:引数関数呼び出し
    • プリミティブ型:呼び出し先で配列内容を変更
    • プリミティブ型:戻り値の場合
    • 構造体配列:引数関数呼び出し
    • 構造体配列:呼び出し先で配列内容を変更
  5. 文字列の表現
    • Windows と Android の文字エンコーディング
    • .Net framework と Mono の実行系の違い
    • 文字列を Shift-JIS のバイト列へ変換
    • Shift-JIS のバイト列から文字列へ変換
    • 文字列を UTF-32 へ変換する場合
    • IntPtr から文字列を復元
  6. 文字列のマーシャリング
    • 文字列型:引数にセットして関数呼び出し
    • 文字列型:引数で結果を受け取る場合
    • 文字列型:引数で結果を受け取る場合(2)
    • 文字列型:関数戻り値の場合
    • 文字列配列型:引数関数呼び出し
    • 文字列配列型:呼び出し先で配列内容を変更
  7. 上級マーシャリング
    • ビットフィールドを使用している場合
    • プリミティブ型の2次元配列の場合
    • 構造対中に構造体がある場合
    • 構造体中に配列(固定長)がある場合
    • 構造体中に配列(可変長)がある場合
    • 構造体中に文字列(固定長)がある場合
    • 構造体中に文字列(固定長)がある場合(2)
    • 構造体中に文字列(可変長)がある場合
    • 構造体中に文字配列がある場合
    • C# の関数を DLL に渡す場合
    • DLL 関数から関数ポインタが返る場合
    • 構造体中に関数ポインタがある場合
  8. あとがき

サンプル

この本の目次を含めたサンプルページを画像にしたものを公開します。参考にしてください。

無料で楽チン! Markdown で CSS 組版する本

Visual Studio Code にエクステンションを入れただけの超シンプルな環境を使って、手間いらずでサクッと技術書を執筆する方法について紹介します。

本書もその環境下で制作しており、本書で解説される Markdown 仕様さえ習得してしまえば、同じ体裁・同じ見た目の入稿用 PDF が一発出力できます。 HTML/CSS もしくは Bootstrap の知識がある読者なら、独自スタイルの実現も容易です。

モダンで新しい執筆環境を、ぜひ体験ください。

※ Visual Studio Code で執筆する本エクステンションは、フリーです。現在の開発リポジトリはこちらです。

abechanta/vscode-ext-paged-media
vscode extension for writing books using markdown and css paged media. - abechanta/vscode-ext-paged-media

目次

本書の目次です。

  • 執筆環境のセットアップ
    • VS Code のインストール
    • 執筆用エクステンションのインストール
    • 執筆用エクステンションで提供される機能美
    • 執筆用エクステンションの設定
    • Markdown での執筆と編集
    • 出版までの作業フロー
  • Markdown での執筆と編集
    • 出版までの作業フロー
    • Markdown 事始め
    • CSS インライン属性
    • 見出しと段落
    • ページ体裁の設定
    • 箇条書き
    • 標準マークアップ
    • 拡張マークアップ
    • コードブロック
    • 画像(図)
    • テーブル(表)
    • リンク
    • 注釈
    • コンテナーブロック
    • 書籍に特有のあれこれ
    • 微調整など
    • ドキュメントの展開
    • HTML マークアップ

サンプル

この本のサンプルページを公開しています。参考にしてください。

DirectX12 への統一理論

DirectX12 は Windows 10 の環境でのみ動作する新しいグラフィックスAPI セットでした。それが近年状況が少し変わり、 Windows7 の環境でも動作させることができるようになりました。

また、従来の DirectX API セットの皮を被って、 DirectX12 が使えるようにもなってきました。一見 DirectX11 や、 DirectX9 といった API セットを用いつつも内部は DirectX12 であるという状況が生まれつつあります。

このような奇妙な、だけども面白い状況となっている今、これらを紹介すべく1つの同人誌にまとめてみました。サポート期限の切れた Windows7 や、レガシーAPI になった DirectX9.0 / DirectX11 などと一緒に DirectX12 の側面を、覗いてみませんか?

技術同人誌博覧会3 (技書博3)に向けて用意していた新刊でしたが、イベント中止により5月にイベント無関係で出すことにしました。こちらは技術書典のイベントでは初出となります。

目次

本書の目次の概要です。

  • 第1章 はじめに
  • 第2章 DirectX12 のプログラムを Windows7 上で実行
  • 第3章 開発環境の準備
  • 第4章 Windows7 対応版 DirectX12 アプリケーションの作り方
  • 第5章 D3D12On7 の動作原理を考察する
  • 第6章 D3D11On12
  • 第7章 D3D11On12 on Windows7
  • 第8章 D3D9On12
  • 第9章 最後に
  • 第1章 はじめに
    • 対象読者
    • 開発環境
    • 動作環境
    • 免責事項
    • 参考文献
  • 第2章 DirectX12 のプログラムを Windows7 上で実行
    • サンプルコードの取得
    • サンプルコードのビルド
    • Windows7 で実行
  • 第3章 開発環境の準備
    • 開発環境 Windows10 の準備
    • 実行環境 Windows7 の準備
    • リモートデバッグの設定
    • まとめ
  • 第4章 Windows7 対応版 DirectX12 アプリケーションの作り方
    • 対応作業の流れ
    • Windows10 vs Windows7
    • プロジェクトの設定
    • 初期化処理
    • Present 処理
    • フェンスの設定
    • エミュレーションモードの設定
    • シェーダーのコンパイル
    • テクスチャの読み込み
    • サンプルソースコード
    • まとめ
  • 第5章 D3D12On7 の動作原理を考察する
    • d3d12.dll の遅延ロード
    • DXIL への対処
  • 第6章 D3D11On12
    • D3D11On12 について
    • D3D11On12 の描画ループ
    • D3D11On12 の初期化
    • Direct2D, DirectWrite で文字を描く
  • 第7章 D3D11On12 on Windows7
    • 動作環境
    • Windows7 で実行してみよう
    • D3D11On12On7 について
    • D3D11On12On7 の初期化
    • D3D11On12On7 の描画ループ
    • D3D11On12On7 で Direct2D
    • まとめ
  • 第8章 D3D9On12
    • 動作環境
    • 開発環境
    • 初期化手順
    • DirectX12 デバイスへのアクセス
    • まとめ
  • 第9章 最後に

サンプル

既刊のものについて

以前から頒布しているものも多少物理冊子を技術書典9で取り扱う予定です。興味があればこれらもよろしくお願いします。

タイトルとURLをコピーしました