mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
256 lines
9.6 KiB
256 lines
9.6 KiB
/********************************************************************* |
|
* * |
|
* Sample implementation of wfc.h, version 1.0, draft 19 * |
|
* * |
|
* Copyright (c) 2007-2009 The Khronos Group * |
|
* * |
|
*********************************************************************/ |
|
|
|
#ifndef _WFC_H_ |
|
#define _WFC_H_ |
|
|
|
#include "wfcplatform.h" |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#define OPENWFC_VERSION_1_0 (1) |
|
|
|
#define WFC_NONE (0) |
|
|
|
#define WFC_INVALID_HANDLE ((WFCHandle)0) |
|
|
|
#define WFC_DEFAULT_DEVICE_ID (0) |
|
|
|
#define WFC_MAX_INT ((WFCint)16777216) |
|
#define WFC_MAX_FLOAT ((WFCfloat)16777216) |
|
|
|
typedef WFCHandle WFCDevice; |
|
typedef WFCHandle WFCContext; |
|
typedef WFCHandle WFCSource; |
|
typedef WFCHandle WFCMask; |
|
typedef WFCHandle WFCElement; |
|
|
|
typedef enum { |
|
WFC_ERROR_NONE = 0, |
|
WFC_ERROR_OUT_OF_MEMORY = 0x7001, |
|
WFC_ERROR_ILLEGAL_ARGUMENT = 0x7002, |
|
WFC_ERROR_UNSUPPORTED = 0x7003, |
|
WFC_ERROR_BAD_ATTRIBUTE = 0x7004, |
|
WFC_ERROR_IN_USE = 0x7005, |
|
WFC_ERROR_BUSY = 0x7006, |
|
WFC_ERROR_BAD_DEVICE = 0x7007, |
|
WFC_ERROR_BAD_HANDLE = 0x7008, |
|
WFC_ERROR_INCONSISTENCY = 0x7009, |
|
WFC_ERROR_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCErrorCode; |
|
|
|
typedef enum { |
|
WFC_DEVICE_FILTER_SCREEN_NUMBER = 0x7020, |
|
WFC_DEVICE_FILTER_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCDeviceFilter; |
|
|
|
typedef enum { |
|
/* Read-only */ |
|
WFC_DEVICE_CLASS = 0x7030, |
|
WFC_DEVICE_ID = 0x7031, |
|
WFC_DEVICE_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCDeviceAttrib; |
|
|
|
typedef enum { |
|
WFC_DEVICE_CLASS_FULLY_CAPABLE = 0x7040, |
|
WFC_DEVICE_CLASS_OFF_SCREEN_ONLY = 0x7041, |
|
WFC_DEVICE_CLASS_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCDeviceClass; |
|
|
|
typedef enum { |
|
/* Read-only */ |
|
WFC_CONTEXT_TYPE = 0x7051, |
|
WFC_CONTEXT_TARGET_HEIGHT = 0x7052, |
|
WFC_CONTEXT_TARGET_WIDTH = 0x7053, |
|
WFC_CONTEXT_LOWEST_ELEMENT = 0x7054, |
|
|
|
/* Read-write */ |
|
WFC_CONTEXT_ROTATION = 0x7061, |
|
WFC_CONTEXT_BG_COLOR = 0x7062, |
|
WFC_CONTEXT_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCContextAttrib; |
|
|
|
typedef enum { |
|
WFC_CONTEXT_TYPE_ON_SCREEN = 0x7071, |
|
WFC_CONTEXT_TYPE_OFF_SCREEN = 0x7072, |
|
WFC_CONTEXT_TYPE_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCContextType; |
|
|
|
typedef enum { |
|
/* Clockwise rotation */ |
|
WFC_ROTATION_0 = 0x7081, /* default */ |
|
WFC_ROTATION_90 = 0x7082, |
|
WFC_ROTATION_180 = 0x7083, |
|
WFC_ROTATION_270 = 0x7084, |
|
WFC_ROTATION_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCRotation; |
|
|
|
typedef enum { |
|
WFC_ELEMENT_DESTINATION_RECTANGLE = 0x7101, |
|
WFC_ELEMENT_SOURCE = 0x7102, |
|
WFC_ELEMENT_SOURCE_RECTANGLE = 0x7103, |
|
WFC_ELEMENT_SOURCE_FLIP = 0x7104, |
|
WFC_ELEMENT_SOURCE_ROTATION = 0x7105, |
|
WFC_ELEMENT_SOURCE_SCALE_FILTER = 0x7106, |
|
WFC_ELEMENT_TRANSPARENCY_TYPES = 0x7107, |
|
WFC_ELEMENT_GLOBAL_ALPHA = 0x7108, |
|
WFC_ELEMENT_MASK = 0x7109, |
|
WFC_ELEMENT_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCElementAttrib; |
|
|
|
typedef enum { |
|
WFC_SCALE_FILTER_NONE = 0x7151, /* default */ |
|
WFC_SCALE_FILTER_FASTER = 0x7152, |
|
WFC_SCALE_FILTER_BETTER = 0x7153, |
|
WFC_SCALE_FILTER_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCScaleFilter; |
|
|
|
typedef enum { |
|
WFC_TRANSPARENCY_NONE = 0, /* default */ |
|
WFC_TRANSPARENCY_ELEMENT_GLOBAL_ALPHA = (1 << 0), |
|
WFC_TRANSPARENCY_SOURCE = (1 << 1), |
|
WFC_TRANSPARENCY_MASK = (1 << 2), |
|
WFC_TRANSPARENCY_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCTransparencyType; |
|
|
|
typedef enum { |
|
WFC_VENDOR = 0x7200, |
|
WFC_RENDERER = 0x7201, |
|
WFC_VERSION = 0x7202, |
|
WFC_EXTENSIONS = 0x7203, |
|
WFC_STRINGID_FORCE_32BIT = 0x7FFFFFFF |
|
} WFCStringID; |
|
|
|
|
|
/* Function Prototypes */ |
|
|
|
/* Device */ |
|
WFC_API_CALL WFCint WFC_APIENTRY |
|
wfcEnumerateDevices(WFCint *deviceIds, WFCint deviceIdsCount, |
|
const WFCint *filterList) WFC_APIEXIT; |
|
WFC_API_CALL WFCDevice WFC_APIENTRY |
|
wfcCreateDevice(WFCint deviceId, const WFCint *attribList) WFC_APIEXIT; |
|
WFC_API_CALL WFCErrorCode WFC_APIENTRY |
|
wfcGetError(WFCDevice dev) WFC_APIEXIT; |
|
WFC_API_CALL WFCint WFC_APIENTRY |
|
wfcGetDeviceAttribi(WFCDevice dev, WFCDeviceAttrib attrib) WFC_APIEXIT; |
|
WFC_API_CALL WFCErrorCode WFC_APIENTRY |
|
wfcDestroyDevice(WFCDevice dev) WFC_APIEXIT; |
|
|
|
/* Context */ |
|
WFC_API_CALL WFCContext WFC_APIENTRY |
|
wfcCreateOnScreenContext(WFCDevice dev, |
|
WFCint screenNumber, |
|
const WFCint *attribList) WFC_APIEXIT; |
|
WFC_API_CALL WFCContext WFC_APIENTRY |
|
wfcCreateOffScreenContext(WFCDevice dev, |
|
WFCNativeStreamType stream, |
|
const WFCint *attribList) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcCommit(WFCDevice dev, WFCContext ctx, WFCboolean wait) WFC_APIEXIT; |
|
WFC_API_CALL WFCint WFC_APIENTRY |
|
wfcGetContextAttribi(WFCDevice dev, WFCContext ctx, |
|
WFCContextAttrib attrib) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcGetContextAttribfv(WFCDevice dev, WFCContext ctx, |
|
WFCContextAttrib attrib, WFCint count, WFCfloat *values) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcSetContextAttribi(WFCDevice dev, WFCContext ctx, |
|
WFCContextAttrib attrib, WFCint value) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcSetContextAttribfv(WFCDevice dev, WFCContext ctx, |
|
WFCContextAttrib attrib, |
|
WFCint count, const WFCfloat *values) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcDestroyContext(WFCDevice dev, WFCContext ctx) WFC_APIEXIT; |
|
|
|
/* Source */ |
|
WFC_API_CALL WFCSource WFC_APIENTRY |
|
wfcCreateSourceFromStream(WFCDevice dev, WFCContext ctx, |
|
WFCNativeStreamType stream, |
|
const WFCint *attribList) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcDestroySource(WFCDevice dev, WFCSource src) WFC_APIEXIT; |
|
|
|
/* Mask */ |
|
WFC_API_CALL WFCMask WFC_APIENTRY |
|
wfcCreateMaskFromStream(WFCDevice dev, WFCContext ctx, |
|
WFCNativeStreamType stream, |
|
const WFCint *attribList) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcDestroyMask(WFCDevice dev, WFCMask mask) WFC_APIEXIT; |
|
|
|
/* Element */ |
|
WFC_API_CALL WFCElement WFC_APIENTRY |
|
wfcCreateElement(WFCDevice dev, WFCContext ctx, |
|
const WFCint *attribList) WFC_APIEXIT; |
|
WFC_API_CALL WFCint WFC_APIENTRY |
|
wfcGetElementAttribi(WFCDevice dev, WFCElement element, |
|
WFCElementAttrib attrib) WFC_APIEXIT; |
|
WFC_API_CALL WFCfloat WFC_APIENTRY |
|
wfcGetElementAttribf(WFCDevice dev, WFCElement element, |
|
WFCElementAttrib attrib) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcGetElementAttribiv(WFCDevice dev, WFCElement element, |
|
WFCElementAttrib attrib, WFCint count, WFCint *values) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcGetElementAttribfv(WFCDevice dev, WFCElement element, |
|
WFCElementAttrib attrib, WFCint count, WFCfloat *values) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcSetElementAttribi(WFCDevice dev, WFCElement element, |
|
WFCElementAttrib attrib, WFCint value) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcSetElementAttribf(WFCDevice dev, WFCElement element, |
|
WFCElementAttrib attrib, WFCfloat value) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcSetElementAttribiv(WFCDevice dev, WFCElement element, |
|
WFCElementAttrib attrib, |
|
WFCint count, const WFCint *values) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcSetElementAttribfv(WFCDevice dev, WFCElement element, |
|
WFCElementAttrib attrib, |
|
WFCint count, const WFCfloat *values) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcInsertElement(WFCDevice dev, WFCElement element, |
|
WFCElement subordinate) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcRemoveElement(WFCDevice dev, WFCElement element) WFC_APIEXIT; |
|
WFC_API_CALL WFCElement WFC_APIENTRY |
|
wfcGetElementAbove(WFCDevice dev, WFCElement element) WFC_APIEXIT; |
|
WFC_API_CALL WFCElement WFC_APIENTRY |
|
wfcGetElementBelow(WFCDevice dev, WFCElement element) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcDestroyElement(WFCDevice dev, WFCElement element) WFC_APIEXIT; |
|
|
|
/* Rendering */ |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcActivate(WFCDevice dev, WFCContext ctx) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcDeactivate(WFCDevice dev, WFCContext ctx) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcCompose(WFCDevice dev, WFCContext ctx, WFCboolean wait) WFC_APIEXIT; |
|
WFC_API_CALL void WFC_APIENTRY |
|
wfcFence(WFCDevice dev, WFCContext ctx, WFCEGLDisplay dpy, |
|
WFCEGLSync sync) WFC_APIEXIT; |
|
|
|
/* Renderer and extension information */ |
|
WFC_API_CALL WFCint WFC_APIENTRY |
|
wfcGetStrings(WFCDevice dev, |
|
WFCStringID name, |
|
const char **strings, |
|
WFCint stringsCount) WFC_APIEXIT; |
|
WFC_API_CALL WFCboolean WFC_APIENTRY |
|
wfcIsExtensionSupported(WFCDevice dev, const char *string) WFC_APIEXIT; |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif /* _WFC_H_ */
|
|
|