2017-11-08 3 views
1

imgui portで作業していますが、私は常にプリミティブ配列を使ってC++ポインタ/アドレスをシミュレートしています。例えばリフレクションを使用してプリミティブを配列なしで渡して変更する

ImGui::Checkbox("Anti-aliased lines", &style.AntiAliasedLines);

kotlin:

checkbox("Anti-aliased lines", bool.apply { set(0, style.antiAliasedLines) }) 
style.antiAliasedLines = bool[0] 

私はちょうどのC++のようなもの、代わりに、直接フィールドを通過する可能性を探求bool: BooleanArray

checkbox("Anti-aliased lines", style::antiAliasedLines })

私はちょうどcheckbox()に対応KMutableProperty0<Boolean>を収容するために必要な、と私は、同じ関数内でそのフィールドを設定する可能性を持つようにダブルチェック:そこget(): Booleanがあるとset(Boolean)

私の懸念は、以下のとおりです。

  • これはJavaでうまくいきますか?

  • 私がこのルートを下った場合、注意すべき禁忌はありますか?パフォーマンスなど何か?

私は気持ちを持っているので、このアプローチは何とかハックと汚れているので、その

答えて

2

ないJavaで素敵なこの劇?

KotlinがJavaゲッターおよびセッターを表すために使用する合成プロパティを参照することが、1つうまくいきません。 getFoo + setFoofoo(バインドされた呼び出し可能な参照bar::fooは使用できません)。これは現在サポートされていません。

あなたはBar::getFooBar::setFoobarに結合していない呼び出し可能な参照を受け入れ、取得し、その値を設定するという意味での財産基準となるカスタムKMutableProperty0実装であることを回避しようとすることができます。

私がこのルートを下った場合、注意すべき禁忌はありますか?パフォーマンスなど何か?

バインド呼び出し可能な参照は、受信機への参照を保持しているので、style::antiAliasedLinesはGCからstyleを維持します、とあなたが保存呼び出し可能なその参照に関する注意する必要があります。

関連する問題