| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 | /* 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
 |