堕天使の煉獄
2025-02
27
07:31:48
富豪的に行くべき?
先日のビューを回転とかさせると、ジェスチャー時のアナウンス表示まで回転してしまってGraphicsViewに描いたら駄目じゃんの件。
最初はビューの回転をGraphicsSceneの方でアイテムを回転する方向に書き換えようと思ったのですが、そうか……Sceneの方で回転やらなかったのはアニメgifなどの動画形式がScene内のGraphicsItem(の派生クラス)の回転だとコストが高すぎる。
フレーム毎に毎度拡大縮小回転かける感じになってしまうので。
んで回転に関してはGraphicsViewに任せることにしたんだっけか。
じゃあこの案、没~。
Mainwindowに移すか?
と思ったけど、GraphicsViewのマウスイベントと競合する感じでなんかうまくイベントが受け取れない……。
描画も更新のタイミングが駄目なのかうまく描画されず。
コレも駄目っぽい。
んー、なんかビューの変更に影響しない描画方法ってのやっぱあったような気がするんだよなぁ。
ってことで調べてみたのだけども。
GraphicsViewの描画部分QPainter* pで
p->resetTransform();
を追加するだけでおkでした。
これでビューの回転やらリセットした状態で描画出来るようになったので、普通に描けるように。
やっぱあったね……。
随分遠回り。
んで、そこまで来た所で、ああコレ前に使ったじゃん……ってなったり。
むかーしに作ったwiz風3Dダンジョンのマップ作成ツールで、座標系をwizと同じく、左下を0,0の原点にしてy軸は上方向が+になるようにsetScale(1,-1)で垂直方向に反転したかんじのビューに設定して。
んでそこにツールチップ的なの描画する際に、そのままだと文字とかまで反転しちゃう~ってので、その時にもresetTransformやってたわと……。
一度昔に解決した問題でまた悩むとかとっても無駄な時間を……w
気を取り直して、カタログ表示部分を作り始める。
表示周りの外堀をガリガリ組みはじめたのだけども。
仮に表示部分のサイズを決めるところで、どうしようかなと。
問題は、サムネイルの画像サイズをどうするかというところで。
画面の解像度によって(いまは4Kとかもあるしね)サムネイルのサイズも変えたい感じもあるぽ。
画像サイズとメモリ使用量や読み込み速度、描画スピード辺りはトレードオフなのだけども、結構好みの部分もあるしで。
んで、当初の予定だと、パスから適当なファイル名生成して、フォルダ一つに1つキャッシュファイル作成して~て感じだったんだけども。
サムネ画像のサイズ変更のたびにキャッシュ全部作り直しだし、そもそもそんなにキャッシュ要るかな? という根本的なところから見直したほうがいいような感じもしてたりで。
んで、他のツールはどうなってるんだろ?
ってことでsusieは現物ないのでわからない。
でもおぼろげな記憶だと、サムネ画像のサイズは固定だったかな?
Thumbs.dbとか標準的なフォーマット踏襲してる感じだったし。
マンガミーヤを見てみると、
サムネイル表示(1画面)
サムネイル表示(8列)
サムネイル表示(カスタム)
表紙サムネイル
の三種類あって。
サムネイル設定のとこ覗いてみると、縮小に使うフィルタ選択はいいとして。
保存設定てのがあって、保存しないのと画像フォーマット指定して保存するオプションがある。
カスタムサムネイルのところを見てみると
[行x列]=[8x9]: バッファサイズ=1800x2528
予想メモリ使用量: 13.65[MB]
というヒントが表示されたり。
サムネイルサイズ指定に対してどんぐらいメモリ喰うのか指標をだしてくれるんだね。
幅が200高さが300に設定されてる状態なんだけど
バッファサイズが1800x2528てのは??
8*9だと計算合わないな。
そして一枚の大きいサイズの画像をバッファとして用意してる感じなのか。
なんかdirectXのテクスチャサイズの制限てきなアレ?
そんで描画の高速化も考えられてる感じっぽいですね。ドローコール減らす的な。
まあこのへんは最適化の話な感じなのでQtだとあんま関係ないかな。
Qtにほとんど丸投げ部分なので。
んで、リストの枚数が多い場合、画面サイズもといバッファサイズ超えたらもう一個分取得する感じなのかな。
大量にリストあるとき、画面スクロールした後で非同期読み込みしてるけど、スクロールもどしても再読込しないのでその都度バッファの開放はしてないっぽいですね。
なるほど、サムネファイル作らないで、メモリ上に置くだけで、保存はしない。
その方向のがいい感じですね。
その方式だとサムネのサイズも設定で変えても問題ないし。
そもそも、そんなカタログ機能って頻繁に使わない……くない? 個人的にはあんまり使ってないです。
たまーに大量の画像の中からあの画像何処だっけ?
って探す時にサムネ表示して見つけるために使うぐらいだったりで。
タスクマネージャでメモリの増減も見てみたけど、サムネ作ったあとも別のフォルダとか別の書庫に移動しない限りは作成したサムネはメモリ上に持ってるみたいですね。
で、別の場所に移動したら開放って感じで。
ふむう。
全部メモリに読み込んでキャッシュは保存しない方向で作る感じにしようかな。
オンメモリでも、キャッシュファイルに書き出す時でも同じなのですが、考えるべき点は、大量のリストの場合どうするかですね。
せいぜい数十~数百程度ならいいんですけど、数千~数万とかになると、一気に読んだり、全部保存したり大変ですしね。
そういうところまで一応考えて設計しないと駄目な部分なんだけど。
まあとりあえず組んでみてから考えるかw
実際に作ってみて、メモリどのくらい喰って、どのタイミングで開放するべきとかは現物見ながら考えよう。
なにげにまだデバッグモードだけどもメモリ消費量どうなってるかなと見てみたら、実行時画像ロード済みで20MBちょいぐらい。
拡大するともりもり使用量増えていく感じ。
綺麗に拡大縮小するために元画像を実際に拡大したpixmap持ってるからなぁ。
でもまあ特にムダに大きいってこともない感じぽ。
サムネ用の小さいサイズとはいえ、QImageの容量はどんなもんなんだろうね。
QImageじゃなくて小さいjpgとか生成してそれをバイナリで持つとかのが小さく出来そうだけどどうなんでしょね。
所詮サムネなので、画像が判別できればいいわけで。
そこまで画質にこだわらなくてもいいわけだし。
低画質にも限度はあるけどその限度は個人の感覚によるところではあるんだけども。
でも今の時代、数百MB程度ならメモリ喰っても普通なとこあるし、富豪的に作るほうがいいんだろうなぁ。
とりあえず、「完璧を目指すよりまずは終わらせろ」だよね。
それよりも、デバッグビルドしたらCPU100%にがつーんと毎回逝ってることに愕然としたw
おもにclang関係が重いんだろうけど、ビルド負荷重すぎだろと。
わりと最新のCPUでもそんなんなるとかいう記事どっかで見た気もするな。
ガッツリCPUパワー占有する感じみたいね。
clangのなんかいろんなプラグインとか取り込んで、便利になった部分もあるけど、かなり重くなったよなQtの開発環境。
以前の古いPCだと、clangbackend.exeとかいうプロセスがメモリもCPUも爆食いしてハングが頻発して使い物にならなくてclangのプラグイン切ってたけど。
しかしもう2月も終わりか。
ちょっと開発ものんびりしすぎかな。
もちっと気ぃ入れてさっさと終わらせないとな。
プロゴルファー猿 全153話とか見てる場合じゃないぞ(ぉ
最初はビューの回転をGraphicsSceneの方でアイテムを回転する方向に書き換えようと思ったのですが、そうか……Sceneの方で回転やらなかったのはアニメgifなどの動画形式がScene内のGraphicsItem(の派生クラス)の回転だとコストが高すぎる。
フレーム毎に毎度拡大縮小回転かける感じになってしまうので。
んで回転に関してはGraphicsViewに任せることにしたんだっけか。
じゃあこの案、没~。
Mainwindowに移すか?
と思ったけど、GraphicsViewのマウスイベントと競合する感じでなんかうまくイベントが受け取れない……。
描画も更新のタイミングが駄目なのかうまく描画されず。
コレも駄目っぽい。
んー、なんかビューの変更に影響しない描画方法ってのやっぱあったような気がするんだよなぁ。
ってことで調べてみたのだけども。
GraphicsViewの描画部分QPainter* pで
p->resetTransform();
を追加するだけでおkでした。
これでビューの回転やらリセットした状態で描画出来るようになったので、普通に描けるように。
やっぱあったね……。
随分遠回り。
んで、そこまで来た所で、ああコレ前に使ったじゃん……ってなったり。
むかーしに作ったwiz風3Dダンジョンのマップ作成ツールで、座標系をwizと同じく、左下を0,0の原点にしてy軸は上方向が+になるようにsetScale(1,-1)で垂直方向に反転したかんじのビューに設定して。
んでそこにツールチップ的なの描画する際に、そのままだと文字とかまで反転しちゃう~ってので、その時にもresetTransformやってたわと……。
一度昔に解決した問題でまた悩むとかとっても無駄な時間を……w
気を取り直して、カタログ表示部分を作り始める。
表示周りの外堀をガリガリ組みはじめたのだけども。
仮に表示部分のサイズを決めるところで、どうしようかなと。
問題は、サムネイルの画像サイズをどうするかというところで。
画面の解像度によって(いまは4Kとかもあるしね)サムネイルのサイズも変えたい感じもあるぽ。
画像サイズとメモリ使用量や読み込み速度、描画スピード辺りはトレードオフなのだけども、結構好みの部分もあるしで。
んで、当初の予定だと、パスから適当なファイル名生成して、フォルダ一つに1つキャッシュファイル作成して~て感じだったんだけども。
サムネ画像のサイズ変更のたびにキャッシュ全部作り直しだし、そもそもそんなにキャッシュ要るかな? という根本的なところから見直したほうがいいような感じもしてたりで。
んで、他のツールはどうなってるんだろ?
ってことでsusieは現物ないのでわからない。
でもおぼろげな記憶だと、サムネ画像のサイズは固定だったかな?
Thumbs.dbとか標準的なフォーマット踏襲してる感じだったし。
マンガミーヤを見てみると、
サムネイル表示(1画面)
サムネイル表示(8列)
サムネイル表示(カスタム)
表紙サムネイル
の三種類あって。
サムネイル設定のとこ覗いてみると、縮小に使うフィルタ選択はいいとして。
保存設定てのがあって、保存しないのと画像フォーマット指定して保存するオプションがある。
カスタムサムネイルのところを見てみると
[行x列]=[8x9]: バッファサイズ=1800x2528
予想メモリ使用量: 13.65[MB]
というヒントが表示されたり。
サムネイルサイズ指定に対してどんぐらいメモリ喰うのか指標をだしてくれるんだね。
幅が200高さが300に設定されてる状態なんだけど
バッファサイズが1800x2528てのは??
8*9だと計算合わないな。
そして一枚の大きいサイズの画像をバッファとして用意してる感じなのか。
なんかdirectXのテクスチャサイズの制限てきなアレ?
そんで描画の高速化も考えられてる感じっぽいですね。ドローコール減らす的な。
まあこのへんは最適化の話な感じなのでQtだとあんま関係ないかな。
Qtにほとんど丸投げ部分なので。
んで、リストの枚数が多い場合、画面サイズもといバッファサイズ超えたらもう一個分取得する感じなのかな。
大量にリストあるとき、画面スクロールした後で非同期読み込みしてるけど、スクロールもどしても再読込しないのでその都度バッファの開放はしてないっぽいですね。
なるほど、サムネファイル作らないで、メモリ上に置くだけで、保存はしない。
その方向のがいい感じですね。
その方式だとサムネのサイズも設定で変えても問題ないし。
そもそも、そんなカタログ機能って頻繁に使わない……くない? 個人的にはあんまり使ってないです。
たまーに大量の画像の中からあの画像何処だっけ?
って探す時にサムネ表示して見つけるために使うぐらいだったりで。
タスクマネージャでメモリの増減も見てみたけど、サムネ作ったあとも別のフォルダとか別の書庫に移動しない限りは作成したサムネはメモリ上に持ってるみたいですね。
で、別の場所に移動したら開放って感じで。
ふむう。
全部メモリに読み込んでキャッシュは保存しない方向で作る感じにしようかな。
オンメモリでも、キャッシュファイルに書き出す時でも同じなのですが、考えるべき点は、大量のリストの場合どうするかですね。
せいぜい数十~数百程度ならいいんですけど、数千~数万とかになると、一気に読んだり、全部保存したり大変ですしね。
そういうところまで一応考えて設計しないと駄目な部分なんだけど。
まあとりあえず組んでみてから考えるかw
実際に作ってみて、メモリどのくらい喰って、どのタイミングで開放するべきとかは現物見ながら考えよう。
なにげにまだデバッグモードだけどもメモリ消費量どうなってるかなと見てみたら、実行時画像ロード済みで20MBちょいぐらい。
拡大するともりもり使用量増えていく感じ。
綺麗に拡大縮小するために元画像を実際に拡大したpixmap持ってるからなぁ。
でもまあ特にムダに大きいってこともない感じぽ。
サムネ用の小さいサイズとはいえ、QImageの容量はどんなもんなんだろうね。
QImageじゃなくて小さいjpgとか生成してそれをバイナリで持つとかのが小さく出来そうだけどどうなんでしょね。
所詮サムネなので、画像が判別できればいいわけで。
そこまで画質にこだわらなくてもいいわけだし。
低画質にも限度はあるけどその限度は個人の感覚によるところではあるんだけども。
でも今の時代、数百MB程度ならメモリ喰っても普通なとこあるし、富豪的に作るほうがいいんだろうなぁ。
とりあえず、「完璧を目指すよりまずは終わらせろ」だよね。
それよりも、デバッグビルドしたらCPU100%にがつーんと毎回逝ってることに愕然としたw
おもにclang関係が重いんだろうけど、ビルド負荷重すぎだろと。
わりと最新のCPUでもそんなんなるとかいう記事どっかで見た気もするな。
ガッツリCPUパワー占有する感じみたいね。
clangのなんかいろんなプラグインとか取り込んで、便利になった部分もあるけど、かなり重くなったよなQtの開発環境。
以前の古いPCだと、clangbackend.exeとかいうプロセスがメモリもCPUも爆食いしてハングが頻発して使い物にならなくてclangのプラグイン切ってたけど。
しかしもう2月も終わりか。
ちょっと開発ものんびりしすぎかな。
もちっと気ぃ入れてさっさと終わらせないとな。
プロゴルファー猿 全153話とか見てる場合じゃないぞ(ぉ
Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
03
■
■
遊びすぎだな……
04
05
06
■
■
silent night
07
08
09
10
11
[建国記念の日]
12
13
■
■
さぶい
14
15
16
17
18
■
■
いつのまにか出来るように
19
20
■
■
また雪降ってるお
21
22
23
■
■
モノがないパターン
[天皇誕生日]
[天皇誕生日]
24
[振替]
25
■
■
なんか……うーん
26
27
■
■
富豪的に行くべき?
28
total:2117895 t:45 y:169
■記事タイトル■
■年度別リスト■
2025年
2025年12月(0)2025年11月(0)
2025年10月(0)
2025年09月(0)
2025年08月(0)
2025年07月(0)
2025年06月(0)
2025年05月(0)
2025年04月(1)
2025年03月(3)
2025年02月(8)
2025年01月(3)
2024年
2024年12月(1)2024年11月(2)
2024年10月(1)
2024年09月(2)
2024年08月(1)
2024年07月(1)
2024年06月(5)
2024年05月(2)
2024年04月(1)
2024年03月(6)
2024年02月(4)
2024年01月(3)
2023年
2023年12月(3)2023年11月(1)
2023年10月(2)
2023年09月(3)
2023年08月(3)
2023年07月(3)
2023年06月(7)
2023年05月(8)
2023年04月(2)
2023年03月(1)
2023年02月(2)
2023年01月(3)
2022年
2022年12月(4)2022年11月(3)
2022年10月(1)
2022年09月(3)
2022年08月(3)
2022年07月(2)
2022年06月(1)
2022年05月(3)
2022年04月(2)
2022年03月(2)
2022年02月(1)
2022年01月(6)
2021年
2021年12月(8)2021年11月(3)
2021年10月(4)
2021年09月(6)
2021年08月(2)
2021年07月(1)
2021年06月(3)
2021年05月(2)
2021年04月(2)
2021年03月(3)
2021年02月(1)
2021年01月(4)
2020年
2020年12月(3)2020年11月(7)
2020年10月(2)
2020年09月(3)
2020年08月(1)
2020年07月(3)
2020年06月(7)
2020年05月(5)
2020年04月(8)
2020年03月(4)
2020年02月(2)
2020年01月(4)
2019年
2019年12月(1)2019年11月(1)
2019年10月(2)
2019年09月(1)
2019年08月(3)
2019年07月(2)
2019年06月(2)
2019年05月(2)
2019年04月(4)
2019年03月(1)
2019年02月(7)
2019年01月(1)
2018年
2018年12月(1)2018年11月(1)
2018年10月(5)
2018年09月(1)
2018年08月(5)
2018年07月(1)
2018年06月(1)
2018年05月(1)
2018年04月(2)
2018年03月(2)
2018年02月(1)
2018年01月(1)
2017年
2017年12月(2)2017年11月(1)
2017年10月(2)
2017年09月(5)
2017年08月(8)
2017年07月(2)
2017年06月(1)
2017年05月(1)
2017年04月(3)
2017年03月(5)
2017年02月(7)
2017年01月(8)
2016年
2016年12月(7)2016年11月(2)
2016年10月(3)
2016年09月(7)
2016年08月(8)
2016年07月(10)
2016年06月(17)
2016年05月(6)
2016年04月(8)
2016年03月(10)
2016年02月(5)
2016年01月(10)
2015年
2015年12月(7)2015年11月(7)
2015年10月(13)
2015年09月(7)
2015年08月(7)
2015年07月(5)
2015年06月(4)
2015年05月(5)
2015年04月(2)
2015年03月(4)
2015年02月(1)
2015年01月(7)
2014年
2014年12月(12)2014年11月(8)
2014年10月(4)
2014年09月(6)
2014年08月(7)
2014年07月(4)
2014年06月(2)
2014年05月(5)
2014年04月(4)
2014年03月(8)
2014年02月(4)
2014年01月(8)
2013年
2013年12月(15)2013年11月(8)
2013年10月(3)
2013年09月(3)
2013年08月(8)
2013年07月(0)
2013年06月(0)
2013年05月(0)
2013年04月(0)
2013年03月(0)
2013年02月(0)
2013年01月(0)
■レス履歴■
■ファイル抽出■
■ワード検索■
堕天使の煉獄
https://rengoku.sakura.ne.jp
管理人
織田霧さくら(oda-x)
E-mail (■を@に)
oda-x■rengoku.sakura.ne.jp

