master
ブランチ master
ShaderPlayground / deps / glfw / src / osmesa_context.h
3.7 KB、94行 生 Blame 履歴
1//========================================================================
2// GLFW 3.3 OSMesa - www.glfw.org
3//------------------------------------------------------------------------
4// Copyright (c) 2016 Google Inc.
5// Copyright (c) 2016-2017 Camilla Löwy <elmindreda@glfw.org>
6//
7// This software is provided 'as-is', without any express or implied
8// warranty. In no event will the authors be held liable for any damages
9// arising from the use of this software.
10//
11// Permission is granted to anyone to use this software for any purpose,
12// including commercial applications, and to alter it and redistribute it
13// freely, subject to the following restrictions:
14//
15// 1. The origin of this software must not be misrepresented; you must not
16// claim that you wrote the original software. If you use this software
17// in a product, an acknowledgment in the product documentation would
18// be appreciated but is not required.
19//
20// 2. Altered source versions must be plainly marked as such, and must not
21// be misrepresented as being the original software.
22//
23// 3. This notice may not be removed or altered from any source
24// distribution.
25//
26//========================================================================
27
28#define OSMESA_RGBA 0x1908
29#define OSMESA_FORMAT 0x22
30#define OSMESA_DEPTH_BITS 0x30
31#define OSMESA_STENCIL_BITS 0x31
32#define OSMESA_ACCUM_BITS 0x32
33#define OSMESA_PROFILE 0x33
34#define OSMESA_CORE_PROFILE 0x34
35#define OSMESA_COMPAT_PROFILE 0x35
36#define OSMESA_CONTEXT_MAJOR_VERSION 0x36
37#define OSMESA_CONTEXT_MINOR_VERSION 0x37
38
39typedef void* OSMesaContext;
40typedef void (*OSMESAproc)(void);
41
42typedef OSMesaContext (GLAPIENTRY * PFN_OSMesaCreateContextExt)(GLenum,GLint,GLint,GLint,OSMesaContext);
43typedef OSMesaContext (GLAPIENTRY * PFN_OSMesaCreateContextAttribs)(const int*,OSMesaContext);
44typedef void (GLAPIENTRY * PFN_OSMesaDestroyContext)(OSMesaContext);
45typedef int (GLAPIENTRY * PFN_OSMesaMakeCurrent)(OSMesaContext,void*,int,int,int);
46typedef int (GLAPIENTRY * PFN_OSMesaGetColorBuffer)(OSMesaContext,int*,int*,int*,void**);
47typedef int (GLAPIENTRY * PFN_OSMesaGetDepthBuffer)(OSMesaContext,int*,int*,int*,void**);
48typedef GLFWglproc (GLAPIENTRY * PFN_OSMesaGetProcAddress)(const char*);
49#define OSMesaCreateContextExt _glfw.osmesa.CreateContextExt
50#define OSMesaCreateContextAttribs _glfw.osmesa.CreateContextAttribs
51#define OSMesaDestroyContext _glfw.osmesa.DestroyContext
52#define OSMesaMakeCurrent _glfw.osmesa.MakeCurrent
53#define OSMesaGetColorBuffer _glfw.osmesa.GetColorBuffer
54#define OSMesaGetDepthBuffer _glfw.osmesa.GetDepthBuffer
55#define OSMesaGetProcAddress _glfw.osmesa.GetProcAddress
56
57#define _GLFW_OSMESA_CONTEXT_STATE _GLFWcontextOSMesa osmesa
58#define _GLFW_OSMESA_LIBRARY_CONTEXT_STATE _GLFWlibraryOSMesa osmesa
59
60
61// OSMesa-specific per-context data
62//
63typedef struct _GLFWcontextOSMesa
64{
65 OSMesaContext handle;
66 int width;
67 int height;
68 void* buffer;
69
70} _GLFWcontextOSMesa;
71
72// OSMesa-specific global data
73//
74typedef struct _GLFWlibraryOSMesa
75{
76 void* handle;
77
78 PFN_OSMesaCreateContextExt CreateContextExt;
79 PFN_OSMesaCreateContextAttribs CreateContextAttribs;
80 PFN_OSMesaDestroyContext DestroyContext;
81 PFN_OSMesaMakeCurrent MakeCurrent;
82 PFN_OSMesaGetColorBuffer GetColorBuffer;
83 PFN_OSMesaGetDepthBuffer GetDepthBuffer;
84 PFN_OSMesaGetProcAddress GetProcAddress;
85
86} _GLFWlibraryOSMesa;
87
88
89GLFWbool _glfwInitOSMesa(void);
90void _glfwTerminateOSMesa(void);
91GLFWbool _glfwCreateContextOSMesa(_GLFWwindow* window,
92 const _GLFWctxconfig* ctxconfig,
93 const _GLFWfbconfig* fbconfig);
94