2016-08-17 1 views
-1

バッチスクリプトや他のWindows(XP、Seven、Eight、Ten)やスクリプトと互換性があり、現在のドライバOpenGLバージョンを入手するためには、可能なかぎり知りたいです。バッチスクリプトを使用してOpenGLのバージョンを取得できますか?

私はWindowsに私のbashスクリプトの一部を適応したい:

#!/bin/bash 

# 
# Autor  : Inukaze (Venezuela) 
# Site  : http://inukaze.wordpress.com 
# E-Mail : [email protected] 
# License : GPL 3 
# 
# 

# Obtener la Architecture 
Architecture=$(uname -m) 
case "$Architecture" in 
    x86) Architecture="x32"       ;; 
    i?86) Architecture="x32"       ;; 
    amd64) Architecture="x64"       ;; 
    x86_64) Architecture="x64"       ;; 
    *) echo "Your Architecture Detected $Architecture -> Its not supported" ;; 
esac 


# Detect OpenGL Version : 
OpenGLV=$(glxinfo | grep "OpenGL version" | awk '{ print $4 }' | cut -c 5- | rev) 

# Use the version of GzDoom according to the OpenGL version detected 
case "$OpenGLV" in 
1) 
    echo 
    echo "OpenGL 1 Detected" 
    echo 
    echo "Using GzDoom 1.8.6" 
    Version=1.8.6 
    if [ "$Architecture" = "x32" ]; then 
      LD_LIBRARY_PATH="Gnu/Linux/$Version/lib32" 
      export LD_LIBRARY_PATH 
      Engine="Gnu/Linux/$Version/gzdoom.$Architecture" 
    elif [ "$Architecture" = "x64" ]; then 
      LD_LIBRARY_PATH="Gnu/Linux/$Version/lib64" 
      export LD_LIBRARY_PATH 
      Engine="Gnu/Linux/$Version/gzdoom.$Architecture" 
    else 
     echo "Your Architecture Detected $Architecture -> Its not supported" 
    fi 
    ;; 

2) 
    echo 
    echo "OpenGL 2 Detected" 
    echo 
    echo "Using GzDoom GzDoom 1.9.1" 
    Version=1.9.1 
    if [ "$Architecture" = "x32" ]; then 
      LD_LIBRARY_PATH="Gnu/Linux/$Version/lib32" 
      export LD_LIBRARY_PATH 
      Engine="Gnu/Linux/$Version/gzdoom.$Architecture" 
    elif [ "$Architecture" = "x64" ]; then 
      LD_LIBRARY_PATH="Gnu/Linux/$Version/lib64" 
      export LD_LIBRARY_PATH 
      Engine="Gnu/Linux/$Version/gzdoom.$Architecture" 
    else 
     echo "Your Architecture Detected $Architecture -> Its not supported" 
    fi 
    ;; 

3) 
    echo 
    echo "OpenGL 3 Detected" 
    echo 
    echo "Using GzDoom GzDoom 2.1.1" 
    Version=2.1.1 
    if [ "$Architecture" = "x32" ]; then 
      LD_LIBRARY_PATH="Gnu/Linux/$Version/lib32" 
      export LD_LIBRARY_PATH 
      Engine="Gnu/Linux/$Version/gzdoom.$Architecture" 
    elif [ "$Architecture" = "x64" ]; then 
      LD_LIBRARY_PATH="Gnu/Linux/$Version/lib64" 
      export LD_LIBRARY_PATH 
      Engine="Gnu/Linux/$Version/gzdoom.$Architecture" 
    else 
     echo "Your Architecture Detected $Architecture -> Its not supported" 
    fi 
    ;; 

*) 
    echo "OpenGL version not determined" 
    ;; 
esac 

    export Architectures 
    for Architectures in $Architecture; do 
     test -x ./$Engine || continue 
     exec ./$Engine "[email protected]" 
    done 

echo "Could not start GzDoom" >&2 

しかし、私は、バッチスクリプトまたは別のスクリプトで取得するOpenGLのバージョンのための方法を知りません。誰かが簡単なコマンドラインツールを知っていて、それを入手して新しいスクリプトで使用するなら、互換性のあるWindowsに適応したいと思う。

+0

最終的に実行するマシンでプログラムをビルドするつもりはありますか? –

+0

はい、私のPCだけでなく、別のPC、OpenGL 1.0、OpenGL 2.0、およびOpenGL 3.0のdiferents GPUを持つ – inukaze

+1

AFAIKでは、いくつかのユーティリティが必要です。単純な.exeやGoogleの既存のものを作成してください。 GLEWには、他の情報の中に 'OpenGL version string:4.0.0 - Build 10.18.10.4061'のようなものを出力するvisualinfoが付属しています。 – Mars

答えて

0

GLバージョンは、ハードウェア/ドライバ機能に基づいて実行時にのみ決定できます。

すべての4.0機能をサポートしているわけではないので、同じドライバが3.3を1つのGPUで報告することがあります。何かを実行することなくこれを知る方法はありません。さらに悪いことに、ドライバのバージョン文字列は歴史的に誤解を招いています.2つの非累乗テクスチャをサポートしないGL 2.0を要求するドライバもあります。

ソフトウェアは、報告されたドライバのバージョンから何かを推論するべきではなく、実行時に拡張機能のサポートをチェックし、初期化時にフォールバックまたはフェイル・ファーストを使用します。

コンテキストを作成するための非常に簡単なプログラムを作成する必要があります。glxinfoのような移植性のないものに依存しない限り、バッチスクリプトからは実行できません。

関連する問題