OpenGL ES代码修改

发布于 2024-12-09 01:03:11 字数 899 浏览 0 评论 0原文

我正在创建一个 opengl ES 项目,我正在尝试显示一些纹理,一切都很好,但问题是内存的使用,每 5 秒增量几乎 1 Mb,我认为我做错了什么,我我没有使用任何这个

    // Generate the vertex buffer object (VBO)
glGenBuffers(1, &ui32Vbo);

// Bind the VBO so we can fill it with data
glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo);

// Set the buffer's data
// Calculate verts size: (3 vertices * stride (3 GLfloats per each vertex))

glBufferData(GL_ARRAY_BUFFER, uiSize, verts, GL_STATIC_DRAW);

// Bind the VBO so we can fill it with data
glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 20, 0);    // Stride = 20 bytes

glBindTexture(GL_TEXTURE_2D, textID);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);    
glTexCoordPointer(2, GL_FLOAT, 20, (void *)12);

glDrawArrays(GL_TRIANGLE_FAN, 4, 4);

// Bind the VBO so we can fill it with data
glBindBuffer(GL_ARRAY_BUFFER, 0);

非常感谢!!!

I´m creating an opengl ES project and I´m trying to show some textures, all works good but the problem is the use of the memory, every 5 seconds increments almost 1 Mb, I think I´m doing something wrong, I´m not using any of this apple recommendations I will tray for sure, but I want to know if my code have some bug, there is how I´m paiting:

    // Generate the vertex buffer object (VBO)
glGenBuffers(1, &ui32Vbo);

// Bind the VBO so we can fill it with data
glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo);

// Set the buffer's data
// Calculate verts size: (3 vertices * stride (3 GLfloats per each vertex))

glBufferData(GL_ARRAY_BUFFER, uiSize, verts, GL_STATIC_DRAW);

// Bind the VBO so we can fill it with data
glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 20, 0);    // Stride = 20 bytes

glBindTexture(GL_TEXTURE_2D, textID);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);    
glTexCoordPointer(2, GL_FLOAT, 20, (void *)12);

glDrawArrays(GL_TRIANGLE_FAN, 4, 4);

// Bind the VBO so we can fill it with data
glBindBuffer(GL_ARRAY_BUFFER, 0);

Thank you very much!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

悍妇囚夫 2024-12-16 01:03:11

您应该只生成一次顶点缓冲区对象,然后使用它进行绘制。

看来你每一帧都创建一个新的。

You should generate the vertex buffer object only once, the use it draw.

It seems you create a new one each frame.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文