Converting (casting?) a dynamic array to a fixed array?
WhatMeWorry via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun May 3 19:47:23 PDT 2015
This following code works fine. A triangle is displayed.
GLfloat[6] verts = [ 0.0, 1.0,
-1.0, -1.0,
1.0, -1.0 ];
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo); // Some of the
types are:
glBufferData(GL_ARRAY_BUFFER, verts.sizeof, &verts,
GL_STATIC_DRAW);
Then, all I do is take out the 6 so that the static array becomes
a dynamic one. It compiles fine.
GLfloat[] verts = [ 0.0, 1.0,
-1.0, -1.0,
1.0, -1.0 ];
However, when I run it, the triangle disappears.
According to OpenGL, glBufferData shows: void glBufferData(
ignore, GLsizeiptr size, const GLvoid * data, ignore);
So I thought the best solution would be to simply cast the
dynamic array to a pointer?
So I tried:
glBufferData(GL_ARRAY_BUFFER, verts.sizeof, cast(const GLvoid *)
&verts, GL_STATIC_DRAW);
and
glBufferData(GL_ARRAY_BUFFER, verts.sizeof, cast(const GLvoid *)
verts, GL_STATIC_DRAW);
and
glBufferData(GL_ARRAY_BUFFER, verts.sizeof, verts.ptr,
GL_STATIC_DRAW);
and
glBufferData(GL_ARRAY_BUFFER, verts.sizeof, cast(const GLvoid *)
verts.ptr, GL_STATIC_DRAW);
and
nothing but more blank screens.
Any ideas? Thanks.
More information about the Digitalmars-d-learn
mailing list