glVertexAttribPointer の最後の属性は const GLvoid* 型です。しかし、それは本当にポインタですか?実はオフセットです。0 を指定すると、オフセットへの null ポインターではなく、0 のオフセットを意味します。私のエンジンでは、次の関数を使用します。
void AbstractVertexData::vertexAttribPtr(int layout) const
{
glVertexAttribPointer(layout,
getShaderAttribs()[layout]->nbComponents,
static_cast<GLenum>(getShaderAttribs()[layout]->attribDataType),
getShaderAttribs()[layout]->shouldNormalize,
getVertexStride(layout),
reinterpret_cast<const void*>(getVertexAttribStart(layout)));
}
getVertexAttribStart は intptr_t を返します。drmemory を実行すると、「未初期化読み取り」と表示され、その警告を削除したいと考えています。この警告は、reinterpret_cast から発生します。私の値はポインターではないので、 const void* に static_cast することはできません。この警告を修正するにはどうすればよいですか?