簡體   English   中英

設置Android OpenGl ES環境失敗

[英]Setting up Android OpenGl ES Environment fails

我想學習如何將OpenGL用於Android。 因此,我遵循指南來設置環境。 我已經按照他們說的做了所有事情:我有一個OpenGLActivity可以啟動MyGLSurfaceView

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    glSurfaceView = new MyGLSurfaceView(this);
    setContentView(R.layout.activity_open_gl);
}

這是我的MyGLSurfaceView

class MyGLSurfaceView extends GLSurfaceView {

private final MyGLRenderer mRenderer;

public MyGLSurfaceView(Context context) {
    super(context);

    // Create an OpenGL ES 2.0 context
    setEGLContextClientVersion(2);

    mRenderer = new MyGLRenderer();

    // Set the Renderer for drawing on the GLSurfaceView
    setRenderer(mRenderer);
}
}

那就是我的MyGLRenderder類,應該將背景設置為黑色:

public class MyGLRenderer implements Renderer {

public void onSurfaceCreated(GL10 unused, EGLConfig config) {
    // Set the background frame color
    GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
}

public void onDrawFrame(GL10 unused) {
    // Redraw background color
    GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
}

public void onSurfaceChanged(GL10 unused, int width, int height) {
    GLES20.glViewport(0, 0, width, height);
}
}

並且我已經將此行添加到我的AndroidManifest.xml (就在開頭,在<application>標記之前)

<uses-feature android:glEsVersion="0x00020000" android:required="true" />

問題在於背景不是黑色,而是白色。 我想念什么嗎?

您實際上並沒有顯示OpenGL視圖。 在此代碼中:

glSurfaceView = new MyGLSurfaceView(this);
setContentView(R.layout.activity_open_gl);

您將內容視圖設置為布局中的視圖,而沒有使用剛剛創建的GLSurfaceView 它應該是:

glSurfaceView = new MyGLSurfaceView(this);
setContentView(glSurfaceView);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM