2010-12-13 3 views
5

Я пытаюсь сделать простой бот для веб-игры, поэтому я хотел бы иметь возможность прочесть цвет пикселя на экране. Я сделал это в Windows с помощью GetPixel(), но я не могу понять, что это на OS X. Я смотрел онлайн и сталкивался с glReadPixel. Когда я сделал простой инструмент командной строки в XCode, я ввел следующий код. Однако я не могу заставить его работать. Я получаю ошибку EXC_BAD_ACCESS от этого:Как читать пиксель экрана?

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

Я подумал, приведенный выше код будет хранить значение красного пикселя в точке (0,0) в г. О, я бы хотел избежать подхода к экрану, потому что это медленно. Любая помощь?

P.S. С помощью инструмента командной строки моя конечная цель - создать скрипт bash или applescript, так как у меня уже есть инструмент командной строки, который можно щелкнуть по экрану.

+0

У вас есть активный контекст OpenGL при вызове 'glReadPixels()'? – genpfault

+0

Нет. Не могли бы вы указать мне в правильном направлении? – hassaanm

+0

Я бы хотел, чтобы активный контекст OpenGL был основным экраном. – hassaanm

ответ

4

glReadPixels беспокоится только о чтении пикселя из буфера кадра (область, в которую рисует ваша видеокарта).

Чтение пикселей из «экрана» вообще не связано с OpenGL. Для этого вам нужны системные функции.

+0

О, спасибо. Не могли бы вы узнать, как я смогу получить пиксель экрана на Mac? – hassaanm

+0

Нет, я не помню маков. :) – Kos

Смежные вопросы