mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-15 03:35:55 +00:00
257 lines
9.6 KiB
C
257 lines
9.6 KiB
C
/*********************************************************************
|
|
* *
|
|
* 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_ */
|