ive only written the part of the object loader that loads the vertices into the GL_ELEMENT_ARRAY_BUFFER buffer.
here is my code for the function to load the elements into a buffer:
int drawObject(char *name)
{
FILE *fp;
char line[100];
unsigned int sizebuf = 0;
unsigned int offset = 0;
GLdouble xyz[3];
GLuint buf;
GLuint indices[] = {0, 1, 2};
glGenBuffers(1, &buf);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buf);
if ((fp = fopen(name, "r")) == NULL)
{
return FILECANTOPEN;
}
while (fgets(line, 100, fp) != NULL)
{
if (line[0] == 'v')
{
sizebuf += 3;
}
if (line[0] == 'f')
{
break;
}
}
fseek(fp, 0, SEEK_SET);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, (GLsizei)(sizeof(GLdouble) * sizebuf), NULL, GL_STREAM_DRAW);
while (fgets(line, 100, fp) != NULL)
{
if (line[0] == 'v')
{
sscanf(line, "v %lf %lf %lf", &xyz[0], &xyz[1], &xyz[2]);
printf("X = %lf; Y = %lf; z = %lf.
", xyz[0], xyz[1], xyz[2]);
glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, (GLint)(sizeof(GLdouble) * offset), (GLint)(sizeof(xyz)), xyz);
offset += 3;
}
}
printf("got here
");
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, (GLvoid *)indices);
printf("got here 2");
return SUCCESS;
}
it gets to the first “got here” but crashes saying "segmentation fault (core dumped). i keep this function in its own c file seperate from my initialization function, does that make any problems? any thing would be appreciated. thanks much
edit: the last lines of codeare just to test drawing something before i get to drawing each primitive in the object file primitive by primitive.