某些设备无法在某些设备上绘制

时间:2015-05-16 13:46:12

标签: android text opengl-es rendering

我使用OpenGL ES 2.0来绘制Square对象,如本教程所示: developer.android.com/training/graphics/opengl/draw.html
并从本教程中绘制文字:
fractiousg.blogspot.com/2012/04/rendering-text-in-opengl-on-android.html 的

    d1.draw(mMVPMatrix);
    d2.draw(mMVPMatrix);
    d3.draw(mMVPMatrix);
    d4.draw(mMVPMatrix);


    p1.draw(mMVPMatrix);
    if(punkty>0)
    p2.draw(mMVPMatrix);

    koala.draw(mMVPMatrix);



    punktyString = String.valueOf(punkty);
    glText.begin( 1.0f, 1.0f, 1.0f, 1.0f, mVPMatrix );
    glText.drawC(punktyString, width/2, height/2);
    glText.end();  <i>

要绘制方形物体,我使用mMVPMatrix。要绘制文本,我使用mVPMatrix。

onSurfaceChanged:

    float ratio = (float) width / height;


    Matrix.frustumM(mProjMatrix, 0, -1, 1, -1 / ratio, 1 / ratio, 1, 10);

    int useForOrtho = Math.min(width, height);

    //TODO: Is this wrong?
    Matrix.orthoM(mVMatrix, 0,
            -useForOrtho / 2,
            useForOrtho / 2,
            -useForOrtho / 2,
            useForOrtho / 2, 0.1f, 100f);



    Matrix.frustumM(mProjectionMatrix, 0, 1, -1, -1, 1, 3, 7); </i>

onDrawFrame:

    Matrix.setLookAtM(mViewMatrix, 0, 0, 0, -3, 0f, 0f, 0f, 0f, 1.0f, 0.0f);

    // Calculate the projection and view transformation
    Matrix.multiplyMM(mMVPMatrix, 0, mProjectionMatrix, 0, mViewMatrix, 0);

    Matrix.multiplyMM(mVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0);

在大多数设备上,应用效果很好:

http://prntscr.com/75ucsf

但在某些设备上,app的工作方式如下:

http://prntscr.com/75ucle

仅渲染文本,不渲染方形对象。 如何在所有设备上渲染Square对象和文本?

问我是否需要更多信息。

0 个答案:

没有答案