在我简单的GLES20应用程序中,我试图在运行时添加一些对象来绘制。
在我的渲染器类中,我有正方形的ArrayList:
private ArrayList<Square> mSquares = new ArrayList<Square>();
这是我的
Square
Square
如果在中创建,绘图是否良好
onSurfaceCreated
.
广场
进入
mSquares
onDrawFrame
.
在我的渲染器类中,我创建了
AddFigure()
public void AddFigure(float x, float y, float z)
{ // color coords angle
mSquares.add(new Square("Red square", new float[] {1, 0, 0, 1}, new float[] {x, y, z}, 100f));
}
我通过单击活动中的按钮来调用此方法:
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mGLRenderer.AddFigure(1f, 1f, 1f);
}
});
E/AndroidRuntime: FATAL EXCEPTION: GLThread 220
java.util.ConcurrentModificationException
E/libEGL: call to OpenGL ES API with no current context (logged once per thread)
E/emuglGLESv2_enc: device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glEnableVertexAttribArray:741 GL error 0x501
Info: Invalid vertex attribute index. Wanted index: 4294967295. Max index: 16
glBufferData
glBufferSubData
,但没有成功。
也许有一个例子或维基如何做它的权利?