GL10 を使用する 3D ゲームを作成していますが、可能であればアプリケーションで GL11 または GL20 をサポートしたいと考えています。3 つすべてをサポートするための最適な設計は何ですか? それとも、これはばかげた用事であり、1 つのバージョンのサポートに集中する必要がありますか?
私の現在の考えは、render() 関数を renderGL10、renderGL11、renderGL20 に分割し、利用可能な GL インスタンスに基づいて適切なレンダリング関数を呼び出すことです。各レンダリング関数の内部には、GL バージョンの適切なレンダリング方法があります。GL10 と GL11 では重複する可能性があります。これは私の問題を処理する適切な方法ですか、それとももっと良い方法がありますか?
public render(){
if (Gdx.graphics.isGL20Available()){
renderGL20();
} else if (Gdx.graphics.isGL11Available()){
renderGL11();
} else {
renderGL10();
}
}
編集: 解決策: gl1.x が利用可能な場合、gl10 も利用できます (Gdx.gl10 は null ではありません)。したがって、レンダリング コードは通常、次のように構成する必要があります。
public render(){
// Use Gdx.gl for any gl calls common to all versions
if (Gdx.graphics.isGL20Available()){
// Use Gdx.GL20 for all gl calls
} else {
if (Gdx.graphics.isGL11Available()){
// Use Gdx.gl11 for any gl11 call not supported by gl10
}
// Use Gdx.gl10 for all gl calls
}
}