2 * psychlops_io_display_Win32.h
3 * Psychlops Standard Library (Win32)
5 * Last Modified 2009/03/02 by Kenchi HOSOKAWA
6 * (C) 2009 Kenchi HOSOKAWA, Kazushi MARUYA, Takao SATO
12 #include "../../core/graphic/psychlops_g_canvas.h"
18 typedef std::vector<Display> Displays;
20 class APIDisplayProperties {
22 static BOOL CALLBACK DisplayEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData);
23 static Displays displays;
30 DEVMODE mode_, original_mode_;
31 enum { RAMP_STEPS_ = 256 };
32 struct GAMMA_RAMP_TABLE {
37 GAMMA_RAMP_TABLE savedGammaRamp_;
38 LPVOID savedGammaRamp_ptr_;
41 static Displays emumDisplays();
44 APIDisplayProperties();
45 ~APIDisplayProperties();
47 void getInfo(int &width, int &height, int &color_depth, double &refresh_rate, std::string& name, Rectangle& area);
48 /* void setGammaValue(const double gamma_r, const double gamma_g, const double gamma_b);
49 void setGammaTable(const std::vector<double> &table_r, const std::vector<double> &table_g, const std::vector<double> &table_b);
50 void setGammaTable(const CGGammaValue * const table_r, const CGGammaValue * const table_g, const CGGammaValue * const table_b, const int num_steps);
51 void saveGammaValue();
52 void destroyGammaSettings();
53 int getCalibrationMode();
58 } /* <- namespace Psycholops */