We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
P/ECE monitor(nsawa氏)の16階調モードはpceLCDSetBuffer(INVALIDPTR )で取得できる仮想画面バッファの内容をキャプチャしているため、仮想画面バッファとは別で16階調用バッファを用意している現状から改造しないと、キャプチャができません。 本ライブラリの売りである、4階調画像を16階調用バッファにレイヤーを重ねる形で表示できる機能を維持しようと思ったら、4階調用バッファを別で用意して、16階調用バッファと4階調用バッファを重ねた結果を仮想画面バッファに出力し、仮想画面バッファからダイレクト転送バッファの内容を作成する必要があります。 4階調用バッファを別で用意するということは、仮想画面バッファに書き込むようになっている描画まわりの関数を、新しい4階調用バッファに書き込むよう、ひととおりフックしてやらないといけないと思われます。
The text was updated successfully, but these errors were encountered:
描画まわりのAPI書き換えについて検討。 4階調描画APIをひととおりフックする形だと、標準API以外の描画関数(例えば、本ライブラリの縁取りフォント描画機能など)では16階調になっている仮想画面バッファに書き込まれてしまう。 そのため、pceLCDSetBuffer()をフックして、引数INVALIDPTRで呼び出された時(各種描画処理内でバッファのアドレスを取り出す時)は4階調用バッファのアドレスを返すようにするのはどうだろうか。 16階調描画での書き込み先バッファの取得にはpceLCDSetBuffer(INVALIDPTR)は使わず、専用の関数を使うようにすれば良い(現状、Ldirect_Buffer()がそれにあたる)。
Sorry, something went wrong.
3f29450
zurachu/pceth2#1 の対応をしている時に気づいたが、API内でpceLCDSetBuffer()を呼び出しているところではカーネル内のpceLCDSetBuffer()がそのまま使われるのか、4階調用描画バッファに描画してくれていない。 pceLCDSetBuffer()を呼び出していない描画系APIでも、最初のpceLCDSetBuffer()で設定したs_vbuffを参照して処理をされており、結果同上。 サンプルプログラムでもpceLCDPaint()効いてないっぽいのに、気づいてなかった。 pceLCDSetBuffer()およびvbuffを参照しているAPIは、フックしてやらないといけない。 結果、高速RAM転送サイズが大きくなるようなら、あらためて分割が必要かも。
No branches or pull requests
P/ECE monitor(nsawa氏)の16階調モードはpceLCDSetBuffer(INVALIDPTR )で取得できる仮想画面バッファの内容をキャプチャしているため、仮想画面バッファとは別で16階調用バッファを用意している現状から改造しないと、キャプチャができません。
本ライブラリの売りである、4階調画像を16階調用バッファにレイヤーを重ねる形で表示できる機能を維持しようと思ったら、4階調用バッファを別で用意して、16階調用バッファと4階調用バッファを重ねた結果を仮想画面バッファに出力し、仮想画面バッファからダイレクト転送バッファの内容を作成する必要があります。
4階調用バッファを別で用意するということは、仮想画面バッファに書き込むようになっている描画まわりの関数を、新しい4階調用バッファに書き込むよう、ひととおりフックしてやらないといけないと思われます。
The text was updated successfully, but these errors were encountered: