forked from PojavLauncherTeam/PojavLauncher
-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
21,984 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,332 @@ | ||
/* | ||
* Mesa 3-D graphics library | ||
* | ||
* Copyright (C) 1999-2005 Brian Paul All Rights Reserved. | ||
* | ||
* Permission is hereby granted, free of charge, to any person obtaining a | ||
* copy of this software and associated documentation files (the "Software"), | ||
* to deal in the Software without restriction, including without limitation | ||
* the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
* and/or sell copies of the Software, and to permit persons to whom the | ||
* Software is furnished to do so, subject to the following conditions: | ||
* | ||
* The above copyright notice and this permission notice shall be included | ||
* in all copies or substantial portions of the Software. | ||
* | ||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | ||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
* OTHER DEALINGS IN THE SOFTWARE. | ||
*/ | ||
|
||
|
||
/* | ||
* Mesa Off-Screen rendering interface. | ||
* | ||
* This is an operating system and window system independent interface to | ||
* Mesa which allows one to render images into a client-supplied buffer in | ||
* main memory. Such images may manipulated or saved in whatever way the | ||
* client wants. | ||
* | ||
* These are the API functions: | ||
* OSMesaCreateContext - create a new Off-Screen Mesa rendering context | ||
* OSMesaMakeCurrent - bind an OSMesaContext to a client's image buffer | ||
* and make the specified context the current one. | ||
* OSMesaDestroyContext - destroy an OSMesaContext | ||
* OSMesaGetCurrentContext - return thread's current context ID | ||
* OSMesaPixelStore - controls how pixels are stored in image buffer | ||
* OSMesaGetIntegerv - return OSMesa state parameters | ||
* | ||
* | ||
* The limits on the width and height of an image buffer can be retrieved | ||
* via OSMesaGetIntegerv(OSMESA_MAX_WIDTH/OSMESA_MAX_HEIGHT). | ||
*/ | ||
|
||
|
||
#ifndef OSMESA_H | ||
#define OSMESA_H | ||
|
||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
|
||
#include <GL/gl.h> | ||
|
||
|
||
#define OSMESA_MAJOR_VERSION 11 | ||
#define OSMESA_MINOR_VERSION 2 | ||
#define OSMESA_PATCH_VERSION 0 | ||
|
||
|
||
|
||
/* | ||
* Values for the format parameter of OSMesaCreateContext() | ||
* New in version 2.0. | ||
*/ | ||
#define OSMESA_COLOR_INDEX GL_COLOR_INDEX | ||
#define OSMESA_RGBA GL_RGBA | ||
#define OSMESA_BGRA 0x1 | ||
#define OSMESA_ARGB 0x2 | ||
#define OSMESA_RGB GL_RGB | ||
#define OSMESA_BGR 0x4 | ||
#define OSMESA_RGB_565 0x5 | ||
|
||
|
||
/* | ||
* OSMesaPixelStore() parameters: | ||
* New in version 2.0. | ||
*/ | ||
#define OSMESA_ROW_LENGTH 0x10 | ||
#define OSMESA_Y_UP 0x11 | ||
|
||
|
||
/* | ||
* Accepted by OSMesaGetIntegerv: | ||
*/ | ||
#define OSMESA_WIDTH 0x20 | ||
#define OSMESA_HEIGHT 0x21 | ||
#define OSMESA_FORMAT 0x22 | ||
#define OSMESA_TYPE 0x23 | ||
#define OSMESA_MAX_WIDTH 0x24 /* new in 4.0 */ | ||
#define OSMESA_MAX_HEIGHT 0x25 /* new in 4.0 */ | ||
|
||
/* | ||
* Accepted in OSMesaCreateContextAttrib's attribute list. | ||
*/ | ||
#define OSMESA_DEPTH_BITS 0x30 | ||
#define OSMESA_STENCIL_BITS 0x31 | ||
#define OSMESA_ACCUM_BITS 0x32 | ||
#define OSMESA_PROFILE 0x33 | ||
#define OSMESA_CORE_PROFILE 0x34 | ||
#define OSMESA_COMPAT_PROFILE 0x35 | ||
#define OSMESA_CONTEXT_MAJOR_VERSION 0x36 | ||
#define OSMESA_CONTEXT_MINOR_VERSION 0x37 | ||
|
||
|
||
typedef struct osmesa_context *OSMesaContext; | ||
|
||
|
||
/* | ||
* Create an Off-Screen Mesa rendering context. The only attribute needed is | ||
* an RGBA vs Color-Index mode flag. | ||
* | ||
* Input: format - one of OSMESA_COLOR_INDEX, OSMESA_RGBA, OSMESA_BGRA, | ||
* OSMESA_ARGB, OSMESA_RGB, or OSMESA_BGR. | ||
* sharelist - specifies another OSMesaContext with which to share | ||
* display lists. NULL indicates no sharing. | ||
* Return: an OSMesaContext or 0 if error | ||
*/ | ||
GLAPI OSMesaContext GLAPIENTRY | ||
OSMesaCreateContext( GLenum format, OSMesaContext sharelist ); | ||
|
||
|
||
|
||
/* | ||
* Create an Off-Screen Mesa rendering context and specify desired | ||
* size of depth buffer, stencil buffer and accumulation buffer. | ||
* If you specify zero for depthBits, stencilBits, accumBits you | ||
* can save some memory. | ||
* | ||
* New in Mesa 3.5 | ||
*/ | ||
GLAPI OSMesaContext GLAPIENTRY | ||
OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits, | ||
GLint accumBits, OSMesaContext sharelist); | ||
|
||
|
||
/* | ||
* Create an Off-Screen Mesa rendering context with attribute list. | ||
* The list is composed of (attribute, value) pairs and terminated with | ||
* attribute==0. Supported Attributes: | ||
* | ||
* Attributes Values | ||
* -------------------------------------------------------------------------- | ||
* OSMESA_FORMAT OSMESA_RGBA*, OSMESA_BGRA, OSMESA_ARGB, etc. | ||
* OSMESA_DEPTH_BITS 0*, 16, 24, 32 | ||
* OSMESA_STENCIL_BITS 0*, 8 | ||
* OSMESA_ACCUM_BITS 0*, 16 | ||
* OSMESA_PROFILE OSMESA_COMPAT_PROFILE*, OSMESA_CORE_PROFILE | ||
* OSMESA_CONTEXT_MAJOR_VERSION 1*, 2, 3 | ||
* OSMESA_CONTEXT_MINOR_VERSION 0+ | ||
* | ||
* Note: * = default value | ||
* | ||
* We return a context version >= what's specified by OSMESA_CONTEXT_MAJOR/ | ||
* MINOR_VERSION for the given profile. For example, if you request a GL 1.4 | ||
* compat profile, you might get a GL 3.0 compat profile. | ||
* Otherwise, null is returned if the version/profile is not supported. | ||
* | ||
* New in Mesa 11.2 | ||
*/ | ||
GLAPI OSMesaContext GLAPIENTRY | ||
OSMesaCreateContextAttribs( const int *attribList, OSMesaContext sharelist ); | ||
|
||
|
||
|
||
/* | ||
* Destroy an Off-Screen Mesa rendering context. | ||
* | ||
* Input: ctx - the context to destroy | ||
*/ | ||
GLAPI void GLAPIENTRY | ||
OSMesaDestroyContext( OSMesaContext ctx ); | ||
|
||
|
||
|
||
/* | ||
* Bind an OSMesaContext to an image buffer. The image buffer is just a | ||
* block of memory which the client provides. Its size must be at least | ||
* as large as width*height*sizeof(type). Its address should be a multiple | ||
* of 4 if using RGBA mode. | ||
* | ||
* Image data is stored in the order of glDrawPixels: row-major order | ||
* with the lower-left image pixel stored in the first array position | ||
* (ie. bottom-to-top). | ||
* | ||
* Since the only type initially supported is GL_UNSIGNED_BYTE, if the | ||
* context is in RGBA mode, each pixel will be stored as a 4-byte RGBA | ||
* value. If the context is in color indexed mode, each pixel will be | ||
* stored as a 1-byte value. | ||
* | ||
* If the context's viewport hasn't been initialized yet, it will now be | ||
* initialized to (0,0,width,height). | ||
* | ||
* Input: ctx - the rendering context | ||
* buffer - the image buffer memory | ||
* type - data type for pixel components, only GL_UNSIGNED_BYTE | ||
* supported now | ||
* width, height - size of image buffer in pixels, at least 1 | ||
* Return: GL_TRUE if success, GL_FALSE if error because of invalid ctx, | ||
* invalid buffer address, type!=GL_UNSIGNED_BYTE, width<1, height<1, | ||
* width>internal limit or height>internal limit. | ||
*/ | ||
GLAPI GLboolean GLAPIENTRY | ||
OSMesaMakeCurrent( OSMesaContext ctx, void *buffer, GLenum type, | ||
GLsizei width, GLsizei height ); | ||
|
||
|
||
|
||
|
||
/* | ||
* Return the current Off-Screen Mesa rendering context handle. | ||
*/ | ||
GLAPI OSMesaContext GLAPIENTRY | ||
OSMesaGetCurrentContext( void ); | ||
|
||
|
||
|
||
/* | ||
* Set pixel store/packing parameters for the current context. | ||
* This is similar to glPixelStore. | ||
* Input: pname - OSMESA_ROW_LENGTH | ||
* specify actual pixels per row in image buffer | ||
* 0 = same as image width (default) | ||
* OSMESA_Y_UP | ||
* zero = Y coordinates increase downward | ||
* non-zero = Y coordinates increase upward (default) | ||
* value - the value for the parameter pname | ||
* | ||
* New in version 2.0. | ||
*/ | ||
GLAPI void GLAPIENTRY | ||
OSMesaPixelStore( GLint pname, GLint value ); | ||
|
||
|
||
|
||
/* | ||
* Return an integer value like glGetIntegerv. | ||
* Input: pname - | ||
* OSMESA_WIDTH return current image width | ||
* OSMESA_HEIGHT return current image height | ||
* OSMESA_FORMAT return image format | ||
* OSMESA_TYPE return color component data type | ||
* OSMESA_ROW_LENGTH return row length in pixels | ||
* OSMESA_Y_UP returns 1 or 0 to indicate Y axis direction | ||
* value - pointer to integer in which to return result. | ||
*/ | ||
GLAPI void GLAPIENTRY | ||
OSMesaGetIntegerv( GLint pname, GLint *value ); | ||
|
||
|
||
|
||
/* | ||
* Return the depth buffer associated with an OSMesa context. | ||
* Input: c - the OSMesa context | ||
* Output: width, height - size of buffer in pixels | ||
* bytesPerValue - bytes per depth value (2 or 4) | ||
* buffer - pointer to depth buffer values | ||
* Return: GL_TRUE or GL_FALSE to indicate success or failure. | ||
* | ||
* New in Mesa 2.4. | ||
*/ | ||
GLAPI GLboolean GLAPIENTRY | ||
OSMesaGetDepthBuffer( OSMesaContext c, GLint *width, GLint *height, | ||
GLint *bytesPerValue, void **buffer ); | ||
|
||
|
||
|
||
/* | ||
* Return the color buffer associated with an OSMesa context. | ||
* Input: c - the OSMesa context | ||
* Output: width, height - size of buffer in pixels | ||
* format - buffer format (OSMESA_FORMAT) | ||
* buffer - pointer to depth buffer values | ||
* Return: GL_TRUE or GL_FALSE to indicate success or failure. | ||
* | ||
* New in Mesa 3.3. | ||
*/ | ||
GLAPI GLboolean GLAPIENTRY | ||
OSMesaGetColorBuffer( OSMesaContext c, GLint *width, GLint *height, | ||
GLint *format, void **buffer ); | ||
|
||
|
||
|
||
/** | ||
* This typedef is new in Mesa 6.3. | ||
*/ | ||
typedef void (*OSMESAproc)(); | ||
|
||
|
||
/* | ||
* Return pointer to the named function. | ||
* New in Mesa 4.1 | ||
* Return OSMESAproc in 6.3. | ||
*/ | ||
GLAPI OSMESAproc GLAPIENTRY | ||
OSMesaGetProcAddress( const char *funcName ); | ||
|
||
|
||
|
||
/** | ||
* Enable/disable color clamping, off by default. | ||
* New in Mesa 6.4.2 | ||
*/ | ||
GLAPI void GLAPIENTRY | ||
OSMesaColorClamp(GLboolean enable); | ||
|
||
|
||
/** | ||
* Enable/disable Gallium post-process filters. | ||
* This should be called after a context is created, but before it is | ||
* made current for the first time. After a context has been made | ||
* current, this function has no effect. | ||
* If the enable_value param is zero, the filter is disabled. Otherwise | ||
* the filter is enabled, and the value may control the filter's quality. | ||
* New in Mesa 10.0 | ||
*/ | ||
GLAPI void GLAPIENTRY | ||
OSMesaPostprocess(OSMesaContext osmesa, const char *filter, | ||
unsigned enable_value); | ||
|
||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
|
||
#endif |
Oops, something went wrong.