Flashでソフトウェアレンダリングを強制する場合は、CONTEXT3Dは使用できません
-
20-12-2019 - |
質問
GPUからソフトウェアレンダリングへのフォールバックに問題があります。 GPUレンダリングをサポートしていないマシンで.SWFを作業したいため、次の行はソフトウェアレンダリングを強制していることがわかりました。この後、コンパイル後のエミュレータでのみ機能します。(IDEはIntellijと一緒です)。
_stage3DProxy = _stage3DManager.getFreeStage3DProxy(true);
.
この変更を行った後、私のStarlingとAway3Dは、統計から見て静止のためのトレースを見ることができるソフトウェアレンダリングを使用しています。
問題は、.swfがWebまたはモバイルデバイス(AIR)で動作しないことです。私の記述子が誤って設定されたかのようにエラーをポップします...
エラー#2044:未処理のerrorevent:。text=エラー#3702:コンテキスト3Dは利用できません。
レンダリングモードは、「wmode= direct」とdepthとstencilに設定されています。
強制ソフトウェアレンダリングが無効になっている場合すべて(StarlingとAway3D)が期待どおりに機能します。しかし、ソフトウェアのレンダリングを強制するときではありません。
任意のアイデア?
解決
問題を見つけた。
Stage3DProxyを作成した後、StarlingとAway3Dは初期化されていますが、間違ったパラメータがあります。Profile(最後のパラメータ)のデフォルト値は、Away3Dの場合は「ベースライン拡張」に設定されていました。スターリングのための「ベースライン」に設定されています。これらをデフォルト値に戻した後、Stage3DProxyは自動的に古いGPUを使用してマシン上のフォールバックを行い、レンダリングのためにソフトウェアを使用します。