diff options
Diffstat (limited to 'src/lib/fake-quartz-cg.h')
-rw-r--r-- | src/lib/fake-quartz-cg.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/lib/fake-quartz-cg.h b/src/lib/fake-quartz-cg.h index f32c1b1..b3d8c83 100644 --- a/src/lib/fake-quartz-cg.h +++ b/src/lib/fake-quartz-cg.h @@ -43,25 +43,79 @@ #include <stdint.h> +/** + * Numerical `typedef` for errors that occur in CoreGraphics calls. + */ typedef int32_t CGError; + +/** + * The call was successful. + */ #define kCGErrorSuccess 0 +/** + * The data type that is used for the values in the gamma ramps. + */ typedef float CGGammaValue; + +/** + * The data type for display ID:s. + */ typedef uint32_t CGDirectDisplayID; +/** + * Get a list of all online displays on the system. + * + * @param max_size The number of elements allocated for `displays_out`. + * @param displays_out List ot fill with the ID for each online display on the system. + * @param count_out Output parameter for the number of elements stored in `displays_out`. + * if `displays_out` is too small to fit all display ID:s, + * `*count_out` will be `max_size`. + * @return `kCGErrorSuccess` on success, and error number of failure. + */ CGError CGGetOnlineDisplayList(uint32_t max_size, CGDirectDisplayID* restrict displays_out, uint32_t* restrict count_out); +/** + * Set the gamma ramps for a display. + * + * @param display The ID of the display. + * @param gamma_size The number of stops in gamma ramps. + * @param red The gamma ramp for the red channel. + * @param green The gamma ramp for the green channel. + * @param blue The gamma ramp for the blue channel. + * @return `kCGErrorSuccess` on success, and error number of failure. + */ CGError CGSetDisplayTransferByTable(CGDirectDisplayID display, uint32_t gamma_size, const CGGammaValue* red, const CGGammaValue* green, const CGGammaValue* blue); +/** + * Get the current gamma ramps for a display. + * + * @param display The ID of the display. + * @param gamma_size The number of stops you have allocated for the gamma ramps. + * @param red Table allocated for the gamma ramp for the red channel. + * @param green Table allocated for the gamma ramp for the green channel. + * @param blue Table allocated for the gamma ramp for the blue channel. + * @param gamma_size_out Output parameter for the actual number of stops in the gamma ramps. + * @return `kCGErrorSuccess` on success, and error number of failure. + */ CGError CGGetDisplayTransferByTable(CGDirectDisplayID display, uint32_t gamma_size, CGGammaValue* restrict red, CGGammaValue* restrict green, CGGammaValue* restrict blue, uint32_t* restrict gamma_size_out); +/** + * Restore each display's gamma ramps to the settings in ColorSync. + */ void CGDisplayRestoreColorSyncSettings(void); +/** + * Get the number of stops in the gamma ramps for a display. + * + * @param display The ID of the display. + * @return The number of stops in the gamma ramps. + */ uint32_t CGDisplayGammaTableCapacity(CGDirectDisplayID display) __attribute__((const)); @@ -70,6 +124,10 @@ uint32_t CGDisplayGammaTableCapacity(CGDirectDisplayID display) __attribute__((c * CoreGraphics does not have this function, it is added so * that there is a way to cleanly close the X connection * and free resources needed by this module. */ + +/** + * Release resources used by the backend. + */ void close_fake_quartz_cg(void); |