簡體   English   中英

在SDL窗口中未繪制頂點緩沖區對象

[英]Vertex Buffer Object not drawing in SDL window

我只是將opengl SDL模板與Xcode一起使用,並且一切運行正常。 我刪除了Atlantis代碼,並將主要擴展名更改為.mm,然后向drawGL添加了一些測試代碼。 此時在drawGL內繪制一個簡單的三角形(使用立即模式)給了我一個白色三角形,但是當我添加使用頂點緩沖區對象進行繪制的代碼時,我得到一個黑色的窗口。

這是我的VBO繪圖代碼:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);     // Clear The Screen And The Depth Buffer
glLoadIdentity();

GLuint buffer;

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

// VBO doesn't work :(
glGenBuffers(1, &buffer);
glBindBuffer(GL_ARRAY_BUFFER, buffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 9, vertices, GL_STATIC_DRAW);

glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);

您的glVertexPointer()調用可能會懷疑VBO使用情況。 我認為您需要BUFFER_OFFSET 構造而不是vertices指針。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM