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