GLSL "in" structs

Darf ich nicht verwenden, eine Struktur mit der in Stichwort, ich bin? Zum Beispiel:

struct Rect {
    float x,y,width,height;
};

layout(location = 7) in Rect TexSrc;

Ist es schwierig zu Google, aber ich erhalte eine Fehlermeldung, wenn ich versuche, um meine GLSL shader (INVALID_OPERATION). Es scheint, ich bin nutzen dürfen float[4] jedoch.

Wenn ich bin nicht erlaubt, ein struct, was empfehlen Sie ich tun? Konstruieren Sie die Struktur aus einem float[4] oder saugen Sie es auf, verzichten auf die nette API und verwenden Indizes 0-3 überall?

(A vec4 hier arbeiten würde, als gut, ich weiß, aber z und w haben nicht ganz die gleiche Bedeutung wie "Breite" und "Höhe", und dies ist nur ein Beispiel)

Ich nehme an, Sie können geben Sie nur eine einzige Art pro Standort mit glVertexAttribPointer, damit ich sehen kann, warum eine Struktur wäre nicht zulässig... ich versuche nur zu denken, ein Weg, um meinen code sauber und ledgible ohne Kompromisse bei der Leistung.

InformationsquelleAutor mpen | 2012-02-14
Schreibe einen Kommentar