Se si vuole costruire una stringa, probabilmente si può utilizzare snprintf()
:
const unsigned red = 0, green = 0x19, blue = 0x06;
char hexcol[16];
snprintf(hexcol, sizeof hexcol, "%02x%02x%02x", red, green, blue);
Questo costruisce il hexcol` stringa di 001906" in
, che è come ho scelto di interpretare il colore esempio (che è solo quattro cifre quando dovrebbe essere sei).
Sembra che tu sia confuso dal fatto che il simbolo del preprocessore GL_ALPHA
sia definito come 0x1906
nei file di intestazione di OpenGL. Questo non è un colore, è un identificatore di formato utilizzato con chiamate API OpenGL che gestiscono i pixel, in modo che sappiano quale formato aspettarsi.
Se si dispone di un'immagine PNG in memoria, il formato GL_ALPHA
corrisponderebbe a solo i valori alfa nell'immagine (se presente), quanto sopra è qualcosa di totalmente diverso, dato che produce una stringa. OpenGL non avrà bisogno di una stringa, avrà bisogno di un buffer in-memory contenente i dati nel formato richiesto.
Vedere la pagina di manuale glTexImage2D()
per una discussione su come funziona.
In quel numero, '0x1906', quali bit rappresentano i diversi colori? –
Non ne sono sicuro. Ma dovrebbe essere come una sequenza RGB! Non so se risponde alla tua domanda. Scusate! – Tahlil
Aspetta, vuoi convertire in qualche formato ma non sai quale sia quel formato? C'è solo un modo per risolvere questo problema, e nessuno può davvero aiutarti in questo. –