У меня есть функция, как следующее:Параметр не проходит правильно
void Direct3DRenderer::CreatePrimitive(char *name, Direct3DHelper::VERTEX vertices[])
{
LPDIRECT3DVERTEXBUFFER9 vertex_buf;
d3d_dev->CreateVertexBuffer(4 * sizeof(Direct3DHelper::VERTEX), 0, Direct3DHelper::FVF, D3DPOOL_MANAGED, &vertex_buf, NULL);
VOID *pVoid;
vertex_buf->Lock(0, 0, (void**)&pVoid, 0);
memcpy(pVoid, vertices, sizeof(vertices));
vertex_buf->Unlock();
primitiveMap[name] = vertex_buf;
}
По какой-то причине, что SizeOf (вершины) не дает мне правильное значение, или что-то. Это то, что я ввода:
Direct3DHelper::VERTEX verticesA[] =
{
{ 0, 0, 0, 1, D3DCOLOR_XRGB(255, 0, 0) },
{ 10, 0, 0, 1, D3DCOLOR_XRGB(0, 255, 0) },
{ 0, 10, 0, 1, D3DCOLOR_XRGB(255, 255, 0) },
{ 10, 10, 0, 1, D3DCOLOR_XRGB(0, 0, 255) }
};
Если я не передать его в функцию и просто заменить все «вершины» с «verticesA,» это работает ... Пожалуйста, помогите.
Обратите внимание, что [Clang] (http://coliru.stacked-crooked.com/a/472ac49e538386e6) и [GCC] (http://coliru.stacked-crooked.com/a/489c2b99c1856a4f) предупреждают об этом , – chris