05/02/19 14:41:08 SeeIdQIF
>>549
あ、なんだやってたのか。
このスレ沈みっぱなしだったから見てる人かなり少ないだろうし、
多分みんなお前がいなくなったんだと勘違いしてたんだと思うぜ。
で、サイトの方にあったレスにレスするぞ。
> >>548 それはむしろ今の状態というか
> 今はゲームループの中で1回ポーリングしてその瞬間のデータで処理をします
> これは言い換えると次のポーリングまでの間のデータを捨てているのと同じです
> 多すぎるデータは最終的に捨てなければなりません
> バッファリングでキューにデータが溜まるなら
> プログラムがデータの処理を選択できるのではないでしょうか?ということです
> 嘘ついてたらスマソ
OS 側にイベントキューってのがあって、
ポーリングとポーリングの間にアプリケーション(この場合お前のプログラム)が受け取った情報は全て
OS 側で勝手にイベントキューのバッファに保存されてる。
つまり、「次のポーリングまでの間のデータを捨てているのと同じ」ではない。
巨大なファイルを圧縮したりして CPU に負荷をかけまくると、
チャットで入力した文字が遅れて表示されたりしないか?
ありゃ負荷が掛かってる間に溜まってたイベントを
アプリケーションが後からポーリングして受け取ってんだわ。
Windows とか、Unix + X とか、MacOS とか、最近の OS は普通そういう実装になってる。
Windows の場合、限界を超えた量のキー入力を受け取ると
アプリケーションに渡す以前に Windows が根を上げてビープの警告音を鳴らす。
つまりキーイベントのバッファリングも、
受け取れないほどの量のキーイベントを破棄する処理も、
既に OS 側に実装されてる。