OpenGL - VBO
をテンプレートにして作成
[
トップ
|
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
+[[glGenBuffers:http://www.opengl.org/sdk/docs/man/xhtml/...
void glGenBuffers(GLsizei n, GLuint *buffers);
+[[glBindBuffer:http://www.opengl.org/sdk/docs/man/xhtml/...
void glBindBuffer(GLenum target, GLuint buffer);
+[[glBufferData:http://www.opengl.org/sdk/docs/man/xhtml/...
void glBufferData(GLenum target, GLsizeiptr size, const ...
GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC...
-[[glBufferSubData:http://www.opengl.org/sdk/docs/man/xht...
void glBufferSubData(GLenum target, GLintptr offset, GLs...
-[[glDeleteBuffers:http://www.opengl.org/sdk/docs/man/xht...
void glDeleteBuffers(GLsizei n, const GLuint * buffers);
#code(C){{
vector<Vec3> vertices;// = { 0, 0, 0, 1, 0, 0, 1, 1, 0...
vertices.push_back(Vec3(0, 0, 0));
vertices.push_back(Vec3(1, 0, 0));
vertices.push_back(Vec3(1, 1, 0));
vertices.push_back(Vec3(0, 1, 0));
vector<int> indices;// = { 0, 1, 2, 0, 2, 3 };
indices.push_back(0);
indices.push_back(1);
indices.push_back(2);
indices.push_back(0);
indices.push_back(2);
indices.push_back(3);
glGenBuffers(1, &vrtVBO);
glBindBuffer(GL_ARRAY_BUFFER, vrtVBO);
glBufferData(GL_ARRAY_BUFFER, vertices.size()*3*sizeof(d...
glGenBuffers(1, &idxVBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idxVBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size()*siz...
}}
#code(C){{
glBindBuffer(GL_ARRAY_BUFFER, vrtVBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idxVBO);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_DOUBLE, 0, 0);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
glDisableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
}}
#code(C){{
glDeleteBuffers(1, &vrtVBO);
glDeleteBuffers(1, &idxVBO);
}}
-[[glBindBuffer:http://www.opengl.org/sdk/docs/man/xhtml/...
-[[glMapBuffer:http://www.opengl.org/sdk/docs/man/xhtml/g...
void* glMapBuffer(GLenum target, GLenum access);
-[[glUnmapBuffer:http://www.opengl.org/sdk/docs/man/xhtml...
GLboolean glUnmapBuffer(GLenum target);
#code(C){{
void ModifyVBO(void)
{
glBindBuffer(GL_ARRAY_BUFFER, vrtVBO);
double *ptr = (double*)glMapBuffer(GL_ARRAY_BUFFER, GL_W...
static double ang = 0.0;
if(ptr){
for(int i = 1; i <= 2; ++i){
ptr[3*i] = cos(RX_TO_RADIANS(ang));
ptr[3*i+2] = sin(RX_TO_RADIANS(ang));
}
glUnmapBuffer(GL_ARRAY_BUFFER);
ang = (ang < 360) ? ang+1 : 0.0;
}
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
}}
** [#m4abd025]
終了行:
+[[glGenBuffers:http://www.opengl.org/sdk/docs/man/xhtml/...
void glGenBuffers(GLsizei n, GLuint *buffers);
+[[glBindBuffer:http://www.opengl.org/sdk/docs/man/xhtml/...
void glBindBuffer(GLenum target, GLuint buffer);
+[[glBufferData:http://www.opengl.org/sdk/docs/man/xhtml/...
void glBufferData(GLenum target, GLsizeiptr size, const ...
GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC...
-[[glBufferSubData:http://www.opengl.org/sdk/docs/man/xht...
void glBufferSubData(GLenum target, GLintptr offset, GLs...
-[[glDeleteBuffers:http://www.opengl.org/sdk/docs/man/xht...
void glDeleteBuffers(GLsizei n, const GLuint * buffers);
#code(C){{
vector<Vec3> vertices;// = { 0, 0, 0, 1, 0, 0, 1, 1, 0...
vertices.push_back(Vec3(0, 0, 0));
vertices.push_back(Vec3(1, 0, 0));
vertices.push_back(Vec3(1, 1, 0));
vertices.push_back(Vec3(0, 1, 0));
vector<int> indices;// = { 0, 1, 2, 0, 2, 3 };
indices.push_back(0);
indices.push_back(1);
indices.push_back(2);
indices.push_back(0);
indices.push_back(2);
indices.push_back(3);
glGenBuffers(1, &vrtVBO);
glBindBuffer(GL_ARRAY_BUFFER, vrtVBO);
glBufferData(GL_ARRAY_BUFFER, vertices.size()*3*sizeof(d...
glGenBuffers(1, &idxVBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idxVBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices.size()*siz...
}}
#code(C){{
glBindBuffer(GL_ARRAY_BUFFER, vrtVBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idxVBO);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_DOUBLE, 0, 0);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
glDisableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
}}
#code(C){{
glDeleteBuffers(1, &vrtVBO);
glDeleteBuffers(1, &idxVBO);
}}
-[[glBindBuffer:http://www.opengl.org/sdk/docs/man/xhtml/...
-[[glMapBuffer:http://www.opengl.org/sdk/docs/man/xhtml/g...
void* glMapBuffer(GLenum target, GLenum access);
-[[glUnmapBuffer:http://www.opengl.org/sdk/docs/man/xhtml...
GLboolean glUnmapBuffer(GLenum target);
#code(C){{
void ModifyVBO(void)
{
glBindBuffer(GL_ARRAY_BUFFER, vrtVBO);
double *ptr = (double*)glMapBuffer(GL_ARRAY_BUFFER, GL_W...
static double ang = 0.0;
if(ptr){
for(int i = 1; i <= 2; ++i){
ptr[3*i] = cos(RX_TO_RADIANS(ang));
ptr[3*i+2] = sin(RX_TO_RADIANS(ang));
}
glUnmapBuffer(GL_ARRAY_BUFFER);
ang = (ang < 360) ? ang+1 : 0.0;
}
glBindBuffer(GL_ARRAY_BUFFER, 0);
}
}}
** [#m4abd025]
ページ名: