ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dmesa.h
Go to the documentation of this file.
00001 /*
00002  * Mesa 3-D graphics library
00003  * Version:  6.1
00004  * 
00005  * Copyright (C) 1999-2004  Brian Paul   All Rights Reserved.
00006  * 
00007  * Permission is hereby granted, free of charge, to any person obtaining a
00008  * copy of this software and associated documentation files (the "Software"),
00009  * to deal in the Software without restriction, including without limitation
00010  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00011  * and/or sell copies of the Software, and to permit persons to whom the
00012  * Software is furnished to do so, subject to the following conditions:
00013  * 
00014  * The above copyright notice and this permission notice shall be included
00015  * in all copies or substantial portions of the Software.
00016  * 
00017  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00018  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00019  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
00020  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
00021  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
00022  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00023  */
00024 
00025 /*
00026  * DOS/DJGPP device driver for Mesa
00027  *
00028  *  Author: Daniel Borca
00029  *  Email : dborca@users.sourceforge.net
00030  *  Web   : http://www.geocities.com/dborca
00031  */
00032 
00033 
00034 #ifndef DMESA_H_included
00035 #define DMESA_H_included
00036 
00037 #define DMESA_MAJOR_VERSION 6
00038 #define DMESA_MINOR_VERSION 5
00039 
00040 /* Sample Usage:
00041  *
00042  * 1. Call DMesaCreateVisual() to initialize graphics.
00043  * 2. Call DMesaCreateContext() to create a DMesa rendering context.
00044  * 3. Call DMesaCreateBuffer() to define the window.
00045  * 4. Call DMesaMakeCurrent() to bind the DMesaBuffer to a DMesaContext.
00046  * 5. Make gl* calls to render your graphics.
00047  * 6. Use DMesaSwapBuffers() when double buffering to swap front/back buffers.
00048  * 7. Before exiting, destroy DMesaBuffer, DMesaContext and DMesaVisual.
00049  */
00050 
00051 typedef struct dmesa_context *DMesaContext;
00052 typedef struct dmesa_visual *DMesaVisual;
00053 typedef struct dmesa_buffer *DMesaBuffer;
00054 
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058 
00059 /*
00060  * Create a new Visual and set graphics mode.
00061  */
00062 DMesaVisual DMesaCreateVisual (GLint width,        /* X res */
00063                                GLint height,       /* Y res */
00064                                GLint colDepth,     /* BPP */
00065                                GLint refresh,      /* refresh rate: 0=default */
00066                                GLboolean dbFlag,   /* double-buffered */
00067                                GLboolean rgbFlag,  /* RGB mode */
00068                                GLint alphaSize,    /* requested bits/alpha */
00069                                GLint depthSize,    /* requested bits/depth */
00070                                GLint stencilSize,  /* requested bits/stencil */
00071                                GLint accumSize);   /* requested bits/accum */
00072 
00073 /*
00074  * Destroy Visual and restore screen.
00075  */
00076 void DMesaDestroyVisual (DMesaVisual v);
00077 
00078 
00079 
00080 /*
00081  * Create a new Context for rendering.
00082  */
00083 DMesaContext DMesaCreateContext (DMesaVisual visual, DMesaContext share);
00084 
00085 /*
00086  * Destroy Context.
00087  */
00088 void DMesaDestroyContext (DMesaContext c);
00089 
00090 /*
00091  * Return a handle to the current context.
00092  */
00093 DMesaContext DMesaGetCurrentContext (void);
00094 
00095 
00096 
00097 /*
00098  * Create a new Buffer (window).
00099  */
00100 DMesaBuffer DMesaCreateBuffer (DMesaVisual visual,
00101                                GLint xpos, GLint ypos,
00102                                GLint width, GLint height);
00103 
00104 /*
00105  * Destroy Buffer.
00106  */
00107 void DMesaDestroyBuffer (DMesaBuffer b);
00108 
00109 /*
00110  * Return a handle to the current buffer.
00111  */
00112 DMesaBuffer DMesaGetCurrentBuffer (void);
00113 
00114 /*
00115  * Swap the front and back buffers for the given Buffer.
00116  * No action is taken if the buffer is not double buffered.
00117  */
00118 void DMesaSwapBuffers (DMesaBuffer b);
00119 
00120 /*
00121  * Bind Buffer to Context and make the Context the current one.
00122  */
00123 GLboolean DMesaMakeCurrent (DMesaContext c, DMesaBuffer b);
00124 
00125 
00126 
00127 /*
00128  * Move/Resize current Buffer.
00129  */
00130 GLboolean DMesaMoveBuffer (GLint xpos, GLint ypos);
00131 GLboolean DMesaResizeBuffer (GLint width, GLint height);
00132 
00133 /*
00134  * Set palette index, using normalized values.
00135  */
00136 void DMesaSetCI (int ndx, GLfloat red, GLfloat green, GLfloat blue);
00137 
00138 /*
00139  * DMesa functions
00140  */
00141 typedef void (*DMesaProc) ();
00142 DMesaProc DMesaGetProcAddress (const char *name);
00143 
00144 /*
00145  * DMesa state retrieval.
00146  */
00147 #define DMESA_GET_SCREEN_SIZE 0x0100
00148 #define DMESA_GET_DRIVER_CAPS 0x0200
00149 #define DMESA_GET_VIDEO_MODES 0x0300
00150 #define DMESA_GET_BUFFER_ADDR 0x0400
00151 
00152 #define DMESA_DRIVER_DBL_BIT 0x1 /* double-buffered */
00153 #define DMESA_DRIVER_YUP_BIT 0x2 /* lower-left window origin */
00154 int DMesaGetIntegerv (GLenum pname, GLint *params);
00155 
00156 #ifdef __cplusplus
00157 }
00158 #endif
00159 
00160 #endif

Generated on Sun May 27 2012 04:19:43 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.