gpt4 book ai didi

java - onDrawFrame 未在 Android 上调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:12:37 25 4
gpt4 key购买 nike

我遇到了渲染器对象似乎根本没有调用其 onDrawFrame 的问题。调试器永远不会在函数内部遇到断点。因此,我的方 block 没有绘图。这是代码,如果您需要其他任何东西,请告诉我:

public class renderer implements GLSurfaceView.Renderer {

Square square;

public void onDrawFrame(GL10 unused) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
square.Draw();
}

public void onSurfaceChanged(GL10 gl, int width, int height) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
}

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

}

public void onSurfaceCreated(GL10 gl, EGLConfig config) {
square = new Square(5, 5);

}

主要 Activity 是:

public class gameActivity extends Activity {
/** Called when the activity is first created. */

private GLSurfaceView mGLView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
staticHolder.context = getApplicationContext();
mGLView = new GLSurface(this);
setContentView(mGLView);
}
@Override
protected void onPause() {
super.onPause();
// The following call pauses the rendering thread.
// If your OpenGL application is memory intensive,
// you should consider de-allocating objects that
// consume significant memory here.
mGLView.onPause();
}

@Override
protected void onResume() {
mGLView.onResume();
}


class GLSurface extends GLSurfaceView
{
renderer r = new renderer();
public GLSurface(Context context)

{
super(context);

setEGLContextClientVersion(2);
setRenderer(r);
setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
}
}

目前屏幕是黑色的。知道为什么 openGL 无法正确渲染吗?

最佳答案

好吧,这确实很愚蠢,但一开始没有问题。问题是 Eclipse/Java 不像 C# 和其他语言那样关心歧义(如果我错了请纠正我)。问题是我设法在不同的位置复制了同一个类,一个更新了,另一个没有。最终结果是它捕获了它能找到的第一个。

经验教训,自己注意歧义,因为编译器/解析器不会告诉你!

关于java - onDrawFrame 未在 Android 上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11279209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com