diff options
Diffstat (limited to 'src/lib/fake-w32-gdi.h')
-rw-r--r-- | src/lib/fake-w32-gdi.h | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/src/lib/fake-w32-gdi.h b/src/lib/fake-w32-gdi.h deleted file mode 100644 index bcc2fa9..0000000 --- a/src/lib/fake-w32-gdi.h +++ /dev/null @@ -1,248 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#ifndef LIBGAMMA_FAKE_W32_GDI_H -#define LIBGAMMA_FAKE_W32_GDI_H - -#ifndef FAKE_LIBGAMMA_METHOD_W32_GDI -# error Including fake-w32-gdi.h without FAKE_LIBGAMMA_METHOD_W32_GDI -#endif - - -#ifndef __GNUC__ -# define __attribute__(x) -#endif - -#include <stdint.h> - - -/** - * One of the Windows `typedef`:s for unsigned 16-bit integer - * This is the one used in these functions - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#WORD - */ -typedef uint16_t WORD; - -/** - * One of the Windows `typedef`:s for unsigned 32-bit integer - * This is the one used in these functions - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#DWORD - */ -typedef uint32_t DWORD; - -/** - * One of the Windows `typedef` for booleanic values, the `int` variant - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#BOOL - */ -typedef int BOOL; - -/** - * Windows `typedef` for a device context (the 'h' stands for 'handle') - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#HDC - */ -typedef void *HDC; - -/** - * Windows `typedef` for a window (the 'h' stands for 'handle') - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#HWND - */ -typedef void *HWND; - -/** - * One of the Windows `typedef`:s for `void *`, a generic pointer - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#LPVOID - */ -typedef void *LPVOID; - -/** - * A silly Windows `typedef` for a `const char *`, a constant string - * - * It is also defined as NUL-terminated, but so are all C-strings - * and it makes no difference. However if `UNICODE` were to be defined - * it would be `const wchar_t *`. - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#LPCTSTR - */ -typedef const char *LPCTSTR; - -/** - * Even more silly. A Windows `typedef` for either `wchar_t` or - * `char`, depending on whether `UNICODE` is defined (we will - * assume `UNICODE` is not definied because that is just silly) - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#TCHAR - */ -typedef char TCHAR; - -/** - * Apperently we need `TRUE` to be defined to understand code, - * at least in Windows... - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#BOOL - */ -#define TRUE 1 - -/** - * Apperently we need `FALSE` to be defined to understand code, - * at least in Windows... - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx#BOOL - */ -#define FALSE 0 - - - -/** - * Get the device context for a window or the entire screen - * - * @param hWnd The window, `NULL` for the entire screen - * @return The device context - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd144871(v=vs.85).aspx - */ -HDC GetDC(HWND); - -/** - * Free a device context - * - * @param hWnd The window whose device context is `hDC`, `NULL` for the entire screen - * @param hDC The device context to free - * @return Whether the call was successful - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd162920(v=vs.85).aspx - */ -int ReleaseDC(HWND, HDC); - - -/** - * Get information (capabilities) for a device context - * - * @param hDC The device context - * @param nIndex The information to retrieve, may be `COLORMGMTCAPS` - * @return The details of the queried information, can return `CM_GAMMA_RAMP` - * if `nIndex` is `COLORMGMTCAPS` - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd144877(v=vs.85).aspx - */ -int GetDeviceCaps(HDC, int) __attribute__((const)); - -/** - * Colour management capabilities - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd144877(v=vs.85).aspx - */ -#define COLORMGMTCAPS 1 - -/** - * Colour management capabilities: has gamma ramps - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd144877(v=vs.85).aspx - */ -#define CM_GAMMA_RAMP 1 - - -/** - * Set the gamma ramps for a device - * - * @param hDC The device context - * @param lpRamp The gamma ramps joined in the order: red, green, blue; - * this is a `WORD *` casted to `void *` - * @return Whether the call was successful - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd372194(v=vs.85).aspx - */ -BOOL SetDeviceGammaRamp(HDC, LPVOID restrict); - -/** - * Get the current gamma ramps for a device - * - * @param hDC The device context - * @param lpRamp The output for the gamma ramps joined in the order: red, green, blue - * This is a `WORD *` casted to `void *` - * @return Whether the call was successful - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd316946(v=vs.85).aspx - */ -BOOL GetDeviceGammaRamp(HDC, LPVOID restrict); - - -/** - * Get the context for a device - * - * @param lpszDriver The driver or a display device, use "DISPLAY" if you want a display - * @param lpszDevice The name of the device. If you want a display use can use the member - * name `DeviceName` in the third parameter, an output parameter, of - * `EnumDisplayDevices`. - * @param lpszOutput We will always use `NULL` here - * @param lpInitData We will always use `NULL` here; this should actually by a `const DEVMODE *` - * @return The context for the device - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd183490(v=vs.85).aspx - */ -HDC CreateDC(LPCTSTR restrict, LPCTSTR restrict, LPCTSTR restrict, const void *restrict); - -/** - * This macro does not seem to have an official documentation that is correct - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd183490(v=vs.85).aspx - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd374074(v=vs.85).aspx - */ -#define TEXT(X) ((LPCTSTR)(X)) - - -/** - * Information about a display device - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd183569(v=vs.85).aspx - */ -typedef struct { - /** - * Set this to `sizeof(DISPLAY_DEVICE)` - */ - DWORD cb; - - /** - * The name of the device - */ - TCHAR DeviceName[32]; - - /** - * The status of the device, can include `DISPLAY_DEVICE_ACTIVE` - */ - DWORD StateFlags; - -} DISPLAY_DEVICE; - -/** - * Appearently we are incapable of putting asterisks at the - * end of types names, so istead we preprend them with 'P' - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd183569(v=vs.85).aspx - */ -typedef DISPLAY_DEVICE *PDISPLAY_DEVICE; - -/** - * The monitor is "on" - * - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd183569(v=vs.85).aspx - */ -#define DISPLAY_DEVICE_ACTIVE 1 - -/** - * Get a display device by its name or index - * - * @param lpDevice The name of the device, use `NULL` to base the call on `iDevNum` instead - * @param iDevNum The index of the device - * @param lpDisplayDevice Output for the found device - * @param dwFlags Flags, we will always use zero - * @return Whether the call was successful; zero is also returned if `iDevNum` - * is greater than the largest device index on the system - * @see http://msdn.microsoft.com/en-us/library/windows/desktop/dd162609(v=vs.85).aspx - */ -BOOL EnumDisplayDevices(LPCTSTR restrict, DWORD, PDISPLAY_DEVICE restrict, DWORD) - - - -#ifndef __GNUC__ -# undef __attribute__ -#endif - -#endif |