Tôi đang gặp sự cố khi đối tượng trình kết xuất dường như không nhận được số gọi là . Trình gỡ lỗi không bao giờ chạm vào điểm ngắt bên trong hàm. Vì vậy, hình vuông của tôi không vẽ. Dưới đây là đoạn code, cho tôi biết nếu bạn cần bất cứ điều gì khác:onDrawFrame không được gọi trên Android
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);
}
Các hoạt động chính là:
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);
}
}
}
Hiện nay màn hình chỉ là màu đen. Có ý tưởng nào về lý do tại sao OpenGL không hiển thị đúng không?
Các điểm ngắt khác trong chương trình của bạn có hoạt động không? Nếu bạn thêm 'glClearColor (1,0,1,1)' vào dòng đầu tiên của onDrawFrame, nó vẫn còn đen? Có bất kỳ callback renderer nào khác không? – Tim
GLES20.glClearColor (1, 0, 1, 1) ;, không làm bất cứ điều gì –
Các cuộc gọi lại của trình kết xuất khác có được gọi không? onSurfaceCreated or onSurfaceChanged? – Tim