Общие понятия, из которых становится ясно, что не всё так просто.
www.astronomy.ru/forum/index.php?topic=1515.0 — правильный форум по теме. Там ряд полезных ссылок; поскольку топик старый, не все ссылки действительны, к сожалению. Но по названиям сориентироваться хотя бы.
Да бросьте вы это, платформы слишком разные чтобы можно было написать качественный, быстрый, кросплатформенный фреймворк, если ваше приложение общается с системными вещами можно сразу писать приложения отдельно.
Если приложение использует OpenGL, то достаточно будет написать функцию-обертку к glColor (ну и к glMaterial и glLight, если они используются) примерно такого вида: void SetColor(float R, float G, float B, float A)
{
if (!NightMode)
glColor4f(R, G, B, A);
else
glColor4f(R, 0, 0 A);
}