1
\$\begingroup\$

It is possible the topic (not using VBO)?

in the OpenGL 3.0 compatible profile I can to draw this way:

GLint position_index = attrib_location_get("VertexPosition");
gl::EnableVertexAttribArray(position_index);
gl::VertexAttribPointer(position_index, 3, gl::FLOAT, false, 0, pos_Data);
gl::DrawArrays(gl::TRIANGLES, 0, count_of_vertices);

Bat in the OpenGL 3.3 core profile it displays a blank screen. It is right?

\$\endgroup\$

2 Answers 2

2
\$\begingroup\$

Yes, this is correct.

From the OpenGL 3.3 specification, section E.2.2: Removed Features:

Client vertex and index arrays - all vertex array attribute and element array index pointers must refer to buffer objects. The default vertex array object (the name zero) is also deprecated. Calling VertexAttribPointer when no buffer object or no vertex array object is bound will generate an INVALID_OPERATION error, as will calling any array drawing command when no vertex array object is bound.

\$\endgroup\$
0
\$\begingroup\$

We're missing half the example here, but I assume you are trying to display directly from a RAM-stored buffer.

This is simply not possible in core profile. You need to upload your data into VRAM via a VBO, then display it from there.

\$\endgroup\$
1
  • \$\begingroup\$ I don't think the data has to actually be in VRAM to render. That's driver's business. \$\endgroup\$ May 20, 2021 at 10:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .