Skip to content

Releases: m4saka/CoTaskLib

0.3.2

24 Feb 10:16
Compare
Choose a tag to compare

新機能

  • Co::Init()でCoTaskLibのライセンス表記がLicenseManagerへデフォルトで追加される機能を追加
    • ライセンス表記追加を実行しない場合は、Co::Init()の第1引数へCo::AddsLicenseYN::Noを指定してください
    • Co::Init()でライセンス表記追加を実行しない場合、手動でCo::AddLicense()を呼び出せば任意のタイミングでの追加が可能です

0.3.1→0.3.2の破壊的変更

  • 入力待ちタスクの関数群の第2引数へ実行後にclearInputを実行するどうかを指定する引数を追加し、デフォルトで有効に
    • 引数が追加された関数一覧:
      • WaitUntilDown(const TInput input, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilUp(const TInput input, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilLeftClicked(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilLeftReleased(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilLeftClickedThenReleased(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilRightClicked(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilRightReleased(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
      • WaitUntilRightClickedThenReleased(const TArea area, ClearsInputYN clearsInput = ClearsInputYN::Yes)
    • これにより、例えば下記のコードが意図通りに動作しない(1回のキー押下のみで複数の入力待ちタスクが通過する)問題が修正されます
      Co::Task<> MainTask()
      {
          co_await Co::WaitUntilDown(KeySpace);
          co_await Co::WaitUntilDown(KeySpace);
          co_await Co::WaitUntilDown(KeySpace);
          Print << U"3回押されました"; // ← 従来(〜0.3.1)は1回のキー押下のみでここへ到達していた
      }

その他の変更点

  • タスク実行時の動的メモリアロケーション回数の削減によるパフォーマンス向上
  • Co::ScopedDrawerをムーブ不可に修正
  • Co::Task::with()Co::EmptyTask()の結果を渡すと例外が発生していたのを修正
  • 不使用変数の削除、表記ミスの修正

0.3.1

20 Dec 20:53
Compare
Choose a tag to compare

修正点

  • Visual Studio 2022 17.12.3において、不要なC6031のwarningが発生するようになっていたのを修正

0.3.0

06 Sep 02:44
Compare
Choose a tag to compare

新機能

  • Co::Taskにタスクの一時停止条件を指定するpausedWhileメンバ関数を追加

  • Co::Taskに指定時間だけ遅れて実行されるタスクを返すdelayedメンバ関数を追加

0.2.1→0.3.0の破壊的変更

  • Co::Ease(T*)(更新対象の変数のポインタを与えるオーバーロード)におけるfrom/toの初期値を変更

    • 変更前後の初期値の比較
      • 変更前(0.2.1):
        • 浮動小数点型の場合: fromは0.0、toは1.0
        • それ以外の場合: from/toともにT{}
      • 変更後(0.3.0):
        • from/toともに、変数のもとの値
    • この仕様変更により、前回の値からの変化を与えたい場合はtoのみを指定する形で実装できます。
  • Co::Ease(std::function<void(T)>)(コールバックを与えるオーバーロード)におけるfrom/toの初期値を、型に関わらずT{}とするよう変更

    • 変更前後の初期値の比較
      • 変更前(0.2.1):
        • 浮動小数点型の場合: fromは0.0、toは1.0
        • それ以外の場合: from/toともにT{}
      • 変更後(0.3.0):
        • from/toともにT{}
    • 前述したCo::Ease(T*)の変更点との一貫性のための変更です。

その他の変更点

  • 軽微なパフォーマンス向上

0.2.1

29 Jun 13:36
Compare
Choose a tag to compare

新機能

  • 本バージョンより、Siv3DのmacOS版(AppleClang)、Linux版(gcc/clang)、Web版でもCoTaskLibが利用可能になりました
    • macOS版 動作確認バージョン: Xcode 14.3.1、OpenSiv3D 0.6.14
    • Linux版(gcc) 動作確認バージョン: g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0、OpenSiv3D 0.6.14
    • Linux版(clang) 動作確認バージョン: Ubuntu clang version 14.0.0-1ubuntu1.1、OpenSiv3D 0.6.14
    • Web版 動作確認バージョン: OpenSiv3D 0.6.13

0.2.0→0.2.1の破壊的変更

  • WaitForResult(s3d::AsyncTask)WaitForResult(s3d::AsyncHTTPTask)を廃止
    • この関数を使用している場合、clangの不具合でコンパイル中にクラッシュする現象が発生するため
    • s3d::AsyncTaskおよびs3d::AsyncHTTPTaskをコルーチン内で使うには、co_awaitへ直接渡せばこの関数と同様の結果が得られます

その他の修正点

  • SimpleDialog(ボタン指定なしのオーバーロード)でtext引数に一時オブジェクトの参照を渡すとダングリング参照になる場合があったのを修正(#8)
  • SimpleDialogのフェードインアニメーションがフォントテクスチャ生成処理によりカクついていたのを修正
  • 不使用変数および戻り値がvoidの関数への[[nodiscard]]記述によるwarningが発生していた箇所を修正

0.2.0

23 Jun 17:12
Compare
Choose a tag to compare

0.1.1→0.2.0の破壊的変更

  • SequenceBase/SceneBasedrawIndex仮想関数を廃止し、描画順の制御をレイヤーdrawIndexという2つの値で指定する形へ変更(#6#2)

    • SequenceBase/SceneBaseのコンストラクタにレイヤーおよびdrawIndexを指定する形式となります
    • 途中で変更したい場合は、setLayer/setDrawIndexメンバ関数を使用することができます
    • 詳しくは、README内の描画順序の制御方法をご確認ください
  • 一貫性向上のための関数名変更

    • 変更前: Co::WaitForDown変更後: Co::WaitUntilDown
    • 変更前: Co::WaitForUp変更後: Co::WaitUntilUp
    • 変更前: Co::WaitForLeftClicked変更後: Co::WaitUntilLeftClicked
    • 変更前: Co::WaitForLeftReleased変更後: Co::WaitUntilLeftReleased
    • 変更前: Co::WaitForLeftClickedThenReleased変更後: Co::WaitUntilLeftClickedThenReleased
    • 変更前: Co::WaitForRightClicked変更後: Co::WaitUntilRightClicked
    • 変更前: Co::WaitForRightReleased変更後: Co::WaitUntilRightReleased
    • 変更前: Co::WaitForRightClickedThenReleased変更後: Co::WaitUntilRightClickedThenReleased
    • 変更前: Co::WaitForMouseOver変更後: Co::WaitUntilMouseOver
    • 変更前: Co::UpdaterSequenceBase::isFinishRequested変更後: Co::UpdaterSequenceBase::finishRequested
    • 変更前: Co::SceneBase::isRequested変更後: Co::SceneBase::nextActionRequested
  • Co::EaseTaskBuilder<T>from/toメンバ関数の引数にTのコンストラクタ引数を指定するオーバーロードを廃止(#1)

    • ただし、TVec2またはVec3の場合は各要素のスカラー値を引数に指定するオーバーロードが追加されているため、引き続き使用できます。
    • 廃止の理由: 後述する「from/toメンバ関数の引数にベクトルの全要素を初期化するスカラー値を指定するオーバーロードを追加」との両立ができないため

0.1.1→0.2.0のその他の変更点

  • EaseTaskBuilder<T>TVec2またはVec3の場合について、from/toメンバ関数の引数にベクトルの各要素のスカラー値を指定するオーバーロードを追加(#1)

    • これにより、TVec2またはVec3の場合においては、コンストラクタ引数を指定するオーバーロードを引き続き使用できます。
    • 例: tweener.tweenPosition().from(0.0, 1.0).to(1.0, 0.0)
  • EaseTaskBuilder<T>TVec2またはVec3の場合について、from/toメンバ関数の引数にベクトルの全要素を初期化するスカラー値を指定するオーバーロードを追加(#1)

    • これにより、Tweener::tweenScaleでスケールの値をfrom/toメンバ関数で操作する際、スカラー値で指定できるようになりました
    • 例: tweener.tweenScale().from(0.5).to(1.0)
  • TweenersetPivot/setPosition/setScaleメンバ関数に、ベクトルの各要素のスカラー値を引数に指定するオーバーロードを追加(#1)

  • ScopedTaskRunnerへムーブ代入コンストラクタを追加

  • ScopedTaskRunnerrequestCancelメンバ関数から、キャンセル要求が通ったかどうかをbool型の戻り値として返すように

  • MultiRunnerへ完了済みタスクを削除するためのremoveDoneメンバ関数を追加

  • MultiRunnerrequestCancelAllメンバ関数から、キャンセル要求が1つでも通ったかどうかをbool型の戻り値として返すように

  • MultiRunnerへ各種コンテナ操作系のメンバ関数を追加

  • コルーチンハンドルがnullptrのタスクを返すCo::EmptyTask関数を追加

  • Taskへコルーチンハンドルがnullptrかどうかを返すemptyメンバ関数を追加

  • WithTiming列挙型の基底型をintからuint8へ変更

  • 各種パフォーマンス向上

0.1.1

15 Jun 18:11
Compare
Choose a tag to compare

不具合修正

  • s3d::AsyncHTTPTaskco_awaitで使用した場合に検証用のログが出力されていたのを修正

0.1.0

15 Jun 17:49
Compare
Choose a tag to compare

初版公開。
Windows版のみ動作確認済みです。