mirror of
https://github.com/gwm17/glfw.git
synced 2025-06-19 17:08:51 -04:00
Fixes formatting, semantics and documentation. Adds glfwGetOSMesaContext. Adds support for OSMesa context attributes. Updates changelog and credits. Adds license and copyright headers. Removes superfluous code (the shared code provides many conveniences). Removes loading of unused OSMesa functions. Removes empty platform structs. Fixes version string format. Removes build dependency on the OSMesa header and library (only the library is needed and only at runtime). Closes #850.
96 lines
3.5 KiB
C
96 lines
3.5 KiB
C
//========================================================================
|
|
// GLFW 3.3 OSMesa - www.glfw.org
|
|
//------------------------------------------------------------------------
|
|
// Copyright (c) 2016 Google Inc.
|
|
// Copyright (c) 2006-2016 Camilla Berglund <elmindreda@glfw.org>
|
|
//
|
|
// This software is provided 'as-is', without any express or implied
|
|
// warranty. In no event will the authors be held liable for any damages
|
|
// arising from the use of this software.
|
|
//
|
|
// Permission is granted to anyone to use this software for any purpose,
|
|
// including commercial applications, and to alter it and redistribute it
|
|
// freely, subject to the following restrictions:
|
|
//
|
|
// 1. The origin of this software must not be misrepresented; you must not
|
|
// claim that you wrote the original software. If you use this software
|
|
// in a product, an acknowledgment in the product documentation would
|
|
// be appreciated but is not required.
|
|
//
|
|
// 2. Altered source versions must be plainly marked as such, and must not
|
|
// be misrepresented as being the original software.
|
|
//
|
|
// 3. This notice may not be removed or altered from any source
|
|
// distribution.
|
|
//
|
|
//========================================================================
|
|
|
|
#ifndef _glfw3_osmesa_context_h_
|
|
#define _glfw3_osmesa_context_h_
|
|
|
|
#define OSMESA_RGBA 0x1908
|
|
#define OSMESA_FORMAT 0x22
|
|
#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 void* OSMesaContext;
|
|
typedef void (*OSMESAproc)();
|
|
|
|
typedef OSMesaContext (* PFNOSMESACREATECONTEXTATTRIBSPROC)(const int*,OSMesaContext);
|
|
typedef void (* PFNOSMESADESTROYCONTEXTPROC)(OSMesaContext);
|
|
typedef int (* PFNOSMESAMAKECURRENTPROC)(OSMesaContext,void*,int,int,int);
|
|
typedef int (* PFNOSMESAGETCOLORBUFFERPROC)(OSMesaContext,int*,int*,int*,void**);
|
|
typedef int (* PFNOSMESAGETDEPTHBUFFERPROC)(OSMesaContext,int*,int*,int*,void**);
|
|
typedef GLFWglproc (* PFNOSMESAGETPROCADDRESSPROC)(const char*);
|
|
#define OSMesaCreateContextAttribs _glfw.osmesa.CreateContextAttribs
|
|
#define OSMesaDestroyContext _glfw.osmesa.DestroyContext
|
|
#define OSMesaMakeCurrent _glfw.osmesa.MakeCurrent
|
|
#define OSMesaGetColorBuffer _glfw.osmesa.GetColorBuffer
|
|
#define OSMesaGetDepthBuffer _glfw.osmesa.GetDepthBuffer
|
|
#define OSMesaGetProcAddress _glfw.osmesa.GetProcAddress
|
|
|
|
#define _GLFW_PLATFORM_CONTEXT_STATE _GLFWcontextOSMesa osmesa
|
|
#define _GLFW_PLATFORM_LIBRARY_CONTEXT_STATE _GLFWlibraryOSMesa osmesa
|
|
|
|
|
|
// OSMesa-specific per-context data
|
|
//
|
|
typedef struct _GLFWcontextOSMesa
|
|
{
|
|
OSMesaContext handle;
|
|
int width;
|
|
int height;
|
|
void* buffer;
|
|
|
|
} _GLFWcontextOSMesa;
|
|
|
|
// OSMesa-specific global data
|
|
//
|
|
typedef struct _GLFWlibraryOSMesa
|
|
{
|
|
void* handle;
|
|
|
|
PFNOSMESACREATECONTEXTATTRIBSPROC CreateContextAttribs;
|
|
PFNOSMESADESTROYCONTEXTPROC DestroyContext;
|
|
PFNOSMESAMAKECURRENTPROC MakeCurrent;
|
|
PFNOSMESAGETCOLORBUFFERPROC GetColorBuffer;
|
|
PFNOSMESAGETDEPTHBUFFERPROC GetDepthBuffer;
|
|
PFNOSMESAGETPROCADDRESSPROC GetProcAddress;
|
|
|
|
} _GLFWlibraryOSMesa;
|
|
|
|
|
|
GLFWbool _glfwInitOSMesa(void);
|
|
void _glfwTerminateOSMesa(void);
|
|
GLFWbool _glfwCreateContextOSMesa(_GLFWwindow* window,
|
|
const _GLFWctxconfig* ctxconfig,
|
|
const _GLFWfbconfig* fbconfig);
|
|
|
|
#endif // _glfw3_osmesa_context_h_
|