Контрольная подсветка ЖК-дисплея в OS X за пределами API системы

Комплект поставки I/O (через IODisplaySetFloatParameter) позволяет установить яркость дисплея в заданном диапазоне. Тем не менее, я помню, как мои предыдущие ноутбуки значительно уменьшались при самом низком уровне.

Различные утилиты для уменьшения яркости экрана изменяют настройки гаммы, и это еще больше уменьшает отображение. Однако качественное различие в изменении и то, как эти утилиты используют таблицы RGB, заставляет меня подозревать, что параметр Gamma ТОЛЬКО изменяет таблицы цветов, а не светодиодная подсветка.

Кто-нибудь знает частный API (или как я их найду), который позволяет мне отображать экран на что-то ниже, чем позволяет IODisplaySetFloatParameter?

Ответ 1

Аппаратное обеспечение такого типа имеет тенденцию использовать PWM (широтно-импульсная модуляция), поскольку светодиоды по своей природе не регулируются яркостью; то есть аппаратное обеспечение будет отключать и выключать светодиоды очень быстро, гарантируя, что когда он установлен на максимальную яркость, светодиоды будут в 100% случаев, тогда как при минимальной яркости светодиод будет фактически отключен для большей части каждого цикла.

Это приводит к следующему наблюдению: нет особой причины, по которой вы не можете реализовать свою собственную ШИМ в программном обеспечении, переключать подсветку вкл и выкл и контролировать долю времени, которое она проводит в каждом состоянии. Недостатком является то, что вы хотите сделать это быстро, чтобы он не выглядел, как мерцание, и это сгорит какой-то процессор. Возможно, вам захочется исследовать, нужно ли запускать аппаратный PWM так же, как ваш (с тех пор ваш компьютер может работать несколько медленнее), установив яркость дисплея на значение, отличное от 100% для части цикла "on".

Во всяком случае, просто идея.