gpt4 book ai didi

ios - OpenGL ES 2.0 GLKit画一条线

转载 作者:行者123 更新时间:2023-12-01 18:00:33 25 4
gpt4 key购买 nike

我正在尝试与OpenGL ES 2.0 GLKit划清界限。当我运行以下代码并使用OpenGL ES Analyzer时,出现以下错误:

“使用不存在的程序”
glDrawArrays(GL_LINE_STRIP,0,4)

“GL错误:无效的操作”
GL_INVALID_OPERATION <-glVertexPointer(2,GL_FLOAT,0,NULL)
GL_INVALID_OPERATION <-glEnableClientState(GL_VERTEX_ARRAY)

这是我的代码:

#import "GLDrawingView.h"


const float data[] = {0.0f, 1.0f, 0.0f, 0.0f, 1.0f, -0.0f, 0.0f, 1.0f};



@interface GLDrawingView () {
GLuint lineVBO;
}

@end

@implementation GLDrawingView

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[EAGLContext setCurrentContext:self.context];
glGenBuffers(1, &lineVBO);
glBindBuffer(GL_ARRAY_BUFFER, lineVBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(data), data, GL_STATIC_DRAW);
}
return self;
}

- (void)drawRect:(CGRect)rect
{
glVertexPointer(2, GL_FLOAT, 0, NULL);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_LINE_STRIP, 0, sizeof(data) / sizeof(float) / 2);
}

@end

最佳答案

在OpenGL ES 2.0中绘制内容时,必须使用着色器程序(glUseProgram)进行渲染。如果没有GLES2中的着色器,则无法渲染。

关于ios - OpenGL ES 2.0 GLKit画一条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10559199/

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