瀏覽代碼

Make osmesa a DLL instead of a static lib (Windows). This is more

consistent with the other modules and platforms.  It also makes the
API and linkage on Windows more consistent.
tags/mesa_4_0
Karl Schultz 24 年之前
父節點
當前提交
05ba9becc3
共有 4 個檔案被更改,包括 37 行新增19 行删除
  1. 12
    9
      src/mesa/drivers/osmesa/Makefile.win
  2. 10
    10
      src/mesa/drivers/osmesa/osmesa.c
  3. 13
    0
      src/mesa/drivers/osmesa/osmesa.def
  4. 2
    0
      src/mesa/main/Makefile.win

+ 12
- 9
src/mesa/drivers/osmesa/Makefile.win 查看文件

@@ -13,24 +13,27 @@ DRIVER_SRCS = $(OSMESA_SRCS)

SRCS = $(OSMESA_SRCS)

all : osmesalib
all : osmesadll

!include "$(TOP)/mesawin32.mak"

osmesalib: $(OSMESALIB)
osmesadll: $(OSMESADLL)

# Undefine _DLL because osmesa is a LIB, not a DLL
CFLAGS = $(cvarsdll) $(CFLAGS) -U_DLL -D_OPENGL32_ -I$(TOP)/src
LFLAGS = /LIB
CFLAGS = $(cvarsdll) $(CFLAGS) -D_OPENGL32_ -DBUILD_GL32 -I$(TOP)/src
LFLAGS = $(LFLAGS) $(dlllflags)

OBJS = $(ASM_SRCS:.S=.obj) $(CORE_SRCS:.c=.obj) $(DRIVER_SRCS:.c=.obj)
LIBS = $(TOP)/lib/$(MESALIB)
LIBS = $(guilibsdll) $(TOP)/lib/$(MESALIB)

$(OSMESALIB) : $(OBJS)
$(link) $(LFLAGS) -out:$(OSMESALIB) $(OBJS) $(LIBS)
$(OSMESADLL) : $(OBJS) osmesa.def
$(link) $(LFLAGS) -def:osmesa.def -out:$(OSMESADLL) $(OBJS) $(LIBS)
@echo "copying OSMesa library to library directory..."
-copy $(OSMESALIB) $(TOP)\lib
@echo "copying OSMesa dll to library directory..."
-copy $(OSMESADLL) $(TOP)\lib

install : $(OSMESALIB)
install : $(OSMESADLL)
@echo "copying OSMesa library to system library directory..."
-copy $(OSMESALIB) $(LIBINSTALL)
@echo "copying OSMesa dll to system library directory..."
-copy $(OSMESADLL) $(DLLINSTALL)

+ 10
- 10
src/mesa/drivers/osmesa/osmesa.c 查看文件

@@ -1,4 +1,4 @@
/* $Id: osmesa.c,v 1.68 2001/09/18 16:51:45 kschultz Exp $ */
/* $Id: osmesa.c,v 1.69 2001/09/21 21:32:14 kschultz Exp $ */

/*
* Mesa 3-D graphics library
@@ -112,7 +112,7 @@ static void osmesa_register_swrast_functions( GLcontext *ctx );
* display lists. NULL indicates no sharing.
* Return: an OSMesaContext or 0 if error
*/
OSMesaContext GLAPIENTRY
GLAPI OSMesaContext GLAPIENTRY
OSMesaCreateContext( GLenum format, OSMesaContext sharelist )
{
return OSMesaCreateContextExt(format, DEFAULT_SOFTWARE_DEPTH_BITS,
@@ -126,7 +126,7 @@ OSMesaCreateContext( GLenum format, OSMesaContext sharelist )
*
* Create context and specify size of ancillary buffers.
*/
OSMesaContext GLAPIENTRY
GLAPI OSMesaContext GLAPIENTRY
OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits,
GLint accumBits, OSMesaContext sharelist )
{
@@ -357,7 +357,7 @@ OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits,
*
* Input: ctx - the context to destroy
*/
void GLAPIENTRY OSMesaDestroyContext( OSMesaContext ctx )
GLAPI void GLAPIENTRY OSMesaDestroyContext( OSMesaContext ctx )
{
if (ctx) {
_swsetup_DestroyContext( &ctx->gl_ctx );
@@ -444,7 +444,7 @@ static void compute_row_addresses( OSMesaContext ctx )
* invalid buffer address, type!=GL_UNSIGNED_BYTE, width<1, height<1,
* width>internal limit or height>internal limit.
*/
GLboolean GLAPIENTRY
GLAPI GLboolean GLAPIENTRY
OSMesaMakeCurrent( OSMesaContext ctx, void *buffer, GLenum type,
GLsizei width, GLsizei height )
{
@@ -488,7 +488,7 @@ OSMesaMakeCurrent( OSMesaContext ctx, void *buffer, GLenum type,



OSMesaContext GLAPIENTRY OSMesaGetCurrentContext( void )
GLAPI OSMesaContext GLAPIENTRY OSMesaGetCurrentContext( void )
{
GLcontext *ctx = _mesa_get_current_context();
if (ctx)
@@ -499,7 +499,7 @@ OSMesaContext GLAPIENTRY OSMesaGetCurrentContext( void )



void GLAPIENTRY OSMesaPixelStore( GLint pname, GLint value )
GLAPI void GLAPIENTRY OSMesaPixelStore( GLint pname, GLint value )
{
OSMesaContext ctx = OSMesaGetCurrentContext();

@@ -525,7 +525,7 @@ void GLAPIENTRY OSMesaPixelStore( GLint pname, GLint value )
}


void GLAPIENTRY OSMesaGetIntegerv( GLint pname, GLint *value )
GLAPI void GLAPIENTRY OSMesaGetIntegerv( GLint pname, GLint *value )
{
OSMesaContext ctx = OSMesaGetCurrentContext();

@@ -568,7 +568,7 @@ void GLAPIENTRY OSMesaGetIntegerv( GLint pname, GLint *value )
* buffer - pointer to depth buffer values
* Return: GL_TRUE or GL_FALSE to indicate success or failure.
*/
GLboolean GLAPIENTRY
GLAPI GLboolean GLAPIENTRY
OSMesaGetDepthBuffer( OSMesaContext c, GLint *width, GLint *height,
GLint *bytesPerValue, void **buffer )
{
@@ -599,7 +599,7 @@ OSMesaGetDepthBuffer( OSMesaContext c, GLint *width, GLint *height,
* buffer - pointer to color buffer values
* Return: GL_TRUE or GL_FALSE to indicate success or failure.
*/
GLboolean GLAPIENTRY
GLAPI GLboolean GLAPIENTRY
OSMesaGetColorBuffer( OSMesaContext c, GLint *width,
GLint *height, GLint *format, void **buffer )
{

+ 13
- 0
src/mesa/drivers/osmesa/osmesa.def 查看文件

@@ -0,0 +1,13 @@
DESCRIPTION 'Mesa OSMesa lib for Win32'
VERSION 3.5

EXPORTS
OSMesaCreateContext
OSMesaCreateContextExt
OSMesaDestroyContext
OSMesaMakeCurrent
OSMesaGetCurrentContext
OSMesaPixelStore
OSMesaGetIntegerv
OSMesaGetDepthBuffer
OSMesaGetColorBuffer

+ 2
- 0
src/mesa/main/Makefile.win 查看文件

@@ -195,6 +195,8 @@ clean ::

clobber ::
@del /f OSmesa\*.lib
@del /f OSmesa\*.exp
@del /f OSmesa\*.dll

# override default inference rule with one that writes the object to
# the same subdir that the c file is in.

Loading…
取消
儲存