Ich versuche, eine Header-Datei in einen Metall-Shader aufzunehmen. Für einen Prototyp wie diese,Metal: unbekannter Typ Name float4
float4 someFunction(float4 v);
ich diese Fehlermeldung erhalten,
Unknown type name 'float4'; did you mean 'float'?
Es es es ist ein Header für ein Shader-Programm nicht verstehen scheint ... Auch wenn andere Fehler es vorschlagen tut . wenn ich den Adressraum beispielsweise nicht hier angeben,
static float someK = 2.0;
ich diesen Fehler erhalten,
Global variables must have a constant address space qualifier
die behoben werden kann, wenn ich
constant static float someK = 2.0;
hinzufügen Wenn ich Referenzen, bekomme ich auch diese Art von Fehlern,
Reference type must include device, threadgroup, constant, or thread address space qualifier
Es sieht also so aus, als ob der Compiler weiß, dass es ein Shader ist. Warum weiß es float4 nicht? :(
Dank brauchte ich nicht die metal_stdlib enthalten in.! meine Header-Datei, aber ich wusste nicht, dass ich den Metall-Namensraum in der Kopfzeile für die Vektor-Typen brauchte ... dumm! Danke nochmal :) – endavid
Das geht bei mir nicht - hat sich in letzter Zeit etwas geändert? Es funktioniert in einem normalen Header, aber nicht in einem Bridging-Header, der sowohl von Swift als auch von Metal verwendet werden kann. – bsabiston