glcore: build from mesa

This commit is contained in:
George Sapountzis 2008-04-18 17:34:24 +03:00
parent b3efd35f4b
commit 32a2a095f4
12 changed files with 213 additions and 7 deletions

View File

@ -50,6 +50,13 @@ install:
linux-directfb-install:
cd src/mesa/drivers/directfb && $(MAKE) install
# Xserver GLcore module
glcore:
cd src/mesa/drivers/xorg ; $(MAKE)
glcore-install:
cd src/mesa/drivers/xorg ; $(MAKE) install
# If there's no current configuration file
$(TOP)/configs/current:
@echo

View File

@ -83,6 +83,9 @@ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLW_MESA_DEPS@ \
$(EXTRA_LIB_PATH) @GLW_LIB_DEPS@
APP_LIB_DEPS = $(EXTRA_LIB_PATH) @APP_LIB_DEPS@
# GLcore dependencies
GLCORE_LIB_DEPS = $(EXTRA_LIB_PATH) @GLCORE_LIB_DEPS@
# DRI dependencies
DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@

View File

@ -387,6 +387,7 @@ xlib)
GL_LIB_DEPS="$X_LIBS -lX11 -lXext"
fi
GL_LIB_DEPS="$GL_LIB_DEPS $SELINUX_LIBS -lm -lpthread"
GLCORE_LIB_DEPS=""
# if static, move the external libraries to the programs
# and empty the libraries for libGL
@ -418,13 +419,16 @@ dri)
# need DRM libs, -lpthread, etc.
GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
GLCORE_LIB_DEPS="-lm -lpthread $DLOPEN_LIBS"
;;
osmesa)
# No libGL for osmesa
GL_LIB_DEPS=""
GLCORE_LIB_DEPS=""
;;
esac
AC_SUBST(GL_LIB_DEPS)
AC_SUBST(GLCORE_LIB_DEPS)
dnl
dnl More X11 setup

View File

@ -181,4 +181,77 @@ typedef struct __GLcontextModesRec {
#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
/************************************************************************/
#ifdef _NEED_GL_CORE_IF
/**
* The GLcore interface (a subset of the XMesa interface)
*/
#define __GL_CORE "GL_Core"
typedef struct __GLcoreModuleRec {
/*
* XMesaVisual
*/
XMesaVisual (*XMesaCreateVisual)( ScreenPtr display,
VisualPtr visinfo,
GLboolean rgb_flag,
GLboolean alpha_flag,
GLboolean db_flag,
GLboolean stereo_flag,
GLboolean ximage_flag,
GLint depth_size,
GLint stencil_size,
GLint accum_red_size,
GLint accum_green_size,
GLint accum_blue_size,
GLint accum_alpha_size,
GLint num_samples,
GLint level,
GLint visualCaveat );
void (*XMesaDestroyVisual)( XMesaVisual v );
/*
* XMesaBuffer
*/
XMesaBuffer (*XMesaCreateWindowBuffer)( XMesaVisual v,
WindowPtr w );
XMesaBuffer (*XMesaCreatePixmapBuffer)( XMesaVisual v,
PixmapPtr p,
ColormapPtr cmap );
void (*XMesaDestroyBuffer)( XMesaBuffer b );
void (*XMesaSwapBuffers)( XMesaBuffer b );
void (*XMesaResizeBuffers)( XMesaBuffer b );
/*
* XMesaContext
*/
XMesaContext (*XMesaCreateContext)( XMesaVisual v,
XMesaContext share_list );
void (*XMesaDestroyContext)( XMesaContext c );
GLboolean (*XMesaCopyContext)( XMesaContext src,
XMesaContext dst,
GLuint mask );
GLboolean (*XMesaMakeCurrent2)( XMesaContext c,
XMesaBuffer drawBuffer,
XMesaBuffer readBuffer );
GLboolean (*XMesaForceCurrent)( XMesaContext c );
GLboolean (*XMesaLoseCurrent)( XMesaContext c );
} __GLcoreModule;
#endif /* _NEED_GL_CORE_IF */
#endif /* __gl_core_h_ */

View File

@ -103,9 +103,11 @@ OSMESA16_OBJECTS = \
$(OSMESA_DRIVER_OBJECTS)
stand-alone: depend subdirs $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME)
stand-alone: depend subdirs libmesa.a \
$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME)
osmesa-only: depend subdirs $(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME)
osmesa-only: depend subdirs \
$(TOP)/$(LIB_DIR)/$(OSMESA_LIB_NAME)
# Make the GL library
$(TOP)/$(LIB_DIR)/$(GL_LIB_NAME): $(STAND_ALONE_OBJECTS)

View File

@ -34,6 +34,7 @@
#ifdef XFree86Server
# include "xorg-server.h"
# include "resource.h"
# include "windowstr.h"

3
src/mesa/drivers/xorg/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
glxheader.h
xmesaP.h
xm_*

View File

@ -0,0 +1,86 @@
# src/mesa/drivers/xorg/Makefile
TOP = ../../../..
include $(TOP)/configs/current
LIBNAME = libGLcore.so
SYMLINKS = \
glxheader.h \
xmesaP.h \
xm_api.c \
xm_buffer.c \
xm_dd.c \
xm_image.c \
xm_image.h \
xm_line.c \
xm_span.c \
xm_tri.c
C_SOURCES = \
xm_api.c \
xm_buffer.c \
xm_dd.c \
xm_image.c \
xm_line.c \
xm_span.c \
xm_tri.c \
glcore.c
########################################
MESA_MODULES = $(TOP)/src/mesa/libmesa.a
C_SOURCES += ../common/driverfuncs.c
OBJECTS = $(C_SOURCES:.c=.o)
### Include directories
INCLUDES = \
-I. \
-I.. \
-I$(TOP)/include \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main \
-I$(TOP)/src/mesa/glapi \
`pkg-config --cflags xorg-server`
# undef 'USE_XSHM' to make it explicit that 'XFree86Server' takes precedence
DRIVER_DEFINES = -UUSE_XSHM -DXFree86Server
##### RULES #####
.c.o:
$(CC) -c $(INCLUDES) $(CFLAGS) $(DRIVER_DEFINES) $< -o $@
##### TARGETS #####
default: depend symlinks $(LIBNAME)
$(LIBNAME): $(OBJECTS) $(MESA_MODULES) Makefile
$(TOP)/bin/mklib -noprefix -o $@ \
$(OBJECTS) $(MESA_MODULES) $(GLCORE_LIB_DEPS)
depend: $(C_SOURCES) $(SYMLINKS)
touch depend
$(MKDEP) $(MKDEP_OPTIONS) $(DRIVER_DEFINES) $(INCLUDES) $(C_SOURCES) \
> /dev/null
clean:
-rm -f *.o *.so $(SYMLINKS)
-rm -f depend depend.bak
install: $(LIBNAME)
$(INSTALL) -d $(DRI_DRIVER_INSTALL_DIR)
$(INSTALL) -m 755 $(LIBNAME) $(DRI_DRIVER_INSTALL_DIR)
$(SYMLINKS):
@[ -e $@ ] || ln -sf ../x11/$@ ./
symlinks: $(SYMLINKS)
include depend

View File

@ -0,0 +1,24 @@
#define _NEED_GL_CORE_IF
#include <GL/xmesa.h>
#include <GL/internal/glcore.h>
#include "xmesaP.h"
PUBLIC
__GLcoreModule GL_Core = {
XMesaCreateVisual,
XMesaDestroyVisual,
XMesaCreateWindowBuffer,
XMesaCreatePixmapBuffer,
XMesaDestroyBuffer,
XMesaSwapBuffers,
XMesaResizeBuffers,
XMesaCreateContext,
XMesaDestroyContext,
XMesaCopyContext,
XMesaMakeCurrent2,
XMesaForceCurrent,
XMesaLoseCurrent
};

View File

@ -50,6 +50,10 @@
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
#include "glheader.h"
#include "glapi.h"
#include "glapioffsets.h"

View File

@ -29,6 +29,10 @@
*/
#ifdef HAVE_DIX_CONFIG_H
#include <dix-config.h>
#endif
#include "glheader.h"
#include "glthread.h"

View File

@ -46,11 +46,6 @@
#ifndef GLHEADER_H
#define GLHEADER_H
/* This allows Mesa to be integrated into XFree86 */
#ifdef HAVE_DIX_CONFIG_H
#include "dix-config.h"
#endif
#include <assert.h>
#include <ctype.h>
#if defined(__alpha__) && defined(CCPML)