Giter Club home page Giter Club logo

patch.aul's Introduction

やる

  • 画像処理
  • 設計
  • モンキーパッチ

書ける

  • C++
  • Lua
  • C#
  • x86

patch.aul's People

Contributors

epi5131 avatar mr-ojii avatar nazonosauna avatar pklion avatar tana3n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

patch.aul's Issues

マクロ機能

タイムラインのオブジェクトへの操作を行う
eclipse_fastのLuaCommandのようなもの、というかそのまんま

設計をしっかりとやる!(素振り)

使用するGPUデバイスを選択/変更できるようにする

場合によってはオンボードGPUを使ってしまって遅い遅いということがあるらしい

まあjsonファイルなんじゃないでしょうか
デバイスの名前を指定するようにしたい 何から選べるのかを示すにはどうすればいいか考える

拡張編集との相性問題

概要
エラーメッセージ等なにも表示されずにクラッシュします。
patch.aulのコンソールウインドウが表示されるとこまでは進みますが、コンフィグなどのファイルが生成されません。

再現手順
AviUtlのv1.10と拡張編集のv0.92とpatch.aulのr42を組み合わせると引き起こされます。

起こってほしかったこと
正常に起動する 又は エラーログが生成される

環境
上記の通り、AviUtlと拡張編集とpatch.aulのみの環境でテストしました。

その他
突然使用不可になりました。
他のソフトウエアの影響が考えられます。

ARM64環境での不具合

概要
コンソール画面が表示されてすぐに消えます。
AviUtlは正常に起動できていません。(クラッシュします)

再現手順
下記の環境を用意します。
aviutl.exeを実行します。

起こってほしかったこと
正常起動

環境

名称 バージョン 備考
Microsoft Windows 10.0.22621.1413 (22H2) Windows 11 Pro ARM64
AviUtl 1.10
拡張編集 0.92
patch.aul r42

redo

https://www.nicovideo.jp/watch/sm39263447 は「白魔術」(原文ママ)とかいうよくわからない方法でやってるらしいので、黒魔術でちゃんと組み直す
どうやらundo関連のバグがたくさんあるらしいので、それもついでに直してもらう

不正なjson

patch.aul.json を削除 → aviutl を起動、何もせず終了 → aviutl を起動
で 100% 設定ファイルが不正と出ます。

theme_cc の項目を消すと正常に起動します。
ここのデータの読み込みが失敗するのが理由だと思うのですが。

"text_op_size" : false にすると制御文字サイズ変更でおかしくなる

patch_text_op_size.hppにて
if (!enabled_i)return;
が無いと思いながら試しに
"text_op_size" : false
をしてみたところ対象のバグ( https://scrapbox.io/ePi5131/%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E5%88%B6%E5%BE%A1%E6%96%87%E5%AD%97%E3%81%AE%E3%83%90%E3%82%B0 )が特定フォント起こるだけでなく、多くのフォントで挙動がおかしくなった

restorable_patch.hppらへんで問題になっているとすると、他の部分のパッチも含め問題がある可能性があるので報告です

フィルタオブジェクトに色調補正が2つ存在する

色調補正(拡張編集)と色調補正(AviUtl本体)が存在するため
色調補正(AviUtl本体)をエイリアスやオブジェクトファイルで出力しても
読み込み時には色調補正(拡張編集)となります

案1.AviUtl本体の「色調補正」の名称を「色調補正フィルタ」にする(ぼかしフィルタ シャープフィルタのように)
→exaやexoの互換性はこのバグのせいで元から存在しないので気にしなくていい
→aviutl.iniやaupの方は色調補正の設定が初期化されそうですが影響は少なそう?

案2.トラック名の違いから頑張って判定する
→だるそう

音声ファイルや動画ファイルの音声トラックを選択できるようにする

マルチトラックで記録されたファイルを変換等をせずにAviUtl上でそのまま扱いたいため

音声ファイルや動画ファイルの音声トラックを、設定ダイアログで操作できるようにする
(マルチトラックの操作を有効にするチェックボックス とトラック数を指定するスピンボックスを追加)

+拡張編集のバージョン判定をバイパスする設定を用意する

背景
海外版拡張編集0.92(filter[0].informationへの改変を行っているもの)を使っているとpatch.aul requires Exedit version *0.92*.というエラーを吐く
一応0.92ではあるため、エラーの意味がよくわからない

また、そこそこ海外ユーザーはいるため、そもそもバージョン判定を省略するための設定を用意するべきである

概要
patch.aul.jsonに特定のプロパティを書くと、バージョン判定を迂回することにする
patch.aul\exedit_version_ignore: booleanとか?

没案
patch.aulファイル名を変えるとか... それは違くない?

その他
ExeditじゃなくてExEditだと思います!

将来的にguiでの設定が可能になったときには、この設定はguiからは変更できないようにすべきかもしれない

+英語版exeditパッチのサポート追加

背景
この機能追加は、exeditの英語版パッチではバージョン文字列も翻訳されているため、patch.aulが動作しないことから提案されたものです。

概要
提案されている機能は、exeditの英語パッチのサポート追加で、大文字小文字ファイルのコードチェックを変更することです。
このコードでは、exedit上で日本語版にある "拡張編集(exedit) version 0.92 by KENくん" という文字列をチェックしているが、英語版パッチにある "Advanced Editing version 0.92" もチェックすべきだ。
image

没案
?

その他
本号は機械翻訳を使用しています。
コードをいじってみたが、VISUAL STUDIOの内部ライブラリがエラーを出すのでコンパイルできず、修正もできない。
この修正は、init.cppのコードチェックをこのように変更することで簡単にできる:

if (strcmp(filters[0]->information, "拡張編集(exedit) version 0.92 by KENくん") != 0)

を次のように変更するだけだ:

if (strcmp(filters[0]->information, "拡張編集(exedit) version 0.92 by KENくん") + strcmp(filters[0]->information, "Advanced Editing version 0.92") != 1)

設定の格納方法をなんとかしてほしい

アホだろ、こんなん

途中で設定を変えられる系のパッチについて、どうするんだという問題がある
Configをもう一つ作って差分を見て違ったらクラスに送るマクロを書きますか?

極座標変換がおかしい

・極座標変換を使う(スクリプトを使う)と落ちる
・逆に遅くなる

などが散見される これはなに?

/CIがコンパイルエラーで失敗する

概要
ご覧の通り、コミットが❌になっていますね
VSのコンパイルエラーです

原因
format_stringがCI環境にまだ来てないっぽい

その他
まあここに置いておいたほうがいいのかなってことでIssueにしておく

*画像ループフィルタの謎挙動

概要
個別オブジェクト にチェックを入れた画像ループフィルタでオブジェクトを増殖させ、
その上に何かフィルタ効果を乗せると、そのフィルタが増殖するごとに付与されていく(?)
色調補正をかけて色相をいじると分かりやすいです

再現手順

  1. オブジェクトに 画像ループ フィルタを追加
  2. 画像ループ個別オブジェクト にチェックを入れる
  3. を任意の数増やす
  4. 画像処理系のフィルタを追加 (ここでは色調補正を追加します)
  5. 色相を変えるとエグいことになる

起こってほしかったこと
常に画像ループフィルタ付与前の画像で処理してほしい

スクリーンショット
image

環境
AviUtl version 1.10
拡張編集 version 0.92
↓その他プラグイン情報↓
image

r43まだ?

https://github.com/users/ePi5131/projects/1 に進捗状況を書く、と言って何も動いてないように見える

  • 何をやればいいのかを調査中
    • フォークのどの更新がどの更新と繋がってるのか
    • プルリクが来ていたのはどこまでなのか
    • 裏で進めているリファクタリングや新機能との調整
  • 今はaulutやその他プロジェクトを見ている

フォーク版が大変優秀なので、皆さんはそっちを使っててもらえれば

画像処理の最適化(GPU/AVX/その他)

Boostプラグイン絶対潰す合同

  • 方向ブラー
  • 放射ブラー
  • ぼかし
  • エッジ抽出
  • 方向ブラー(フィルタオブジェクト)
  • 極座標変換
  • 閃光
  • レンズブラー

  • 合成

  • グロー
  • 縁取り
  • シャープ
  • ディスプレイスメントマップ

pacthを導入するとオブジェクトのグラデーション描画がおかしくなる

・オブジェクトの長さが長過ぎるとグラデーション描画がループする
・オブジェクトの長さが長過ぎると右端の色が指定した色以外になる
・拡大率によっては正常に描画される
・テーマ機能のオン・オフに関わらず描画がおかしくなる

検証環境:AviUtl1.10+拡張編集0.92+patch.aul(r34)

/グローバル変数をできるだけ減らす

#10 の続きでもある
グローバル変数は初期化順序がようわからんことになるのでやめたほうがよい(1敗)

オブジェクト指向を、やります
ついでにパッチ(patch::*)を一元管理できるクラスを生やしてみます

*特定条件でBPMグリッドの設定が吹っ飛ぶ

概要
特定の操作を行うと、BPMグリッドの設定がリセットされてしまう

再現手順
https://twitter.com/yuusyaasisutant/status/1561003282411450369
https://twitter.com/yuusyaasisutant/status/1561005425524617216

  1. BPM設定
  2. Root以外のシーンにオブジェクトを配置
  3. そのシーンで保存
  4. RootのBPMデータがぶっ飛ぶ

起こってほしかったこと
設定が保持される

環境
おそらくバニラ1.10/0.92

その他
これこういう再現方法だったんですね

ページのProtectをパカパカするのはやめたいかも

OverWriteOnProtectHelperというクラスのRAIIでページのProtectを一時的に変更するという芸をやっている
数十バイト離れた4バイトの書き換えで同じページをいちいちWritable→Readonlyにするのはなんか嫌な気持ちになる

別に負荷にならないというならいいんだけど、そうでもないならある程度「ここにこれを書くよ」を溜め込んでおいて一気にProtectを変えて書くをやりたい

スクリプト並び替え管理プラグインでスクリプトをドラッグアンドドロップしたとき「震える」になってしまう

この問題は『設定ダイアログにスクロールを付ける』&『設定ダイアログを高速描画する』&『スクリプト選択コンボボックスがウィンドウ外に出現する』の条件が重なったときに発生するようです。

この条件下だと ::UpdateWindow() を呼んでも設定ダイアログに WM_CTLCOLOREDIT が送信されないようです。よって、

  1. 設定ダイアログの WM_COMMAND (LOWORD(wParam) == 2079) をフックする。
  2. 設定ダイアログの子ウィンドウを末尾から列挙する。
  3. ウィンドウテキストが「震える」のコンボボックスを探す。
  4. コンボボックスを引数にして WM_CTLCOLOREDIT を設定ダイアログに手動で送る。

このような処理をしてほしいです。実際に実装してみたソースコードはこちらにあります。
https://github.com/hebiiro/AviUtl-Plugin-script_sort_patch/

+新規プロジェクト作成窓のテキストボックスのサイズを大きくする

背景
新規プロジェクトを作成 の画像サイズを指定するテキストボックスが短くて、Wine環境では3桁までしか入力できない
→1280x720などを指定できない
一時期Wine側が修正していたが最近再発するようになったらしい

概要
テキストボックスの長さを長くしてあげる
ダイアログリソース名はNEW_FILEなのでなんとかしてください

その他
0.93rc1ではサイレント修正でこれが広がって改善されたので0.92にも持ってくる

スクリプト並び替え管理プラグインでドラッグアンドドロップするとサブクラス化が解除されてしまう

スクリプト並び替え管理プラグインでドラッグアンドドロップしたあと、

::SetWindowLongA(settingDialog, GWL_WNDPROC, NULL);

が実行されてしまい、他のプラグインのサブクラス化も解除されてしまいます。

https://github.com/hebiiro/AviUtl-Plugin-script_sort_patch/
::SetWindowLongA() をフックして解決する方法を実装しています。
これを patch.aul でやってほしいです。

最新のVSでビルドができない

operator""_fmtが全滅している模様

https://godbolt.org/z/Gn8djxMW5 ざっくり検証したら古いmsvcではコンパイルできるが新しいものではできなくなってしまったらしい
私がC++規格に沿っていないコードを書いていてエラーになるようになったのか、msvcのバグを引いているのかはわからない

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.