medfall

A super great game engine
Log | Files | Refs

osmesa_context.h (3764B)


      1 //========================================================================
      2 // GLFW 3.3 OSMesa - www.glfw.org
      3 //------------------------------------------------------------------------
      4 // Copyright (c) 2016 Google Inc.
      5 // Copyright (c) 2006-2016 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 
     39 typedef void* OSMesaContext;
     40 typedef void (*OSMESAproc)();
     41 
     42 typedef OSMesaContext (GLAPIENTRY * PFN_OSMesaCreateContextExt)(GLenum,GLint,GLint,GLint,OSMesaContext);
     43 typedef OSMesaContext (GLAPIENTRY * PFN_OSMesaCreateContextAttribs)(const int*,OSMesaContext);
     44 typedef void (GLAPIENTRY * PFN_OSMesaDestroyContext)(OSMesaContext);
     45 typedef int (GLAPIENTRY * PFN_OSMesaMakeCurrent)(OSMesaContext,void*,int,int,int);
     46 typedef int (GLAPIENTRY * PFN_OSMesaGetColorBuffer)(OSMesaContext,int*,int*,int*,void**);
     47 typedef int (GLAPIENTRY * PFN_OSMesaGetDepthBuffer)(OSMesaContext,int*,int*,int*,void**);
     48 typedef 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 //
     63 typedef 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 //
     74 typedef 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 
     89 GLFWbool _glfwInitOSMesa(void);
     90 void _glfwTerminateOSMesa(void);
     91 GLFWbool _glfwCreateContextOSMesa(_GLFWwindow* window,
     92                                   const _GLFWctxconfig* ctxconfig,
     93                                   const _GLFWfbconfig* fbconfig);
     94