1
OpenGL ES 2.0 GLKitで線を描こうとしています。OpenGL ES 2.0 GLKit線を描く
「実在しないプログラムの使用」 glDrawArrays(GL_LINE_STRIP、0,4)
「GLエラー:無効な操作」私は次のコードを実行およびOpenGL ESアナライザを使用する場合、私は、次のエラーを取得 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
これは確かですか?私はシェーダを使用しないGLKitアプリケーションを持っています - もしそうであれば、それらは内蔵されています。私は確かにコード化もコンパイルもしていませんでした!それはうまくレンダリングされます。 – Olie
glkitには、ES 1.0の機能を模倣したシェイダーが組み込まれています。基本的にそのエフェクトクラスは何ですか。 glkitはopengl 2.0のラッパーです – Fonix