/*
* Mesa 3-D graphics library
- * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* 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.
+ * THE AUTHORS OR COPYRIGHT HOLDERS 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 XMESA_H
-#define XMESA_H
+#ifndef XM_API_H
+#define XM_API_H
-#include "main/core.h" /* for GLvisual and MESA_VERSION_STRING */
+#include "main/mtypes.h" /* for gl_config */
#include "state_tracker/st_api.h"
#include "os/os_thread.h"
-#include "state_tracker/xlib_sw_winsys.h"
+#include "state_tracker/xlibsw_api.h"
# include <X11/Xlib.h>
# include <X11/Xlibint.h>
# include <X11/Xutil.h>
+struct hud_context;
+
typedef struct xmesa_display *XMesaDisplay;
typedef struct xmesa_buffer *XMesaBuffer;
typedef struct xmesa_context *XMesaContext;
struct xmesa_display {
- pipe_mutex mutex;
+ mtx_t mutex;
Display *display;
struct pipe_screen *screen;
* Return: an XMesaContext or NULL if error.
*/
extern XMesaContext XMesaCreateContext( XMesaVisual v,
- XMesaContext share_list );
+ XMesaContext share_list,
+ GLuint major, GLuint minor,
+ GLuint profileMask,
+ GLuint contextFlags);
/*
XMesaVisual xm_visual; /** pixel format info */
XMesaBuffer xm_buffer; /** current drawbuffer */
XMesaBuffer xm_read_buffer; /** current readbuffer */
+ struct hud_context *hud;
};
GLboolean wasCurrent; /* was ever the current buffer? */
XMesaVisual xm_visual; /* the X/Mesa visual */
- Drawable drawable; /* Usually the X window ID */
Colormap cmap; /* the X colormap */
BufferType type; /* window, pixmap, pbuffer or glxwindow */
-extern void
+extern const char *
+xmesa_get_name(void);
+
+extern int
xmesa_init(Display *dpy);
extern XMesaBuffer
extern void
xmesa_destroy_buffers_on_display(Display *dpy);
-static INLINE GLuint
+extern void
+xmesa_close_display(Display *dpy);
+
+static inline GLuint
xmesa_buffer_width(XMesaBuffer b)
{
return b->width;
}
-static INLINE GLuint
+static inline GLuint
xmesa_buffer_height(XMesaBuffer b)
{
return b->height;