156 lines
4.2 KiB
C
156 lines
4.2 KiB
C
|
/* uglmesa.h - Public header UGL/Mesa */
|
||
|
|
||
|
/* Copyright (C) 2001 by Wind River Systems, Inc */
|
||
|
|
||
|
/*
|
||
|
* Mesa 3-D graphics library
|
||
|
* Version: 4.0
|
||
|
*
|
||
|
* The MIT License
|
||
|
* 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 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.
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* Author:
|
||
|
* Stephane Raimbault <stephane.raimbault@windriver.com>
|
||
|
*/
|
||
|
|
||
|
#ifndef UGLMESA_H
|
||
|
#define UGLMESA_H
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#define UGL_MESA_MAJOR_VERSION 4
|
||
|
#define UGL_MESA_MINOR_VERSION 0
|
||
|
|
||
|
#include <GL/gl.h>
|
||
|
#include <ugl/ugl.h>
|
||
|
|
||
|
/*
|
||
|
* Values for display mode of uglMesaCreateContext ()
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* With these mask values, it's possible to test double buffer mode
|
||
|
* with UGL_MESA_DOUBLE mask
|
||
|
*
|
||
|
* SINGLE 0000 0001
|
||
|
* DOUBLE 0000 0110
|
||
|
* - SOFT 0000 0010
|
||
|
* - HARD 0000 0100
|
||
|
* WINDML 0001 0000
|
||
|
*
|
||
|
*
|
||
|
*/
|
||
|
#define UGL_MESA_SINGLE 0x01
|
||
|
#define UGL_MESA_DOUBLE 0x06
|
||
|
#define UGL_MESA_DOUBLE_SOFTWARE 0x02
|
||
|
#define UGL_MESA_DOUBLE_HARDWARE 0x04
|
||
|
|
||
|
#define UGL_MESA_WINDML_EXCLUSIVE 0x10
|
||
|
|
||
|
#define UGL_MESA_FULLSCREEN_WIDTH 0x0
|
||
|
#define UGL_MESA_FULLSCREEN_HEIGHT 0x0
|
||
|
|
||
|
/*
|
||
|
* uglMesaPixelStore() parameters:
|
||
|
*/
|
||
|
|
||
|
#define UGL_MESA_ROW_LENGTH 0x20
|
||
|
#define UGL_MESA_Y_UP 0x21
|
||
|
|
||
|
/*
|
||
|
* Accepted by uglMesaGetIntegerv:
|
||
|
*/
|
||
|
|
||
|
#define UGL_MESA_LEFT_X 0x01
|
||
|
#define UGL_MESA_TOP_Y 0x02
|
||
|
#define UGL_MESA_WIDTH 0x03
|
||
|
#define UGL_MESA_HEIGHT 0x04
|
||
|
#define UGL_MESA_DISPLAY_WIDTH 0x05
|
||
|
#define UGL_MESA_DISPLAY_HEIGHT 0x06
|
||
|
#define UGL_MESA_COLOR_FORMAT 0x07
|
||
|
#define UGL_MESA_COLOR_MODEL 0x08
|
||
|
#define UGL_MESA_PIXEL_FORMAT 0x09
|
||
|
#define UGL_MESA_TYPE 0x0A
|
||
|
#define UGL_MESA_RGB 0x0B
|
||
|
#define UGL_MESA_COLOR_INDEXED 0x0C
|
||
|
#define UGL_MESA_SINGLE_BUFFER 0x0D
|
||
|
#define UGL_MESA_DOUBLE_BUFFER 0x0E
|
||
|
#define UGL_MESA_DOUBLE_BUFFER_SOFTWARE 0x0F
|
||
|
#define UGL_MESA_DOUBLE_BUFFER_HARDWARE 0x10
|
||
|
|
||
|
/*
|
||
|
* typedefs
|
||
|
*/
|
||
|
|
||
|
typedef struct uglMesaContext * UGL_MESA_CONTEXT;
|
||
|
|
||
|
UGL_MESA_CONTEXT uglMesaCreateNewContext (GLenum mode,
|
||
|
UGL_MESA_CONTEXT share_list);
|
||
|
|
||
|
UGL_MESA_CONTEXT uglMesaCreateNewContextExt (GLenum mode,
|
||
|
GLint depth_bits,
|
||
|
GLint stencil_bits,
|
||
|
GLint accum_red_bits,
|
||
|
GLint accum_green_bits,
|
||
|
GLint accum_blue_bits,
|
||
|
GLint accum_alpha_bits,
|
||
|
UGL_MESA_CONTEXT share_list);
|
||
|
|
||
|
GLboolean uglMesaMakeCurrentContext (UGL_MESA_CONTEXT umc,
|
||
|
GLsizei left, GLsizei top,
|
||
|
GLsizei width, GLsizei height);
|
||
|
|
||
|
GLboolean uglMesaMoveWindow (GLsizei dx, GLsizei dy);
|
||
|
|
||
|
GLboolean uglMesaMoveToWindow (GLsizei left, GLsizei top);
|
||
|
|
||
|
GLboolean uglMesaResizeWindow (GLsizei dw, GLsizei dh);
|
||
|
|
||
|
GLboolean uglMesaResizeToWindow (GLsizei width, GLsizei height);
|
||
|
|
||
|
void uglMesaDestroyContext (void);
|
||
|
|
||
|
UGL_MESA_CONTEXT uglMesaGetCurrentContext (void);
|
||
|
|
||
|
void uglMesaSwapBuffers (void);
|
||
|
|
||
|
void uglMesaPixelStore (GLint pname, GLint value);
|
||
|
|
||
|
void uglMesaGetIntegerv (GLint pname, GLint *value);
|
||
|
|
||
|
GLboolean uglMesaGetDepthBuffer (GLint *width, GLint *height,
|
||
|
GLint *bytesPerValue, void **buffer);
|
||
|
|
||
|
GLboolean uglMesaGetColorBuffer (GLint *width, GLint *height,
|
||
|
GLint *format, void **buffer);
|
||
|
|
||
|
GLboolean uglMesaSetColor (GLubyte index, GLfloat red,
|
||
|
GLfloat green, GLfloat blue);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
|
||
|
#endif
|