OpenGL-API icon indicating copy to clipboard operation
OpenGL-API copied to clipboard

Function signature description error

Open smile-zyk opened this issue 1 year ago • 3 comments

There is a function signature error on page 369 of https://registry.khronos.org/OpenGL/specs/gl/glspec46.core.pdf

void MultiDrawArraysIndirectCount( enum mode, const
void *indirect, intptr drawcount, intptr maxdrawcount,
sizei stride );

According to the description below: maxdrawcount specifies the maximum number of draws that are expected to be stored in the buffer, The variable maxdrawcount seems to have a sizei type. And i found the signature of this function in glad as

#define glMultiDrawArraysIndirectCount glad_glMultiDrawArraysIndirectCount
typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)(GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);

I think the type of intptr is very confusing and hard to understand

smile-zyk avatar Apr 16 '24 08:04 smile-zyk

Was this ever fixed? Only thing I can find is this, but this is a while ago and the spec still seems to have this issue? https://github.com/KhronosGroup/OpenGL-API/issues/17

NogginBops avatar Apr 26 '24 10:04 NogginBops

Was this ever fixed? Only thing I can find is this, but this is a while ago and the spec still seems to have this issue? #17

I noticed that there are many other function signatures in opengl that also use ptr as the type for size (e.g., size in glBufferData), so I thought maybe this is a convention to ensure that this variable is always byte aligned?

smile-zyk avatar May 06 '24 08:05 smile-zyk

@oddhack WG has resolved that this is an error. Please make the following changes:

  • change parameters drawcount and maxdrawcount to be type sizei in the specification
  • change parameter drawcount to be type sizei in the headers

zmike avatar May 08 '24 15:05 zmike