Hallo zusammen,
ich betreibe zurzeit etwas refactoring in meinem Projekt und räume den Code auf, den ich in letzter Zeit implementiert habe.
Dabei bin ich auf folgendes Problem gestoßen. Wenn man folgendes implementiert.
Problem
|
C-/C++-Quelltext
|
1
|
void setShaderParameters(Light *light, Camera *camera, XMMATRIX world, XMMATRIX view, XMMATRIX projection);
|
Hier kommt es dann zu einem C2719 Compilerfehler ('parameter': formal parameter with __declspec(align('#')) won't be aligned).
Über google kam ich zu keinem ordentlichen Ergebnis und erst das Einführen von Zeigern löste das Problem.
Lösung
|
C-/C++-Quelltext
|
1
|
void setShaderParameters(Light *light, Camera *camera, XMMATRIX *world, XMMATRIX *view, XMMATRIX *projection);
|
Oder auf XMMATRIX verzichten und D3DMATRIX benutzen, wobei ich das keine schöne Lösung finde.
|
C-/C++-Quelltext
|
1
|
void setShaderParameters(Light *light, Camera *camera, D3DXMATRIX world, D3DXMATRIX view, D3DXMATRIX projection);
|
Ich kann mir nicht erklären, warum das so ist. Falls jemand von euch eine Erklärung hat, dann hier bitte posten.
Als Entwicklungsumgebung nutze ich derzeit VS2008 Express.
Schönen Gruß
Fb