2020年1月23日木曜日

小ネタ

 今回作ってるPNGデコーダ、試しにifでエラーチェックして、エラーが出たら即returnで関数を抜けるように作ってみた。ネストが深くならないので楽。ステータスを保持する変数が無いので極端に生存期間の長い非const変数の排除もできる。エラーチェックで弾かれてるのに後続の処理が行われる心配も無い。欠点といえば、どこでreturnしてるかわからない、くらいか。内部でリソースの確保(newとか)をやっていると、途中でreturnされると開放が面倒。今回に関してはリソースの確保はやってないけど。
 JSF++だと、関数の途中でのreturnを禁止している。ただ、willなので、あまり厳密に遵守する必要はなさそうな感じ。JSF++はコーディングのガイドラインであって、バグの混入とかはユニットテストでチェックできるので、まずは保守性を優先、という感じかな。

 const変数に慣れると、ステータスとかを保持する変数にconstをつけられないのが結構気持ち悪い。「え?途中で書き換えられたらどうするの!?」
 直接returnを投げるなら非const変数に依存しないので気分的に楽。

***

 とりあえず、APNGのデコーダができたので、マイコンに組み込んで動作チェック。あっさり動いた。64x64pxの90フレームくらいのアニメーションで1.7MB近くになるけど。32bppだしな。しょうがない。
 今の所、読み出し速度は問題なさそうな気がするけど、解像度が上がると厳しいかも。
 フレーム間での色の変化が思ったより大きい。色深度4bitだからかな? 転送処理をコアでゴリ押ししてるので色深度増やすとリソース消費量も増える。
 電光掲示板もそろそろ飽きてきた。ブツがデカイから机の上に置くと凄まじく邪魔なんだよな。。。もともと考えてた用途に合わない可能性が出てきたのでモチベの低下も甚だしい。

 そろそろ次の暇つぶしのネタを探しておきたい。

0 件のコメント:

コメントを投稿