so I have been struggling with this problem for a while and have tried many different ways of doing it. Currently I am loading in a binary file that is in bytes and sending it to openGL however nothing is rendering.
this is how I have been creating the binary file
binaryFloat x,y,z,w,u,v,normx,normy,normz;
x.f = PD[i].x;
y.f = PD[i].y;
z.f = PD[i].z;
w.f = PD[i].w;
u.f = PD[i]._U;
v.f = PD[i]._V;
normx.f = PD[i].norm.X;
normy.f = PD[i].norm.Y;
normz.f = PD[i].norm.Z;
fout << x.container[0] << x.container[1] << x.container[2] << x.container[3]
<< y.container[0] << y.container[1] << y.container[2] << y.container[3]
<< z.container[0] << z.container[1] << z.container[2] << z.container[3]
<< w.container[0] << w.container[1] << w.container[2] << w.container[3]
<< u.container[0] << u.container[1] << u.container[2] << u.container[3]
<< v.container[0] << v.container[1] << v.container[2] << v.container[3]
<< normx.container[0] << normx.container[1] << normx.container[2] << normx.container[3]
<< normy.container[0] << normy.container[1] << normy.container[2] << normy.container[3]
<< normz.container[0] << normz.container[1] << normz.container[2] << normz.container[3];
binaryFloat is a union containing a float and a char[sizeof(float)]. PD is a packedData vector that contains preparsed data.
Here is where I load it up in my engine:
std::ifstream objFile(filename, std::ios::binary);
if (objFile.is_open())
{
unsigned int length;
char *data;
objFile.seekg(0, std::ios::end);
length = objFile.tellg();
data = new char[length];
objFile.seekg(0, std::ios::beg);
objFile.read(data, length);
objFile.close();
e->m_BufferSize = (length / (sizeof(float) * 9));
glGenVertexArrays(1, &e->m_VAO);
glBindVertexArray(e->m_VAO);
glGenBuffers(1, &e->m_Buffer);
glBindBuffer(GL_ARRAY_BUFFER, e->m_Buffer);
glBufferData(GL_ARRAY_BUFFER, length, data, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glEnableVertexAttribArray(1);
glEnableVertexAttribArray(2);
glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, sizeof(float) * 9, BUFFER_OFFSET(0));
glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, sizeof(float) * 9, BUFFER_OFFSET(sizeof(float) * 4));
glVertexAttribPointer(2, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 9, BUFFER_OFFSET(sizeof(float) * 6));
glBindVertexArray(NULL);
}
in this snippet I am loading in the file and sending it to openGL and setting the vbo settings in the VAO. When I run this code data does contain the file so I am not sure why its not rendering.
Thanks for your help and insight in advance:).