2026:02:15
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| 2026:02:15 [2026/02/15 14:03] – machiaworx | 2026:02:15 [2026/02/15 15:48] (現在) – machiaworx | ||
|---|---|---|---|
| 行 3: | 行 3: | ||
| ===== プログラム ===== | ===== プログラム ===== | ||
| * そらのちゃんから自力描画についていくつか教えてもらった。 | * そらのちゃんから自力描画についていくつか教えてもらった。 | ||
| - | * 自分はBitBlt転送については半分理解してて、ただ半分は理解してなかった模様。 | + | |
| - | * まず自分はDirectDrawのBitBltについては理解していたけど、あくまでこちらはハードウェア利用想定のもの。 | + | |
| - | * つまり半分CPU側で使ってる扱いの認識。他機種移植やゲームで使うとかであればいいけど、Windowsだともうちょっと突き詰められそう。(もちろん他機種移植も突き詰められるけど、そういうのはもはやメンテされてない恐れがある) | + | * まず自分はDirectDrawを使う前提で理解していたけど、あくまでこちらはハードウェア利用想定のもの。 |
| + | * つまり半分CPU側で使ってる扱いの認識。他機種移植やゲームで使うとかであればいいけど、Windowsだともうちょっと突き詰められそう。(もちろん他機種移植も突き詰められるけど、そういうのはもはやメンテされてない恐れがあるか自力でやらんとダメそう) | ||
| * 参考\\ https:// | * 参考\\ https:// | ||
| - | * 現在はもしかしたらエミュレーションされてるかもしれないけど、一番確実なのはBitBlt命令でSurfaceを転送することかと思うので、とりあえずそれができるフレームワークを目指してみた。幸いベース部分の実装はそれほど難しくなかったのでよかった。 | + | * 現在はもしかしたらWindows11上ではエミュレーションされてるかもしれないけど、一番確実なのはBitBlt命令でSurfaceを転送することかと思うので、それができるフレームワークを作ってみた。幸いベース部分の実装はそれほど難しくなかったのでよかった。 |
| - | * SFMLのでの実装については、最終的な転送はどうも3D側っぽい気がしてる。 | + | * SFMLのでの実装については、最終的な転送はどうもOpenGL側っぽい気がしてる。実装の中身をうまく見れてない。 |
| - | * ちょっと完全にライブラリのソースコード見れてないけど、基本的なCPU描画はできるいるが、最終的な結果は転送側依存(=GPU)になると思われ。まだGDI使ってるの?みたいなコメントを見て、これGDI除外されてそうだなあと思ったりした。 | + | * 基本的なCPU描画はできるいるが、最終的な結果は転送側依存(=GPU)になると思われ。まだGDI使ってるの?みたいなコメントを見て、これGDI除外されてそうだなあと思ったりした。 |
| ---- | ---- | ||
| * 基本方針は、「SFMLベース(実験+ゲーム想定)とWindows(実験想定)でベース部分を作って、お試ししてみる」 | * 基本方針は、「SFMLベース(実験+ゲーム想定)とWindows(実験想定)でベース部分を作って、お試ししてみる」 | ||
| * 元々CPUのみで命令出して描画するという観点でフレームワークを作りたかったので、まず目的は満たせている。 | * 元々CPUのみで命令出して描画するという観点でフレームワークを作りたかったので、まず目的は満たせている。 | ||
| + | * どちらもCPU側から描画するには必要な条件を満たせているので、あとはどこに出すかで切り替える形を予定。 | ||
| ---- | ---- | ||
| 行 22: | 行 24: | ||
| * とりあえずこれをベースにBitmapを更新できる画面にして動かしてみる。 | * とりあえずこれをベースにBitmapを更新できる画面にして動かしてみる。 | ||
| * あとスケーリングは最悪更に仮想スクリーン情報かまして最終的な転送のときに拡大するようにしておけば問題なかろと思った。 | * あとスケーリングは最悪更に仮想スクリーン情報かまして最終的な転送のときに拡大するようにしておけば問題なかろと思った。 | ||
| + | * https:// | ||
| + | |||
| + | ---- | ||
| + | * SFML、こちらの方法でOpenGL上のデバイスコンテキスト使っているのでは?となった。 | ||
| + | * http:// | ||
| + | * OpenGL上ではレンダリングコンテキストというらしい。 | ||
| + | * https:// | ||
| + | * デバイスコンテキストについては下記。 | ||
| + | * https:// | ||
| + | * つまりウィンドウ周りの共通仕様みたいな形で、Windows側(MFC)のデバイスコンテキストを利用した描画ではCPU使用される可能性がとっても高いという感じかな。 | ||
| + | * ふむ | ||
| + | * https:// | ||
| + | * これだな! | ||
| + | * https:// | ||
| + | |||
| + | ===== ゲーム ===== | ||
| + | * 新しくゲーム出されてた | ||
| + | * https:// | ||
2026/02/15.1771131792.txt.gz · 最終更新: 2026/02/15 14:03 by machiaworx