| /* | |
| * Mesa 3-D graphics library | |
| * Version: 6.5 | |
| * | |
| * 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 | |
| * BRIAN PAUL 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. | |
| */ | |
| #ifndef GLFBDEV_H | |
| #define GLFBDEV_H | |
| /* for size_t */ | |
| #include <stdlib.h> | |
| /* avoid including linux/fb.h */ | |
| struct fb_fix_screeninfo; | |
| struct fb_var_screeninfo; | |
| /* public types */ | |
| typedef struct GLFBDevVisualRec *GLFBDevVisualPtr; | |
| typedef struct GLFBDevBufferRec *GLFBDevBufferPtr; | |
| typedef struct GLFBDevContextRec *GLFBDevContextPtr; | |
| /* API version */ | |
| #define GLFBDEV_VERSION_1_0 1 | |
| /* For glFBDevCreateVisual */ | |
| #define GLFBDEV_DOUBLE_BUFFER 100 | |
| #define GLFBDEV_COLOR_INDEX 101 | |
| #define GLFBDEV_DEPTH_SIZE 102 | |
| #define GLFBDEV_STENCIL_SIZE 103 | |
| #define GLFBDEV_ACCUM_SIZE 104 | |
| #define GLFBDEV_LEVEL 105 | |
| #define GLFBDEV_MULTISAMPLE 106 | |
| #define GLFBDEV_NONE 0 | |
| /* For glFBDevGetString */ | |
| #define GLFBDEV_VERSION 200 | |
| #define GLFBDEV_VENDOR 201 | |
| /* Misc functions */ | |
| extern const char * | |
| glFBDevGetString( int str ); | |
| typedef void (*GLFBDevProc)(); | |
| extern GLFBDevProc | |
| glFBDevGetProcAddress( const char *procName ); | |
| /** | |
| * Create a GLFBDevVisual. | |
| * \param fixInfo - needed to get the visual types, etc. | |
| * \param varInfo - needed to get the bits_per_pixel, etc. | |
| * \param attribs - for requesting depth, stencil, accum buffers, etc. | |
| */ | |
| extern GLFBDevVisualPtr | |
| glFBDevCreateVisual( const struct fb_fix_screeninfo *fixInfo, | |
| const struct fb_var_screeninfo *varInfo, | |
| const int *attribs ); | |
| extern void | |
| glFBDevDestroyVisual( GLFBDevVisualPtr visual ); | |
| extern int | |
| glFBDevGetVisualAttrib( const GLFBDevVisualPtr visual, int attrib); | |
| /** | |
| * Create a GLFBDevBuffer. | |
| * \param fixInfo, varInfo - needed in order to get the screen size | |
| * (resolution), etc. | |
| * \param visual - as returned by glFBDevCreateVisual() | |
| * \param frontBuffer - address of front color buffer | |
| * \param backBuffer - address of back color buffer (may be NULL) | |
| * \param size - size of the color buffer(s) in bytes. | |
| */ | |
| extern GLFBDevBufferPtr | |
| glFBDevCreateBuffer( const struct fb_fix_screeninfo *fixInfo, | |
| const struct fb_var_screeninfo *varInfo, | |
| const GLFBDevVisualPtr visual, | |
| void *frontBuffer, void *backBuffer, size_t size ); | |
| extern void | |
| glFBDevDestroyBuffer( GLFBDevBufferPtr buffer ); | |
| extern int | |
| glFBDevGetBufferAttrib( const GLFBDevBufferPtr buffer, int attrib); | |
| extern GLFBDevBufferPtr | |
| glFBDevGetCurrentDrawBuffer( void ); | |
| extern GLFBDevBufferPtr | |
| glFBDevGetCurrentReadBuffer( void ); | |
| extern void | |
| glFBDevSwapBuffers( GLFBDevBufferPtr buffer ); | |
| /** | |
| * Create a GLFBDevContext. | |
| * \param visual - as created by glFBDevCreateVisual. | |
| * \param share - specifies another context with which to share textures, | |
| * display lists, etc. (may be NULL). | |
| */ | |
| extern GLFBDevContextPtr | |
| glFBDevCreateContext( const GLFBDevVisualPtr visual, GLFBDevContextPtr share ); | |
| extern void | |
| glFBDevDestroyContext( GLFBDevContextPtr context ); | |
| extern int | |
| glFBDevGetContextAttrib( const GLFBDevContextPtr context, int attrib); | |
| extern GLFBDevContextPtr | |
| glFBDevGetCurrentContext( void ); | |
| extern int | |
| glFBDevMakeCurrent( GLFBDevContextPtr context, | |
| GLFBDevBufferPtr drawBuffer, | |
| GLFBDevBufferPtr readBuffer ); | |
| #endif /* GLFBDEV_H */ |