2010-12-13 5 views
5

Sto cercando di creare un semplice bot per un gioco web, quindi mi piacerebbe poter leggere il colore di un pixel sullo schermo. L'ho fatto su Windows con GetPixel(), ma non riesco a capirlo su OS X. Ho cercato online e ho trovato glReadPixel. Quando ho creato un semplice strumento da riga di comando in XCode, ho inserito il seguente codice. Tuttavia, non riesco a farlo funzionare. Continuo a ricevere un errore di EXC_BAD_ACCESS da questo:Come si legge un pixel fuori dallo schermo?

GLfloat r; 
glReadPixels(0, 0, 1, 1, GL_RED, GL_FLOAT, &r); 

ho pensato che il codice di cui sopra sarebbe memorizzare il valore rosso del pixel (0,0) in r. Oh, mi piacerebbe evitare di adottare un approccio per screen shot perché è lento. Qualsiasi aiuto?

P.S. Con lo strumento da riga di comando, il mio obiettivo finale è creare uno script bash o un applescript, poiché ho già uno strumento da riga di comando che può fare clic sullo schermo.

+0

Avete un contesto OpenGL attivo quando chiamate 'glReadPixels()'? – genpfault

+0

No. Potresti per favore indicarmi la giusta direzione? – hassaanm

+0

Mi piacerebbe che il contesto OpenGL attivo fosse la schermata principale. – hassaanm

risposta

4

glReadPixels riguarda solo la lettura di un pixel dal frame buffer (l'area in cui viene disegnata la scheda grafica).

I pixel di lettura dalla "schermata" non sono affatto correlati a OpenGL. Per questo hai bisogno di funzioni specifiche del sistema.

+0

Oh grazie. Vuoi sapere come sarei in grado di ottenere un pixel dello schermo su un Mac? – hassaanm

+0

No, non bevo macs. :) – Kos