如何解决OpenGL ES如何从数组中添加和绘制图形?
我是使用 Kotlin 的 OpenGL ES 的新手。我想从它们的数组中绘制一个三角形。我的数组是在与 Myglrenderer
不同的类中创建的。它位于用作绘图表面的片段的伴随对象中。这是:
class uniShow_fragment : Fragment(R.layout.fragment_uni_show) {
private lateinit var gLView: GLSurfaceView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
gLView = MyGLSurfaceView(this.activity)
}
override fun onCreateView(inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?): View? {
gLView = MyGLSurfaceView(this.activity)
return gLView
}
companion object Universe {
var trs : Array<Triangle> = Array(6,{ i -> Triangle() })
var trs_size = 0
fun add_object(tr : Triangle) {
trs[trs_size++] = tr
}
}
}
我使用位于托管我的 uniShow_fragment
的 Activity 中的按钮向数组添加一个三角形:
val button : Button = findViewById(R.id.add_triangle)
button.setonClickListener {
var tr = Triangle()
uniShow_fragment.add_object(tr)
}
然后在 onDrawFrame
类的 Myglrenderer
函数中,我从数组中绘制一个三角形,如下所示:
override fun onDrawFrame(unused: GL10) {
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT)
Matrix.setLookAtM(viewMatrix,0f,-3f,1.0f,0.0f)
Matrix.multiplyMM(vPMatrix,projectionMatrix,viewMatrix,0)
if (uniShow_fragment.Universe.trs_size > 0)
uniShow_fragment.Universe.trs[0].render(vPMatrix)
else
mTriangle.render(vPMatrix)
}
因此,如果 trs_size = 0,我会在绘制的 Myglrenderer
类中定义一个三角形,但如果我的数组包含某些内容,我会得到空屏幕...
附言问题似乎出在“添加”过程中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。