Noch einmal habe ich ein Problem mit meinem Compute Shader ... Ich würde gerne eine Struktur, die einen Zeiger enthält, an einen Compute Shader übergeben. Dies ist mein Strukturbeispiel:Zeiger auf Eingabestruktur des Compute Shaders
struct couleurStruct {
float r;
float g;
float b;
float a;
float *x;
};
Hier ist meine SSBO Initialisierung:
couleurStruct *coul;
coul = (couleurStruct *)glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, 1 * sizeof(couleurStruct), bufMask);
//coul->x = (float *)glMapBufferRange(GL_SHADER_STORAGE_BUFFER, 0, 1 * sizeof(float), bufMask);
coul->r = 0.0;
coul->g = 1.0;
coul->b = 0.0;
coul->a = 1.0;
coul->x[0] = 0.5;
glUnmapBuffer(GL_SHADER_STORAGE_BUFFER);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 4, structBuffer);
ich eine Menge verschiedener Initialisierungen versucht, aber ohne Erfolg ...
, also ist es eine Möglichkeit, um den gesamten benötigten Speicher zuzuweisen (weil ich den Speicher kenne, den ich in jedem Array benötige, auf den meine Zeiger zeigen), und ihn an den Compute-Shader weiterleiten? Oder ist es wirklich unmöglich, einen Zeiger auf einen Compute-Shader zu übergeben?
Vielen Dank für Ihre Hilfe!
Nochmals vielen Dank! Also werde ich meine Zeiger als statische Felder ändern ... Natürlich ist der obige Code nur ein Testcode, nicht der, an dem ich wirklich arbeite. – bRiocHe