Desidero avere la stessa sorgente di shader per OpenGL ES e OpenGL (Windows). Per fare questo voglio definire i tipi di dati personalizzati e utilizzare solo le funzioni OpenGL ES.Shader compatibili OpenGL ES e OpenGL
Un approccio è quello di definire:
#define highp
#define mediump
#define lowp
per Windows shader e scrivere lo shader come lo è per OpenGL ES.
altro approccio è quello di definire i tipi di dati personalizzati come questo per OpenGL ES:
#define hvec2 highp vec2
e come questo per Windows
#define hvec2 vec2
Cosa pensi sia meglio? Avete altre soluzioni per questo problema?
Qualcuno sa come funziona? Ho sfogliato le specifiche ma non sono riuscito a trovare nulla relativo a come un GLSL ES (versione 100) e GLSL (versione 150) sarebbero stati affatto compatibili. –
Per riferimento futuro ho scoperto che in ES2_compatibility un contesto OpenGL 3.2> può caricare shader ES 2.0 con #versione 100 in alto. –