Compare commits

...

4 Commits

Author SHA1 Message Date
Egbert Eich c6c51e2b3b 3. Added missing parts to XKB to make XEVIE branch compile (Egbert Eich).
2. Merged with XORG-CURRENT branch to obtain a bugfix (Egbert Eich).
1. First add of SUN's XIVIE extension (Stuart Kreitman).
2004-03-01 15:06:59 +00:00
Egbert Eich b58d2e37a7 3. Added missing parts to XKB to make XEVIE branch compile (Egbert Eich).
2. Merged with XORG-CURRENT branch to obtain a bugfix (Egbert Eich).
1. First add of SUN's XIVIE extension (Stuart Kreitman).
2004-03-01 13:44:18 +00:00
Stuart Kreitman 0b0cd46792 Integration of XEVIE into XEVIE branch 2004-02-26 18:23:50 +00:00
Stuart Kreitman 15bedbec50 Integration of XEVIE on XEVIE branch. 2004-02-25 23:28:43 +00:00
114 changed files with 3134 additions and 997 deletions

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.c,v 1.4 2003/09/28 20:15:41 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.c,v 1.6 2004/02/12 02:25:00 torrey Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
/*
** License Applicability. Except to the extent portions of this file are
@ -425,8 +425,12 @@ __GLXdispatchRenderProcPtr __glXRenderTable[] = {
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXDisp_SampleCoverageARB,
#ifndef MISSING_GL_EXTS
__glXDisp_WindowPos3fARB /* 230 */
#else
__glXNoSuchRenderOpcode
#endif
};
__GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE] = {
@ -822,6 +826,10 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE] = {
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXDispSwap_SampleCoverageARB,
#ifndef MISSING_GL_EXTS
__glXDispSwap_WindowPos3fARB /* 230 */
#else
__glXNoSuchRenderOpcode
#endif
};

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.h,v 1.4 2003/09/28 20:15:42 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.h,v 1.5 2004/01/28 18:11:50 alanh Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
#ifndef _GLX_g_disptab_h_
#define _GLX_g_disptab_h_
@ -325,6 +325,7 @@ extern void __glXDisp_MultiTexCoord4dvARB(GLbyte*);
extern void __glXDisp_MultiTexCoord4fvARB(GLbyte*);
extern void __glXDisp_MultiTexCoord4ivARB(GLbyte*);
extern void __glXDisp_MultiTexCoord4svARB(GLbyte*);
extern void __glXDisp_SampleCoverageARB(GLbyte *);
extern void __glXDisp_WindowPos3fARB(GLbyte *);
extern int __glXSwapRender(__GLXclientState*, GLbyte*);
@ -621,6 +622,7 @@ extern void __glXDispSwap_MultiTexCoord4dvARB(GLbyte*);
extern void __glXDispSwap_MultiTexCoord4fvARB(GLbyte*);
extern void __glXDispSwap_MultiTexCoord4ivARB(GLbyte*);
extern void __glXDispSwap_MultiTexCoord4svARB(GLbyte*);
extern void __glXDispSwap_SampleCoverageARB(GLbyte *);
extern void __glXDispSwap_WindowPos3fARB(GLbyte *);
#define __GLX_MIN_GLXCMD_OPCODE 1

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.c,v 1.4 2003/09/28 20:15:42 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.c,v 1.6 2004/02/12 02:25:00 torrey Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
/*
** License Applicability. Except to the extent portions of this file are
@ -45,8 +45,13 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#ifndef MISSING_GL_EXTS
__glXDisp_PointParameterfARB, /* 2065 */
__glXDisp_PointParameterfvARB, /* 2066 */
#else
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#endif
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@ -2104,22 +2109,36 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __
__glXDisp_CopyTexSubImage1D, /* 4121 */
__glXDisp_CopyTexSubImage2D, /* 4122 */
__glXDisp_CopyTexSubImage3D, /* 4123 */
__glXNoSuchRenderOpcode, /* 4124 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4130 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#ifndef MISSING_GL_EXTS
__glXDisp_FogCoordfv, /* 4124 */
__glXDisp_FogCoorddv, /* 4125 */
__glXDisp_SecondaryColor3bv, /* 4126 */
__glXDisp_SecondaryColor3sv, /* 4127 */
__glXDisp_SecondaryColor3iv, /* 4128 */
__glXDisp_SecondaryColor3fv, /* 4129 */
__glXDisp_SecondaryColor3dv, /* 4130 */
__glXDisp_SecondaryColor3ubv, /* 4131 */
__glXDisp_SecondaryColor3usv, /* 4132 */
__glXDisp_SecondaryColor3uiv, /* 4133 */
__glXDisp_BlendFuncSeparate, /* 4134 */
#else
__glXNoSuchRenderOpcode, /* 4124 */
__glXNoSuchRenderOpcode, /* 4125 */
__glXNoSuchRenderOpcode, /* 4126 */
__glXNoSuchRenderOpcode, /* 4127 */
__glXNoSuchRenderOpcode, /* 4128 */
__glXNoSuchRenderOpcode, /* 4129 */
__glXNoSuchRenderOpcode, /* 4130 */
__glXNoSuchRenderOpcode, /* 4131 */
__glXNoSuchRenderOpcode, /* 4132 */
__glXNoSuchRenderOpcode, /* 4133 */
__glXNoSuchRenderOpcode, /* 4134 */
#endif
__glXNoSuchRenderOpcode, /* 4135 */
__glXNoSuchRenderOpcode, /* 4136 */
__glXNoSuchRenderOpcode, /* 4137 */
__glXNoSuchRenderOpcode, /* 4138 */
__glXNoSuchRenderOpcode, /* 4139 */
__glXNoSuchRenderOpcode, /* 4140 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@ -2200,7 +2219,20 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4219 */
#ifndef MISSING_GL_EXTS
__glXDisp_ActiveStencilFaceEXT, /* 4220 */
# ifndef __DARWIN__
__glXDisp_PointParameteri, /* 4221 */
__glXDisp_PointParameteriv, /* 4222 */
# else
__glXDisp_PointParameteriNV, /* 4221 */
__glXDisp_PointParameterivNV, /* 4222 */
# endif
#else
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#endif
};
__GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDisp_AreTexturesResidentEXT, /* 11 */
@ -2223,8 +2255,13 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#ifndef MISSING_GL_EXTS
__glXDispSwap_PointParameterfARB, /* 2065 */
__glXDispSwap_PointParameterfvARB, /* 2066 */
#else
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#endif
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@ -4282,22 +4319,36 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT
__glXDispSwap_CopyTexSubImage1D, /* 4121 */
__glXDispSwap_CopyTexSubImage2D, /* 4122 */
__glXDispSwap_CopyTexSubImage3D, /* 4123 */
__glXNoSuchRenderOpcode, /* 4124 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4130 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#ifndef MISSING_GL_EXTS
__glXDispSwap_FogCoordfv, /* 4124 */
__glXDispSwap_FogCoorddv, /* 4125 */
__glXDispSwap_SecondaryColor3bv, /* 4126 */
__glXDispSwap_SecondaryColor3sv, /* 4127 */
__glXDispSwap_SecondaryColor3iv, /* 4128 */
__glXDispSwap_SecondaryColor3fv, /* 4129 */
__glXDispSwap_SecondaryColor3dv, /* 4130 */
__glXDispSwap_SecondaryColor3ubv, /* 4131 */
__glXDispSwap_SecondaryColor3usv, /* 4132 */
__glXDispSwap_SecondaryColor3uiv, /* 4133 */
__glXDisp_BlendFuncSeparate, /* 4134 */
#else
__glXNoSuchRenderOpcode, /* 4124 */
__glXNoSuchRenderOpcode, /* 4125 */
__glXNoSuchRenderOpcode, /* 4126 */
__glXNoSuchRenderOpcode, /* 4127 */
__glXNoSuchRenderOpcode, /* 4128 */
__glXNoSuchRenderOpcode, /* 4129 */
__glXNoSuchRenderOpcode, /* 4130 */
__glXNoSuchRenderOpcode, /* 4131 */
__glXNoSuchRenderOpcode, /* 4132 */
__glXNoSuchRenderOpcode, /* 4133 */
__glXNoSuchRenderOpcode, /* 4134 */
#endif
__glXNoSuchRenderOpcode, /* 4135 */
__glXNoSuchRenderOpcode, /* 4136 */
__glXNoSuchRenderOpcode, /* 4137 */
__glXNoSuchRenderOpcode, /* 4138 */
__glXNoSuchRenderOpcode, /* 4139 */
__glXNoSuchRenderOpcode, /* 4140 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@ -4378,7 +4429,20 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4219 */
#ifndef MISSING_GL_EXTS
__glXDispSwap_ActiveStencilFaceEXT, /* 4220 */
# ifndef __DARWIN__
__glXDispSwap_PointParameteri, /* 4221 */
__glXDispSwap_PointParameteriv, /* 4222 */
# else
__glXDispSwap_PointParameteriNV, /* 4221 */
__glXDispSwap_PointParameterivNV, /* 4222 */
# endif
#else
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
#endif
};
__GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDispSwap_AreTexturesResidentEXT, /* 11 */

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.h,v 1.4 2003/09/28 20:15:42 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.h,v 1.6 2004/02/12 02:25:01 torrey Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
#ifndef _GLX_g_disptab_EXT_h_
#define _GLX_g_disptab_EXT_h_
@ -69,6 +69,44 @@ extern void __glXDisp_CopyTexSubImage2D(GLbyte*);
extern void __glXDisp_CopyTexSubImage3D(GLbyte*);
extern void __glXDisp_PointParameterfARB(GLbyte*);
extern void __glXDisp_PointParameterfvARB(GLbyte*);
extern void __glXDisp_FogCoordfv(GLbyte *);
extern void __glXDisp_FogCoorddv(GLbyte *);
extern void __glXDispSwap_FogCoordfv(GLbyte *);
extern void __glXDispSwap_FogCoorddv(GLbyte *);
extern void __glXDisp_SecondaryColor3bv(GLbyte *);
extern void __glXDisp_SecondaryColor3sv(GLbyte *);
extern void __glXDisp_SecondaryColor3iv(GLbyte *);
extern void __glXDisp_SecondaryColor3ubv(GLbyte *);
extern void __glXDisp_SecondaryColor3usv(GLbyte *);
extern void __glXDisp_SecondaryColor3uiv(GLbyte *);
extern void __glXDisp_SecondaryColor3fv(GLbyte *);
extern void __glXDisp_SecondaryColor3dv(GLbyte *);
extern void __glXDispSwap_SecondaryColor3bv(GLbyte *);
extern void __glXDispSwap_SecondaryColor3sv(GLbyte *);
extern void __glXDispSwap_SecondaryColor3iv(GLbyte *);
extern void __glXDispSwap_SecondaryColor3ubv(GLbyte *);
extern void __glXDispSwap_SecondaryColor3usv(GLbyte *);
extern void __glXDispSwap_SecondaryColor3uiv(GLbyte *);
extern void __glXDispSwap_SecondaryColor3fv(GLbyte *);
extern void __glXDispSwap_SecondaryColor3dv(GLbyte *);
extern void __glXDisp_BlendFuncSeparate(GLbyte *);
extern void __glXDispSwap_BlendFuncSeparate(GLbyte *);
#ifdef __DARWIN__
extern void __glXDisp_PointParameteriNV(GLbyte *);
extern void __glXDisp_PointParameterivNV(GLbyte *);
extern void __glXDispSwap_PointParameteriNV(GLbyte *);
extern void __glXDispSwap_PointParameterivNV(GLbyte *);
#else
extern void __glXDisp_PointParameteri(GLbyte *);
extern void __glXDisp_PointParameteriv(GLbyte *);
extern void __glXDispSwap_PointParameteri(GLbyte *);
extern void __glXDispSwap_PointParameteriv(GLbyte *);
#endif
extern void __glXDisp_ActiveStencilFaceEXT(GLbyte*);
extern int __glXDispSwap_AreTexturesResidentEXT(__GLXclientState*, GLbyte*);
@ -112,7 +150,7 @@ extern void __glXDispSwap_PointParameterfvARB(GLbyte*);
extern void __glXDispSwap_ActiveStencilFaceEXT(GLbyte*);
#define __GLX_MIN_RENDER_OPCODE_EXT 2053
#define __GLX_MAX_RENDER_OPCODE_EXT 4220
#define __GLX_MAX_RENDER_OPCODE_EXT 4222
#define __GLX_MIN_VENDPRIV_OPCODE_EXT 11
#define __GLX_MAX_VENDPRIV_OPCODE_EXT 14
#define __GLX_VENDPRIV_TABLE_SIZE_EXT (__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1)

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_render.c,v 1.6 2003/10/28 22:50:17 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_render.c,v 1.9 2004/02/12 02:25:01 torrey Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
/*
** License Applicability. Except to the extent portions of this file are
@ -59,6 +59,157 @@ void __glXDisp_Begin(GLbyte *pc)
);
}
#define __GLX_SWAP_GLbyte(ptr)
#define __GLX_SWAP_GLshort(ptr) __GLX_SWAP_SHORT(ptr)
#define __GLX_SWAP_GLint(ptr) __GLX_SWAP_INT(ptr)
#define __GLX_SWAP_GLubyte(ptr)
#define __GLX_SWAP_GLushort(ptr) __GLX_SWAP_SHORT(ptr)
#define __GLX_SWAP_GLuint(ptr) __GLX_SWAP_INT(ptr)
#define __GLX_SWAP_GLdouble(ptr) __GLX_SWAP_DOUBLE(ptr)
#define __GLX_SWAP_GLfloat(ptr) __GLX_SWAP_FLOAT(ptr)
#define __GLX_SWAP_GLbyte_ARRAY(ptr,count) (void) swapEnd; (void) swapPC; (void) sw;
#define __GLX_SWAP_GLshort_ARRAY(ptr,count) __GLX_SWAP_SHORT_ARRAY(ptr,count)
#define __GLX_SWAP_GLint_ARRAY(ptr,count) __GLX_SWAP_INT_ARRAY(ptr,count)
#define __GLX_SWAP_GLenum_ARRAY(ptr,count) __GLX_SWAP_INT_ARRAY(ptr,count)
#define __GLX_SWAP_GLubyte_ARRAY(ptr,count) (void) swapEnd; (void) swapPC; (void) sw;
#define __GLX_SWAP_GLushort_ARRAY(ptr,count) __GLX_SWAP_SHORT_ARRAY(ptr,count)
#define __GLX_SWAP_GLuint_ARRAY(ptr,count) __GLX_SWAP_INT_ARRAY(ptr,count)
#define __GLX_SWAP_GLdouble_ARRAY(ptr,count) __GLX_SWAP_DOUBLE_ARRAY(ptr,count)
#define __GLX_SWAP_GLfloat_ARRAY(ptr,count) __GLX_SWAP_FLOAT_ARRAY(ptr,count)
#ifdef __GLX_ALIGN64
/* If type is not GLdouble, the compiler should optimize this away.
*/
# define GLX_DO_ALIGN_MAGIC(count, type) \
do { \
if ( (sizeof(type) == 8) && ((unsigned long)(pc) & 7)) \
{ \
__GLX_MEM_COPY(pc-4, pc, (count * sizeof( type ) )); \
pc -= 4; \
} \
} while( 0 )
#else
# define GLX_DO_ALIGN_MAGIC(count, type)
#endif
#define dispatch_template_1( name, type ) \
void __glXDisp_ ## name ( GLbyte * pc ) \
{ \
GLX_DO_ALIGN_MAGIC( 1, type ); \
gl ## name ( (type *) pc ); \
} \
void __glXDispSwap_ ## name ( GLbyte * pc ) \
{ \
__GLX_DECLARE_SWAP_VARIABLES; \
GLX_DO_ALIGN_MAGIC( 1, type ); \
__GLX_SWAP_ ## type ( pc ); \
gl ## name ( (type *) pc ); \
}
#define dispatch_template_3( name, type ) \
void __glXDisp_ ## name ( GLbyte * pc ) \
{ \
GLX_DO_ALIGN_MAGIC( 3, type ); \
gl ## name ( (type *) pc ); \
} \
void __glXDispSwap_ ## name ( GLbyte * pc ) \
{ \
__GLX_DECLARE_SWAP_VARIABLES; \
__GLX_DECLARE_SWAP_ARRAY_VARIABLES; \
GLX_DO_ALIGN_MAGIC( 3, type ); \
__GLX_SWAP_ ## type ## _ARRAY(pc, 3); \
gl ## name ( (type *) pc ); \
}
#define dispatch_template_4( name, type ) \
void __glXDisp_ ## name ( GLbyte * pc ) \
{ \
GLX_DO_ALIGN_MAGIC( 4, type ); \
gl ## name ( (type *) pc ); \
} \
void __glXDispSwap_ ## name ( GLbyte * pc ) \
{ \
__GLX_DECLARE_SWAP_VARIABLES; \
__GLX_DECLARE_SWAP_ARRAY_VARIABLES; \
GLX_DO_ALIGN_MAGIC( 4, type ); \
__GLX_SWAP_ ## type ## _ARRAY(pc, 4); \
gl ## name ( (type *) pc ); \
}
#define dispatch_template_4s( name, type ) \
void __glXDisp_ ## name ( GLbyte * pc ) \
{ \
GLX_DO_ALIGN_MAGIC( 4, type ); \
gl ## name ( ((type *) pc)[0], ((type *) pc)[1], \
((type *) pc)[2], ((type *) pc)[3] ); \
} \
void __glXDispSwap_ ## name ( GLbyte * pc ) \
{ \
__GLX_DECLARE_SWAP_VARIABLES; \
__GLX_DECLARE_SWAP_ARRAY_VARIABLES; \
GLX_DO_ALIGN_MAGIC( 4, type ); \
__GLX_SWAP_ ## type ## _ARRAY(pc, 4); \
gl ## name ( ((type *) pc)[0], ((type *) pc)[1], \
((type *) pc)[2], ((type *) pc)[3] ); \
}
/**
* \bug All of the enum1 templates need to be updated to handle the case where
* \c type is \c GLdouble. When the type is a double, the data comes before
* the enum. This is also the reason the invocation of the
* \c GLX_DO_ALIGN_MAGIC macro was removed.
*/
#define dispatch_template_enum1_1s( name, type ) \
void __glXDisp_ ## name ( GLbyte * pc ) \
{ \
gl ## name ( *(GLenum *) (pc + 0), \
*(type *) (pc + 4) ); \
} \
void __glXDispSwap_ ## name ( GLbyte * pc ) \
{ \
__GLX_DECLARE_SWAP_VARIABLES; \
__GLX_SWAP_INT (pc + 0); \
__GLX_SWAP_ ## type (pc + 4); \
gl ## name ( *(GLenum *) (pc + 0), \
*(type *) (pc + 4) ); \
}
#define dispatch_template_enum1_Vv( name, type ) \
void __glXDisp_ ## name ( GLbyte * pc ) \
{ \
gl ## name ( *(GLenum *) (pc + 0), \
(type *) (pc + 4) ); \
} \
void __glXDispSwap_ ## name ( GLbyte * pc ) \
{ \
GLenum pname; GLint compsize; \
__GLX_DECLARE_SWAP_VARIABLES; \
__GLX_DECLARE_SWAP_ARRAY_VARIABLES; \
__GLX_SWAP_INT(pc + 0); \
pname = *(GLenum *)(pc + 0); \
compsize = __gl ## name ## _size(pname); \
if (compsize < 0) compsize = 0; \
__GLX_SWAP_ ## type ## _ARRAY(pc + 4, compsize); \
gl ## name ( *(GLenum *) (pc + 0), \
(type *) (pc + 4) ); \
}
#ifndef MISSING_GL_EXTS
dispatch_template_1( FogCoordfv, GLfloat )
dispatch_template_1( FogCoorddv, GLdouble )
dispatch_template_3( SecondaryColor3bv, GLbyte )
dispatch_template_3( SecondaryColor3sv, GLshort )
dispatch_template_3( SecondaryColor3iv, GLint )
dispatch_template_3( SecondaryColor3ubv, GLubyte )
dispatch_template_3( SecondaryColor3usv, GLushort )
dispatch_template_3( SecondaryColor3uiv, GLuint )
dispatch_template_3( SecondaryColor3fv, GLfloat )
dispatch_template_3( SecondaryColor3dv, GLdouble )
dispatch_template_4s( BlendFuncSeparate, GLenum )
#endif /* !MISSING_GL_EXTS */
void __glXDisp_Color3bv(GLbyte *pc)
{
glColor3bv(
@ -2079,6 +2230,8 @@ void __glXDisp_MultiTexCoord4svARB(GLbyte *pc)
* Extensions
*/
#ifndef MISSING_GL_EXTS
void __glXDisp_PointParameterfARB(GLbyte *pc)
{
glPointParameterfARB(
@ -2096,6 +2249,15 @@ void __glXDisp_PointParameterfvARB(GLbyte *pc)
);
}
#ifdef __DARWIN__
#define __glPointParameterivNV_size __glPointParameteriv_size
dispatch_template_enum1_1s(PointParameteriNV, GLint)
dispatch_template_enum1_Vv(PointParameterivNV, GLint)
#else
dispatch_template_enum1_1s(PointParameteri, GLint)
dispatch_template_enum1_Vv(PointParameteriv, GLint)
#endif
void __glXDisp_ActiveStencilFaceEXT(GLbyte *pc)
{
glActiveStencilFaceEXT(
@ -2111,3 +2273,13 @@ void __glXDisp_WindowPos3fARB(GLbyte *pc)
*(GLfloat *)(pc + 8)
);
}
#endif /* !MISSING_GL_EXTS */
void __glXDisp_SampleCoverageARB(GLbyte *pc)
{
glSampleCoverageARB(
*(GLfloat *)(pc + 0),
*(GLboolean *)(pc + 4)
);
}

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/g_renderswap.c,v 1.7 2003/10/28 22:50:17 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/g_renderswap.c,v 1.9 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -3313,6 +3313,8 @@ void __glXDispSwap_MultiTexCoord4svARB(GLbyte *pc)
* Extensions
*/
#ifndef MISSING_GL_EXTS
void __glXDispSwap_PointParameterfARB(GLbyte *pc)
{
__GLX_DECLARE_SWAP_VARIABLES;
@ -3366,3 +3368,17 @@ void __glXDispSwap_WindowPos3fARB(GLbyte *pc)
*(GLfloat *)(pc + 8)
);
}
#endif /* !MISSING_GL_EXTS */
void __glXDispSwap_SampleCoverageARB(GLbyte *pc)
{
__GLX_DECLARE_SWAP_VARIABLES;
__GLX_SWAP_FLOAT(pc + 0);
__GLX_SWAP_INT(pc + 4);
glSampleCoverageARB(
*(GLfloat *)(pc + 0),
*(GLboolean *)(pc + 4)
);
}

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxcmds.c,v 1.11 2003/10/28 22:50:17 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxcmds.c,v 1.13 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -1554,6 +1554,18 @@ int __glXVendorPrivate(__GLXclientState *cl, GLbyte *pc)
req = (xGLXVendorPrivateReq *) pc;
vendorcode = req->vendorCode;
#ifndef __DARWIN__
switch( vendorcode ) {
case X_GLvop_SampleMaskSGIS:
glSampleMaskSGIS(*(GLfloat *)(pc + 4),
*(GLboolean *)(pc + 8));
return Success;
case X_GLvop_SamplePatternSGIS:
glSamplePatternSGIS( *(GLenum *)(pc + 4));
return Success;
}
#endif
if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
(vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT)) {
(*__glXVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxcmdsswap.c,v 1.9 2003/10/28 22:50:17 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxcmdsswap.c,v 1.11 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -791,6 +791,21 @@ int __glXSwapVendorPrivate(__GLXclientState *cl, GLbyte *pc)
vendorcode = req->vendorCode;
#ifndef __DARWIN__
switch( vendorcode ) {
case X_GLvop_SampleMaskSGIS:
__GLX_SWAP_FLOAT(pc + 4);
__GLX_SWAP_INT(pc + 8);
glSampleMaskSGIS(*(GLfloat *)(pc + 4),
*(GLboolean *)(pc + 8));
return Success;
case X_GLvop_SamplePatternSGIS:
__GLX_SWAP_INT(pc + 4);
glSamplePatternSGIS( *(GLenum *)(pc + 4));
return Success;
}
#endif
if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
(vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT)) {
(*__glXSwapVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])(cl, (GLbyte*)req);

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.9 2003/09/28 20:15:43 alanh Exp $
/* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.10 2004/01/28 22:36:05 alanh Exp $
** The contents of this file are subject to the GLX Public License Version 1.0
** (the "License"). You may not use this file except in compliance with the
** License. You may obtain a copy of the License at Silicon Graphics, Inc.,
@ -31,6 +31,9 @@
extern __GLXextensionInfo __glDDXExtensionInfo;
void GlxWrapInitVisuals(miInitVisualsProcPtr *);
void GlxSetVisualConfigs(int nconfigs,
__GLXvisualConfig *configs, void **privates);
__GLXextensionInfo *__glXExt = &__glDDXExtensionInfo;

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxext.h,v 1.7 2003/11/17 22:20:26 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxext.h,v 1.8 2004/02/09 23:46:31 alanh Exp $ */
#ifndef _glxext_h_
#define _glxext_h_
@ -80,6 +80,9 @@ extern void GlxExtensionInit(void);
extern Bool __glXCoreType(void);
extern const char GLServerVersion[];
extern int DoGetString(__GLXclientState *cl, GLbyte *pc, GLboolean need_swap);
extern int GlxInitVisuals(
VisualPtr * visualp,
DepthPtr * depthp,

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxscreens.c,v 1.12 2003/09/28 20:15:43 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxscreens.c,v 1.15 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -46,11 +46,13 @@
#include "glxserver.h"
#include "glxutil.h"
const char GLServerVersion[] = "1.2";
static const char GLServerExtensions[] =
"GL_ARB_depth_texture "
"GL_ARB_imaging "
"GL_ARB_multitexture "
"GL_ARB_point_parameters "
"GL_ARB_point_sprite "
"GL_ARB_shadow "
"GL_ARB_shadow_ambient "
"GL_ARB_texture_border_clamp "
@ -108,6 +110,7 @@ static const char GLServerExtensions[] =
"GL_MESA_pack_invert "
"GL_MESA_ycbcr_texture "
"GL_NV_blend_square "
"GL_NV_point_sprite "
"GL_NV_texgen_reflection "
"GL_NV_texture_rectangle "
"GL_SGIS_generate_mipmap "
@ -125,11 +128,15 @@ static const char GLServerExtensions[] =
*/
static char GLXServerVendorName[] = "SGI";
static char GLXServerVersion[] = "1.2";
static char GLXServerExtensions[] =
static char GLXServerExtensions[] =
"GLX_ARB_multisample "
"GLX_EXT_visual_info "
"GLX_EXT_visual_rating "
"GLX_EXT_import_context "
"GLX_SGI_make_current_read "
#ifndef __DARWIN__
"GLX_SGIS_multisample "
#endif
;
/*

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/glxserver.h,v 1.5 2003/09/28 20:15:43 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/glxserver.h,v 1.6 2004/01/28 18:11:50 alanh Exp $ */
#ifndef _GLX_server_h_
#define _GLX_server_h_
@ -280,5 +280,6 @@ extern int __glXColorTableParameterfvSize(GLenum pname);
extern int __glXColorTableParameterivSize(GLenum pname);
extern int __glXPointParameterfvARBReqSize(GLbyte *pc, Bool swap);
extern int __glXPointParameterivReqSize(GLbyte *pc, Bool swap);
#endif /* !__GLX_server_h__ */

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/impsize.h,v 1.4 2003/09/28 20:15:43 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/impsize.h,v 1.5 2004/01/28 18:11:50 alanh Exp $ */
#ifndef _impsize_h_
#define _impsize_h_
@ -67,6 +67,7 @@ extern int __glTexParameterfv_size(GLenum e);
extern int __glTexParameteriv_size(GLenum e);
extern int __glEvalComputeK(GLenum target);
extern int __glPointParameterfvARB_size(GLenum pname);
extern int __glPointParameterfvARB_size(GLenum e);
extern int __glPointParameteriv_size(GLenum e);
#endif /* _impsize_h_ */

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/render2.c,v 1.6 2003/10/28 22:50:18 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/render2.c,v 1.9 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -234,6 +234,16 @@ void __glXDisp_DrawArrays(GLbyte *pc)
glEnableClientState(GL_EDGE_FLAG_ARRAY);
glEdgeFlagPointer(stride, (const GLboolean *)pc);
break;
#ifndef MISSING_GL_EXTS
case GL_SECONDARY_COLOR_ARRAY:
glEnableClientState(GL_SECONDARY_COLOR_ARRAY);
glSecondaryColorPointer(numVals, datatype, stride, pc);
break;
case GL_FOG_COORDINATE_ARRAY:
glEnableClientState(GL_FOG_COORDINATE_ARRAY);
glFogCoordPointer(datatype, stride, pc);
break;
#endif
default:
break;
}
@ -250,10 +260,11 @@ void __glXDisp_DrawArrays(GLbyte *pc)
glDisableClientState(GL_INDEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_EDGE_FLAG_ARRAY);
glDisableClientState(GL_SECONDARY_COLOR_ARRAY);
glDisableClientState(GL_FOG_COORDINATE_ARRAY);
}
void __glXDisp_DrawArraysEXT(GLbyte *pc)
{
#ifdef XXX_STUB
#endif /*XXX_STUB*/
__glXDisp_DrawArrays(pc);
}

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/render2swap.c,v 1.6 2002/01/14 22:47:08 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/render2swap.c,v 1.7 2004/02/03 23:04:08 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -386,6 +386,5 @@ void __glXDispSwap_DrawArrays(GLbyte *pc)
void __glXDispSwap_DrawArraysEXT(GLbyte *pc)
{
#ifdef XXX_STUB
#endif /*XXX_STUB*/
__glXDispSwap_DrawArrays(pc);
}

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/rensize.c,v 1.6 2003/09/28 20:15:43 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/rensize.c,v 1.7 2004/01/28 18:11:53 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -551,12 +551,14 @@ int __glXDrawArraysSize( GLbyte *pc, Bool swap )
case GL_COLOR_ARRAY:
case GL_TEXTURE_COORD_ARRAY:
break;
case GL_SECONDARY_COLOR_ARRAY:
case GL_NORMAL_ARRAY:
if (numVals != 3) {
/* bad size */
return -1;
}
break;
case GL_FOG_COORDINATE_ARRAY:
case GL_INDEX_ARRAY:
if (numVals != 1) {
/* bad size */
@ -918,3 +920,9 @@ int __glXPointParameterfvARBReqSize(GLbyte *pc, Bool swap )
}
return 4 * __glPointParameterfvARB_size( pname );
}
int __glXPointParameterivReqSize(GLbyte *pc, Bool swap )
{
/* no difference between fv and iv versions */
return __glXPointParameterfvARBReqSize(pc, swap);
}

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/rensizetab.c,v 1.4 2003/09/28 20:15:43 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/rensizetab.c,v 1.6 2004/02/03 23:04:08 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -231,9 +231,9 @@ __GLXrenderSizeData __glXRenderSizeTable[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN
/* Translatef */ { 16, 0 },
/* Viewport */ { 20, 0 },
/* PolygonOffset */ { 12, 0 },
/* no such opcode */ { 0, 0 },
/* DrawArrays */ { 16, __glXDrawArraysSize },
/* Indexubv */ { 8, 0 },
/* ColorSubTable */ { 44, __glXColorSubTableReqSize },
/* ColorSubTable */ { 44, __glXColorSubTableReqSize },
/* CopyColorSubTable */ { 24, 0 },
/* ActiveTextureARB */ { 8, 0 },
/* MultiTexCoord1dvARB */ { 16, 0 },
@ -2342,17 +2342,17 @@ __GLXrenderSizeData __glXRenderSizeTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX
/* CopyTexSubImage1D */ { 28, 0 },
/* CopyTexSubImage2D */ { 36, 0 },
/* CopyTexSubImage3D 4123 */ { 40, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* FogCoordfv 4124 */ { 8, 0 },
/* FogCoorddv 4125 */ { 12, 0 },
/* SecondaryColor3bv 4126 */ { 8, 0 },
/* SecondaryColor3sv 4127 */ { 12, 0 },
/* SecondaryColor3iv 4128 */ { 16, 0 },
/* SecondaryColor3fv 4129 */ { 16, 0 },
/* SecondaryColor3dv 4130 */ { 28, 0 },
/* SecondaryColor3ubv 4131 */ { 8, 0 },
/* SecondaryColor3usv 4132 */ { 12, 0 },
/* SecondaryColor3uiv 4133 */ { 16, 0 },
/* BlendFuncSeparate 4134 */ { 20, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
@ -2439,4 +2439,6 @@ __GLXrenderSizeData __glXRenderSizeTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* ActiveStencilFaceEXT 4220 */ { 8, 0 },
/* PointParameteri 4221 */ { 12, 0 },
/* PointParameteriv 4222 */ { 8, __glXPointParameterivReqSize },
};

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/single2.c,v 1.6 2001/06/06 19:00:15 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/single2.c,v 1.9 2004/02/11 09:18:15 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -296,16 +296,25 @@ char *__glXcombine_strings(const char *cext_string, const char *sext_string)
return combo_string;
}
int __glXDisp_GetString(__GLXclientState *cl, GLbyte *pc)
int DoGetString(__GLXclientState *cl, GLbyte *pc, GLboolean need_swap)
{
ClientPtr client;
__GLXcontext *cx;
GLenum name;
const char *string;
__GLX_DECLARE_SWAP_VARIABLES;
int error;
char *buf = NULL, *buf1 = NULL;
GLint length = 0;
/* If the client has the opposite byte order, swap the contextTag and
* the name.
*/
if ( need_swap ) {
__GLX_SWAP_INT(pc + 4);
__GLX_SWAP_INT(pc + __GLX_SINGLE_HDR_SIZE);
}
cx = __glXForceCurrent(cl, __GLX_GET_SINGLE_CONTEXT_TAG(pc), &error);
if (!cx) {
return error;
@ -331,12 +340,32 @@ int __glXDisp_GetString(__GLXclientState *cl, GLbyte *pc)
}
string = buf;
}
else if ( name == GL_VERSION ) {
if ( atof( string ) > atof( GLServerVersion ) ) {
buf = __glXMalloc( __glXStrlen( string )
+ __glXStrlen( GLServerVersion )
+ 3 );
if ( buf == NULL ) {
string = GLServerVersion;
}
else {
__glXSprintf( buf, "%s (%s)", GLServerVersion, string );
string = buf;
}
}
}
if (string) {
length = __glXStrlen((const char *) string) + 1;
}
__GLX_BEGIN_REPLY(length);
__GLX_PUT_SIZE(length);
if ( need_swap ) {
__GLX_SWAP_REPLY_SIZE();
__GLX_SWAP_REPLY_HEADER();
}
__GLX_SEND_HEADER();
WriteToClient(client, length, (char *) string);
if (buf != NULL) {
@ -345,6 +374,11 @@ int __glXDisp_GetString(__GLXclientState *cl, GLbyte *pc)
return Success;
}
int __glXDisp_GetString(__GLXclientState *cl, GLbyte *pc)
{
return DoGetString(cl, pc, GL_FALSE);
}
int __glXDisp_GetClipPlane(__GLXclientState *cl, GLbyte *pc)
{
__GLXcontext *cx;

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/single2swap.c,v 1.7 2002/01/14 22:47:08 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/single2swap.c,v 1.8 2004/02/09 23:46:31 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -262,58 +262,7 @@ int __glXDispSwap_Finish(__GLXclientState *cl, GLbyte *pc)
int __glXDispSwap_GetString(__GLXclientState *cl, GLbyte *pc)
{
ClientPtr client;
__GLXcontext *cx;
GLenum name;
const char *string;
__GLX_DECLARE_SWAP_VARIABLES;
int error;
char *buf = NULL, *buf1 = NULL;
GLint length = 0;
__GLX_SWAP_INT(&((xGLXSingleReq *)pc)->contextTag);
cx = __glXForceCurrent(cl, __GLX_GET_SINGLE_CONTEXT_TAG(pc), &error);
if (!cx) {
return error;
}
pc += __GLX_SINGLE_HDR_SIZE;
__GLX_SWAP_INT(pc + 0);
name = *(GLenum *)(pc + 0);
string = (const char *)glGetString(name);
client = cl->client;
/*
** Restrict extensions to those that are supported by both the
** implementation and the connection. That is, return the
** intersection of client, server, and core extension strings.
*/
if (name == GL_EXTENSIONS) {
buf1 = __glXcombine_strings(string,
cl->GLClientextensions);
buf = __glXcombine_strings(buf1,
cx->pGlxScreen->GLextensions);
if (buf1 != NULL) {
__glXFree(buf1);
}
string = buf;
}
if (string) {
length = __glXStrlen((const char *) string) + 1;
}
__GLX_BEGIN_REPLY(length);
__GLX_PUT_SIZE(length);
__GLX_SWAP_REPLY_SIZE();
__GLX_SWAP_REPLY_HEADER();
__GLX_SEND_HEADER();
WriteToClient(client, length, (char *) string);
if (buf != NULL) {
__glXFree(buf);
}
return Success;
return DoGetString(cl, pc, GL_TRUE);
}
int __glXDispSwap_GetClipPlane(__GLXclientState *cl, GLbyte *pc)

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/GL/glx/singlesize.c,v 1.6 2003/11/06 18:37:56 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/glx/singlesize.c,v 1.8 2004/02/09 19:51:32 tsi Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@ -50,32 +50,48 @@ GLint __glReadPixels_size(GLenum format, GLenum type, GLint w, GLint h)
return __glXImage3DSize( format, type, w, h, 1, 0, 0, 0, 0, 4 );
}
/**
* Determine the number of data elements that go with the specified \c pname
* to a \c glGetTexEnvfv or \c glGetTexEnviv call.
*
* \todo
* Replace this function with a call to \c __glTexEnvfv_size. Make that there
* aren't any values of \c pname that are valid for one but not the other.
*/
GLint __glGetTexEnvfv_size(GLenum pname)
{
switch (pname) {
case GL_TEXTURE_ENV_MODE:
case GL_TEXTURE_LOD_BIAS:
case GL_COMBINE_RGB:
case GL_COMBINE_ALPHA:
case GL_SOURCE0_RGB:
case GL_SOURCE1_RGB:
case GL_SOURCE2_RGB:
case GL_SOURCE0_ALPHA:
case GL_SOURCE1_ALPHA:
case GL_SOURCE2_ALPHA:
case GL_OPERAND0_RGB:
case GL_OPERAND1_RGB:
case GL_OPERAND2_RGB:
case GL_OPERAND0_ALPHA:
case GL_OPERAND1_ALPHA:
case GL_OPERAND2_ALPHA:
case GL_RGB_SCALE:
case GL_ALPHA_SCALE:
/* GL_ARB_point_sprite / GL_NV_point_sprite */
case GL_COORD_REPLACE_NV:
/* GL_NV_texture_env_combine4 */
case GL_SOURCE3_RGB_NV:
case GL_SOURCE3_ALPHA_NV:
case GL_OPERAND3_RGB_NV:
case GL_OPERAND3_ALPHA_NV:
return 1;
case GL_TEXTURE_ENV_COLOR:
return 4;
case GL_TEXTURE_LOD_BIAS_EXT:
return 1;
case GL_COMBINE_RGB_ARB:
case GL_COMBINE_ALPHA_ARB:
case GL_SOURCE0_RGB_ARB:
case GL_SOURCE1_RGB_ARB:
case GL_SOURCE2_RGB_ARB:
case GL_SOURCE0_ALPHA_ARB:
case GL_SOURCE1_ALPHA_ARB:
case GL_SOURCE2_ALPHA_ARB:
case GL_OPERAND0_RGB_ARB:
case GL_OPERAND1_RGB_ARB:
case GL_OPERAND2_RGB_ARB:
case GL_OPERAND0_ALPHA_ARB:
case GL_OPERAND1_ALPHA_ARB:
case GL_OPERAND2_ALPHA_ARB:
case GL_RGB_SCALE_ARB:
case GL_ALPHA_SCALE:
return 1;
default:
return -1;
}
@ -140,6 +156,15 @@ GLint __glGetTexParameterfv_size(GLenum pname)
case GL_TEXTURE_COMPARE_MODE:
case GL_TEXTURE_COMPARE_FUNC:
/* GL_SGIS_generate_mipmap / GL 1.4 */
case GL_GENERATE_MIPMAP:
/* GL_ARB_depth_texture / GL 1.4 */
case GL_DEPTH_TEXTURE_MODE:
/* GL_EXT_texture_lod_bias / GL 1.4 */
case GL_TEXTURE_LOD_BIAS:
/* GL_SGIX_shadow_ambient / GL_ARB_shadow_ambient */
case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB:
@ -151,6 +176,9 @@ GLint __glGetTexParameterfv_size(GLenum pname)
case GL_TEXTURE_MAX_CLAMP_S_SGIX:
case GL_TEXTURE_MAX_CLAMP_T_SGIX:
case GL_TEXTURE_MAX_CLAMP_R_SGIX:
/* GL_EXT_texture_filter_anisotropic */
case GL_TEXTURE_MAX_ANISOTROPY_EXT:
return 1;
default:
@ -834,10 +862,6 @@ GLint __glGet_size(GLenum sq)
case GL_MAX_CONVOLUTION_WIDTH:
case GL_MAX_CONVOLUTION_HEIGHT:
return 1;
case GL_TEXTURE_CUBE_MAP_ARB:
case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
return 1;
case GL_OCCLUSION_TEST_RESULT_HP:
case GL_OCCLUSION_TEST_HP:
return 1;
@ -847,6 +871,183 @@ GLint __glGet_size(GLenum sq)
return 1;
case GL_RASTER_POSITION_UNCLIPPED_IBM:
return 1;
/* GL_ARB_texture_cube_map / GL 1.3 */
case GL_TEXTURE_CUBE_MAP:
case GL_TEXTURE_BINDING_CUBE_MAP:
case GL_MAX_CUBE_MAP_TEXTURE_SIZE:
/* GL_ARB_multisample / GL 1.3 */
case GL_MULTISAMPLE:
case GL_SAMPLE_ALPHA_TO_COVERAGE:
case GL_SAMPLE_ALPHA_TO_ONE:
case GL_SAMPLE_COVERAGE:
case GL_SAMPLE_BUFFERS:
case GL_SAMPLES:
case GL_SAMPLE_COVERAGE_VALUE:
case GL_SAMPLE_COVERAGE_INVERT:
/* GL_ARB_texture_comrpession / GL 1.3 */
case GL_TEXTURE_COMPRESSION_HINT:
case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
/* GL_EXT_blend_func_separate / GL 1.4 */
case GL_BLEND_DST_RGB:
case GL_BLEND_SRC_RGB:
case GL_BLEND_DST_ALPHA:
case GL_BLEND_SRC_ALPHA:
/* GL_EXT_fog_coord / GL 1.4 */
case GL_CURRENT_FOG_COORDINATE:
case GL_FOG_COORDINATE_ARRAY_TYPE:
case GL_FOG_COORDINATE_ARRAY_STRIDE:
case GL_FOG_COORDINATE_ARRAY:
case GL_FOG_COORDINATE_SOURCE:
/* GL_EXT_secondary_color / GL 1.4 */
case GL_COLOR_SUM:
case GL_SECONDARY_COLOR_ARRAY_SIZE:
case GL_SECONDARY_COLOR_ARRAY_TYPE:
case GL_SECONDARY_COLOR_ARRAY_STRIDE:
case GL_SECONDARY_COLOR_ARRAY:
/* GL_EXT_texture_lod_bias / GL 1.4 */
case GL_MAX_TEXTURE_LOD_BIAS:
/* GL_ARB_point_sprite */
case GL_POINT_SPRITE_NV:
/* GL_ARB_vertex_blend */
case GL_MAX_VERTEX_UNITS_ARB:
case GL_ACTIVE_VERTEX_UNITS_ARB:
case GL_WEIGHT_SUM_UNITY_ARB:
case GL_VERTEX_BLEND_ARB:
case GL_CURRENT_WEIGHT_ARB:
case GL_WEIGHT_ARRAY_ARB:
case GL_WEIGHT_ARRAY_TYPE_ARB:
case GL_WEIGHT_ARRAY_STRIDE_ARB:
case GL_WEIGHT_ARRAY_SIZE_ARB:
/* GL_ARB_matrix_palette */
case GL_MATRIX_PALETTE_ARB:
case GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB:
case GL_MAX_PALETTE_MATRICES_ARB:
case GL_CURRENT_PALETTE_MATRIX_ARB:
case GL_CURRENT_MATRIX_INDEX_ARB:
case GL_MATRIX_INDEX_ARRAY_ARB:
case GL_MATRIX_INDEX_ARRAY_SIZE_ARB:
case GL_MATRIX_INDEX_ARRAY_TYPE_ARB:
case GL_MATRIX_INDEX_ARRAY_STRIDE_ARB:
/* GL_EXT_clip_volume_hint */
case GL_CLIP_VOLUME_CLIPPING_HINT_EXT:
/* GL_EXT_stencil_two_size */
case GL_STENCIL_TEST_TWO_SIDE_EXT:
case GL_ACTIVE_STENCIL_FACE_EXT:
/* GL_EXT_vertex_weighting */
case GL_VERTEX_WEIGHTING_EXT:
case GL_MODELVIEW0_EXT:
case GL_MODELVIEW1_EXT:
case GL_CURRENT_VERTEX_WEIGHT_EXT:
case GL_VERTEX_WEIGHT_ARRAY_EXT:
case GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT:
case GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT:
case GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT:
/* case GL_MODELVIEW0_STACK_DEPTH_EXT: */ /* alias */
case GL_MODELVIEW1_STACK_DEPTH_EXT:
/* GL_ATI_vertex_streams */
case GL_MAX_VERTEX_STREAMS_ATI:
/* GL_NV_depth_clamp */
case GL_DEPTH_CLAMP_NV:
/* GL_NV_fog_distance */
case GL_FOG_DISTANCE_MODE_NV:
/* GL_NV_light_max_exponent */
case GL_MAX_SHININESS_NV:
case GL_MAX_SPOT_EXPONENT_NV:
/* GL_NV_multisample_filter_hint */
case GL_MULTISAMPLE_FILTER_HINT_NV:
/* GL_NV_point_sprite */
/* case GL_POINT_SPRITE_NV: */ /* alias */
case GL_POINT_SPRITE_R_MODE_NV:
/* GL_NV_register_combiners */
case GL_REGISTER_COMBINERS_NV:
case GL_NUM_GENERAL_COMBINERS_NV:
case GL_COLOR_SUM_CLAMP_NV:
case GL_MAX_GENERAL_COMBINERS_NV:
/* GL_NV_register_combiners2 */
case GL_PER_STAGE_CONSTANTS_NV:
/* GL_NV_texture_rectangle */
case GL_TEXTURE_RECTANGLE_NV:
case GL_TEXTURE_BINDING_RECTANGLE_NV:
case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
return 1;
/* GL_EXT_secondary_color / GL 1.4 */
case GL_CURRENT_SECONDARY_COLOR:
/* GL_NV_register_combiners */
case GL_CONSTANT_COLOR0_NV:
case GL_CONSTANT_COLOR1_NV:
return 4;
/* GL_ARB_vertex_blend */
/* case GL_MODELVIEW0_ARB: */ /* alias */
/* case GL_MODELVIEW1_ARB: */ /* alias */
case GL_MODELVIEW2_ARB:
case GL_MODELVIEW3_ARB:
case GL_MODELVIEW4_ARB:
case GL_MODELVIEW5_ARB:
case GL_MODELVIEW6_ARB:
case GL_MODELVIEW7_ARB:
case GL_MODELVIEW8_ARB:
case GL_MODELVIEW9_ARB:
case GL_MODELVIEW10_ARB:
case GL_MODELVIEW11_ARB:
case GL_MODELVIEW12_ARB:
case GL_MODELVIEW13_ARB:
case GL_MODELVIEW14_ARB:
case GL_MODELVIEW15_ARB:
case GL_MODELVIEW16_ARB:
case GL_MODELVIEW17_ARB:
case GL_MODELVIEW18_ARB:
case GL_MODELVIEW19_ARB:
case GL_MODELVIEW20_ARB:
case GL_MODELVIEW21_ARB:
case GL_MODELVIEW22_ARB:
case GL_MODELVIEW23_ARB:
case GL_MODELVIEW24_ARB:
case GL_MODELVIEW25_ARB:
case GL_MODELVIEW26_ARB:
case GL_MODELVIEW27_ARB:
case GL_MODELVIEW28_ARB:
case GL_MODELVIEW29_ARB:
case GL_MODELVIEW30_ARB:
case GL_MODELVIEW31_ARB:
/* GL_EXT_vertex_weighting */
/* case GL_MODELVIEW0_MATRIX_EXT: */ /* alias */
case GL_MODELVIEW1_MATRIX_EXT:
return 32;
/* GL_ARB_texture_comrpession / GL 1.3 */
case GL_COMPRESSED_TEXTURE_FORMATS: {
GLint temp;
glGetIntegerv( GL_NUM_COMPRESSED_TEXTURE_FORMATS, & temp );
return temp;
}
default:
return -1;
}
@ -886,7 +1087,15 @@ GLint __glGetTexLevelParameterfv_size(GLenum pname)
case GL_TEXTURE_ALPHA_SIZE:
case GL_TEXTURE_LUMINANCE_SIZE:
case GL_TEXTURE_INTENSITY_SIZE:
/* GL_ARB_texture_compression / GL 1.3 */
case GL_TEXTURE_COMPRESSED_IMAGE_SIZE:
case GL_TEXTURE_COMPRESSED:
/* GL_ARB_depth_texture / GL 1.4 */
case GL_TEXTURE_DEPTH_SIZE:
return 1;
default:
return -1;
}

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/XTrap/xtrapdi.c,v 1.1.4.3 2004/02/25 21:46:31 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/XTrap/xtrapdi.c,v 1.7 2003/10/28 22:52:10 tsi Exp $ */
/*****************************************************************************
Copyright 1987, 1988, 1989, 1990, 1991 by Digital Equipment Corp., Maynard, MA
@ -78,8 +78,8 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/extensions/xtrapproto.h>
#include "colormapst.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#include "cursor.h"
#endif
@ -1560,7 +1560,7 @@ void XETrapStampAndMail(xEvent *x_event)
(void)memcpy(&(data.u.event),x_event,sizeof(xEvent));
#ifdef XINERAMA
if (!noXineramaExtension &&
if (!noPanoramiXExtension &&
(data.u.event.u.u.type == MotionNotify ||
data.u.event.u.u.type == ButtonPress ||
data.u.event.u.u.type == ButtonRelease ||
@ -1568,9 +1568,9 @@ void XETrapStampAndMail(xEvent *x_event)
data.u.event.u.u.type == KeyRelease)) {
int scr = XineramaGetCursorScreen();
data.u.event.u.keyButtonPointer.rootX +=
xineramaDataPtr[scr].x - xineramaDataPtr[0].x;
panoramiXdataPtr[scr].x - panoramiXdataPtr[0].x;
data.u.event.u.keyButtonPointer.rootY +=
xineramaDataPtr[scr].y - xineramaDataPtr[0].y;
panoramiXdataPtr[scr].y - panoramiXdataPtr[0].y;
}
#endif

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/Xext/saver.c,v 1.1.4.3 2004/02/25 21:46:33 kaleb Exp $ */
/*
* $XConsortium: saver.c,v 1.12 94/04/17 20:59:36 dpw Exp $
*
@ -48,8 +48,8 @@ in this Software without prior written authorization from the X Consortium.
#include "cursorstr.h"
#include "colormapst.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
@ -678,7 +678,7 @@ ScreenSaverHandle (pScreen, xstate, force)
}
#ifdef XINERAMA
if(noXineramaExtension || !pScreen->myNum)
if(noPanoramiXExtension || !pScreen->myNum)
#endif
SendScreenSaverNotify (pScreen, state, force);
return ret;
@ -1196,19 +1196,19 @@ static int
ProcScreenSaverSetAttributes (ClientPtr client)
{
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
REQUEST(xScreenSaverSetAttributesReq);
XineramaRes *draw;
XineramaRes *backPix = NULL;
XineramaRes *bordPix = NULL;
XineramaRes *cmap = NULL;
PanoramiXRes *draw;
PanoramiXRes *backPix = NULL;
PanoramiXRes *bordPix = NULL;
PanoramiXRes *cmap = NULL;
int i, status = 0, len;
int pback_offset = 0, pbord_offset = 0, cmap_offset = 0;
XID orig_visual, tmp;
REQUEST_AT_LEAST_SIZE (xScreenSaverSetAttributesReq);
if(!(draw = (XineramaRes *)SecurityLookupIDByClass(
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
return BadDrawable;
@ -1220,7 +1220,7 @@ ProcScreenSaverSetAttributes (ClientPtr client)
pback_offset = Ones((Mask)stuff->mask & (CWBackPixmap - 1));
tmp = *((CARD32 *) &stuff[1] + pback_offset);
if ((tmp != None) && (tmp != ParentRelative)) {
if(!(backPix = (XineramaRes*) SecurityLookupIDByType(
if(!(backPix = (PanoramiXRes*) SecurityLookupIDByType(
client, tmp, XRT_PIXMAP, SecurityReadAccess)))
return BadPixmap;
}
@ -1230,7 +1230,7 @@ ProcScreenSaverSetAttributes (ClientPtr client)
pbord_offset = Ones((Mask)stuff->mask & (CWBorderPixmap - 1));
tmp = *((CARD32 *) &stuff[1] + pbord_offset);
if (tmp != CopyFromParent) {
if(!(bordPix = (XineramaRes*) SecurityLookupIDByType(
if(!(bordPix = (PanoramiXRes*) SecurityLookupIDByType(
client, tmp, XRT_PIXMAP, SecurityReadAccess)))
return BadPixmap;
}
@ -1240,7 +1240,7 @@ ProcScreenSaverSetAttributes (ClientPtr client)
cmap_offset = Ones((Mask)stuff->mask & (CWColormap - 1));
tmp = *((CARD32 *) &stuff[1] + cmap_offset);
if ((tmp != CopyFromParent) && (tmp != None)) {
if(!(cmap = (XineramaRes*) SecurityLookupIDByType(
if(!(cmap = (PanoramiXRes*) SecurityLookupIDByType(
client, tmp, XRT_COLORMAP, SecurityReadAccess)))
return BadColor;
}
@ -1259,7 +1259,7 @@ ProcScreenSaverSetAttributes (ClientPtr client)
if (orig_visual != CopyFromParent)
stuff->visualID =
XineramaVisualTable[(orig_visual*MAXSCREENS) + i];
PanoramiXVisualTable[(orig_visual*MAXSCREENS) + i];
status = ScreenSaverSetAttributes(client);
}
@ -1275,16 +1275,16 @@ static int
ProcScreenSaverUnsetAttributes (ClientPtr client)
{
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
REQUEST(xScreenSaverUnsetAttributesReq);
XineramaRes *draw;
PanoramiXRes *draw;
int i;
if(!(draw = (XineramaRes *)SecurityLookupIDByClass(
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
return BadDrawable;
for(i = XineramaNumScreens - 1; i > 0; i--) {
for(i = PanoramiXNumScreens - 1; i > 0; i--) {
stuff->drawable = draw->info[i].id;
ScreenSaverUnsetAttributes(client);
}

View File

@ -1,4 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/Xext/shape.c,v 3.19 2003/11/17 22:20:26 dawes Exp $ */
/* $XdotOrg: xc/programs/Xserver/Xext/shape.c,v 1.1.4.4 2004/02/25 21:46:33 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/Xext/shape.c,v 3.19 2003/11/17 22:20:26 dawes Exp $ */
/************************************************************
@ -114,8 +114,8 @@ static DISPATCH_PROC(SProcShapeRectangles);
static DISPATCH_PROC(SProcShapeSelectInput);
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
#if 0
@ -382,12 +382,12 @@ ProcXineramaShapeRectangles(
register ClientPtr client)
{
REQUEST(xShapeRectanglesReq);
XineramaRes *win;
PanoramiXRes *win;
int j, result = 0;
REQUEST_AT_LEAST_SIZE (xShapeRectanglesReq);
if(!(win = (XineramaRes *)SecurityLookupIDByType(
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->dest, XRT_WINDOW, SecurityWriteAccess)))
return BadWindow;
@ -471,17 +471,17 @@ ProcXineramaShapeMask(
register ClientPtr client)
{
REQUEST(xShapeMaskReq);
XineramaRes *win, *pmap;
PanoramiXRes *win, *pmap;
int j, result = 0;
REQUEST_SIZE_MATCH (xShapeMaskReq);
if(!(win = (XineramaRes *)SecurityLookupIDByType(
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->dest, XRT_WINDOW, SecurityWriteAccess)))
return BadWindow;
if(stuff->src != None) {
if(!(pmap = (XineramaRes *)SecurityLookupIDByType(
if(!(pmap = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->src, XRT_PIXMAP, SecurityReadAccess)))
return BadPixmap;
} else
@ -586,16 +586,16 @@ ProcXineramaShapeCombine(
register ClientPtr client)
{
REQUEST(xShapeCombineReq);
XineramaRes *win, *win2;
PanoramiXRes *win, *win2;
int j, result = 0;
REQUEST_AT_LEAST_SIZE (xShapeCombineReq);
if(!(win = (XineramaRes *)SecurityLookupIDByType(
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->dest, XRT_WINDOW, SecurityWriteAccess)))
return BadWindow;
if(!(win2 = (XineramaRes *)SecurityLookupIDByType(
if(!(win2 = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->src, XRT_WINDOW, SecurityReadAccess)))
return BadWindow;
@ -655,12 +655,12 @@ ProcXineramaShapeOffset(
register ClientPtr client)
{
REQUEST(xShapeOffsetReq);
XineramaRes *win;
PanoramiXRes *win;
int j, result = 0;
REQUEST_AT_LEAST_SIZE (xShapeOffsetReq);
if(!(win = (XineramaRes *)SecurityLookupIDByType(
if(!(win = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->dest, XRT_WINDOW, SecurityWriteAccess)))
return BadWindow;
@ -1066,28 +1066,28 @@ ProcShapeDispatch (client)
return ProcShapeQueryVersion (client);
case X_ShapeRectangles:
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
return ProcXineramaShapeRectangles (client);
else
#endif
return ProcShapeRectangles (client);
case X_ShapeMask:
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
return ProcXineramaShapeMask (client);
else
#endif
return ProcShapeMask (client);
case X_ShapeCombine:
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
return ProcXineramaShapeCombine (client);
else
#endif
return ProcShapeCombine (client);
case X_ShapeOffset:
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
return ProcXineramaShapeOffset (client);
else
#endif

View File

@ -1,4 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/Xext/shm.c,v 1.1.4.3 2003/12/18 19:29:12 kaleb Exp $ */
/* $XdotOrg: xc/programs/Xserver/Xext/shm.c,v 1.1.4.5 2004/02/25 21:46:33 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/Xext/shm.c,v 3.42 2003/12/18 10:15:24 alanh Exp $ *
/************************************************************
@ -64,8 +64,8 @@ in this Software without prior written authorization from The Open Group.
#endif
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
#include "modinit.h"
@ -566,17 +566,17 @@ static int
ProcXineramaShmPutImage(register ClientPtr client)
{
int j, result = 0, orig_x, orig_y;
XineramaRes *draw, *gc;
PanoramiXRes *draw, *gc;
Bool sendEvent, isRoot;
REQUEST(xShmPutImageReq);
REQUEST_SIZE_MATCH(xShmPutImageReq);
if(!(draw = (XineramaRes *)SecurityLookupIDByClass(
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
return BadDrawable;
if(!(gc = (XineramaRes *)SecurityLookupIDByType(
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->gc, XRT_GC, SecurityReadAccess)))
return BadGC;
@ -592,8 +592,8 @@ ProcXineramaShmPutImage(register ClientPtr client)
stuff->drawable = draw->info[j].id;
stuff->gc = gc->info[j].id;
if (isRoot) {
stuff->dstX = orig_x - xineramaDataPtr[j].x;
stuff->dstY = orig_y - xineramaDataPtr[j].y;
stuff->dstX = orig_x - panoramiXdataPtr[j].x;
stuff->dstY = orig_y - panoramiXdataPtr[j].y;
}
result = ProcShmPutImage(client);
if(result != client->noClientException) break;
@ -604,7 +604,7 @@ ProcXineramaShmPutImage(register ClientPtr client)
static int
ProcXineramaShmGetImage(ClientPtr client)
{
XineramaRes *draw;
PanoramiXRes *draw;
DrawablePtr drawables[MAXSCREENS];
DrawablePtr pDraw;
xShmGetImageReply xgi;
@ -623,7 +623,7 @@ ProcXineramaShmGetImage(ClientPtr client)
return(BadValue);
}
if(!(draw = (XineramaRes *)SecurityLookupIDByClass(
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
return BadDrawable;
@ -646,15 +646,15 @@ ProcXineramaShmGetImage(ClientPtr client)
if(isRoot) {
if( /* check for being onscreen */
x < 0 || x + w > XineramaPixWidth ||
y < 0 || y + h > XineramaPixHeight )
x < 0 || x + w > PanoramiXPixWidth ||
y < 0 || y + h > PanoramiXPixHeight )
return(BadMatch);
} else {
if( /* check for being onscreen */
xineramaDataPtr[0].x + pDraw->x + x < 0 ||
xineramaDataPtr[0].x + pDraw->x + x + w > XineramaPixWidth ||
xineramaDataPtr[0].y + pDraw->y + y < 0 ||
xineramaDataPtr[0].y + pDraw->y + y + h > XineramaPixHeight ||
panoramiXdataPtr[0].x + pDraw->x + x < 0 ||
panoramiXdataPtr[0].x + pDraw->x + x + w > PanoramiXPixWidth ||
panoramiXdataPtr[0].y + pDraw->y + y < 0 ||
panoramiXdataPtr[0].y + pDraw->y + y + h > PanoramiXPixHeight ||
/* check for being inside of border */
x < - wBorderWidth((WindowPtr)pDraw) ||
x + w > wBorderWidth((WindowPtr)pDraw) + (int)pDraw->width ||
@ -664,7 +664,7 @@ ProcXineramaShmGetImage(ClientPtr client)
}
drawables[0] = pDraw;
for(i = 1; i < XineramaNumScreens; i++)
for(i = 1; i < PanoramiXNumScreens; i++)
VERIFY_DRAWABLE(drawables[i], draw->info[i].id, client);
xgi.visual = wVisual(((WindowPtr)pDraw));
@ -727,7 +727,7 @@ ProcXineramaShmCreatePixmap(
int i, j, result;
ShmDescPtr shmdesc;
REQUEST(xShmCreatePixmapReq);
XineramaRes *newPix;
PanoramiXRes *newPix;
REQUEST_SIZE_MATCH(xShmCreatePixmapReq);
client->errorValue = stuff->pid;
@ -755,13 +755,13 @@ CreatePmap:
PixmapBytePad(stuff->width, stuff->depth) * stuff->height,
client);
if(!(newPix = (XineramaRes *) xalloc(sizeof(XineramaRes))))
if(!(newPix = (PanoramiXRes *) xalloc(sizeof(PanoramiXRes))))
return BadAlloc;
newPix->type = XRT_PIXMAP;
newPix->u.pix.shared = TRUE;
newPix->info[0].id = stuff->pid;
for(j = 1; j < XineramaNumScreens; j++)
for(j = 1; j < PanoramiXNumScreens; j++)
newPix->info[j].id = FakeClientID(client->index);
result = (client->noClientException);
@ -1114,19 +1114,19 @@ ProcShmDispatch (client)
return ProcShmDetach(client);
case X_ShmPutImage:
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
return ProcXineramaShmPutImage(client);
#endif
return ProcShmPutImage(client);
case X_ShmGetImage:
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
return ProcXineramaShmGetImage(client);
#endif
return ProcShmGetImage(client);
case X_ShmCreatePixmap:
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
return ProcXineramaShmCreatePixmap(client);
#endif
return ProcShmCreatePixmap(client);

628
Xext/xevie.c Normal file
View File

@ -0,0 +1,628 @@
/************************************************************
Copyright 2003 Sun Microsystems, Inc.
All rights reserved.
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, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, provided that the above
copyright notice(s) and this permission notice appear in all copies of
the Software and that both the above copyright notice(s) and this
permission notice appear in supporting documentation.
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
OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale, use
or other dealings in this Software without prior written authorization
of the copyright holder.
************************************************************/
#define NEED_REPLIES
#define NEED_EVENTS
#include "X.h"
#include "Xproto.h"
#include "misc.h"
#include "dixstruct.h"
#include "extnsionst.h"
#include "colormapst.h"
#include "scrnintstr.h"
#include "servermd.h"
#include "opaque.h"
#define _XEVIE_SERVER_
#include "Xeviestr.h"
#include "Xfuncproto.h"
#include "input.h"
#include "inputstr.h"
#include "windowstr.h"
#include "cursorstr.h"
#include "swaprep.h"
#include "xinerama.h"
#include "xineramaSrv.h"
#ifndef EXTMODULE
#include "../os/osdep.h"
#else
#include "xf86_ansic.h"
#endif
#if 0
#define DEBUG
#endif
#ifdef DEBUG
# define ERR(x) ErrorF(x)
#else
#define ERR
#endif
static int xevieFlag = 0;
static int xevieClientIndex = 0;
static Mask xevieMask = 0;
static Bool xeviegrabState = FALSE;
static unsigned int xevieServerGeneration;
static int xevieDevicePrivateIndex;
static Bool xevieModifiersOn = FALSE;
#define XEVIEINFO(dev) ((xevieDeviceInfoPtr)dev->devPrivates[xevieDevicePrivateIndex].ptr)
#define NoSuchEvent 0x80000000
Mask xevieFilters[128] =
{
NoSuchEvent, /* 0 */
NoSuchEvent, /* 1 */
KeyPressMask, /* KeyPress */
KeyReleaseMask, /* KeyRelease */
ButtonPressMask, /* ButtonPress */
ButtonReleaseMask, /* ButtonRelease */
PointerMotionMask /* MotionNotify (initial state) */
};
#undef NoSuchEvent
typedef struct {
ProcessInputProc processInputProc;
ProcessInputProc realInputProc;
DeviceUnwrapProc unwrapProc;
} xevieDeviceInfoRec, *xevieDeviceInfoPtr;
static int ProcDispatch (ClientPtr), SProcDispatch (ClientPtr);
static void ResetProc (ExtensionEntry*);
static unsigned char ReqCode = 0;
static int ErrorBase;
static Bool XevieStart(void);
static void XevieEnd(int clientIndex);
static void XevieClientStateCallback(CallbackListPtr *pcbl, pointer nulldata,
pointer calldata);
static void XevieServerGrabStateCallback(CallbackListPtr *pcbl,
pointer nulldata,
pointer calldata);
static Bool XevieAdd(DeviceIntPtr device, pointer data);
static void XevieWrap(DeviceIntPtr device, ProcessInputProc proc);
static Bool XevieRemove(DeviceIntPtr device, pointer data);
static void doSendEvent(xEvent *xE, DeviceIntPtr device);
static void XeviePointerProcessInputProc(xEvent *xE, DeviceIntPtr dev,
int count);
static void XevieKbdProcessInputProc(xEvent *xE, DeviceIntPtr dev, int count);
void
XevieExtensionInit (INITARGS)
{
ExtensionEntry* extEntry;
if (serverGeneration != xevieServerGeneration) {
if ((xevieDevicePrivateIndex = AllocateDevicePrivateIndex()) == -1)
return;
xevieServerGeneration = serverGeneration;
}
if (!AddCallback(&ServerGrabCallback,XevieServerGrabStateCallback,NULL))
return;
if ((extEntry = AddExtension (XEVIENAME,
0,
XevieNumberErrors,
ProcDispatch,
SProcDispatch,
ResetProc,
StandardMinorOpcode))) {
ReqCode = (unsigned char)extEntry->base;
ErrorBase = extEntry->errorBase;
}
}
/*ARGSUSED*/
static
void ResetProc (ExtensionEntry* extEntry)
{
}
static
int ProcQueryVersion (ClientPtr client)
{
xXevieQueryVersionReply rep;
REQUEST_SIZE_MATCH (xXevieQueryVersionReq);
rep.type = X_Reply;
rep.length = 0;
rep.sequence_number = client->sequence;
rep.server_major_version = XEVIE_MAJOR_VERSION;
rep.server_minor_version = XEVIE_MINOR_VERSION;
WriteToClient (client, sizeof (xXevieQueryVersionReply), (char *)&rep);
return client->noClientException;
}
static
int ProcStart (ClientPtr client)
{
xXevieStartReply rep;
REQUEST_SIZE_MATCH (xXevieStartReq);
rep.pad1 = 0;
if(!xevieFlag){
if (AddCallback(&ClientStateCallback,XevieClientStateCallback,NULL)) {
xevieFlag = 1;
rep.pad1 = 1;
xevieClientIndex = client->index;
} else
return BadAlloc;
} else
return BadAccess;
if (!XevieStart()) {
DeleteCallback(&ClientStateCallback,XevieClientStateCallback,NULL);
return BadAlloc;
}
xevieModifiersOn = FALSE;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
WriteToClient (client, sizeof (xXevieStartReply), (char *)&rep);
return client->noClientException;
}
static
int ProcEnd (ClientPtr client)
{
xXevieEndReply rep;
if (xevieFlag) {
if (client->index != xevieClientIndex)
return BadAccess;
DeleteCallback(&ClientStateCallback,XevieClientStateCallback,NULL);
XevieEnd(xevieClientIndex);
}
rep.type = X_Reply;
rep.sequence_number = client->sequence;
WriteToClient (client, sizeof (xXevieEndReply), (char *)&rep);
return client->noClientException;
}
static
int ProcSend (ClientPtr client)
{
REQUEST (xXevieSendReq);
xXevieSendReply rep;
xEvent *xE;
static unsigned char lastDetail = 0, lastType = 0;
ERR("ProcSend\n");
if (client->index != xevieClientIndex)
return BadAccess;
xE = (xEvent *)&stuff->event;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
WriteToClient (client, sizeof (xXevieSendReply), (char *)&rep);
switch(xE->u.u.type) {
case KeyPress:
case KeyRelease:
doSendEvent(xE, inputInfo.keyboard);
break;
case ButtonPress:
case ButtonRelease:
case MotionNotify:
doSendEvent(xE, inputInfo.pointer);
break;
default:
break;
}
lastType = xE->u.u.type;
lastDetail = xE->u.u.detail;
return client->noClientException;
}
static
int ProcSelectInput (ClientPtr client)
{
REQUEST (xXevieSelectInputReq);
xXevieSelectInputReply rep;
if (client->index != xevieClientIndex)
return BadAccess;
xevieMask = (long)stuff->event_mask;
rep.type = X_Reply;
rep.sequence_number = client->sequence;
WriteToClient (client, sizeof (xXevieSelectInputReply), (char *)&rep);
return client->noClientException;
}
static
int ProcDispatch (ClientPtr client)
{
REQUEST (xReq);
switch (stuff->data)
{
case X_XevieQueryVersion:
return ProcQueryVersion (client);
case X_XevieStart:
return ProcStart (client);
case X_XevieEnd:
return ProcEnd (client);
case X_XevieSend:
return ProcSend (client);
case X_XevieSelectInput:
return ProcSelectInput(client);
default:
return BadRequest;
}
}
static
int SProcQueryVersion (ClientPtr client)
{
register int n;
REQUEST(xXevieQueryVersionReq);
swaps(&stuff->length, n);
return ProcQueryVersion(client);
}
static
int SProcStart (ClientPtr client)
{
register int n;
REQUEST (xXevieStartReq);
swaps (&stuff->length, n);
swapl (&stuff->screen, n);
REQUEST_AT_LEAST_SIZE (xXevieStartReq);
return ProcStart (client);
}
static
int SProcEnd (ClientPtr client)
{
register int n;
REQUEST (xXevieEndReq);
swaps (&stuff->length, n);
REQUEST_AT_LEAST_SIZE (xXevieEndReq);
swapl(&stuff->cmap, n);
return ProcEnd (client);
}
static
int SProcSend (ClientPtr client)
{
register int n;
REQUEST (xXevieSendReq);
swaps (&stuff->length, n);
REQUEST_AT_LEAST_SIZE (xXevieSendReq);
swapl(&stuff->event, n);
return ProcSend (client);
}
static
int SProcSelectInput (ClientPtr client)
{
register int n;
REQUEST (xXevieSelectInputReq);
swaps (&stuff->length, n);
REQUEST_AT_LEAST_SIZE (xXevieSendReq);
swapl(&stuff->event_mask, n);
return ProcSelectInput (client);
}
static
int SProcDispatch (ClientPtr client)
{
REQUEST(xReq);
switch (stuff->data)
{
case X_XevieQueryVersion:
return SProcQueryVersion (client);
case X_XevieStart:
return SProcStart (client);
case X_XevieEnd:
return SProcEnd (client);
case X_XevieSend:
return SProcSend (client);
case X_XevieSelectInput:
return SProcSelectInput(client);
default:
return BadRequest;
}
}
/*=====================================================*/
#define WRAP_INPUTPROC(dev,store,inputProc) \
store->processInputProc = dev->public.processInputProc; \
dev->public.processInputProc = inputProc; \
store->realInputProc = dev->public.realInputProc; \
dev->public.realInputProc = inputProc;
#define COND_WRAP_INPUTPROC(dev,store,inputProc) \
if (dev->public.processInputProc == dev->public.realInputProc) \
dev->public.processInputProc = inputProc; \
store->processInputProc = \
store->realInputProc = dev->public.realInputProc; \
dev->public.realInputProc = inputProc;
#define UNWRAP_INPUTPROC(dev,restore) \
dev->public.processInputProc = restore->processInputProc; \
dev->public.realInputProc = restore->realInputProc;
#define UNWRAP_INPUTPROC(dev,restore) \
dev->public.processInputProc = restore->processInputProc; \
dev->public.realInputProc = restore->realInputProc;
#define XEVIE_EVENT(xE) \
(xevieFlag \
&& !xeviegrabState \
&& clients[xevieClientIndex] \
&& (xevieMask & xevieFilters[xE->u.u.type]))
static void
sendEvent(ClientPtr pClient, xEvent *xE)
{
if(pClient->swapped) {
xEvent eventTo;
/* Remember to strip off the leading bit of type in case
this event was sent with "SendEvent." */
(*EventSwapVector[xE->u.u.type & 0177]) (xE, &eventTo);
(void)WriteToClient(pClient, sizeof(xEvent), (char *)&eventTo);
} else {
(void)WriteToClient(pClient, sizeof(xEvent), (char *) xE);
}
}
static void
XevieKbdProcessInputProc(xEvent *xE, DeviceIntPtr dev, int count)
{
int key, bit;
BYTE *kptr;
ProcessInputProc tmp;
KeyClassPtr keyc = dev->key;
xevieDeviceInfoPtr xeviep = XEVIEINFO(dev);
if(XEVIE_EVENT(xE)) {
ERR("XevieKbdProcessInputProc\n");
key = xE->u.u.detail;
kptr = &keyc->down[key >> 3];
bit = 1 << (key & 7);
/*
* This is a horrible hack: with xkb on we must zero the modifiers
* before sending an event sent back by xevie to
* CoreProcessKeyboardEvent.
* Since we cannot probe for xkb directly we need to check if the
* modifers are set at this point. If they are we know that xkb
* isn't active.
*/
if (dev->key->modifierMap[xE->u.u.detail])
xevieModifiersOn = TRUE;
xE->u.keyButtonPointer.event = xeviewin->drawable.id;
xE->u.keyButtonPointer.root = GetCurrentRootWindow()->drawable.id;
xE->u.keyButtonPointer.child = (xeviewin->firstChild)
? xeviewin->firstChild->drawable.id:0;
xE->u.keyButtonPointer.rootX = xeviehot.x;
xE->u.keyButtonPointer.rootY = xeviehot.y;
xE->u.keyButtonPointer.state = keyc->state;
/* fix bug: sequence lost in Xlib */
xE->u.u.sequenceNumber = clients[xevieClientIndex]->sequence;
sendEvent(clients[xevieClientIndex], xE);
return;
}
tmp = dev->public.realInputProc;
UNWRAP_INPUTPROC(dev,xeviep);
dev->public.processInputProc(xE,dev,count);
COND_WRAP_INPUTPROC(dev,xeviep,tmp);
}
static void
XeviePointerProcessInputProc(xEvent *xE, DeviceIntPtr dev, int count)
{
xevieDeviceInfoPtr xeviep = XEVIEINFO(dev);
ProcessInputProc tmp;
if (XEVIE_EVENT(xE)) {
ERR("XeviePointerProcessInputProc\n");
/* fix bug: sequence lost in Xlib */
xE->u.u.sequenceNumber = clients[xevieClientIndex]->sequence;
sendEvent(clients[xevieClientIndex], xE);
return;
}
tmp = dev->public.realInputProc;
UNWRAP_INPUTPROC(dev,xeviep);
dev->public.processInputProc(xE,dev,count);
COND_WRAP_INPUTPROC(dev,xeviep,tmp);
}
static Bool
XevieStart(void)
{
ProcessInputProc prp;
prp = XevieKbdProcessInputProc;
if (!XevieAdd(inputInfo.keyboard,&prp))
return FALSE;
prp = XeviePointerProcessInputProc;
if (!XevieAdd(inputInfo.pointer,&prp))
return FALSE;
return TRUE;
}
static void
XevieEnd(int clientIndex)
{
if (!clientIndex || clientIndex == xevieClientIndex) {
XevieRemove(inputInfo.keyboard,NULL);
XevieRemove(inputInfo.pointer,NULL);
xevieFlag = 0;
xevieClientIndex = 0;
DeleteCallback (&ClientStateCallback, XevieClientStateCallback, NULL);
}
}
static void
XevieClientStateCallback(CallbackListPtr *pcbl, pointer nulldata,
pointer calldata)
{
NewClientInfoRec *pci = (NewClientInfoRec *)calldata;
ClientPtr client = pci->client;
if (client->clientState == ClientStateGone
|| client->clientState == ClientStateRetained)
XevieEnd(client->index);
}
static void
XevieServerGrabStateCallback(CallbackListPtr *pcbl, pointer nulldata,
pointer calldata)
{
ServerGrabInfoRec *grbinfo = (ServerGrabInfoRec *)calldata;
if (grbinfo->grabstate == SERVER_GRABBED)
xeviegrabState = TRUE;
else
xeviegrabState = FALSE;
}
#define UNWRAP_UNWRAPPROC(device,proc_store) \
device->unwrapProc = proc_store;
#define WRAP_UNWRAPPROC(device,proc_store,proc) \
proc_store = device->unwrapProc; \
device->unwrapProc = proc;
static void
xevieUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc, pointer data)
{
xevieDeviceInfoPtr xeviep = XEVIEINFO(device);
ProcessInputProc tmp = device->public.processInputProc;
UNWRAP_INPUTPROC(device,xeviep);
UNWRAP_UNWRAPPROC(device,xeviep->unwrapProc);
proc(device,data);
WRAP_INPUTPROC(device,xeviep,tmp);
WRAP_UNWRAPPROC(device,xeviep->unwrapProc,xevieUnwrapProc);
}
static Bool
XevieUnwrapAdd(DeviceIntPtr device, void* data)
{
if (device->unwrapProc)
device->unwrapProc(device,XevieUnwrapAdd,data);
else {
ProcessInputProc *ptr = data;
XevieWrap(device,*ptr);
}
return TRUE;
}
static Bool
XevieAdd(DeviceIntPtr device, void* data)
{
xevieDeviceInfoPtr xeviep;
if (!AllocateDevicePrivate(device, xevieDevicePrivateIndex))
return FALSE;
xeviep = xcalloc (sizeof (xevieDeviceInfoRec),1);
if (!xeviep)
return FALSE;
device->devPrivates[xevieDevicePrivateIndex].ptr = xeviep;
XevieUnwrapAdd(device, data);
return TRUE;
}
static Bool
XevieRemove(DeviceIntPtr device,pointer data)
{
xevieDeviceInfoPtr xeviep = XEVIEINFO(device);
if (!xeviep) return TRUE;
UNWRAP_INPUTPROC(device,xeviep);
UNWRAP_UNWRAPPROC(device,xeviep->unwrapProc);
xfree(xeviep);
device->devPrivates[xevieDevicePrivateIndex].ptr = NULL;
return TRUE;
}
static void
XevieWrap(DeviceIntPtr device, ProcessInputProc proc)
{
xevieDeviceInfoPtr xeviep = XEVIEINFO(device);
WRAP_INPUTPROC(device,xeviep,proc);
WRAP_UNWRAPPROC(device,xeviep->unwrapProc,xevieUnwrapProc);
}
static void
doSendEvent(xEvent *xE, DeviceIntPtr dev)
{
xevieDeviceInfoPtr xeviep = XEVIEINFO(dev);
ProcessInputProc tmp = dev->public.realInputProc;
if (((xE->u.u.type==KeyPress)||(xE->u.u.type==KeyRelease))
&& !xevieModifiersOn) {
CARD8 realModes = dev->key->modifierMap[xE->u.u.detail];
dev->key->modifierMap[xE->u.u.detail] = 0;
UNWRAP_INPUTPROC(dev,xeviep);
dev->public.processInputProc(xE,dev,1);
COND_WRAP_INPUTPROC(dev,xeviep,tmp);
dev->key->modifierMap[xE->u.u.detail] = realModes;
} else {
UNWRAP_INPUTPROC(dev,xeviep);
dev->public.processInputProc(xE,dev,1);
COND_WRAP_INPUTPROC(dev,xeviep,tmp);
}
}

View File

@ -1,4 +1,4 @@
/* $XdotOrg: xtest.c,v 1.4 2001/02/09 02:04:33 xorgcvs Exp $ */
/* $XdotOrg: xc/programs/Xserver/Xext/xtest.c,v 1.1.4.4 2004/02/25 21:46:33 kaleb Exp $ */
/* $Xorg: xtest.c,v 1.4 2001/02/09 02:04:33 xorgcvs Exp $ */
/*
@ -65,8 +65,8 @@ extern int DeviceValuator;
#endif /* XINPUT */
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
static void XTestResetProc(
@ -392,12 +392,12 @@ ProcXTestFakeInput(client)
}
#ifdef XINERAMA
if (!noXineramaExtension) {
if (!noPanoramiXExtension) {
ScreenPtr pScreen = root->drawable.pScreen;
BoxRec box;
int i;
int x = ev->u.keyButtonPointer.rootX + xineramaDataPtr[0].x;
int y = ev->u.keyButtonPointer.rootY + xineramaDataPtr[0].y;
int x = ev->u.keyButtonPointer.rootX + panoramiXdataPtr[0].x;
int y = ev->u.keyButtonPointer.rootY + panoramiXdataPtr[0].y;
if (!POINT_IN_REGION(pScreen, &XineramaScreenRegions[pScreen->myNum],
x, y, &box)) {
FOR_NSCREENS(i) {
@ -406,8 +406,8 @@ ProcXTestFakeInput(client)
&XineramaScreenRegions[i],
x, y, &box)) {
root = WindowTable[i];
x -= xineramaDataPtr[i].x;
y -= xineramaDataPtr[i].y;
x -= panoramiXdataPtr[i].x;
y -= panoramiXdataPtr[i].y;
ev->u.keyButtonPointer.rootX = x;
ev->u.keyButtonPointer.rootY = y;
break;
@ -427,9 +427,9 @@ ProcXTestFakeInput(client)
ev->u.keyButtonPointer.rootY = root->drawable.height - 1;
#ifdef XINERAMA
if ((!noXineramaExtension
if ((!noPanoramiXExtension
&& root->drawable.pScreen->myNum != XineramaGetCursorScreen())
|| (noXineramaExtension && root != GetCurrentRootWindow()))
|| (noPanoramiXExtension && root != GetCurrentRootWindow()))
#else
if (root != GetCurrentRootWindow())

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/Xext/xvdisp.c,v 1.1.4.3 2004/02/25 21:46:33 kaleb Exp $ */
/***********************************************************
Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
@ -74,8 +74,8 @@ SOFTWARE.
#include "xvdisp.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
unsigned long XvXRTPort;
@ -234,14 +234,14 @@ ProcXvDispatch(ClientPtr client)
case xv_QueryEncodings: return(ProcXvQueryEncodings(client));
case xv_PutVideo:
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
return(XineramaXvPutVideo(client));
else
#endif
return(ProcXvPutVideo(client));
case xv_PutStill:
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
return(XineramaXvPutStill(client));
else
#endif
@ -254,14 +254,14 @@ ProcXvDispatch(ClientPtr client)
case xv_SelectPortNotify: return(ProcXvSelectPortNotify(client));
case xv_StopVideo:
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
return(XineramaXvStopVideo(client));
else
#endif
return(ProcXvStopVideo(client));
case xv_SetPortAttribute:
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
return(XineramaXvSetPortAttribute(client));
else
#endif
@ -271,7 +271,7 @@ ProcXvDispatch(ClientPtr client)
case xv_QueryPortAttributes: return(ProcXvQueryPortAttributes(client));
case xv_PutImage:
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
return(XineramaXvPutImage(client));
else
#endif
@ -279,7 +279,7 @@ ProcXvDispatch(ClientPtr client)
#ifdef MITSHM
case xv_ShmPutImage:
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
return(XineramaXvShmPutImage(client));
else
#endif
@ -1872,15 +1872,15 @@ static int
XineramaXvStopVideo(ClientPtr client)
{
int result = Success, i;
XineramaRes *draw, *port;
PanoramiXRes *draw, *port;
REQUEST(xvStopVideoReq);
REQUEST_SIZE_MATCH(xvStopVideoReq);
if(!(draw = (XineramaRes *)SecurityLookupIDByClass(
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
return BadDrawable;
if(!(port = (XineramaRes *)SecurityLookupIDByType(
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->port, XvXRTPort, SecurityReadAccess)))
return _XvBadPort;
@ -1899,12 +1899,12 @@ static int
XineramaXvSetPortAttribute(ClientPtr client)
{
REQUEST(xvSetPortAttributeReq);
XineramaRes *port;
PanoramiXRes *port;
int result = Success, i;
REQUEST_SIZE_MATCH(xvSetPortAttributeReq);
if(!(port = (XineramaRes *)SecurityLookupIDByType(
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->port, XvXRTPort, SecurityReadAccess)))
return _XvBadPort;
@ -1923,22 +1923,22 @@ static int
XineramaXvShmPutImage(ClientPtr client)
{
REQUEST(xvShmPutImageReq);
XineramaRes *draw, *gc, *port;
PanoramiXRes *draw, *gc, *port;
Bool send_event = stuff->send_event;
Bool isRoot;
int result = Success, i, x, y;
REQUEST_SIZE_MATCH(xvShmPutImageReq);
if(!(draw = (XineramaRes *)SecurityLookupIDByClass(
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
return BadDrawable;
if(!(gc = (XineramaRes *)SecurityLookupIDByType(
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->gc, XRT_GC, SecurityReadAccess)))
return BadGC;
if(!(port = (XineramaRes *)SecurityLookupIDByType(
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->port, XvXRTPort, SecurityReadAccess)))
return _XvBadPort;
@ -1956,8 +1956,8 @@ XineramaXvShmPutImage(ClientPtr client)
stuff->drw_x = x;
stuff->drw_y = y;
if(isRoot) {
stuff->drw_x -= xineramaDataPtr[i].x;
stuff->drw_y -= xineramaDataPtr[i].y;
stuff->drw_x -= panoramiXdataPtr[i].x;
stuff->drw_y -= panoramiXdataPtr[i].y;
}
stuff->send_event = (send_event && !i) ? 1 : 0;
@ -1972,21 +1972,21 @@ static int
XineramaXvPutImage(ClientPtr client)
{
REQUEST(xvPutImageReq);
XineramaRes *draw, *gc, *port;
PanoramiXRes *draw, *gc, *port;
Bool isRoot;
int result = Success, i, x, y;
REQUEST_AT_LEAST_SIZE(xvPutImageReq);
if(!(draw = (XineramaRes *)SecurityLookupIDByClass(
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
return BadDrawable;
if(!(gc = (XineramaRes *)SecurityLookupIDByType(
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->gc, XRT_GC, SecurityReadAccess)))
return BadGC;
if(!(port = (XineramaRes *)SecurityLookupIDByType(
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->port, XvXRTPort, SecurityReadAccess)))
return _XvBadPort;
@ -2004,8 +2004,8 @@ XineramaXvPutImage(ClientPtr client)
stuff->drw_x = x;
stuff->drw_y = y;
if(isRoot) {
stuff->drw_x -= xineramaDataPtr[i].x;
stuff->drw_y -= xineramaDataPtr[i].y;
stuff->drw_x -= panoramiXdataPtr[i].x;
stuff->drw_y -= panoramiXdataPtr[i].y;
}
result = ProcXvPutImage(client);
@ -2018,21 +2018,21 @@ static int
XineramaXvPutVideo(ClientPtr client)
{
REQUEST(xvPutImageReq);
XineramaRes *draw, *gc, *port;
PanoramiXRes *draw, *gc, *port;
Bool isRoot;
int result = Success, i, x, y;
REQUEST_AT_LEAST_SIZE(xvPutVideoReq);
if(!(draw = (XineramaRes *)SecurityLookupIDByClass(
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
return BadDrawable;
if(!(gc = (XineramaRes *)SecurityLookupIDByType(
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->gc, XRT_GC, SecurityReadAccess)))
return BadGC;
if(!(port = (XineramaRes *)SecurityLookupIDByType(
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->port, XvXRTPort, SecurityReadAccess)))
return _XvBadPort;
@ -2050,8 +2050,8 @@ XineramaXvPutVideo(ClientPtr client)
stuff->drw_x = x;
stuff->drw_y = y;
if(isRoot) {
stuff->drw_x -= xineramaDataPtr[i].x;
stuff->drw_y -= xineramaDataPtr[i].y;
stuff->drw_x -= panoramiXdataPtr[i].x;
stuff->drw_y -= panoramiXdataPtr[i].y;
}
result = ProcXvPutVideo(client);
@ -2064,21 +2064,21 @@ static int
XineramaXvPutStill(ClientPtr client)
{
REQUEST(xvPutImageReq);
XineramaRes *draw, *gc, *port;
PanoramiXRes *draw, *gc, *port;
Bool isRoot;
int result = Success, i, x, y;
REQUEST_AT_LEAST_SIZE(xvPutImageReq);
if(!(draw = (XineramaRes *)SecurityLookupIDByClass(
if(!(draw = (PanoramiXRes *)SecurityLookupIDByClass(
client, stuff->drawable, XRC_DRAWABLE, SecurityWriteAccess)))
return BadDrawable;
if(!(gc = (XineramaRes *)SecurityLookupIDByType(
if(!(gc = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->gc, XRT_GC, SecurityReadAccess)))
return BadGC;
if(!(port = (XineramaRes *)SecurityLookupIDByType(
if(!(port = (PanoramiXRes *)SecurityLookupIDByType(
client, stuff->port, XvXRTPort, SecurityReadAccess)))
return _XvBadPort;
@ -2096,8 +2096,8 @@ XineramaXvPutStill(ClientPtr client)
stuff->drw_x = x;
stuff->drw_y = y;
if(isRoot) {
stuff->drw_x -= xineramaDataPtr[i].x;
stuff->drw_y -= xineramaDataPtr[i].y;
stuff->drw_x -= panoramiXdataPtr[i].x;
stuff->drw_y -= panoramiXdataPtr[i].y;
}
result = ProcXvPutStill(client);
@ -2115,7 +2115,7 @@ void XineramifyXv(void)
XvAttributePtr pAttr;
XvScreenPtr xvsp;
Bool isOverlay, hasOverlay;
XineramaRes *port;
PanoramiXRes *port;
XvAdaptorPtr MatchingAdaptors[MAXSCREENS];
int i, j, k, l;
@ -2141,7 +2141,7 @@ void XineramifyXv(void)
}
}
for(j = 1; j < XineramaNumScreens; j++) {
for(j = 1; j < PanoramiXNumScreens; j++) {
pScreen = screenInfo.screens[j];
xvsp = (XvScreenPtr)pScreen->devPrivates[XvScreenIndex].ptr;
@ -2199,12 +2199,12 @@ void XineramifyXv(void)
/* now create a resource for each port */
for(j = 0; j < refAdapt->nPorts; j++) {
if(!(port = xalloc(sizeof(XineramaRes))))
if(!(port = xalloc(sizeof(PanoramiXRes))))
break;
port->info[0].id = MatchingAdaptors[0]->base_id + j;
AddResource(port->info[0].id, XvXRTPort, port);
for(k = 1; k < XineramaNumScreens; k++) {
for(k = 1; k < PanoramiXNumScreens; k++) {
if(MatchingAdaptors[k] && (MatchingAdaptors[k]->nPorts > j))
port->info[k].id = MatchingAdaptors[k]->base_id + j;
else

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/Xext/xvmain.c,v 1.1.4.3 2004/02/25 21:46:33 kaleb Exp $ */
/***********************************************************
Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts,
and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
@ -100,8 +100,8 @@ SOFTWARE.
#endif
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#include "xvdisp.h"
#endif

View File

@ -45,7 +45,7 @@ not be used in advertising or otherwise to promote the sale, use or other
dealings in this Software without prior written authorization from said
copyright holders.
*/
/* $XFree86: xc/programs/Xserver/Xprint/pcl/PclSFonts.c,v 1.7 2003/10/29 22:11:00 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/Xprint/pcl/PclSFonts.c,v 1.8 2003/12/22 17:48:05 tsi Exp $ */
#include <stdio.h>
@ -58,7 +58,6 @@ static short tmp2;
#define ESC 0x1b
#define SYMBOL_SET 277
#define MAX_CINDEX 255
static unsigned int PclDownloadChar(FILE *,PclCharDataPtr,unsigned short,unsigned char);
static unsigned int PclDownloadHeader(FILE *, PclFontDescPtr, unsigned short);
@ -117,8 +116,6 @@ PclDownloadSoftFont16(
}
pfh->index[row][col].fid = pfh->cur_fid;
pfh->index[row][col].cindex = pfh->cur_cindex++;
if ( pfh->cur_cindex > MAX_CINDEX )
pfh->cur_cindex = 0;
PclDownloadChar(fp, pcd, pfh->index[row][col].fid, pfh->index[row][col].cindex);
}

View File

@ -1,4 +1,4 @@
/* $XdotOrg: cfbpntwin.c,v 1.4 2001/02/09 02:04:38 xorgcvs Exp $ */
/* $XdotOrg: xc/programs/Xserver/cfb/cfbpntwin.c,v 1.1.4.4 2004/02/25 21:46:36 kaleb Exp $ */
/* $Xorg: cfbpntwin.c,v 1.4 2001/02/09 02:04:38 xorgcvs Exp $ */
/***********************************************************
@ -60,9 +60,9 @@ SOFTWARE.
#include "mi.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
extern Bool noXineramaExtension;
#include "panoramiX.h"
#include "panoramiXsrv.h"
extern Bool noPanoramiXExtension;
extern WindowPtr *WindowTable;
#endif
@ -105,11 +105,11 @@ cfbPaintWindow(pWin, pRegion, what)
int yorg = pWin->drawable.y;
#endif
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
int index = pWin->drawable.pScreen->myNum;
if(WindowTable[index] == pWin) {
xorg -= xineramaDataPtr[index].x;
yorg -= xineramaDataPtr[index].y;
xorg -= panoramiXdataPtr[index].x;
yorg -= panoramiXdataPtr[index].y;
}
}
#endif
@ -163,11 +163,11 @@ cfbPaintWindow(pWin, pRegion, what)
#endif
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
int index = pWin->drawable.pScreen->myNum;
if(WindowTable[index] == pBgWin) {
xorg -= xineramaDataPtr[index].x;
yorg -= xineramaDataPtr[index].y;
xorg -= panoramiXdataPtr[index].x;
yorg -= panoramiXdataPtr[index].y;
}
}
#endif

View File

@ -1,4 +1,4 @@
/* $XdotOrg: dbe.c,v 1.3 2000/08/17 19:48:16 cpqbld Exp $ */
/* $XdotOrg: xc/programs/Xserver/dbe/dbe.c,v 1.1.4.3 2004/02/25 21:46:38 kaleb Exp $ */
/* $Xorg: dbe.c,v 1.3 2000/08/17 19:48:16 cpqbld Exp $ */
/******************************************************************************
*
@ -1822,8 +1822,8 @@ DbeExtensionInit()
Bool ddxInitSuccess;
#ifdef XINERAMA
extern Bool noXineramaExtension;
if(!noXineramaExtension) return;
extern Bool noPanoramiXExtension;
if(!noPanoramiXExtension) return;
#endif
/* Allocate private pointers in windows and screens. */

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/dix/colormap.c,v 1.1.4.4 2004/02/25 21:46:40 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/dix/colormap.c,v 3.12 2003/11/17 22:20:33 dawes Exp $ */
/***********************************************************
@ -63,9 +63,9 @@ SOFTWARE.
#include "lbxserve.h"
#endif
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
extern Bool noXineramaExtension;
#include "panoramiX.h"
#include "panoramiXsrv.h"
extern Bool noPanoramiXExtension;
#endif
extern XID clientErrorValue;
@ -484,8 +484,8 @@ TellNoMap (pwin, pmid)
/*
* Only deliver event for Screen 0 when Xinerama enabled
*/
if (noXineramaExtension ||
(!noXineramaExtension && !(pwin->drawable.pScreen->myNum))) {
if (noPanoramiXExtension ||
(!noPanoramiXExtension && !(pwin->drawable.pScreen->myNum))) {
#endif
/* This should be call to DeliverEvent */
xE.u.u.type = ColormapNotify;
@ -519,8 +519,8 @@ TellLostMap (pwin, value)
/*
* Only deliver event for Screen 0 when Xinerama enabled
*/
if (noXineramaExtension ||
(!noXineramaExtension && !(pwin->drawable.pScreen->myNum)))
if (noPanoramiXExtension ||
(!noPanoramiXExtension && !(pwin->drawable.pScreen->myNum)))
#endif
if (wColormap(pwin) == *pmid)
{
@ -549,8 +549,8 @@ TellGainedMap (pwin, value)
/*
* Only deliver event for Screen 0 when Xinerama enabled
*/
if (noXineramaExtension ||
(!noXineramaExtension && !(pwin->drawable.pScreen->myNum)))
if (noPanoramiXExtension ||
(!noPanoramiXExtension && !(pwin->drawable.pScreen->myNum)))
#endif
if (wColormap (pwin) == *pmid)
{

View File

@ -122,6 +122,9 @@ _AddInputDevice(deviceProc, autoStart)
#ifdef XKB
dev->xkb_interest= NULL;
#endif
dev->devPrivates = NULL;
dev->nPrivates = 0;
dev->unwrapProc = NULL;
inputInfo.off_devices = dev;
return dev;
}
@ -208,6 +211,7 @@ CloseDevice(register DeviceIntPtr dev)
if (dev->inited)
(void)(*dev->deviceProc)(dev, DEVICE_CLOSE);
xfree(dev->name);
if (dev->key)
{
@ -277,6 +281,8 @@ CloseDevice(register DeviceIntPtr dev)
}
#endif
xfree(dev->sync.event);
xfree(dev->devPrivates);
xfree(dev);
}
@ -358,13 +364,10 @@ _RegisterPointerDevice(device)
{
inputInfo.pointer = device;
#ifdef XKB
if (noXkbExtension) {
device->public.processInputProc = CoreProcessPointerEvent;
device->public.realInputProc = CoreProcessPointerEvent;
} else {
device->public.processInputProc = ProcessPointerEvent;
device->public.realInputProc = ProcessPointerEvent;
}
device->public.processInputProc = CoreProcessPointerEvent;
device->public.realInputProc = CoreProcessPointerEvent;
if (!noXkbExtension)
XkbSetExtension(device,ProcessPointerEvent);
#else
device->public.processInputProc = ProcessPointerEvent;
device->public.realInputProc = ProcessPointerEvent;
@ -385,13 +388,10 @@ _RegisterKeyboardDevice(device)
{
inputInfo.keyboard = device;
#ifdef XKB
if (noXkbExtension) {
device->public.processInputProc = CoreProcessKeyboardEvent;
device->public.realInputProc = CoreProcessKeyboardEvent;
} else {
device->public.processInputProc = ProcessKeyboardEvent;
device->public.realInputProc = ProcessKeyboardEvent;
}
device->public.processInputProc = CoreProcessKeyboardEvent;
device->public.realInputProc = CoreProcessKeyboardEvent;
if (!noXkbExtension)
XkbSetExtension(device,ProcessKeyboardEvent);
#else
device->public.processInputProc = ProcessKeyboardEvent;
device->public.realInputProc = ProcessKeyboardEvent;

View File

@ -1,4 +1,4 @@
/* $XdotOrg: dispatch.c,v 1.5 2001/02/09 02:04:40 xorgcvs Exp $ */
/* $XdotOrg: xc/programs/Xserver/dix/dispatch.c,v 1.1.4.4 2004/02/25 21:46:40 kaleb Exp $ */
/* $Xorg: dispatch.c,v 1.5 2001/02/09 02:04:40 xorgcvs Exp $ */
/************************************************************
@ -93,8 +93,8 @@ int ProcInitialConnection();
#include "swaprep.h"
#include "swapreq.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
#ifdef XCSECURITY
#define _SECURITY_SERVER
@ -2643,7 +2643,7 @@ ProcAllocColor(client)
return (retval);
}
#ifdef XINERAMA
if (noXineramaExtension || !pmap->pScreen->myNum)
if (noPanoramiXExtension || !pmap->pScreen->myNum)
#endif
WriteReplyToClient(client, sizeof(xAllocColorReply), &acr);
return (client->noClientException);
@ -2702,7 +2702,7 @@ ProcAllocNamedColor (client)
return(retval);
}
#ifdef XINERAMA
if (noXineramaExtension || !pcmp->pScreen->myNum)
if (noPanoramiXExtension || !pcmp->pScreen->myNum)
#endif
WriteReplyToClient(client, sizeof (xAllocNamedColorReply), &ancr);
return (client->noClientException);
@ -2772,7 +2772,7 @@ ProcAllocColorCells (client)
return(retval);
}
#ifdef XINERAMA
if (noXineramaExtension || !pcmp->pScreen->myNum)
if (noPanoramiXExtension || !pcmp->pScreen->myNum)
#endif
{
accr.type = X_Reply;
@ -2851,7 +2851,7 @@ ProcAllocColorPlanes(client)
}
acpr.length = length >> 2;
#ifdef XINERAMA
if (noXineramaExtension || !pcmp->pScreen->myNum)
if (noPanoramiXExtension || !pcmp->pScreen->myNum)
#endif
{
WriteReplyToClient(client, sizeof(xAllocColorPlanesReply), &acpr);
@ -3934,7 +3934,7 @@ SendConnSetup(client, reason)
/* fill in the "currentInputMask" */
root = (xWindowRoot *)(lConnectionInfo + connBlockScreenStart);
#ifdef XINERAMA
if (noXineramaExtension)
if (noPanoramiXExtension)
numScreens = screenInfo.numScreens;
else
numScreens = ((xConnSetup *)ConnectionInfo)->numRoots;

View File

@ -1,4 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/dix/dixfonts.c,v 3.29 2003/11/17 22:20:34 dawes Exp $ */
/* $XdotOrg: xc/programs/Xserver/dix/dixfonts.c,v 1.1.4.4 2004/02/25 21:46:40 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/dix/dixfonts.c,v 3.29 2003/11/17 22:20:34 dawes Exp $ */
/************************************************************************
Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
@ -43,8 +43,7 @@ SOFTWARE.
#endif
#ifdef XINERAMA
#include "xinerama.h"
extern Bool noXineramaExtension;
#include "panoramiX.h"
#endif
#ifdef LBX
@ -1401,7 +1400,7 @@ bail:
if (c->err != Success) err = c->err;
if (err != Success && c->client != serverClient) {
#ifdef XINERAMA
if (noXineramaExtension || !c->pGC->pScreen->myNum)
if (noPanoramiXExtension || !c->pGC->pScreen->myNum)
#endif
SendErrorToClient(c->client, c->reqType, 0, 0, err);
}

View File

@ -1,5 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/dix/events.c,v 3.50 2003/11/17 22:20:34 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/dix/events.c,v 3.50 2003/11/17 22:20:34 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/dix/events.c,v 3.52 2004/01/23 07:23:34 herrb Exp $ */
/************************************************************
Copyright 1987, 1998 The Open Group
@ -69,6 +68,39 @@ SOFTWARE.
* *
*****************************************************************/
/************************************************************
Copyright 2003 Sun Microsystems, Inc.
All rights reserved.
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, and/or sell copies of the Software, and to permit persons
to whom the Software is furnished to do so, provided that the above
copyright notice(s) and this permission notice appear in all copies of
the Software and that both the above copyright notice(s) and this
permission notice appear in supporting documentation.
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
OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale, use
or other dealings in this Software without prior written authorization
of the copyright holder.
************************************************************/
/* $Xorg: events.c,v 1.4 2001/02/09 02:04:40 xorgcvs Exp $ */
#include "X.h"
@ -84,8 +116,8 @@ SOFTWARE.
#include "dixstruct.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
#include "globals.h"
@ -174,11 +206,6 @@ static WindowPtr *spriteTrace = (WindowPtr *)NULL;
static int spriteTraceSize = 0;
static int spriteTraceGood;
typedef struct {
int x, y;
ScreenPtr pScreen;
} HotSpot;
static struct {
CursorPtr current;
BoxRec hotLimits; /* logical constraints of hot spot */
@ -199,6 +226,11 @@ static struct {
#endif
} sprite; /* info about the cursor sprite */
#ifdef XEVIE
WindowPtr xeviewin;
HotSpot xeviehot;
#endif
static void DoEnterLeaveEvents(
WindowPtr /*fromWin*/,
WindowPtr /*toWin*/,
@ -283,8 +315,8 @@ XineramaSetCursorPosition(
that screen are. */
pScreen = sprite.screen;
x += xineramaDataPtr[0].x;
y += xineramaDataPtr[0].y;
x += panoramiXdataPtr[0].x;
y += panoramiXdataPtr[0].y;
if(!POINT_IN_REGION(pScreen, &XineramaScreenRegions[pScreen->myNum],
x, y, &box))
@ -302,10 +334,10 @@ XineramaSetCursorPosition(
}
sprite.screen = pScreen;
sprite.hotPhys.x = x - xineramaDataPtr[0].x;
sprite.hotPhys.y = y - xineramaDataPtr[0].y;
x -= xineramaDataPtr[pScreen->myNum].x;
y -= xineramaDataPtr[pScreen->myNum].y;
sprite.hotPhys.x = x - panoramiXdataPtr[0].x;
sprite.hotPhys.y = y - panoramiXdataPtr[0].y;
x -= panoramiXdataPtr[pScreen->myNum].x;
y -= panoramiXdataPtr[pScreen->myNum].y;
return (*pScreen->SetCursorPosition)(pScreen, x, y, generateEvent);
}
@ -319,10 +351,10 @@ XineramaConstrainCursor(void)
/* Translate the constraining box to the screen
the sprite is actually on */
newBox.x1 += xineramaDataPtr[0].x - xineramaDataPtr[pScreen->myNum].x;
newBox.x2 += xineramaDataPtr[0].x - xineramaDataPtr[pScreen->myNum].x;
newBox.y1 += xineramaDataPtr[0].y - xineramaDataPtr[pScreen->myNum].y;
newBox.y2 += xineramaDataPtr[0].y - xineramaDataPtr[pScreen->myNum].y;
newBox.x1 += panoramiXdataPtr[0].x - panoramiXdataPtr[pScreen->myNum].x;
newBox.x2 += panoramiXdataPtr[0].x - panoramiXdataPtr[pScreen->myNum].x;
newBox.y1 += panoramiXdataPtr[0].y - panoramiXdataPtr[pScreen->myNum].y;
newBox.y2 += panoramiXdataPtr[0].y - panoramiXdataPtr[pScreen->myNum].y;
(* pScreen->ConstrainCursor)(pScreen, &newBox);
}
@ -379,17 +411,17 @@ XineramaSetWindowPntrs(WindowPtr pWin)
{
if(pWin == WindowTable[0]) {
memcpy(sprite.windows, WindowTable,
XineramaNumScreens*sizeof(WindowPtr));
PanoramiXNumScreens*sizeof(WindowPtr));
} else {
XineramaRes *win;
PanoramiXRes *win;
int i;
win = (XineramaRes*)LookupIDByType(pWin->drawable.id, XRT_WINDOW);
win = (PanoramiXRes*)LookupIDByType(pWin->drawable.id, XRT_WINDOW);
if(!win)
return FALSE;
for(i = 0; i < XineramaNumScreens; i++) {
for(i = 0; i < PanoramiXNumScreens; i++) {
sprite.windows[i] = LookupIDByType(win->info[i].id, RT_WINDOW);
if(!sprite.windows[i]) /* window is being unmapped */
return FALSE;
@ -407,7 +439,13 @@ XineramaCheckVirtualMotion(
if (qe)
{
sprite.hot.pScreen = qe->pScreen; /* should always be Screen 0 */
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = qe->event->u.keyButtonPointer.rootX;
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = qe->event->u.keyButtonPointer.rootY;
pWin = inputInfo.pointer->grab ? inputInfo.pointer->grab->confineTo :
NullWindow;
@ -420,16 +458,16 @@ XineramaCheckVirtualMotion(
if(!XineramaSetWindowPntrs(pWin))
return;
i = XineramaNumScreens - 1;
i = PanoramiXNumScreens - 1;
REGION_COPY(sprite.screen, &sprite.Reg2,
&sprite.windows[i]->borderSize);
off_x = xineramaDataPtr[i].x;
off_y = xineramaDataPtr[i].y;
off_x = panoramiXdataPtr[i].x;
off_y = panoramiXdataPtr[i].y;
while(i--) {
x = off_x - xineramaDataPtr[i].x;
y = off_y - xineramaDataPtr[i].y;
x = off_x - panoramiXdataPtr[i].x;
y = off_y - panoramiXdataPtr[i].y;
if(x || y)
REGION_TRANSLATE(sprite.screen, &sprite.Reg2, x, y);
@ -437,19 +475,31 @@ XineramaCheckVirtualMotion(
REGION_UNION(sprite.screen, &sprite.Reg2, &sprite.Reg2,
&sprite.windows[i]->borderSize);
off_x = xineramaDataPtr[i].x;
off_y = xineramaDataPtr[i].y;
off_x = panoramiXdataPtr[i].x;
off_y = panoramiXdataPtr[i].y;
}
lims = *REGION_EXTENTS(sprite.screen, &sprite.Reg2);
if (sprite.hot.x < lims.x1)
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = lims.x1;
else if (sprite.hot.x >= lims.x2)
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = lims.x2 - 1;
if (sprite.hot.y < lims.y1)
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = lims.y1;
else if (sprite.hot.y >= lims.y2)
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = lims.y2 - 1;
if (REGION_NUM_RECTS(&sprite.Reg2) > 1)
@ -475,20 +525,38 @@ XineramaCheckMotion(xEvent *xE)
/* Motion events entering DIX get translated to Screen 0
coordinates. Replayed events have already been
translated since they've entered DIX before */
XE_KBPTR.rootX += xineramaDataPtr[sprite.screen->myNum].x -
xineramaDataPtr[0].x;
XE_KBPTR.rootY += xineramaDataPtr[sprite.screen->myNum].y -
xineramaDataPtr[0].y;
XE_KBPTR.rootX += panoramiXdataPtr[sprite.screen->myNum].x -
panoramiXdataPtr[0].x;
XE_KBPTR.rootY += panoramiXdataPtr[sprite.screen->myNum].y -
panoramiXdataPtr[0].y;
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = XE_KBPTR.rootX;
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = XE_KBPTR.rootY;
if (sprite.hot.x < sprite.physLimits.x1)
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = sprite.physLimits.x1;
else if (sprite.hot.x >= sprite.physLimits.x2)
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = sprite.physLimits.x2 - 1;
if (sprite.hot.y < sprite.physLimits.y1)
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = sprite.physLimits.y1;
else if (sprite.hot.y >= sprite.physLimits.y2)
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = sprite.physLimits.y2 - 1;
if (sprite.hotShape)
@ -505,6 +573,9 @@ XineramaCheckMotion(xEvent *xE)
XE_KBPTR.rootY = sprite.hot.y;
}
#ifdef XEVIE
xeviewin =
#endif
sprite.win = XYToWindow(sprite.hot.x, sprite.hot.y);
if (sprite.win != prevSpriteWin)
@ -537,16 +608,16 @@ XineramaConfineCursorToWindow(WindowPtr pWin, Bool generateEvents)
if(!XineramaSetWindowPntrs(pWin))
return;
i = XineramaNumScreens - 1;
i = PanoramiXNumScreens - 1;
REGION_COPY(sprite.screen, &sprite.Reg1,
&sprite.windows[i]->borderSize);
off_x = xineramaDataPtr[i].x;
off_y = xineramaDataPtr[i].y;
off_x = panoramiXdataPtr[i].x;
off_y = panoramiXdataPtr[i].y;
while(i--) {
x = off_x - xineramaDataPtr[i].x;
y = off_y - xineramaDataPtr[i].y;
x = off_x - panoramiXdataPtr[i].x;
y = off_y - panoramiXdataPtr[i].y;
if(x || y)
REGION_TRANSLATE(sprite.screen, &sprite.Reg1, x, y);
@ -554,8 +625,8 @@ XineramaConfineCursorToWindow(WindowPtr pWin, Bool generateEvents)
REGION_UNION(sprite.screen, &sprite.Reg1, &sprite.Reg1,
&sprite.windows[i]->borderSize);
off_x = xineramaDataPtr[i].x;
off_y = xineramaDataPtr[i].y;
off_x = panoramiXdataPtr[i].x;
off_y = panoramiXdataPtr[i].y;
}
sprite.hotLimits = *REGION_EXTENTS(sprite.screen, &sprite.Reg1);
@ -617,9 +688,9 @@ SyntheticMotion(int x, int y)
/* Translate back to the sprite screen since processInputProc
will translate from sprite screen to screen 0 upon reentry
to the DIX layer */
if(!noXineramaExtension) {
x += xineramaDataPtr[0].x - xineramaDataPtr[sprite.screen->myNum].x;
y += xineramaDataPtr[0].y - xineramaDataPtr[sprite.screen->myNum].y;
if(!noPanoramiXExtension) {
x += panoramiXdataPtr[0].x - panoramiXdataPtr[sprite.screen->myNum].x;
y += panoramiXdataPtr[0].y - panoramiXdataPtr[sprite.screen->myNum].y;
}
#endif
xE.u.keyButtonPointer.rootX = x;
@ -722,7 +793,7 @@ CheckVirtualMotion(
{
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
XineramaCheckVirtualMotion(qe, pWin);
return;
}
@ -730,7 +801,13 @@ CheckVirtualMotion(
if (qe)
{
sprite.hot.pScreen = qe->pScreen;
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = qe->event->u.keyButtonPointer.rootX;
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = qe->event->u.keyButtonPointer.rootY;
pWin = inputInfo.pointer->grab ? inputInfo.pointer->grab->confineTo :
NullWindow;
@ -742,16 +819,31 @@ CheckVirtualMotion(
if (sprite.hot.pScreen != pWin->drawable.pScreen)
{
sprite.hot.pScreen = pWin->drawable.pScreen;
#ifdef XEVIE
xeviehot.x = xeviehot.y = 0;
#endif
sprite.hot.x = sprite.hot.y = 0;
}
lims = *REGION_EXTENTS(pWin->drawable.pScreen, &pWin->borderSize);
if (sprite.hot.x < lims.x1)
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = lims.x1;
else if (sprite.hot.x >= lims.x2)
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = lims.x2 - 1;
if (sprite.hot.y < lims.y1)
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = lims.y1;
else if (sprite.hot.y >= lims.y2)
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = lims.y2 - 1;
#ifdef SHAPE
if (wBoundingShape(pWin))
@ -773,7 +865,7 @@ ConfineCursorToWindow(WindowPtr pWin, Bool generateEvents, Bool confineToScreen)
ScreenPtr pScreen = pWin->drawable.pScreen;
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
XineramaConfineCursorToWindow(pWin, generateEvents);
return;
}
@ -806,7 +898,7 @@ static void
ChangeToCursor(CursorPtr cursor)
{
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
XineramaChangeToCursor(cursor);
return;
}
@ -894,7 +986,7 @@ GetSpritePosition(px, py)
int
XineramaGetCursorScreen()
{
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
return sprite.screen->myNum;
} else {
return 0;
@ -946,10 +1038,11 @@ EnqueueEvent(xE, device, count)
xEvent *qxE;
NoticeTime(xE);
#ifdef XKB
/* Fix for key repeating bug. */
if (xE->u.u.type == KeyRelease)
if (device->key != NULL && device->key->xkbInfo != NULL &&
xE->u.u.type == KeyRelease)
AccessXCancelRepeatKey(device->key->xkbInfo, xE->u.u.detail);
#endif
@ -975,11 +1068,11 @@ EnqueueEvent(xE, device, count)
if (xE->u.u.type == MotionNotify)
{
#ifdef XINERAMA
if(!noXineramaExtension) {
XE_KBPTR.rootX += xineramaDataPtr[sprite.screen->myNum].x -
xineramaDataPtr[0].x;
XE_KBPTR.rootY += xineramaDataPtr[sprite.screen->myNum].y -
xineramaDataPtr[0].y;
if(!noPanoramiXExtension) {
XE_KBPTR.rootX += panoramiXdataPtr[sprite.screen->myNum].x -
panoramiXdataPtr[0].x;
XE_KBPTR.rootY += panoramiXdataPtr[sprite.screen->myNum].y -
panoramiXdataPtr[0].y;
}
#endif
sprite.hotPhys.x = XE_KBPTR.rootX;
@ -1034,13 +1127,13 @@ PlayReleasedEvents(void)
/* Translate back to the sprite screen since processInputProc
will translate from sprite screen to screen 0 upon reentry
to the DIX layer */
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
qe->event->u.keyButtonPointer.rootX +=
xineramaDataPtr[0].x -
xineramaDataPtr[sprite.screen->myNum].x;
panoramiXdataPtr[0].x -
panoramiXdataPtr[sprite.screen->myNum].x;
qe->event->u.keyButtonPointer.rootY +=
xineramaDataPtr[0].y -
xineramaDataPtr[sprite.screen->myNum].y;
panoramiXdataPtr[0].y -
panoramiXdataPtr[sprite.screen->myNum].y;
}
#endif
(*qe->device->public.processInputProc)(qe->event, qe->device,
@ -1652,8 +1745,11 @@ DeliverEventsToWindow(pWin, pEvents, count, filter, grab, mskidx)
#ifdef XINPUT
else
{
if (((type == DeviceMotionNotify) || (type == DeviceButtonPress)) &&
deliveries)
if (((type == DeviceMotionNotify)
#ifdef XKB
|| (type == DeviceButtonPress)
#endif
) && deliveries)
CheckDeviceGrabAndHintWindow (pWin, type,
(deviceKeyButtonPointer*) pEvents,
grab, client, deliveryMask);
@ -1703,7 +1799,7 @@ MaybeDeliverEventsToClient(pWin, pEvents, count, filter, dontClient)
if (wClient(pWin) == dontClient)
return 0;
#ifdef XINERAMA
if(!noXineramaExtension && pWin->drawable.pScreen->myNum)
if(!noPanoramiXExtension && pWin->drawable.pScreen->myNum)
return XineramaTryClientEventsResult(
wClient(pWin), NullGrab, pWin->eventMask, filter);
#endif
@ -1717,7 +1813,7 @@ MaybeDeliverEventsToClient(pWin, pEvents, count, filter, dontClient)
if (SameClient(other, dontClient))
return 0;
#ifdef XINERAMA
if(!noXineramaExtension && pWin->drawable.pScreen->myNum)
if(!noPanoramiXExtension && pWin->drawable.pScreen->myNum)
return XineramaTryClientEventsResult(
rClient(other), NullGrab, other->mask, filter);
#endif
@ -1860,7 +1956,7 @@ DeliverEvents(pWin, xE, count, otherParent)
int deliveries;
#ifdef XINERAMA
if(!noXineramaExtension && pWin->drawable.pScreen->myNum)
if(!noPanoramiXExtension && pWin->drawable.pScreen->myNum)
return count;
#endif
@ -1900,14 +1996,14 @@ PointInBorderSize(WindowPtr pWin, int x, int y)
return TRUE;
#ifdef XINERAMA
if(!noXineramaExtension && XineramaSetWindowPntrs(pWin)) {
if(!noPanoramiXExtension && XineramaSetWindowPntrs(pWin)) {
int i;
for(i = 1; i < XineramaNumScreens; i++) {
for(i = 1; i < PanoramiXNumScreens; i++) {
if(POINT_IN_REGION(sprite.screen,
&sprite.windows[i]->borderSize,
x + xineramaDataPtr[0].x - xineramaDataPtr[i].x,
y + xineramaDataPtr[0].y - xineramaDataPtr[i].y,
x + panoramiXdataPtr[0].x - panoramiXdataPtr[i].x,
y + panoramiXdataPtr[0].y - panoramiXdataPtr[i].y,
&box))
return TRUE;
}
@ -1971,7 +2067,7 @@ CheckMotion(xEvent *xE)
WindowPtr prevSpriteWin = sprite.win;
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
return XineramaCheckMotion(xE);
#endif
@ -1982,15 +2078,33 @@ CheckMotion(xEvent *xE)
sprite.hot.pScreen = sprite.hotPhys.pScreen;
ROOT = WindowTable[sprite.hot.pScreen->myNum];
}
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = XE_KBPTR.rootX;
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = XE_KBPTR.rootY;
if (sprite.hot.x < sprite.physLimits.x1)
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = sprite.physLimits.x1;
else if (sprite.hot.x >= sprite.physLimits.x2)
#ifdef XEVIE
xeviehot.x =
#endif
sprite.hot.x = sprite.physLimits.x2 - 1;
if (sprite.hot.y < sprite.physLimits.y1)
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = sprite.physLimits.y1;
else if (sprite.hot.y >= sprite.physLimits.y2)
#ifdef XEVIE
xeviehot.y =
#endif
sprite.hot.y = sprite.physLimits.y2 - 1;
#ifdef SHAPE
if (sprite.hotShape)
@ -2008,6 +2122,9 @@ CheckMotion(xEvent *xE)
XE_KBPTR.rootY = sprite.hot.y;
}
#ifdef XEVIE
xeviewin =
#endif
sprite.win = XYToWindow(sprite.hot.x, sprite.hot.y);
#ifdef notyet
if (!(sprite.win->deliverableEvents &
@ -2048,6 +2165,9 @@ DefineInitialRootWindow(win)
sprite.hot = sprite.hotPhys;
sprite.hotLimits.x2 = pScreen->width;
sprite.hotLimits.y2 = pScreen->height;
#ifdef XEVIE
xeviewin =
#endif
sprite.win = win;
sprite.current = wCursor (win);
spriteTraceGood = 1;
@ -2060,11 +2180,11 @@ DefineInitialRootWindow(win)
(*pScreen->DisplayCursor) (pScreen, sprite.current);
#ifdef XINERAMA
if(!noXineramaExtension) {
sprite.hotLimits.x1 = -xineramaDataPtr[0].x;
sprite.hotLimits.y1 = -xineramaDataPtr[0].y;
sprite.hotLimits.x2 = XineramaPixWidth - xineramaDataPtr[0].x;
sprite.hotLimits.y2 = XineramaPixHeight - xineramaDataPtr[0].y;
if(!noPanoramiXExtension) {
sprite.hotLimits.x1 = -panoramiXdataPtr[0].x;
sprite.hotLimits.y1 = -panoramiXdataPtr[0].y;
sprite.hotLimits.x2 = PanoramiXPixWidth - panoramiXdataPtr[0].x;
sprite.hotLimits.y2 = PanoramiXPixHeight - panoramiXdataPtr[0].y;
sprite.physLimits = sprite.hotLimits;
sprite.confineWin = NullWindow;
#ifdef SHAPE
@ -2101,11 +2221,11 @@ NewCurrentScreen(newScreen, x, y)
sprite.hotPhys.x = x;
sprite.hotPhys.y = y;
#ifdef XINERAMA
if(!noXineramaExtension) {
sprite.hotPhys.x += xineramaDataPtr[newScreen->myNum].x -
xineramaDataPtr[0].x;
sprite.hotPhys.y += xineramaDataPtr[newScreen->myNum].y -
xineramaDataPtr[0].y;
if(!noPanoramiXExtension) {
sprite.hotPhys.x += panoramiXdataPtr[newScreen->myNum].x -
panoramiXdataPtr[0].x;
sprite.hotPhys.y += panoramiXdataPtr[newScreen->myNum].y -
panoramiXdataPtr[0].y;
if (newScreen != sprite.screen) {
sprite.screen = newScreen;
/* Make sure we tell the DDX to update its copy of the screen */
@ -2117,10 +2237,10 @@ NewCurrentScreen(newScreen, x, y)
told of the pointer warp so we reposition it here */
if(!syncEvents.playingEvents)
(*sprite.screen->SetCursorPosition)(sprite.screen,
sprite.hotPhys.x + xineramaDataPtr[0].x -
xineramaDataPtr[sprite.screen->myNum].x,
sprite.hotPhys.y + xineramaDataPtr[0].y -
xineramaDataPtr[sprite.screen->myNum].y, FALSE);
sprite.hotPhys.x + panoramiXdataPtr[0].x -
panoramiXdataPtr[sprite.screen->myNum].x,
sprite.hotPhys.y + panoramiXdataPtr[0].y -
panoramiXdataPtr[sprite.screen->myNum].y, FALSE);
}
} else
#endif
@ -2148,14 +2268,14 @@ XineramaPointInWindowIsVisible(
if(!XineramaSetWindowPntrs(pWin)) return FALSE;
xoff = x + xineramaDataPtr[0].x;
yoff = y + xineramaDataPtr[0].y;
xoff = x + panoramiXdataPtr[0].x;
yoff = y + panoramiXdataPtr[0].y;
for(i = 1; i < XineramaNumScreens; i++) {
for(i = 1; i < PanoramiXNumScreens; i++) {
pWin = sprite.windows[i];
pScreen = pWin->drawable.pScreen;
x = xoff - xineramaDataPtr[i].x;
y = yoff - xineramaDataPtr[i].y;
x = xoff - panoramiXdataPtr[i].x;
y = yoff - panoramiXdataPtr[i].y;
if(POINT_IN_REGION(pScreen, &pWin->borderClip, x, y, &box))
return TRUE;
@ -2195,8 +2315,8 @@ XineramaWarpPointer(ClientPtr client)
winX = source->drawable.x;
winY = source->drawable.y;
if(source == WindowTable[0]) {
winX -= xineramaDataPtr[0].x;
winY -= xineramaDataPtr[0].y;
winX -= panoramiXdataPtr[0].x;
winY -= panoramiXdataPtr[0].y;
}
if (x < winX + stuff->srcX ||
y < winY + stuff->srcY ||
@ -2211,8 +2331,8 @@ XineramaWarpPointer(ClientPtr client)
x = dest->drawable.x;
y = dest->drawable.y;
if(dest == WindowTable[0]) {
x -= xineramaDataPtr[0].x;
y -= xineramaDataPtr[0].y;
x -= panoramiXdataPtr[0].x;
y -= panoramiXdataPtr[0].y;
}
}
@ -2251,7 +2371,7 @@ ProcWarpPointer(client)
REQUEST_SIZE_MATCH(xWarpPointerReq);
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
return XineramaWarpPointer(client);
#endif
@ -2336,10 +2456,10 @@ BorderSizeNotEmpty(WindowPtr pWin)
return TRUE;
#ifdef XINERAMA
if(!noXineramaExtension && XineramaSetWindowPntrs(pWin)) {
if(!noPanoramiXExtension && XineramaSetWindowPntrs(pWin)) {
int i;
for(i = 1; i < XineramaNumScreens; i++) {
for(i = 1; i < PanoramiXNumScreens; i++) {
if(REGION_NOTEMPTY(sprite.screen, &sprite.windows[i]->borderSize))
return TRUE;
}
@ -2381,10 +2501,10 @@ CheckPassiveGrabsOnWindow(
xkbi= gdev->key->xkbInfo;
#endif
tempGrab.modifierDevice = grab->modifierDevice;
if (device == grab->modifierDevice &&
(xE->u.u.type == KeyPress
#ifdef XINPUT
|| xE->u.u.type == DeviceKeyPress
if ((device == grab->modifierDevice) &&
((xE->u.u.type == KeyPress)
#if defined(XINPUT) && defined(XKB)
|| (xE->u.u.type == DeviceKeyPress)
#endif
))
tempGrab.modifiersDetail.exact =
@ -2474,11 +2594,11 @@ CheckDeviceGrabs(device, xE, checkFirst, count)
register WindowPtr pWin = NULL;
register FocusClassPtr focus = device->focus;
if ((xE->u.u.type == ButtonPress
#ifdef XINPUT
|| xE->u.u.type == DeviceButtonPress
if (((xE->u.u.type == ButtonPress)
#if defined(XINPUT) && defined(XKB)
|| (xE->u.u.type == DeviceButtonPress)
#endif
) && device->button->buttonsDown != 1)
) && (device->button->buttonsDown != 1))
return FALSE;
i = checkFirst;
@ -2803,7 +2923,7 @@ ProcessPointerEvent (xE, mouse, count)
#endif
));
{
NoticeTime(xE);
NoticeTime(xE); /* Hu? see above! */
if (DeviceEventCallback)
{
DeviceEventInfoRec eventinfo;
@ -3351,7 +3471,7 @@ DoFocusEvents(dev, fromWin, toWin, mode)
TRUE);
/* Notify all the roots */
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
FocusEvent(dev, FocusOut, mode, out, WindowTable[0]);
else
#endif
@ -3370,7 +3490,7 @@ DoFocusEvents(dev, fromWin, toWin, mode)
}
/* Notify all the roots */
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
FocusEvent(dev, FocusIn, mode, in, WindowTable[0]);
else
#endif
@ -3388,7 +3508,7 @@ DoFocusEvents(dev, fromWin, toWin, mode)
FocusOutEvents(dev, sprite.win, ROOT, mode, NotifyPointer,
TRUE);
#ifdef XINERAMA
if ( !noXineramaExtension )
if ( !noPanoramiXExtension )
FocusEvent(dev, FocusOut, mode, out, WindowTable[0]);
else
#endif
@ -3902,12 +4022,12 @@ ProcQueryPointer(client)
}
#ifdef XINERAMA
if(!noXineramaExtension) {
rep.rootX += xineramaDataPtr[0].x;
rep.rootY += xineramaDataPtr[0].y;
if(!noPanoramiXExtension) {
rep.rootX += panoramiXdataPtr[0].x;
rep.rootY += panoramiXdataPtr[0].y;
if(stuff->id == rep.root) {
rep.winX += xineramaDataPtr[0].x;
rep.winY += xineramaDataPtr[0].y;
rep.winX += panoramiXdataPtr[0].x;
rep.winY += panoramiXdataPtr[0].y;
}
}
#endif
@ -3938,6 +4058,9 @@ InitEvents()
spriteTraceGood = 0;
lastEventMask = OwnerGrabButtonMask;
filters[MotionNotify] = PointerMotionMask;
#ifdef XEVIE
xeviewin =
#endif
sprite.win = NullWindow;
sprite.current = NullCursor;
sprite.hotLimits.x1 = 0;
@ -4370,7 +4493,7 @@ CheckCursorConfinement(pWin)
WindowPtr confineTo;
#ifdef XINERAMA
if(!noXineramaExtension && pWin->drawable.pScreen->myNum) return;
if(!noPanoramiXExtension && pWin->drawable.pScreen->myNum) return;
#endif
if (grab && (confineTo = grab->confineTo))
@ -4430,7 +4553,7 @@ ProcRecolorCursor(client)
{
pscr = screenInfo.screens[nscr];
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
displayed = (pscr == sprite.screen);
else
#endif
@ -4459,8 +4582,8 @@ WriteEventsToClient(pClient, count, events)
#endif
#ifdef XINERAMA
if(!noXineramaExtension &&
(xineramaDataPtr[0].x || xineramaDataPtr[0].y))
if(!noPanoramiXExtension &&
(panoramiXdataPtr[0].x || panoramiXdataPtr[0].y))
{
switch(events->u.u.type) {
case MotionNotify:
@ -4477,13 +4600,13 @@ WriteEventsToClient(pClient, count, events)
*/
count = 1; /* should always be 1 */
memcpy(&eventCopy, events, sizeof(xEvent));
eventCopy.u.keyButtonPointer.rootX += xineramaDataPtr[0].x;
eventCopy.u.keyButtonPointer.rootY += xineramaDataPtr[0].y;
eventCopy.u.keyButtonPointer.rootX += panoramiXdataPtr[0].x;
eventCopy.u.keyButtonPointer.rootY += panoramiXdataPtr[0].y;
if(eventCopy.u.keyButtonPointer.event ==
eventCopy.u.keyButtonPointer.root)
{
eventCopy.u.keyButtonPointer.eventX += xineramaDataPtr[0].x;
eventCopy.u.keyButtonPointer.eventY += xineramaDataPtr[0].y;
eventCopy.u.keyButtonPointer.eventX += panoramiXdataPtr[0].x;
eventCopy.u.keyButtonPointer.eventY += panoramiXdataPtr[0].y;
}
events = &eventCopy;
break;

View File

@ -1,4 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/dix/main.c,v 3.44 2003/11/17 22:20:34 dawes Exp $ */
/* $XdotOrg: xc/programs/Xserver/dix/main.c,v 1.1.4.5 2004/02/25 21:46:40 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/dix/main.c,v 3.44 2003/11/17 22:20:34 dawes Exp $ */
/***********************************************************
@ -94,7 +94,7 @@ SOFTWARE.
#include "dixfont.h"
#include "extnsionst.h"
#ifdef XINERAMA
extern Bool noXineramaExtension;
extern Bool noPanoramiXExtension;
#else
#include "dixevents.h" /* InitEvents() */
#include "dispatch.h" /* InitProcVectors() */
@ -351,6 +351,7 @@ main(int argc, char *argv[], char *envp[])
#endif
ResetColormapPrivates();
ResetFontPrivateIndex();
ResetDevicePrivateIndex();
InitCallbackManager();
InitVisualWrap();
InitOutput(&screenInfo, argc, argv);
@ -407,8 +408,8 @@ main(int argc, char *argv[], char *envp[])
/*
* Consolidate window and colourmap information for each screen
*/
if (!noXineramaExtension)
XineramaConsolidate();
if (!noPanoramiXExtension)
PanoramiXConsolidate();
#endif
for (i = 0; i < screenInfo.numScreens; i++)
@ -420,8 +421,8 @@ main(int argc, char *argv[], char *envp[])
#endif
#ifdef XINERAMA
if (!noXineramaExtension) {
if (!XineramaCreateConnectionBlock())
if (!noPanoramiXExtension) {
if (!PanoramiXCreateConnectionBlock())
FatalError("could not create connection block info");
} else
#endif
@ -440,10 +441,10 @@ main(int argc, char *argv[], char *envp[])
#ifdef XINERAMA
{
Bool remember_it = noXineramaExtension;
noXineramaExtension = TRUE;
Bool remember_it = noPanoramiXExtension;
noPanoramiXExtension = TRUE;
FreeAllResources();
noXineramaExtension = remember_it;
noPanoramiXExtension = remember_it;
}
#else
FreeAllResources();

View File

@ -39,6 +39,7 @@ from The Open Group.
#include "colormapst.h"
#include "servermd.h"
#include "site.h"
#include "inputstr.h"
/*
* See the Wrappers and devPrivates section in "Definition of the
@ -368,3 +369,35 @@ InitCmapPrivFunc initPrivFunc;
return index;
}
static int devicePrivateIndex = 0;
int
AllocateDevicePrivateIndex()
{
return devicePrivateIndex++;
}
Bool
AllocateDevicePrivate(DeviceIntPtr device, int index)
{
if (device->nPrivates < ++index) {
DevUnion *nprivs = (DevUnion *)xrealloc(device->devPrivates,
index * sizeof(DevUnion));
if (!nprivs)
return FALSE;
device->devPrivates = nprivs;
bzero(&nprivs[device->nPrivates], sizeof(DevUnion)
* (index - device->nPrivates));
device->nPrivates = index;
return TRUE;
} else {
return TRUE;
}
}
void
ResetDevicePrivateIndex(void)
{
devicePrivateIndex = 0;
}

View File

@ -1,4 +1,3 @@
/* $XdotOrg$ */
/************************************************************
Copyright 1987, 1998 The Open Group
@ -90,8 +89,8 @@ SOFTWARE.
#include "dixgrabs.h"
#include "cursor.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
#include <assert.h>
@ -801,7 +800,7 @@ LegalNewID(id, client)
#ifdef XINERAMA
XID minid, maxid;
if (!noXineramaExtension) {
if (!noPanoramiXExtension) {
minid = client->clientAsMask | (client->index ?
SERVER_BIT : SERVER_MINID);
maxid = (clientTable[client->index].fakeID | RESOURCE_ID_MASK) + 1;

View File

@ -1,4 +1,4 @@
/* $XdotOrg: window.c,v 1.4 2001/02/09 02:04:41 xorgcvs Exp $ */
/* $XdotOrg: xc/programs/Xserver/dix/window.c,v 1.1.4.4 2004/02/25 21:46:40 kaleb Exp $ */
/* $Xorg: window.c,v 1.4 2001/02/09 02:04:41 xorgcvs Exp $ */
/*
@ -87,8 +87,8 @@ SOFTWARE.
#include "gcstruct.h"
#include "servermd.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
#include "dixevents.h"
#include "globals.h"
@ -2322,9 +2322,9 @@ ConfigureWindow(pWin, mask, vlist, client)
event.u.configureRequest.x = x;
event.u.configureRequest.y = y;
#ifdef XINERAMA
if(!noXineramaExtension && (!pParent || !pParent->parent)) {
event.u.configureRequest.x += xineramaDataPtr[0].x;
event.u.configureRequest.y += xineramaDataPtr[0].y;
if(!noPanoramiXExtension && (!pParent || !pParent->parent)) {
event.u.configureRequest.x += panoramiXdataPtr[0].x;
event.u.configureRequest.y += panoramiXdataPtr[0].y;
}
#endif
event.u.configureRequest.width = w;
@ -2408,9 +2408,9 @@ ActuallyDoSomething:
event.u.configureNotify.x = x;
event.u.configureNotify.y = y;
#ifdef XINERAMA
if(!noXineramaExtension && (!pParent || !pParent->parent)) {
event.u.configureNotify.x += xineramaDataPtr[0].x;
event.u.configureNotify.y += xineramaDataPtr[0].y;
if(!noPanoramiXExtension && (!pParent || !pParent->parent)) {
event.u.configureNotify.x += panoramiXdataPtr[0].x;
event.u.configureNotify.y += panoramiXdataPtr[0].y;
}
#endif
event.u.configureNotify.width = w;
@ -2566,9 +2566,9 @@ ReparentWindow(pWin, pParent, x, y, client)
event.u.reparent.x = x;
event.u.reparent.y = y;
#ifdef XINERAMA
if(!noXineramaExtension && !pParent->parent) {
event.u.reparent.x += xineramaDataPtr[0].x;
event.u.reparent.y += xineramaDataPtr[0].y;
if(!noPanoramiXExtension && !pParent->parent) {
event.u.reparent.x += panoramiXdataPtr[0].x;
event.u.reparent.y += panoramiXdataPtr[0].y;
}
#endif
event.u.reparent.override = pWin->overrideRedirect;
@ -2939,9 +2939,9 @@ UnrealizeTree(
pChild->realized = FALSE;
pChild->visibility = VisibilityNotViewable;
#ifdef XINERAMA
if(!noXineramaExtension && !pChild->drawable.pScreen->myNum) {
XineramaRes *win;
win = (XineramaRes*)LookupIDByType(pChild->drawable.id,
if(!noPanoramiXExtension && !pChild->drawable.pScreen->myNum) {
PanoramiXRes *win;
win = (PanoramiXRes*)LookupIDByType(pChild->drawable.id,
XRT_WINDOW);
if(win)
win->u.win.visibility = VisibilityNotViewable;
@ -3225,21 +3225,21 @@ SendVisibilityNotify(pWin)
#endif
#ifdef XINERAMA
/* This is not quite correct yet, but it's close */
if(!noXineramaExtension) {
XineramaRes *win;
if(!noPanoramiXExtension) {
PanoramiXRes *win;
WindowPtr pWin2;
int i, Scrnum;
Scrnum = pWin->drawable.pScreen->myNum;
win = XineramaFindIDByScrnum(XRT_WINDOW, pWin->drawable.id, Scrnum);
win = PanoramiXFindIDByScrnum(XRT_WINDOW, pWin->drawable.id, Scrnum);
if(!win || (win->u.win.visibility == visibility))
return;
switch(visibility) {
case VisibilityUnobscured:
for(i = 0; i < XineramaNumScreens; i++) {
for(i = 0; i < PanoramiXNumScreens; i++) {
if(i == Scrnum) continue;
pWin2 = (WindowPtr)LookupIDByType(win->info[i].id, RT_WINDOW);
@ -3259,7 +3259,7 @@ SendVisibilityNotify(pWin)
}
break;
case VisibilityFullyObscured:
for(i = 0; i < XineramaNumScreens; i++) {
for(i = 0; i < PanoramiXNumScreens; i++) {
if(i == Scrnum) continue;
pWin2 = (WindowPtr)LookupIDByType(win->info[i].id, RT_WINDOW);

View File

@ -31,24 +31,24 @@ from The Open Group.
#include "font.h"
Bool
XpClientIsBitmapClient(client)
ClientPtr client;
XpClientIsBitmapClient(
ClientPtr client)
{
return TRUE;
}
Bool
XpClientIsPrintClient(client, fpe)
ClientPtr client;
FontPathElementPtr fpe;
XpClientIsPrintClient(
ClientPtr client,
FontPathElementPtr fpe)
{
return FALSE;
}
int
XprintOptions(argc, argv, i)
int argc;
char **argv;
int i;
XprintOptions(
int argc,
char **argv,
int i)
{
return i;
}

View File

@ -22,7 +22,7 @@
.\" not be used in advertising or otherwise to promote the sale, use or
.\" other dealings in this Software without prior written authorization
.\" from The Open Group.
.\" $XFree86: xc/programs/Xserver/Xserver.man,v 3.29 2003/09/08 14:25:26 eich Exp $
.\" $XFree86: xc/programs/Xserver/Xserver.man,v 3.32 2004/01/12 21:43:19 herrb Exp $
.\" shorthand for double quote that works everywhere.
.ds q \N'34'
.TH XSERVER 1 __xorgversion__
@ -37,16 +37,17 @@ is the generic name for the X Window System display server. It is
frequently a link or a copy of the appropriate server binary for
driving the most frequently used server on a given machine.
.SH "STARTING THE SERVER"
The X server is usually started from the X Display Manager program \fIxdm\fP(1).
The X server is usually started from the X Display Manager program
\fIxdm\fP(1) or a similar display manager program.
This utility is run from the system boot files and takes care of keeping
the server running, prompting for usernames and passwords, and starting up
the user sessions.
.PP
Installations that run more than one window system may need to use the
\fIxinit\fP(1) utility instead of \fIxdm\fP. However, \fIxinit\fP is
\fIxinit\fP(1) utility instead of a display manager. However, \fIxinit\fP is
to be considered a tool for building startup scripts and is not
intended for use by end users. Site administrators are \fBstrongly\fP
urged to use \fIxdm\fP, or build other interfaces for novice users.
urged to use a display manager, or build other interfaces for novice users.
.PP
The X server may also be started directly by the user, though this
method is usually reserved for testing and is not recommended for
@ -95,8 +96,8 @@ Audit lines are sent as standard error output.
.TP 8
.B \-auth \fIauthorization-file\fP
specifies a file which contains a collection of authorization records used
to authenticate access. See also the \fIxdm\fP and \fIXsecurity\fP manual
pages.
to authenticate access. See also the \fIxdm\fP(1) and
\fIXsecurity\fP(__miscmansuffix__) manual pages.
.TP 8
.B bc
disables certain kinds of error checking, for bug compatibility with
@ -139,15 +140,23 @@ different from the user's real uid.
.B \-core
causes the server to generate a core dump on fatal errors.
.TP 8
.B \-deferglyphs \fIwhichfonts\fP
specifies the types of fonts for which the server should attempt to use
deferred glyph loading. \fIwhichfonts\fP can be all (all fonts),
none (no fonts), or 16 (16 bit fonts only).
.TP 8
.B \-dpi \fIresolution\fP
sets the resolution for all screens, in dots per inch.
To be used when the server cannot determine the screen size(s) from the
hardware.
.TP 8
.B \-deferglyphs \fIwhichfonts\fP
specifies the types of fonts for which the server should attempt to use
deferred glyph loading. \fIwhichfonts\fP can be all (all fonts),
none (no fonts), or 16 (16 bit fonts only).
.B dpms
enables DPMS (display power management services), where supported. The
default state is platform and configuration specific.
.TP 8
.B \-dpms
disables DPMS (display power management services). The default state
is platform and configuration specific.
.TP 8
.B \-f \fIvolume\fP
sets feep (bell) volume (allowable range: 0-100).
@ -161,6 +170,8 @@ sets the default font.
.B \-fp \fIfontPath\fP
sets the search path for fonts. This path is a comma separated list
of directories which the X server searches for font databases.
See the FONTS section of this manual page for more information and the default
list.
.TP 8
.B \-help
prints a usage message.
@ -168,6 +179,11 @@ prints a usage message.
.B \-I
causes all remaining command line arguments to be ignored.
.TP 8
.B \-maxbigreqsize \fIsize\fP
sets the maxmium big request to
.I size
MB.
.TP 8
.B \-nolisten \fItrans-type\fP
disables a transport type. For example, TCP/IP connections can be disabled
with
@ -187,7 +203,11 @@ sets screen-saver pattern cycle time in minutes.
.B \-pn
permits the server to continue running if it fails to establish all of
its well-known sockets (connection points for clients), but
establishes at least one.
establishes at least one. This option is set by default.
.TP 8
.B \-nopn
causes the server to exit if it fails to establish all of its well-known
sockets (connection points for clients).
.TP 8
.B \-r
turns off auto-repeat.
@ -243,7 +263,7 @@ This is a no-op for most implementations.
.TP 8
.B [+-]xinerama
enables(+) or disables(-) the XINERAMA extension. The default state is
disabled.
platform and configuration specific.
.SH SERVER DEPENDENT OPTIONS
Some X servers accept the following options:
.TP 8
@ -288,6 +308,14 @@ use a gray map of 13 color cells for the X render extension.
.I color
use a color cube of at most 4*4*4 colors (that is 64 color cells).
.RE
.TP 8
.B \-dumbSched
disables smart scheduling on platforms that support the smart scheduler.
.TP
.B \-schedInterval \fIinterval\fP
sets the smart scheduler's scheduling interval to
.I interval
milliseconds.
.SH XDMCP OPTIONS
X servers that support XDMCP have the following options.
See the \fIX Display Manager Control Protocol\fP specification for more
@ -300,6 +328,7 @@ enables XDMCP and sends Query packets to the specified
.B \-broadcast
enable XDMCP and broadcasts BroadcastQuery packets to the network. The
first responding display manager will be chosen for the session.
.TP 8
.B \-multicast [\fIaddress\fP [\fIhop count\fP]]
Enable XDMCP and multicast BroadcastQuery packets to the network.
The first responding display manager is chosen for the session. If an
@ -316,8 +345,8 @@ enables XDMCP and send IndirectQuery packets to the specified
.TP 8
.B \-port \fIport-number\fP
uses the specified \fIport-number\fP for XDMCP packets, instead of the
default. This option must be specified before any \-query, \-broadcast or
\-indirect options.
default. This option must be specified before any \-query, \-broadcast,
\-multicast, or \-indirect options.
.TP 8
.B \-from \fIlocal-address\fP
specifies the local address to connect from (useful if the connecting host
@ -344,7 +373,10 @@ Yet another XDMCP specific value, this one allows the display manager to
identify each display so that it can locate the shared key.
.SH XKEYBOARD OPTIONS
X servers that support the XKEYBOARD (a.k.a. \*qXKB\*q) extension accept the
following options:
following options. All layout files specified on the command line must be
located in the XKB base directory or a subdirectory, and specified as the
relative path from the XKB base directory. The default XKB base directory is
.IR __projectroot__/lib/X11/xkb .
.TP 8
.B [+-]kb
enables(+) or disables(-) the XKEYBOARD extension.
@ -599,13 +631,14 @@ property Woo-Hoo OhBoy = "*son" ad
The X server supports client connections via a platform-dependent subset of
the following transport types: TCP\/IP, Unix Domain sockets, DECnet,
and several varieties of SVR4 local connections. See the DISPLAY
NAMES section of the \fIX(__miscmansuffix__)\fP manual page to learn how to
NAMES section of the \fIX\fP(__miscmansuffix__) manual page to learn how to
specify which transport type clients should try to use.
.SH GRANTING ACCESS
The X server implements a platform-dependent subset of the following
authorization protocols: MIT-MAGIC-COOKIE-1, XDM-AUTHORIZATION-1,
SUN-DES-1, and MIT-KERBEROS-5. See the \fIXsecurity\fP(__miscmansuffix__)
manual page for information on the operation of these protocols.
XDM-AUTHORIZATION-2, SUN-DES-1, and MIT-KERBEROS-5. See the
\fIXsecurity\fP(__miscmansuffix__) manual page for information on the
operation of these protocols.
.PP
Authorization data required by the above protocols is passed to the
server in a private file named with the \fB\-auth\fP command line
@ -626,15 +659,17 @@ this list initially consists of the host on which the server is running as
well as any machines listed in the file \fI/etc/X\fBn\fI.hosts\fR, where
\fBn\fP is the display number of the server. Each line of the file should
contain either an Internet hostname (e.g. expo.lcs.mit.edu) or a DECnet
hostname in double colon format (e.g. hydra::). There should be no leading
or trailing spaces on any lines. For example:
hostname in double colon format (e.g. hydra::) or a complete name in the format
\fIfamily\fP:\fIname\fP as described in the \fIxhost\fP(1) manual page.
There should be no leading or trailing spaces on any lines. For example:
.sp
.in +8
.nf
joesworkstation
corporate.company.com
star::
bigcpu::
inet:bigcpu
local:
.fi
.in -8
.PP
@ -691,11 +726,7 @@ the X server uses when trying to open a font is controlled
by the \fIfont path\fP.
.LP
The default font path is
__projectroot__/lib/X11/fonts/misc/,
__projectroot__/lib/X11/fonts/Speedo/,
__projectroot__/lib/X11/fonts/Type1/,
__projectroot__/lib/X11/fonts/75dpi/,
__projectroot__/lib/X11/fonts/100dpi/" .
__default_font_path__ .
.LP
The font path can be set with the \fB\-fp\fP option or by \fIxset\fP(1)
after the server has started.
@ -707,7 +738,7 @@ Initial access control list for display number \fBn\fP
.IR __projectroot__/lib/X11/fonts/misc , __projectroot__/lib/X11/fonts/75dpi , __projectroot__/lib/X11/fonts/100dpi
Bitmap font directories
.TP 30
.IR __projectroot__/lib/X11/fonts/Speedo , __projectroot__/lib/X11/fonts/Type1
.IR __projectroot__/lib/X11/fonts/TTF , __projectroot__/lib/X11/fonts/Speedo , __projectroot__/lib/X11/fonts/Type1
Outline font directories
.TP 30
.I __projectroot__/lib/X11/rgb.txt
@ -720,7 +751,7 @@ Unix domain socket for display number \fBn\fP
Kerberos 5 replay cache for display number \fBn\fP
.TP 30
.I /usr/adm/X\fBn\fPmsgs
Error log file for display number \fBn\fP if run from \fIinit\fP(8)
Error log file for display number \fBn\fP if run from \fIinit\fP(__adminmansuffix__)
.TP 30
.I __projectroot__/lib/X11/xdm/xdm-errors
Default error log file if the server is run from \fIxdm\fP(1)
@ -732,15 +763,15 @@ Protocols:
.I "The X Font Service Protocol,"
.I "X Display Manager Control Protocol"
.PP
Fonts: \fIbdftopcf\fP(1), \fImkfontdir\fP(1), \fIxfs\fP(1),
\fIxlsfonts\fP(1), \fIxfontsel\fP(1), \fIxfd\fP(1),
Fonts: \fIbdftopcf\fP(1), \fImkfontdir\fP(1), \fImkfontscale\fP(1),
\fIxfs\fP(1), \fIxlsfonts\fP(1), \fIxfontsel\fP(1), \fIxfd\fP(1),
.I "X Logical Font Description Conventions"
.PP
Security: \fIXsecurity\fP(__miscmansuffix__), \fIxauth\fP(1), \fIXau\fP(1),
\fIxdm\fP(1), \fIxhost\fP(1), \fIxfwp\fP(1)
\fIxdm\fP(1), \fIxhost\fP(1), \fIxfwp\fP(1),
.I "Security Extension Specification"
.PP
Starting the server: \fIxdm(1)\fP, \fIxinit\fP(1)
Starting the server: \fIxdm\fP(1), \fIxinit\fP(1)
.PP
Controlling the server once started: \fIxset\fP(1), \fIxsetroot\fP(1),
\fIxhost\fP(1)

View File

@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $XFree86: xc/programs/Xserver/fb/fbcopy.c,v 1.13 2003/11/10 18:21:47 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/fb/fbcopy.c,v 1.14 2003/12/28 17:22:25 alanh Exp $ */
#include "fb.h"
#ifdef IN_MODULE
@ -398,7 +398,10 @@ fbDoCopy (DrawablePtr pSrcDrawable,
int dx;
int dy;
int numRects;
BoxRec box;
int box_x1;
int box_y1;
int box_x2;
int box_y2;
Bool fastSrc = FALSE; /* for fast clipping with pixmap source */
Bool fastDst = FALSE; /* for fast clipping with one rect dest */
Bool fastExpose = FALSE; /* for fast exposures with pixmap source */
@ -466,10 +469,10 @@ fbDoCopy (DrawablePtr pSrcDrawable,
xOut += pDstDrawable->x;
yOut += pDstDrawable->y;
box.x1 = xIn;
box.y1 = yIn;
box.x2 = xIn + widthSrc;
box.y2 = yIn + heightSrc;
box_x1 = xIn;
box_y1 = yIn;
box_x2 = xIn + widthSrc;
box_y2 = yIn + heightSrc;
dx = xIn - xOut;
dy = yIn - yOut;
@ -484,32 +487,32 @@ fbDoCopy (DrawablePtr pSrcDrawable,
* clip the source; if regions extend beyond the source size,
* make sure exposure events get sent
*/
if (box.x1 < pSrcDrawable->x)
if (box_x1 < pSrcDrawable->x)
{
box.x1 = pSrcDrawable->x;
box_x1 = pSrcDrawable->x;
fastExpose = FALSE;
}
if (box.y1 < pSrcDrawable->y)
if (box_y1 < pSrcDrawable->y)
{
box.y1 = pSrcDrawable->y;
box_y1 = pSrcDrawable->y;
fastExpose = FALSE;
}
if (box.x2 > pSrcDrawable->x + (int) pSrcDrawable->width)
if (box_x2 > pSrcDrawable->x + (int) pSrcDrawable->width)
{
box.x2 = pSrcDrawable->x + (int) pSrcDrawable->width;
box_x2 = pSrcDrawable->x + (int) pSrcDrawable->width;
fastExpose = FALSE;
}
if (box.y2 > pSrcDrawable->y + (int) pSrcDrawable->height)
if (box_y2 > pSrcDrawable->y + (int) pSrcDrawable->height)
{
box.y2 = pSrcDrawable->y + (int) pSrcDrawable->height;
box_y2 = pSrcDrawable->y + (int) pSrcDrawable->height;
fastExpose = FALSE;
}
/* Translate and clip the dst to the destination composite clip */
box.x1 -= dx;
box.x2 -= dx;
box.y1 -= dy;
box.y2 -= dy;
box_x1 -= dx;
box_x2 -= dx;
box_y1 -= dy;
box_y2 -= dy;
/* If the destination composite clip is one rectangle we can
do the clip directly. Otherwise we have to create a full
@ -520,21 +523,26 @@ fbDoCopy (DrawablePtr pSrcDrawable,
{
BoxPtr pBox = REGION_RECTS(cclip);
if (box.x1 < pBox->x1) box.x1 = pBox->x1;
if (box.x2 > pBox->x2) box.x2 = pBox->x2;
if (box.y1 < pBox->y1) box.y1 = pBox->y1;
if (box.y2 > pBox->y2) box.y2 = pBox->y2;
if (box_x1 < pBox->x1) box_x1 = pBox->x1;
if (box_x2 > pBox->x2) box_x2 = pBox->x2;
if (box_y1 < pBox->y1) box_y1 = pBox->y1;
if (box_y2 > pBox->y2) box_y2 = pBox->y2;
fastDst = TRUE;
}
}
/* Check to see if the region is empty */
if (box.x1 >= box.x2 || box.y1 >= box.y2)
if (box_x1 >= box_x2 || box_y1 >= box_y2)
{
REGION_NULL(pGC->pScreen, &rgnDst);
}
else
{
BoxRec box;
box.x1 = box_x1;
box.y1 = box_y1;
box.x2 = box_x2;
box.y2 = box_y2;
REGION_INIT(pGC->pScreen, &rgnDst, &box, 1);
}

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/fb/fbwindow.c,v 1.1.4.3 2004/02/25 21:46:42 kaleb Exp $ */
/*
* Id: fbwindow.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
*
@ -225,8 +225,8 @@ fbFillRegionSolid (DrawablePtr pDrawable,
}
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
void
@ -249,13 +249,13 @@ fbFillRegionTiled (DrawablePtr pDrawable,
int yRot = pDrawable->y;
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
{
int index = pDrawable->pScreen->myNum;
if(&WindowTable[index]->drawable == pDrawable)
{
xRot -= xineramaDataPtr[index].x;
yRot -= xineramaDataPtr[index].y;
xRot -= panoramiXdataPtr[index].x;
yRot -= panoramiXdataPtr[index].y;
}
}
#endif

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m,v 1.1.4.3 2004/02/25 21:46:45 kaleb Exp $ */
/**************************************************************
*
* Quartz-specific support for the Darwin X Server
@ -49,7 +49,7 @@
extern void FatalError(const char *, ...);
extern char *display;
extern int noXineramaExtension;
extern int noPanoramiXExtension;
/*
@ -69,12 +69,12 @@ void QuartzReadPreferences(void)
// quartzRootless has already been set
if (quartzRootless) {
// Use Pseudorama instead of Xinerama
noXineramaExtension = TRUE;
noPanoramiXExtension = TRUE;
noPseudoramaExtension = ![Preferences xinerama];
quartzUseAGL = [Preferences useAGL];
} else {
noXineramaExtension = ![Preferences xinerama];
noPanoramiXExtension = ![Preferences xinerama];
noPseudoramaExtension = TRUE;
// Full screen can't use AGL for GLX

View File

@ -32,9 +32,7 @@
promote the sale, use or other dealings in this Software without
prior written authorization.
*/
/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c,v 1.1 2003/11/01 08:13:08 torrey Exp $ */
#ifdef HAS_KL_API
/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c,v 1.2 2004/01/19 01:22:47 torrey Exp $ */
#include "quartzCommon.h"
@ -45,6 +43,8 @@
#include "keysym.h"
#include "keysym2ucs.h"
#ifdef HAS_KL_API
#define HACK_MISSING 1
#define HACK_KEYPAD 1

View File

@ -1,5 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 1.1.4.3 2003/12/20 00:28:26 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.105 2003/12/18 21:56:37 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.106 2004/02/02 03:55:28 dawes Exp $ */
/*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
*
@ -59,6 +58,10 @@
# define _COMPILER_H
#if defined(__SUNPRO_C)
# define DO_PROTOTYPES
#endif
/* Allow drivers to use the GCC-supported __inline__ and/or __inline. */
# ifndef __inline__
# if defined(__GNUC__)
@ -1301,6 +1304,7 @@ inl(unsigned short port)
# define mem_barrier() /* NOP */
# define write_mem_barrier() /* NOP */
# if !defined(__SUNPRO_C)
# if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__)
# ifdef GCCUSESGAS
@ -1446,6 +1450,7 @@ inl(unsigned short port)
}
# endif /* FAKEIT */
# endif /* __SUNPRO_C */
# endif /* ix86 */
@ -1541,8 +1546,8 @@ extern void outl(unsigned int a, unsigned int l);
#if 0
# include <sys/types.h>
#endif
# if !defined(__HIGHC__) && !defined(__SUNPRO_C)
# ifndef __USLC__
# ifndef __HIGHC__
# if !defined(__USLC__) && !defined(__SUNPRO_C)
# define __USLC__
# endif
# endif
@ -1561,8 +1566,8 @@ extern void outl(unsigned int a, unsigned int l);
# include <sys/types.h>
# endif /* IN_MODULE */
# endif /* USL */
# ifndef sgi
# include <sys/inline.h>
# if !defined(sgi) && !defined(__SUNPRO_C)
# include <sys/inline.h>
# endif
# else
# include "scoasm.h"

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.172 2003/09/24 02:43:16 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.173 2004/01/27 01:31:44 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
@ -57,7 +57,6 @@ extern int xf86PixmapIndex;
extern Bool xf86ResAccessEnter;
extern ScrnInfoPtr *xf86Screens; /* List of pointers to ScrnInfoRecs */
extern const unsigned char byte_reversed[256];
extern PropertyPtr *xf86RegisteredPropertiesTable;
extern ScrnInfoPtr xf86CurrentScreen;
extern Bool pciSlotClaimed;
extern Bool isaSlotClaimed;

View File

@ -1,5 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.79 2003/11/03 05:11:01 tsi Exp $ */
/* $XdotOrg$ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.80 2004/02/05 18:24:59 eich Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
*

View File

@ -1,4 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.277 2003/10/15 22:51:48 dawes Exp $ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 1.1.4.4 2004/02/25 21:46:46 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.277 2003/10/15 22:51:48 dawes Exp $ */
@ -1060,13 +1060,13 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
#ifdef XINERAMA
from = X_DEFAULT;
if (!noXineramaExtension)
if (!noPanoramiXExtension)
from = X_CMDLINE;
else if (xf86GetOptValBool(FlagOptions, FLAG_XINERAMA, &value)) {
noXineramaExtension = !value;
noPanoramiXExtension = !value;
from = X_CONFIG;
}
if (!noXineramaExtension)
if (!noPanoramiXExtension)
xf86Msg(from, "Xinerama: enabled\n");
#endif

View File

@ -1,4 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86DGA.c,v 1.47 2003/08/24 17:36:51 dawes Exp $ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86DGA.c,v 1.1.4.3 2004/02/25 21:46:46 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DGA.c,v 1.47 2003/08/24 17:36:51 dawes Exp $ */
/*
* Copyright (c) 1998-2002 by The XFree86 Project, Inc.
@ -141,7 +141,7 @@ DGAInit(
modes[i].num = i + 1;
#ifdef XINERAMA
if(!noXineramaExtension)
if(!noPanoramiXExtension)
for(i = 0; i < num; i++)
modes[i].flags &= ~DGA_PIXMAP_AVAILABLE;
#endif

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.41 2003/08/24 17:36:52 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.42 2004/01/27 01:31:44 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
@ -236,7 +236,7 @@ Bool xf86VidModeAllowNonLocal = FALSE;
Bool xf86MiscModInDevDisabled = FALSE;
Bool xf86MiscModInDevAllowNonLocal = FALSE;
#endif
PropertyPtr *xf86RegisteredPropertiesTable = NULL;
RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
Bool xf86inSuspend = FALSE;
#ifdef DLOPEN_HACK

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.135 2003/10/08 14:58:27 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.136 2004/01/27 01:31:45 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
@ -2888,11 +2888,12 @@ int
xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
int format, unsigned long len, pointer value )
{
PropertyPtr pNewProp, pRegProp;
RootWinPropPtr pNewProp = NULL, pRegProp;
int i;
Bool existing = FALSE;
#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
ErrorF("xf86RegisterRootWindowProperty(%d, %ld, %ld, %d, %ld, %p)\n",
ScrnIndex, property, type, format, len, value);
#endif
@ -2900,19 +2901,35 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
return(BadMatch);
}
if ( (pNewProp = (PropertyPtr)xalloc(sizeof(PropertyRec)))==NULL ) {
return(BadAlloc);
if (xf86RegisteredPropertiesTable &&
xf86RegisteredPropertiesTable[ScrnIndex]) {
for (pNewProp = xf86RegisteredPropertiesTable[ScrnIndex];
pNewProp; pNewProp = pNewProp->next) {
if (strcmp(pNewProp->name, NameForAtom(property)) == 0)
break;
}
}
pNewProp->propertyName = property;
if (!pNewProp) {
if ((pNewProp = (RootWinPropPtr)xalloc(sizeof(RootWinProp))) == NULL) {
return(BadAlloc);
}
/*
* We will put this property at the end of the list so that
* the changes are made in the order they were requested.
*/
pNewProp->next = NULL;
} else {
if (pNewProp->name)
xfree(pNewProp->name);
existing = TRUE;
}
pNewProp->name = xnfstrdup(NameForAtom(property));
pNewProp->type = type;
pNewProp->format = format;
pNewProp->size = len;
pNewProp->data = value;
/* We will put this property at the end of the list so that
* the changes are made in the order they were requested.
*/
pNewProp->next = NULL;
#ifdef DEBUG
ErrorF("new property filled\n");
@ -2923,7 +2940,7 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
ErrorF("creating xf86RegisteredPropertiesTable[] size %d\n",
xf86NumScreens);
#endif
if ( NULL==(xf86RegisteredPropertiesTable=(PropertyPtr*)xnfcalloc(sizeof(PropertyPtr),xf86NumScreens) )) {
if ( NULL==(xf86RegisteredPropertiesTable=(RootWinPropPtr*)xnfcalloc(sizeof(RootWinProp),xf86NumScreens) )) {
return(BadAlloc);
}
for (i=0; i<xf86NumScreens; i++) {
@ -2933,22 +2950,24 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
#ifdef DEBUG
ErrorF("xf86RegisteredPropertiesTable %p\n",
xf86RegisteredPropertiesTable);
(void *)xf86RegisteredPropertiesTable);
ErrorF("xf86RegisteredPropertiesTable[%d] %p\n",
ScrnIndex, xf86RegisteredPropertiesTable[ScrnIndex]);
ScrnIndex, (void *)xf86RegisteredPropertiesTable[ScrnIndex]);
#endif
if ( xf86RegisteredPropertiesTable[ScrnIndex] == NULL) {
xf86RegisteredPropertiesTable[ScrnIndex] = pNewProp;
} else {
pRegProp = xf86RegisteredPropertiesTable[ScrnIndex];
while (pRegProp->next != NULL) {
if (!existing) {
if ( xf86RegisteredPropertiesTable[ScrnIndex] == NULL) {
xf86RegisteredPropertiesTable[ScrnIndex] = pNewProp;
} else {
pRegProp = xf86RegisteredPropertiesTable[ScrnIndex];
while (pRegProp->next != NULL) {
#ifdef DEBUG
ErrorF("- next %p\n", pRegProp);
ErrorF("- next %p\n", (void *)pRegProp);
#endif
pRegProp = pRegProp->next;
pRegProp = pRegProp->next;
}
pRegProp->next = pNewProp;
}
pRegProp->next = pNewProp;
}
#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty succeeded\n");

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.211 2003/11/01 00:47:01 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.212 2004/01/27 01:31:45 dawes Exp $ */
/*
* Loosely based on code bearing the following copyright:
@ -155,7 +155,7 @@ xf86CreateRootWindow(WindowPtr pWin)
int ret = TRUE;
int err = Success;
ScreenPtr pScreen = pWin->drawable.pScreen;
PropertyPtr pRegProp, pOldRegProp;
RootWinPropPtr pProp;
CreateWindowProcPtr CreateWindow =
(CreateWindowProcPtr)(pScreen->devPrivates[xf86CreateRootWindowIndex].ptr);
@ -181,25 +181,19 @@ xf86CreateRootWindow(WindowPtr pWin)
}
/* Now do our stuff */
if (xf86RegisteredPropertiesTable != NULL) {
if (pWin->parent == NULL && xf86RegisteredPropertiesTable != NULL) {
for (pRegProp = xf86RegisteredPropertiesTable[pScreen->myNum];
pRegProp != NULL && err==Success;
pRegProp = pRegProp->next )
for (pProp = xf86RegisteredPropertiesTable[pScreen->myNum];
pProp != NULL && err==Success;
pProp = pProp->next )
{
Atom oldNameAtom = pRegProp->propertyName;
char *nameString;
/* propertyName was created before the screen existed,
* so the atom does not belong to any screen;
* we need to create a new atom with the same name.
*/
nameString = NameForAtom(oldNameAtom);
pRegProp->propertyName = MakeAtom(nameString, strlen(nameString), TRUE);
Atom prop;
prop = MakeAtom(pProp->name, strlen(pProp->name), TRUE);
err = ChangeWindowProperty(pWin,
pRegProp->propertyName, pRegProp->type,
pRegProp->format, PropModeReplace,
pRegProp->size, pRegProp->data,
prop, pProp->type,
pProp->format, PropModeReplace,
pProp->size, pProp->data,
FALSE
);
}
@ -207,14 +201,6 @@ xf86CreateRootWindow(WindowPtr pWin)
/* Look at err */
ret &= (err==Success);
/* free memory */
pOldRegProp = xf86RegisteredPropertiesTable[pScreen->myNum];
while (pOldRegProp!=NULL) {
pRegProp = pOldRegProp->next;
xfree(pOldRegProp);
pOldRegProp = pRegProp;
}
xf86RegisteredPropertiesTable[pScreen->myNum] = NULL;
} else {
xf86Msg(X_ERROR, "xf86CreateRootWindow unexpectedly called with "
"non-root window %p (parent %p)\n",
@ -303,7 +289,6 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
xf86ScreenIndex = AllocateScreenPrivateIndex();
xf86CreateRootWindowIndex = AllocateScreenPrivateIndex();
xf86PixmapIndex = AllocatePixmapPrivateIndex();
xf86RegisteredPropertiesTable=NULL;
generation = serverGeneration;
}
@ -749,6 +734,32 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
}
formatsDone = TRUE;
if (xf86Info.vtno >= 0 ) {
#define VT_ATOM_NAME "XFree86_VT"
Atom VTAtom=-1;
CARD32 *VT = NULL;
int ret;
/* This memory needs to stay available until the screen has been
initialized, and we can create the property for real.
*/
if ( (VT = xalloc(sizeof(CARD32)))==NULL ) {
FatalError("Unable to make VT property - out of memory. Exiting...\n");
}
*VT = xf86Info.vtno;
VTAtom = MakeAtom(VT_ATOM_NAME, sizeof(VT_ATOM_NAME), TRUE);
for (i = 0, ret = Success; i < xf86NumScreens && ret == Success; i++) {
ret = xf86RegisterRootWindowProperty(xf86Screens[i]->scrnIndex,
VTAtom, XA_INTEGER, 32,
1, VT );
if (ret != Success)
xf86DrvMsg(xf86Screens[i]->scrnIndex, X_WARNING,
"Failed to register VT property\n");
}
}
/* If a screen uses depth 24, show what the pixmap format is */
for (i = 0; i < xf86NumScreens; i++) {
if (xf86Screens[i]->depth == 24) {
@ -1710,7 +1721,7 @@ xf86PrintBanner()
"Select the \"xorg\" product for bugs you find in this release.\n"
"Before reporting bugs in pre-release versions please check the\n"
"latest version in the X.org Foundation \"monolithic tree\" CVS\n"
"repository hosted at http://www.freedesktop.org/Software/xorg/"
"repository hosted at http://www.freedesktop.org/Software/xorg/");
#endif
#if XF86_VERSION_SNAP > 0
ErrorF(".%d", XF86_VERSION_SNAP);

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.1.4.3 2004/02/25 21:46:46 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.69 2003/10/08 14:58:28 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
@ -1683,7 +1683,7 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
#ifdef RANDR
if (!xf86Info.disableRandR
#ifdef XINERAMA
&& noXineramaExtension
&& noPanoramiXExtension
#endif
)
validateAllDefaultModes = TRUE;

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.82 2003/09/09 03:20:36 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.83 2004/01/27 01:31:45 dawes Exp $ */
/*
* Copyright (c) 1997-2002 by The XFree86 Project, Inc.
@ -113,6 +113,8 @@ extern int xf86LogVerbose; /* log file verbosity level */
extern Bool xf86ProbeOnly;
extern Bool xf86DoProbe;
extern RootWinPropPtr *xf86RegisteredPropertiesTable;
#ifndef DEFAULT_VERBOSE
#define DEFAULT_VERBOSE 0
#endif

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h,v 1.40 2003/10/17 20:02:12 alanh Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h,v 1.41 2004/01/27 01:31:45 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
@ -198,6 +198,16 @@ typedef struct {
} VidModeRec, *VidModePtr;
#endif
/* Information for root window properties. */
typedef struct _RootWinProp {
struct _RootWinProp * next;
char * name;
Atom type;
short format;
long size;
pointer data;
} RootWinProp, *RootWinPropPtr;
/* private resource types */
#define ResNoAvoid ResBios

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86RandR.c,v 1.1.4.3 2004/02/25 21:46:46 kaleb Exp $ */
/*
* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86RandR.c,v 1.8 2003/11/10 16:42:13 tsi Exp $
*
@ -246,7 +246,7 @@ xf86RandRInit (ScreenPtr pScreen)
#ifdef XINERAMA
/* XXX disable RandR when using Xinerama */
if (!noXineramaExtension)
if (!noPanoramiXExtension)
return TRUE;
#endif
if (xf86RandRGeneration != serverGeneration)

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/xf86cmap.c,v 1.1.4.2 2004/02/16 20:19:59 alanc Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86cmap.c,v 1.25 2003/10/17 20:02:12 alanh Exp $ */
/*
* Copyright (c) 1998-2001 by The XFree86 Project, Inc.

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/Xext/extmod/modinit.h,v 1.1.4.2 2004/02/25 21:46:34 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/Xext/extmod/modinit.h,v 1.2 2003/09/13 21:33:04 dawes Exp $ */
#ifndef INITARGS
@ -137,7 +137,7 @@ extern void XpExtensionInit(INITARGS);
#endif
#if 1
extern void XineramaExtensionInit(int argc, char *argv[]);
extern void PanoramiXExtensionInit(int argc, char *argv[]);
#endif
#if 1

View File

@ -987,23 +987,28 @@ earlier in this document.
The `X-TrueType' backend is a backend based on version 1 of the FreeType
library. X-TrueType doesn't use the `fontenc' layer for managing font encod-
ings, but instead uses its own database of encodings. Since the functionali-
ties for CJKV support introduced by X-TT have been merged into the new
FreeType backend, the X-TT backend will be removed from XFree86's tree near
the future. Therefore, the use of FreeType backend is preferred over the X-
TT backend. General information on X-TrueType may be found at ."
ings, but instead uses its own database of encodings.
Since the functionalities for CJKV support introduced by X-TT have been
merged into the new FreeType backend, the X-TT backend will be removed from
XFree86's tree near the future. Therefore, the use of FreeType backend is
preferred over the X-TT backend.
General information on X-TrueType may be found at the After X-TT Project page
<URL:http://x-tt.sourceforge.jp/>.
4.2.3 Delayed glyph rasterisation
When loading a large character set, the old FreeType delayed glyph rasterisa-
tion until the time at which the glyph was first used. The new FreeType
(libfreetype-xtt2) has an improved `very lazy' metric calculation method to
speed up the process when loading TrueType or OpenType fonts. Although the
X-TT module also has this method, the "vl=y" TTCap option must be set if you
want to use it. This is the default method for FreeType when it loads multi-
byte fonts. Even if you use a unicode font which has tens of thousands of
glyphs, this delay will not be worrisome as long as you use the new FreeType
backend -- its `very lazy' method is super-fast.
When loading a proportional fonts which contain a huge number of glyphs, the
old FreeType delayed glyph rasterisation until the time at which the glyph
was first used. The new FreeType (libfreetype-xtt2) has an improved `very
lazy' metric calculation method to speed up the process when loading TrueType
or OpenType fonts. Although the X-TT module also has this method, the
"vl=y" TTCap option must be set if you want to use it. This is the default
method for FreeType when it loads multi-byte fonts. Even if you use a uni-
code font which has tens of thousands of glyphs, this delay will not be wor-
risome as long as you use the new FreeType backend -- its `very lazy' method
is super-fast.
The maximum error of bitmap position using `very lazy' method is 1 pixel, and
is the same as that of a character-cell spacing. When the X-TT backend is
@ -1176,7 +1181,7 @@ The IANA RFC documents, available from a number of sites throughout the
world, often provide interesting information about character set issues; see
for example RFC 373.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.23 dawes Exp $
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.24 dawes Exp $
$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.27 2003/11/24 01:57:56 dawes Exp $
$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.28 2003/12/20 19:47:28 dawes Exp $

View File

@ -1,4 +1,259 @@
XFree86 4.3.99.903 (xx December 2003)
XFree86 4.3.99.904 (xx February 2004)
XFree86 4.3.99.903 (15 February 2004)
805. Resync the pci.ids data with pciids.sf.net (2004-02-15 snapshot).
804. Improve X server performance on OS/2 when using TCP transport:
- Let the server set TCP_NODELAY, et al.
- Change the behavior of os2PseudoSelect() on sockets.
(Bugzilla #1175, Frank Giessler).
803. X server on OS/2 doesn't respect AutoRepeat on/off unless XKB is disabled
(Bugzilla #1174, Frank Giessler).
802. Licence update.
801. Optimise SlowBcopy() for ia64 architecture (Marc La France).
800. Simplify vgaHWSaveFonts() and vgaHWRestoreFonts() to fix hangs seen with
certain nVidia boards on ZX1-based systems (Marc La France).
799. Some more font path checks.
798. Don't define X_LOCALE on Panther (Etsushi Kato and Toshimitsu Tanaka).
797. Fix GL_VERSION string for indirect rendering (Bugzilla #1147, DRI Project)
796. Fix the 1024x576 modes in the via driver (Bugzilla #812, Luc Verhaegen,
reported by Julian Cable).
795. Add uz_UZ locale (Bugzilla #1151, Mashrab Kuvatov).
794. Fix font alias overrun.
793. Fix for the way the FreeType backend sets the
_ADOBE_POSTSCRIPT_FONTNAME property for Type1 fonts (Bugzilla #1123,
David Dawes, based on Roland Mainz, reported by David Capshaw).
792. Fix formatting of the XLookupString bytes that xev prints out (Bugzilla
#1153, Noah Levitt).
791. Likely fix for FreeBSD 5.2 libGL build problem (David Dawes, reported by
Terry R. Friedrichsen).
790. Fix typo in bsd_mouse.c (Tyler Retzlaff).
789. Fix off-by-one errors in the emulation of an ix86's BT, BTS, BTR and BTC
instructions (Marc La France).
788. Fixing segfaults that may happen in some corner cases on VT switch
and int10 initialization (Egbert Eich).
787. Increase PCI I/O space size on Linux/PowerPC (Bugzilla #1143,
Paul Mackerras).
786. Fix DRI cleanup at exit and re-enabling on reset for the via driver
(Bugzilla #998, Thomas Hellström).
785. Fix Xv error propagation to the client for the via driver (Bugzilla #998,
Thomas Hellström).
784. Fix a problem when utilizing DrawArrays when indirect rendering
(Bugzilla #1142, DRI Project).
783. Xterm followup fix for Bugzilla #981 (Thomas Dickey).
782. Fix EXT version of vertex arrays (DRI Project).
781. Fix long-standing off-by-one bug in calculating dimensions of single
(private) back cliprect when the window is partially offscreen in
libdri.a (Keith Whitwell)
780. Don't do the MGAISBUSY() loop in MGAStormSync() for Mystique cards
because this reportedly results in an infinite loop (Bugzila #85,
David Dawes, reported by Phil ??? and Stéphane VOLTZ).
779. Make sure the r128 driver enables the hsync and vsync signals after
programming a video mode (Bugzilla #935, Kevin Martin).
778. Fix Multitexture problems with vertex arrays and indirect rendering
(Bugzilla #1092, DRI Project).
777. Fix SecondaryColor & FogColor when indirect rendering (Bugzilla #1091,
DRI Project).
776. Fix build failures on Mac OS X 10.1.x (Torrey T. Lyons).
775. Fix a timing problem in the nsc driver that prevents the display from
working in some cases (Bugzilla #840, Hansruedi Glauser, Alan Hourihane).
774. Via driver workaround to handle setting WC for the video memory when
initially only part of it has WC set (Bugzilla #1010 Thomas Hellström).
773. Fix the XAA clipping flags for the via driver, which fixes a line
drawing problem seen with OpenOffice Calc (Bugzilla #1026,
Thomas Hellström).
772. HKSCS and GB18030 support for luit (Bugzilla #1048, Zarick Lau).
771. Fix some remaining memory allocation related problems with the via
driver (Bugzilla #998, Thomas Hellström).
770. Add a UseRpath build switch to allow the use of -rpath to be enabled
or disabled from the host.def file. Implemented for *BSD, Hurd, Linux.
The default settings remains as before (David Dawes).
769. Add a root window property called XFree86_VT that holds the VT number
that the XFree86 server is running on (Andrew Aitcheson, suggested by
Samuel Thibault).
768. Fix a problem where root window properties registered with
xf86RegisterRootWindowProperty() are not re-registered after server
regeneration (David Dawes, reported by Samuel Thibault).
767. Fix xtest failures for the savage driver's zero width lines by
removing the TwoPointLine and using only the Bresenham version
(reported by Nicolas Joly).
766. Fix refresh rate setting for 845G/856G systems that don't support the
Intel-specific refresh rate BIOS calls (Bugzilla #1106, David Dawes,
reported by Lucian Precup).
765. Fixes/build updates for BSD/OS 5.1 and 4.3.1 (Bugzilla #1111, Kurt Lidl).
764. Fix a problem in libXmu's FindChildren() that can cause a crash by
copying memory from outside the bounds of an array (Bugzilla #1109,
John Tillman).
763. Add missing TimerCallback in trident_video.c to shutdown the video.
This could account for many peoples lockups with video on Trident chips.
Also, add a Wait for vsync when programming video modes to avoid lockups.
(Yukun Chen, Alan Hourihane).
762. Fix a lockup problem on Trident Blade3D engines by permanently turning
on PCI Retry. Also sync the engine on CloseScreen and LeaveVT.
(Yukun Chen, Alan Hourihane).
761. Fix getaddrinfo() return value check in SmsGenerateClientID() that was
causing a crash when the current hostname is unresolved, and returning
a NULL id otherwise (Bugzilla #1096, David Dawes).
760. Support automatic configuration of the X server on OpenBSD with
wsmouse-supported mices. (Matthieu Herrb).
759. Updates for XKB keyboard maps:
- Add Tibetan/Dzongkha keyboard layout (Bugzilla #1082, Gregory Mokhin).
- Add three new Internet/multimedia keyboard descriptions
(Bugzilla #1088, Radics Laszlo).
758. Add overlooked SecondaryColor entries to AppleDRI indirect dispatch
table (Torrey T. Lyons).
757. Allocate pBIOSInfo->UserSetting in the via driver, which fixes a crash
(James Harris).
756. Fix Linux drm kernel modules to handle the nopage() prototype change in
Linux 2.6.1 (Michel Dänzer, from DRI CVS).
755. Fix use of dynamic xcursors on OS/2 (Bugzilla #1087, Frank Giessler).
754. Fix the fbdev driver so that it allows 24-bit pixel size, and disable
the RandR extension when rotation is enabled (Jonathan Thambidurai).
753. Rendition driver fixes:
- Fix the mode size limits so that the set of modes that the driver
accepts isn't unnecessarily restricted.
- Fix color palette refreshing after VT switching.
- Fix a core dump at server exit with the hardware cursor was enabled.
- Add checking for supported depths. Without this the server could
crash if an unsupported depth was specified.
(Eric Wittry)
752. Update XKB registry file rules/xfree86.xml (Sergey Oudaltsov).
751. Fix some rules in en_US.UTF-8 Compose file (Bugzilla #1071,
Matthew Fischer).
750. Add some content (supported hardware and driver options) to the tdfx(4)
man page (Bugzilla #1068, Nicolas Joly).
749. Make '-pn' (partial network) the default for all X servers, and document
the '-nopn' option (David Dawes).
748. Allow rstartd.real to be installed into a location other than LIBDIR
(#6034, Luke Mewburn).
747. Allow xdm's chooser to be installed into a directory other than LIBDIR
(#6033, Luke Mewburn).
746. Add XKB description for the Logitech Access keyboard (#6026,
Michael Geddes).
745. Fix typo in computing xterm's relative font size (Jess Thrysoee).
744. Fix typo in savage man page (Bugzilla #1065, Nicolas Joly).
743. Fix for xf86Msg() call with swapped arguments (Bugzilla #1064,
Nicolas Joly).
742. Set the dependencies correctly for SCO shared libraries, and use gcc
for linking instead of ld (Bugzilla #1045, Kean Johnston).
741. Some cleanups for the SCO support, and a few changes required for
compilation on UnixWare (Bugzilla #1045, Kean Johnston).
740. Make the X server lock file code treat the display string in the same
way as the local listener code (i.e., convert it to an integer then back
to a string). This fixes a problem where an non-numeric display
argument could cause a second server to be started on display :0,
replacing the local listener nodes for the original server.
(Bugzilla #1056, David Dawes, reported by Robin Schoonover).
739. Fix xfs and xdm core dumps in BecomeOrphan(), and rework/simplify
the BecomeDaemon() code (Bugzilla #1060, #1074, David Dawes,
reported by Martin Birgmeier).
738. Add a "VBERestore" option for the i830 part of the i810 driver, to
allow the VBE restore bug workaround to be disabled. This is needed
for correct text mode restoration on some 830M-based machines
(David Dawes, reported by Martin van Es).
737. Fix memory leak when list of registered renderers are cleared at the
start of each new server generation (Kevin Martin and Rik Faith).
736. Fix memory double freeing at XIM destroying in imLcIm.c (Ivan Pascal,
reported: Bugzilla #1015).
735. Add xkb keymap for Microsoft Mutimedia Keyboard keys (Bugzilla #1052,
Jacques Legare).
734. Update Compose file for en_US.UTF-8 locale (Bugzilla #1053,
Matthew Fischer) and fix wrong comment signs there (Ivan Pascal).
733. VIA driver fixes:
- Restructure the via driver's cache allocation to work with both
the VIA and new open DRI module, and remove the now unneeded
version check (Thomas Hellström, Alan Cox, bugzilla #998).
- Remove special case lindvd hack (Alan Cox)
- Add support for Xv when unaccelerated (Thomas Hellström)
(Bugzilla #998, #1020, #1021).
732. Check for a NULL argument in XSetICFocus() before dereferencing it.
This fixes crashes with some XIM software (see
http://bugzilla.mozilla.gr.jp/show_bug.cgi?id=2961#c19).
731. Improve the i810 bitblt bug workaround, and re-enable the pixmap cache
at depth 24 (David Dawes).
730. Workaround for lockup at mode switch with an i810 (David Dawes).
729. Fix transparent mono 8x8 pattern fills for the i810 (David Dawes).
728. Disable XKB by default in XDarwin (Torrey T. Lyons).
727. Fix manpage build warnings on Panther (Matthieu Herrb).
726. Make sure that the ring buffer is flushed in I810CloseScreen(). This
fixes unpredictable behaviour that sometimes shows up after server
exit/restart or server reset, including memory corruption, spontaneous
reboots, etc, and some odd xtest behaviour (David Dawes).
725. Xdmcp fixes for IPv6 and mixed IPv6/IPv4 operation. (Mario Klebsch,
Matthieu Herrb).
724. Update rman by merging XFree86 changes to rman 3.2 (Thomas Dickey).
723. Create fonts.scale and fonts.dir files in the target directories at
'make install' time. This fixes several problems where some font
entries get left out (David Dawes).
722. Add the Bitstream Vera fonts (Bitstream, Inc and The Gnome Project).
721. Xterm patches #183, #184 (Thomas Dickey).
720. Build fix for the Chips driver on Linux/arm (#6011, Michel Dänzer and
Othmar Pasteka).
719. Change v4l "norm" names to the bttv versions (#5993,
Marco Antonio Alvarez).
718. Fix for symbols/hr map (#5991, Vlatko Kosturjak).
717. The current VIA DRI driver isn't remotely compatible with the current
code, so make sure it isn't loaded by requiring version 2.0.0 or later
(Alan Cox).
716. Fix VIA KM400 memory detection (Luc Verhaegen, Bugzilla #813).
715. Fix a long standing VIA Xv problem with totem/xine and YUV surface
types (Uberto Barbini).
714. VIA driver updates/fixes:
- Remove HARDWARE_NEEDS_PROGRAMMED_ORIGIN (Bugzilla #1011).
- Allocate the UserSetting structure and use it. Changed the names so
its uses can be tracked through the tree (Bugzilla #1006, #1014).
- Remove dead FIFO handling code.
- Clean up formatting in via_bios.h, via_driver.h.
- via_tuner module (1/2 of Bugzilla #1012, #1013):
+ Add via_tuner structures and methods.
+ Handle the back end work for boards with Philips SAA71xx
devices on the I2C bus providing one or two TV overlays.
+ Handle CXA2104S audio decoder if present.
+ Handle FI1236 TV tuners if present.
- Remove bogus DriverVersion, DriverName stuff.
- Xv updates (Bugzilla #1013):
+ Remove DDR mode tables and compute supported overlay modes properly.
+ Remove various bits of dead code.
+ Probe for Tuners in the Xv setup.
+ Don't advertise XvImageMask on the tuner overlays - they can't do it.
+ Clean up tuner channel computation.
+ Make the property setting code use the via_tuner backend.
+ Fix formatting of the various YUV copying loops.
(Alan Cox).
713. Add a missing code for jisx0208.1990-0.enc (Chisato Yamauchi).
712. Xtt2 update: Restore the behaviour of "bw" TTCap option for Netscape 4.x.
(Chisato Yamauchi).
711. Fix neomagic driver default mode selection to match the detected
panel size. This allows it to work correctly with automatic
configuration (David Dawes).
710. Fixes and updates for XKB keyboard maps:
- Fix Armenian phonetic keymap (Bugzilla #1016, Ani).
- Fix rules for Brasilian ABNT2 keyboard (Ricardo Y. Igarashi).
- Add Shift+CapsLock group switcher (Ivan Pascal, see Bugzilla #1025).
- Update rules/xfree86.lst with missing descriptions (Ivan Pascal).
709. Build fix for Solaris Express (Bugzilla #1032, Alan Coopersmith).
708. Fix warning in lib/Xt/Alloc.c (Bugzilla #1035, Nicolas Joly).
707. Fix short overflow problem with box clipping in fb/fbcopy.c
(Bugzilla #978, Stephen McCamant).
706. Fix logic in xterm's get_pty() for platforms where old-style pty's are
preferred to /dev/ptmx (Bugzilla #997, Kean Johnston, Thomas Dickey).
705. Fix handling of eightBitInput for UTF-8 locales in xterm (Thomas Dickey).
704. Merge recent cygwin-related changes from freedesktop.org's config/cf
(Thomas Dickey).
703. Disable Xv in the via driver when acceleration is disabled (Alan Cox).
702. Fix bugs caused by empty PCI buses on ZX1-based systems (Marc La France).
701. Fix optional save/restore of BIOS area data in int10 module
(Marc La France).
700. Update Swedish localization of XDarwin GUI (Patrik Montgomery).
699. Fixes to build/run on cygwin (Thomas Dickey). This includes a workaround
for _XtInherit by Ralf Habacker, needed to run applications such as xman.
698. Warning fixes for gcc 3.3.2 (Marc La France).
697. Fix file descriptor leaks in xdm (Marc La France).
696. Fix memory leaks in libFS (Marc La France).
695. Security fix: change xdm to use mkstemp(), where available, instead of
mktemp() (Marc La France).
694. Update XKB registry file rules/xfree86.xml (Sergey Oudaltsov).
693. Fix for FreeType-related crash when attempting to draw a missing glyph
with constant-width fonts (Chisato Yamauchi).
XFree86 4.3.99.902 (18 December 2003)
672. Fixes for xterm (Thomas Dickey):
@ -18391,7 +18646,7 @@ XFree86 3.0a (28 April 1994)
XFree86 3.0 (26 April 1994)
$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.3043 2003/12/19 04:52:08 dawes Exp $
$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.3145 2004/02/16 01:01:45 dawes Exp $

View File

@ -25,9 +25,9 @@
<article>
<title>XFree86 X server ``New Design'' (DRAFT)
<title>XFree86 server 4.x Design (DRAFT)
<author>The XFree86 Project, Inc
<date>Last modified 2003 January 22
<date>19 December 2003
@ -36,7 +36,7 @@
<ident>
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.53 2003/08/23 14:10:14 dawes Exp $
$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.54 2003/12/19 20:38:57 dawes Exp $
</ident>

View File

@ -1,5 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/GL/dri/dri.c,v 1.39 2003/11/10 18:21:41 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/dri/dri.c,v 1.39 2003/11/10 18:21:41 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/GL/dri/dri.c,v 1.40 2004/01/30 14:31:58 alanh Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@ -68,7 +67,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "mipointer.h"
#if defined(XFree86LOADER) && !defined(XINERAMA)
extern Bool noXineramaExtension;
extern Bool noPanoramiXExtension;
#endif
static int DRIScreenPrivIndex = -1;
@ -133,13 +132,13 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfoPtr pDRIInfo, int *pDRMFD)
#if defined(XINERAMA) && !defined(XFree86LOADER)
xineramaInCore = TRUE;
#elif defined(XFree86LOADER)
if (xf86LoaderCheckSymbol("noXineramaExtension"))
if (xf86LoaderCheckSymbol("noPanoramiXExtension"))
xineramaInCore = TRUE;
#endif
#if defined(XINERAMA) || defined(XFree86LOADER)
if (xineramaInCore) {
if (!noXineramaExtension) {
if (!noPanoramiXExtension) {
DRIDrvMsg(pScreen->myNum, X_WARNING,
"Direct rendering is not supported when Xinerama is enabled\n");
return FALSE;
@ -1192,8 +1191,8 @@ DRIGetDrawableInfo(ScreenPtr pScreen,
if (x0 < 0) x0 = 0;
if (y0 < 0) y0 = 0;
if (x1 > pScreen->width-1) x1 = pScreen->width-1;
if (y1 > pScreen->height-1) y1 = pScreen->height-1;
if (x1 > pScreen->width) x1 = pScreen->width;
if (y1 > pScreen->height) y1 = pScreen->height;
pDRIPriv->private_buffer_rect.x1 = x0;
pDRIPriv->private_buffer_rect.y1 = y0;

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/helper_exec.c,v 1.26 2003/11/06 18:38:12 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/helper_exec.c,v 1.27 2003/12/23 22:32:38 tsi Exp $ */
/*
* XFree86 int10 module
* execute BIOS int 10h calls in x86 real mode environment
@ -56,7 +56,7 @@ setup_int(xf86Int10InfoPtr pInt)
X86_GS = 0;
X86_EFLAGS = X86_IF_MASK | X86_IOPL_MASK;
#if defined (_PC)
if (pInt->flags & SET_BIOS_SCRATCH)
if (pInt->Flags & SET_BIOS_SCRATCH)
SetResetBIOSVars(pInt, TRUE);
#endif
return xf86BlockSIGIO();
@ -76,7 +76,7 @@ finish_int(xf86Int10InfoPtr pInt, int sig)
pInt->bp = (CARD32) X86_EBP;
pInt->flags = (CARD32) X86_FLAGS;
#if defined (_PC)
if (pInt->flags & RESTORE_BIOS_SCRATCH)
if (pInt->Flags & RESTORE_BIOS_SCRATCH)
SetResetBIOSVars(pInt, FALSE);
#endif
}

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/coffloader.c,v 1.21 2003/10/15 17:40:15 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/coffloader.c,v 1.22 2003/12/22 17:48:11 tsi Exp $ */
/*
*
@ -133,7 +133,9 @@ static COFFCommonPtr COFFAddCOMMON(SYMENT *, int);
static LOOKUP *COFFCreateCOMMON(COFFModulePtr);
static COFFRelocPtr COFFDelayRelocation(COFFModulePtr, int, RELOC *);
static SYMENT *COFFGetSymbol(COFFModulePtr, int);
#if defined(i386) || defined(__powerpc__)
static unsigned char *COFFGetSymbolValue(COFFModulePtr, int);
#endif
static COFFRelocPtr COFF_RelocateEntry(COFFModulePtr, int, RELOC *);
static LOOKUP *COFF_GetSymbols(COFFModulePtr);
static void COFFCollectSections(COFFModulePtr);
@ -298,6 +300,7 @@ COFFGetSymbol(COFFModulePtr file, int index)
return (SYMENT *) (((unsigned char *)file->symtab) + (index * SYMESZ));
}
#if defined(i386) || defined(__powerpc__)
static unsigned char *
COFFGetSymbolValue(COFFModulePtr cofffile, int index)
{
@ -323,6 +326,7 @@ COFFGetSymbolValue(COFFModulePtr cofffile, int index)
xf86loaderfree(symname);
return symval;
}
#endif
#if defined(__powerpc__)
/*

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/loader/extsym.c,v 1.1.4.3 2004/02/25 21:46:53 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/extsym.c,v 1.9 2003/10/15 16:29:03 dawes Exp $ */
/*
@ -29,7 +29,7 @@
#include "sym.h"
#include "misc.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "panoramiX.h"
#endif
#include "sleepuntil.h"
@ -40,10 +40,10 @@ extern RESTYPE ShmSegType, ShmPixType;
#endif
#ifdef XINERAMA
extern Bool noXineramaExtension;
extern int XineramaNumScreens;
extern XineramaData *xineramaDataPtr;
extern XID *XineramaVisualTable;
extern Bool noPanoramiXExtension;
extern int PanoramiXNumScreens;
extern PanoramiXData *panoramiXdataPtr;
extern XID *PanoramiXVisualTable;
extern unsigned long XRT_WINDOW;
extern unsigned long XRT_PIXMAP;
extern unsigned long XRT_GC;
@ -66,10 +66,10 @@ LOOKUP extLookupTab[] = {
#ifdef XINERAMA
SYMFUNC(XineramaRegisterConnectionBlockCallback)
SYMFUNC(XineramaDeleteResource)
SYMVAR(noXineramaExtension)
SYMVAR(XineramaNumScreens)
SYMVAR(xineramaDataPtr)
SYMVAR(XineramaVisualTable)
SYMVAR(noPanoramiXExtension)
SYMVAR(PanoramiXNumScreens)
SYMVAR(panoramiXdataPtr)
SYMVAR(PanoramiXVisualTable)
SYMVAR(XRT_WINDOW)
SYMVAR(XRT_PIXMAP)
SYMVAR(XRT_GC)

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/fontsym.c,v 1.13 2003/10/15 16:29:04 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/fontsym.c,v 1.14 2003/12/20 20:04:34 dawes Exp $ */
/*
* Copyright (c) 1998-2002 by The XFree86 Project, Inc.
*
@ -37,8 +37,10 @@
#include "fntfil.h"
#include "fontutil.h"
#include "fontxlfd.h"
#ifdef FONTCACHE
#define _FONTCACHE_SERVER_
#include "fontcache.h"
#endif
LOOKUP fontLookupTab[] = {
@ -89,6 +91,7 @@ LOOKUP fontLookupTab[] = {
SYMFUNC(identifyEncodingFile)
#endif
#ifdef FONTCACHE
/* fontcache.c */
SYMFUNC(FontCacheGetSettings)
SYMFUNC(FontCacheGetStatistics)
@ -99,6 +102,7 @@ LOOKUP fontLookupTab[] = {
SYMFUNC(FontCacheGetEntry)
SYMFUNC(FontCacheInsertEntry)
SYMFUNC(FontCacheGetBitmap)
#endif
{0, 0}
};

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c,v 1.5 2003/04/03 16:50:04 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c,v 1.6 2003/12/30 15:18:30 herrb Exp $ */
/*
* Copyright 1992 by Rich Murphey <Rich@Rice.edu>
* Copyright 1993 by David Wexelblat <dwex@goblin.org>
@ -121,7 +121,7 @@ static struct alpha_bus_window *abw;
static int abw_count = -1;
static void
init_abw()
init_abw(void)
{
if (abw_count < 0) {
abw_count = alpha_bus_getwindows(ALPHA_BUS_TYPE_PCI_MEM, &abw);
@ -142,7 +142,7 @@ has_bwx(void)
}
static unsigned long
dense_base()
dense_base(void)
{
if (abw_count < 0)
init_abw();
@ -154,7 +154,7 @@ dense_base()
}
static unsigned long
memory_base()
memory_base(void)
{
if (abw_count < 0)
init_abw();
@ -284,11 +284,13 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
xf86Msg(X_PROBED,"Machine needs sparse mapping\n");
pVidMem->mapMem = mapVidMemSparse;
pVidMem->unmapMem = unmapVidMemSparse;
#ifndef __NetBSD__
if (axpSystem == -1)
axpSystem = bsdGetAXP();
hae_thresh = xf86AXPParams[axpSystem].hae_thresh;
hae_mask = xf86AXPParams[axpSystem].hae_mask;
sparse_size = xf86AXPParams[axpSystem].size;
#endif /* __NetBSD__ */
}
pVidMem->initialised = TRUE;
}
@ -314,7 +316,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
MAP_FLAGS, devMemFd, (off_t)Base + BUS_BASE_BWX);
if (base == MAP_FAILED)
{
FatalError("%s: could not mmap %s [s=%x,a=%x] (%s)\n",
FatalError("%s: could not mmap %s [s=%lx,a=%lx] (%s)\n",
"xf86MapVidMem", DEV_MEM, Size, Base,
strerror(errno));
}
@ -324,7 +326,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
/* else, mmap /dev/vga */
if ((unsigned long)Base < 0xA0000 || (unsigned long)Base >= 0xC0000)
{
FatalError("%s: Address 0x%x outside allowable range\n",
FatalError("%s: Address 0x%lx outside allowable range\n",
"xf86MapVidMem", Base);
}
base = mmap(0, Size,
@ -372,7 +374,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
if ((long)ptr == -1)
{
xf86Msg(X_WARNING,
"xf86ReadBIOS: %s mmap[s=%x,a=%x,o=%x] failed (%s)\n",
"xf86ReadBIOS: %s mmap[s=%x,a=%lx,o=%lx] failed (%s)\n",
DEV_MEM, Len, Base, Offset, strerror(errno));
return(-1);
}
@ -446,7 +448,9 @@ xf86EnableInterrupts()
#define vuip volatile unsigned int *
#ifndef __NetBSD__
static unsigned long msb_set = 0;
#endif
static pointer memSBase = 0;
static pointer memBase = 0;
@ -490,6 +494,7 @@ struct parms {
u_int64_t hae;
};
#ifndef __NetBSD__
static int
sethae(u_int64_t hae)
{
@ -505,6 +510,7 @@ sethae(u_int64_t hae)
return -1;
#endif
}
#endif /* __NetBSD__ */
static pointer
mapVidMemSparse(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
@ -552,11 +558,13 @@ static int
readSparse8(pointer Base, register unsigned long Offset)
{
register unsigned long result, shift;
#ifndef __NetBSD__
register unsigned long msb;
#endif
mem_barrier();
Offset += (unsigned long)Base - (unsigned long)memBase;
shift = (Offset & 0x3) << 3;
#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@ -565,7 +573,7 @@ readSparse8(pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
#endif
result = *(vuip) ((unsigned long)memSBase + (Offset << 5));
result >>= shift;
return 0xffUL & result;
@ -575,11 +583,14 @@ static int
readSparse16(pointer Base, register unsigned long Offset)
{
register unsigned long result, shift;
#ifndef __NetBSD__
register unsigned long msb;
#endif
mem_barrier();
Offset += (unsigned long)Base - (unsigned long)memBase;
shift = (Offset & 0x2) << 3;
#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@ -588,6 +599,7 @@ readSparse16(pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
#endif
result = *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2)));
result >>= shift;
return 0xffffUL & result;
@ -603,11 +615,14 @@ readSparse32(pointer Base, register unsigned long Offset)
static void
writeSparse8(int Value, pointer Base, register unsigned long Offset)
{
#ifndef __NetBSD__
register unsigned long msb;
#endif
register unsigned int b = Value & 0xffU;
write_mem_barrier();
Offset += (unsigned long)Base - (unsigned long)memBase;
#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@ -616,17 +631,21 @@ writeSparse8(int Value, pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
#endif
*(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
}
static void
writeSparse16(int Value, pointer Base, register unsigned long Offset)
{
#ifndef __NetBSD__
register unsigned long msb;
#endif
register unsigned int w = Value & 0xffffU;
write_mem_barrier();
Offset += (unsigned long)Base - (unsigned long)memBase;
#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@ -635,6 +654,7 @@ writeSparse16(int Value, pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
#endif
*(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
w * 0x00010001;
@ -651,10 +671,13 @@ writeSparse32(int Value, pointer Base, register unsigned long Offset)
static void
writeSparseNB8(int Value, pointer Base, register unsigned long Offset)
{
#ifndef __NetBSD__
register unsigned long msb;
#endif
register unsigned int b = Value & 0xffU;
Offset += (unsigned long)Base - (unsigned long)memBase;
#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@ -663,16 +686,20 @@ writeSparseNB8(int Value, pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
#endif
*(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
}
static void
writeSparseNB16(int Value, pointer Base, register unsigned long Offset)
{
#ifndef __NetBSD__
register unsigned long msb;
#endif
register unsigned int w = Value & 0xffffU;
Offset += (unsigned long)Base - (unsigned long)memBase;
#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask ;
Offset -= msb;
@ -681,6 +708,7 @@ writeSparseNB16(int Value, pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
#endif
*(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
w * 0x00010001;
}

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.c,v 1.8 2003/11/04 03:16:58 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.c,v 1.9 2004/01/07 17:05:28 tsi Exp $ */
/*
* Copyright (c) 2002 by The XFree86 Project, Inc.
@ -497,7 +497,7 @@ OpenKeyboard(InputInfoPtr pInfo)
#endif
default:
xf86Msg(X_ERROR, "%s: Unsupported wskbd type \"%d\"",
pKbd->wsKbdType, pInfo->name);
pInfo->name, pKbd->wsKbdType);
close(pInfo->fd);
return FALSE;
}

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c,v 1.26 2003/10/10 20:56:05 herrb Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c,v 1.28 2004/02/06 17:15:36 tsi Exp $ */
/*
* Copyright (c) 1999-2003 by The XFree86 Project, Inc.
@ -80,6 +80,16 @@ static const char *mouseDevs[] = {
DEFAULT_PS2_DEV,
NULL
};
#elif defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
/* Only wsmouse mices are autoconfigured for now on OpenBSD */
#define DEFAULT_WSMOUSE_DEV "/dev/wsmouse"
#define DEFAULT_WSMOUSE0_DEV "/dev/wsmouse0"
static const char *mouseDevs[] = {
DEFAULT_WSMOUSE_DEV,
DEFAULT_WSMOUSE0_DEV,
NULL
};
#endif
static int
@ -141,6 +151,8 @@ DefaultProtocol(void)
{
#if defined(__FreeBSD__)
return "Auto";
#elif defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
return "WSMouse";
#else
return NULL;
#endif
@ -195,7 +207,7 @@ SetupAuto(InputInfoPtr pInfo, int *protoPara)
protoPara[0] = mode.syncmask[0];
protoPara[1] = mode.syncmask[1];
}
xf86MsgVerb(X_INFO, 3, "%s: SetupAuto: protocol is %s\n",
xf86MsgVerb(X_INFO, 3, "%s: SetupAuto: protocol is %s\n",
pInfo->name, devproto[i].name);
return devproto[i].name;
}
@ -325,7 +337,50 @@ FindDevice(InputInfoPtr pInfo, const char *protocol, int flags)
}
#endif
#if defined(WSCONS_SUPPORT)
#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
/* Only support wsmouse configuration for now */
static const char *
SetupAuto(InputInfoPtr pInfo, int *protoPara)
{
xf86MsgVerb(X_INFO, 3, "%s: SetupAuto: protocol is %s\n",
pInfo->name, "wsmouse");
return "wsmouse";
}
static void
SetMouseRes(InputInfoPtr pInfo, const char *protocol, int rate, int res)
{
xf86MsgVerb(X_INFO, 3, "%s: SetMouseRes: protocol %s rate %d res %d\n",
pInfo->name, protocol, rate, res);
}
static const char *
FindDevice(InputInfoPtr pInfo, const char *protocol, int flags)
{
int fd = -1;
const char **pdev;
for (pdev = mouseDevs; *pdev; pdev++) {
SYSCALL(fd = open(*pdev, O_RDWR | O_NONBLOCK));
if (fd != -1) {
/* Set the Device option. */
pInfo->conf_idev->commonOptions =
xf86AddNewOption(pInfo->conf_idev->commonOptions,
"Device", *pdev);
xf86Msg(X_INFO, "%s: found Device \"%s\"\n",
pInfo->name, *pdev);
close(fd);
break;
}
}
return *pdev;
}
#endif /* __OpenBSD__ && WSCONS_SUPPORT */
#ifdef WSCONS_SUPPORT
#define NUMEVENTS 64
static void
@ -718,7 +773,11 @@ xf86OSMouseInit(int flags)
p->SetBMRes = SetSysMouseRes;
p->SetMiscRes = SetSysMouseRes;
#endif
#if defined(__FreeBSD__)
#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
p->SetupAuto = SetupAuto;
p->SetMiscRes = SetMouseRes;
#endif
#if defined(__FreeBSD__) || defined(__OpenBSD__)
p->FindDevice = FindDevice;
#endif
p->PreInit = bsdMousePreInit;

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c,v 1.81 2003/09/24 02:43:34 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c,v 1.82 2004/01/16 15:39:04 tsi Exp $ */
/*
* Pci.c - New server PCI access functions
*
@ -1016,7 +1016,9 @@ xf86scanpci(int flags)
if (!(devp->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN))
break;
pciWriteByte(tag, PCI_PCI_BRIDGE_CONTROL_REG,
devp->pci_bridge_control & ~PCI_PCI_BRIDGE_MASTER_ABORT_EN);
devp->pci_bridge_control &
~(PCI_PCI_BRIDGE_MASTER_ABORT_EN |
PCI_PCI_BRIDGE_SECONDARY_RESET));
break;
default:
@ -1079,7 +1081,7 @@ xf86scanpci(int flags)
if (!(devp->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN))
break;
pciWriteByte(devp->tag, PCI_PCI_BRIDGE_CONTROL_REG,
devp->pci_bridge_control);
devp->pci_bridge_control & ~PCI_PCI_BRIDGE_SECONDARY_RESET);
break;
default:

View File

@ -1,5 +1,4 @@
/* $XdotOrg$ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.44 2003/11/07 23:57:47 dawes Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.45 2004/02/02 03:55:31 dawes Exp $ */
/*
* Copyright 1998 by Concurrent Computer Corporation
*
@ -262,7 +261,7 @@
# define INCLUDE_XF86_NO_DOMAIN
# endif
# define XF86SCANPCI_WRAPPER ia64ScanPCIWrapper
#elif defined(__i386__) || defined(__i386)
#elif defined(__i386__) || defined(i386)
# define ARCH_PCI_INIT ix86PciInit
# define INCLUDE_XF86_MAP_PCI_MEM
# define INCLUDE_XF86_NO_DOMAIN

View File

@ -1,5 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c,v 1.6 2003/12/11 17:11:39 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c,v 1.6 2003/12/11 17:11:39 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c,v 1.8 2004/01/16 15:39:38 tsi Exp $ */
/*
* Copyright (C) 2002-2003 The XFree86 Project, Inc. All Rights Reserved.
*
@ -98,9 +97,10 @@
#define LBA_PORT5_CNTRL 0x1228U
#define LBA_PORT6_CNTRL 0x1230U
#define LBA_PORT7_CNTRL 0x1238U
#define LBA_ROPE_RESET 0x01UL
#define LBA_CLEAR_ERROR 0x10UL
#define LBA_HARD_FAIL 0x40UL
#define LBA_RESET_FUNCTION 0x0000000001UL
#define LBA_CLEAR_ERROR 0x0000000010UL
#define LBA_HARD_FAIL 0x0000000040UL
#define LBA_RESET_COMPLETE 0x0100000000UL
#define ROPE_PAGE_CONTROL 0x1418U
@ -118,8 +118,11 @@
#define IOA_SUBORDINATE_BUS 0x0059U
#define IOA_CONTROL 0x0108U
#define IOA_FORWARD_VGA 0x08UL
#define IOA_HARD_FAIL 0x40UL
#define IOA_RESET_FUNCTION 0x0000000001UL
#define IOA_FORWARD_VGA 0x0000000008UL
#define IOA_CLEAR_ERROR 0x0000000010UL
#define IOA_HARD_FAIL 0x0000000040UL
#define IOA_RESET_COMPLETE 0x0100000000UL
#define IOA_LMMIO_BASE 0x0200U
#define IOA_LMMIO_MASK 0x0208U
@ -135,12 +138,33 @@
#define IOA_ELMMIO_MASK 0x0258U
#define IOA_EIOS_BASE 0x0260U
#define IOA_EIOS_MASK 0x0268U
#define IOA_GLOBAL_MASK 0x0270U
#define IOA_SLAVE_CONTROL 0x0278U
#define IOA_VGA_PEER_ENABLE 0x2000UL
#define IOA_MSI_BASE 0x0280U
#define IOA_MSI_MASK 0x0288U
#define IOA_DMA_BASE 0x02B0U
#define IOA_DMA_MASK 0x02B8U
#define IOA_ERROR_CONFIG 0x0680U
#define IOA_ERROR_PIOWRITE 0x0001UL
#define IOA_ERROR_PIOREAD 0x0002UL
#define IOA_ERROR_DMAWRITE 0x0004UL
#define IOA_ERROR_DMAREAD 0x0008UL
#define IOA_ERROR_CONFIG_MASTER 0x0010UL
#define IOA_ERROR_SMART 0x0020UL
#define IOA_ERROR_FATAL_SERR 0x0040UL
#define IOA_ERROR_ASSERT_SERR 0x0080UL
/* ? 0x0100UL */
#define IOA_ERROR_LOOPBACK 0x0200UL
#define IOA_ERROR_CONFIG_TARGET 0x0400UL
#define IOA_ERROR_IO_MASTER 0x0800UL
#define IOA_ERROR_IO_TARGET 0x1000UL
#define IOA_ERROR_MEM_MASTER 0x2000UL
#define IOA_ERROR_MEM_TARGET 0x4000UL
#define IOA_ERROR_HF_IO_FATAL 0x8000UL
#define RANGE_ENABLE 0x01UL /* In various base registers */
#define IO_MASK ((1UL << 16) - 1UL)
@ -157,10 +181,15 @@
static CARD8 *pZX1mio = NULL,
*pZX1ioa = NULL;
static INT8 zx1_ropemap[8]; /* One for each (potential) rope */
static CARD64 zx1_lbacntl[8]; /* " " " " " */
/* Per-rope data */
static INT8 zx1_ropemap[8];
static CARD32 zx1_pciids[8];
static CARD64 zx1_lbacntl[8];
static int zx1_busno[8], zx1_subno[8];
/* Array of Booleans for non-empty buses */
static INT8 zx1_busnmpt[MAX_PCI_BUSES];
static pciBusFuncs_t zx1BusFuncs;
static int zx1_fakebus = -1;
static Bool zx1_hasvga = FALSE;
@ -293,7 +322,8 @@ ControlZX1Bridge(int bus, CARD16 mask, CARD16 value)
* SLAVE_CONTROL register.
*/
tmp1 = MIO_QUAD(VGA_ROUTE);
tmp2 = IOA_QUAD(ropenum, IOA_CONTROL);
tmp2 = IOA_QUAD(ropenum, IOA_CONTROL) &
~(IOA_RESET_FUNCTION | IOA_CLEAR_ERROR);
if ((tmp1 & VGA_ENABLE) && ((tmp1 & 0x07UL) == ropenum)) {
current |= PCI_PCI_BRIDGE_VGA_EN;
if ((mask & PCI_PCI_BRIDGE_VGA_EN) &&
@ -316,8 +346,9 @@ ControlZX1Bridge(int bus, CARD16 mask, CARD16 value)
MIO_QUAD(VGA_ROUTE) = 0UL;
tmp3 = IOA_QUAD(tmp1 & 0x07UL, IOA_CONTROL);
if (tmp3 & IOA_FORWARD_VGA)
IOA_QUAD(tmp1 & 0x07UL, IOA_CONTROL) =
tmp3 & ~IOA_FORWARD_VGA;
IOA_QUAD(tmp1 & 0x07UL, IOA_CONTROL) = tmp3 &
~(IOA_RESET_FUNCTION | IOA_FORWARD_VGA |
IOA_CLEAR_ERROR);
}
if (!(tmp2 & IOA_FORWARD_VGA)) {
tmp2 |= IOA_FORWARD_VGA;
@ -330,7 +361,7 @@ ControlZX1Bridge(int bus, CARD16 mask, CARD16 value)
/* Move on to master abort failure enablement */
tmp1 = MIO_QUAD((ropenum << 3) + LBA_PORT0_CNTRL) &
~(LBA_ROPE_RESET | LBA_CLEAR_ERROR);
~(LBA_RESET_FUNCTION | LBA_CLEAR_ERROR);
if ((tmp1 & LBA_HARD_FAIL) || (tmp2 & IOA_HARD_FAIL)) {
current |= PCI_PCI_BRIDGE_MASTER_ABORT_EN;
if ((mask & PCI_PCI_BRIDGE_MASTER_ABORT_EN) &&
@ -521,14 +552,14 @@ xf86PreScanZX1(void)
/* Prevent hard-fails */
zx1_lbacntl[i] = MIO_QUAD((i << 3) + LBA_PORT0_CNTRL) &
~(LBA_ROPE_RESET | LBA_CLEAR_ERROR);
~(LBA_RESET_FUNCTION | LBA_CLEAR_ERROR);
if (zx1_lbacntl[i] & LBA_HARD_FAIL)
MIO_QUAD((i << 3) + LBA_PORT0_CNTRL) =
zx1_lbacntl[i] & ~LBA_HARD_FAIL;
/* Poke for an ioa */
tmp = IOA_LONG(i, PCI_ID_REG);
switch ((CARD32)tmp) {
zx1_pciids[i] = IOA_LONG(i, PCI_ID_REG);
switch (zx1_pciids[i]) {
case DEVID(VENDOR_HP, CHIP_ELROY):
case DEVID(VENDOR_HP, CHIP_ZX1_LBA): /* Mercury */
case DEVID(VENDOR_HP, CHIP_ZX1_AGP8): /* QuickSilver */
@ -540,10 +571,10 @@ xf86PreScanZX1(void)
break;
default:
if ((CARD16)(tmp + 1U) > (CARD16)1U)
if ((CARD16)(zx1_pciids[i] + 1U) > (CARD16)1U)
xf86MsgVerb(X_NOTICE, 0,
"HP ZX1: Unexpected vendor/device id 0x%08X"
" on rope %d\n", (CARD32)tmp, i);
" on rope %d\n", zx1_pciids[i], i);
/* Nobody home, or not the "right" kind of rope guest */
/*
@ -907,6 +938,9 @@ xf86PostScanZX1(void)
if (!pZX1mio)
return;
(void)memset(zx1_busnmpt, FALSE, sizeof(zx1_busnmpt));
pBusInfo = pciBusInfo[0];
/*
* Certain 2.4 & 2.5 Linux kernels add fake PCI devices. Remove them to
* prevent any possible interference with our PCI validation.
@ -930,6 +964,8 @@ xf86PostScanZX1(void)
*ppPCI++ = pPCI;
idx++;
zx1_busnmpt[pPCI->busnum] = TRUE;
if (zx1_hasvga)
continue;
@ -954,8 +990,8 @@ xf86PostScanZX1(void)
}
/*
* Restore hard-fail settings and figure out the actual subordinate bus
* numbers.
* Restore hard-fail settings and figure out the actual secondary and
* subordinate bus numbers.
*/
for (i = 0; i < 8; i++) {
if (zx1_ropemap[i] != i)
@ -969,6 +1005,14 @@ xf86PostScanZX1(void)
if (zx1_fakebus <= zx1_subno[i])
zx1_fakebus = zx1_subno[i] + 1;
while (!zx1_busnmpt[zx1_busno[i]]) {
if (zx1_busno[i]) /* Info for bus zero is in static storage */
xfree(pciBusInfo[zx1_busno[i]]);
pciBusInfo[zx1_busno[i]++] = NULL;
if (zx1_busno[i] > zx1_subno[i])
break;
}
}
if (zx1_fakebus >= pciNumBuses) {
@ -978,13 +1022,13 @@ xf86PostScanZX1(void)
}
/* Set up our extra bus functions */
zx1BusFuncs = *(pciBusInfo[0]->funcs);
zx1BusFuncs = *(pBusInfo->funcs);
zx1BusFuncs.pciControlBridge = ControlZX1Bridge;
zx1BusFuncs.pciGetBridgeResources = GetZX1BridgeResources;
/* Set up our own fake bus to act as the root segment */
zx1FakeBus.configMech = pciBusInfo[0]->configMech;
zx1FakeBus.numDevices = pciBusInfo[0]->numDevices;
zx1FakeBus.configMech = pBusInfo->configMech;
zx1FakeBus.numDevices = pBusInfo->numDevices;
zx1FakeBus.primary_bus = zx1_fakebus;
pciBusInfo[zx1_fakebus] = &zx1FakeBus;
@ -1019,7 +1063,8 @@ xf86PostScanZX1(void)
/* Add a fake PCI-to-PCI bridge to represent each active rope */
for (i = 0; i < 8; i++) {
if ((zx1_ropemap[i] != i) || !(pBusInfo = pciBusInfo[zx1_busno[i]]))
if ((zx1_ropemap[i] != i) || (zx1_busno[i] > zx1_subno[i]) ||
!(pBusInfo = pciBusInfo[zx1_busno[i]]))
continue;
if (++idx >= MAX_PCI_DEVICES)
@ -1029,7 +1074,7 @@ xf86PostScanZX1(void)
pPCI->devnum = i | 0x10;
/* pPCI->funcnum = 0; */
pPCI->tag = PCI_MAKE_TAG(zx1_fakebus, pPCI->devnum, 0);
pPCI->pci_device_vendor = DEVID(VENDOR_HP, CHIP_ZX1_LBA);
pPCI->pci_device_vendor = zx1_pciids[i];
pPCI->pci_base_class = PCI_CLASS_BRIDGE;
pPCI->pci_sub_class = PCI_SUBCLASS_BRIDGE_PCI;
pPCI->pci_header_type = 1;
@ -1045,6 +1090,9 @@ xf86PostScanZX1(void)
/* Plug in chipset routines */
pBusInfo->funcs = &zx1BusFuncs;
/* Set bridge control register for scanpci utility */
pPCI->pci_bridge_control = ControlZX1Bridge(zx1_busno[i], 0, 0);
#ifdef OLD_FORMAT
xf86MsgVerb(X_INFO, 2, "PCI: BusID 0x%.2x,0x%02x,0x%1x "
"ID 0x%04x,0x%04x Rev 0x%02x Class 0x%02x,0x%02x\n",

View File

@ -1,5 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.31 2003/09/24 02:43:35 dawes Exp $ */
/* $XdotOrg$ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.32 2004/02/05 18:24:59 eich Exp $ */
/*
* linux specific part of the int10 module
* Copyright 1999, 2000, 2001, 2002, 2003, 2004 Egbert Eich

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.18 2002/01/25 21:56:19 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.19 2004/02/04 16:30:50 tsi Exp $ */
/* Resource information code */
@ -190,7 +190,8 @@ xf86AccResFromOS(resPtr ret)
defined(__s390__) || \
defined(__hppa__)
/* XXX this isn't exactly correct but it will get the server working
/*
* XXX this isn't exactly correct but it will get the server working
* for now until we get something better.
*/
@ -203,7 +204,7 @@ xf86BusAccWindowsFromOS(void)
RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
ret = xf86AddResToList(ret, &range, -1);
#ifdef __sparc__
#if defined(__sparc__) || defined(__powerpc__)
RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
#else
RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
@ -221,7 +222,7 @@ xf86PciBusAccWindowsFromOS(void)
RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
ret = xf86AddResToList(ret, &range, -1);
#ifdef __sparc__
#if defined(__sparc__) || defined(__powerpc__)
RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
#else
RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
@ -230,7 +231,7 @@ xf86PciBusAccWindowsFromOS(void)
return ret;
}
#ifdef INCLUDE_UNUSED */
#ifdef INCLUDE_UNUSED
resPtr
xf86IsaBusAccWindowsFromOS(void)
@ -241,7 +242,7 @@ xf86IsaBusAccWindowsFromOS(void)
RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
ret = xf86AddResToList(ret, &range, -1);
#ifdef __sparc__
#if defined(__sparc__) || defined(__powerpc__)
RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
#else
RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
@ -267,7 +268,7 @@ xf86AccResFromOS(resPtr ret)
ret = xf86AddResToList(ret, &range, -1);
RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock);
ret = xf86AddResToList(ret, &range, -1);
#ifdef __sparc__
#if defined(__sparc__) || defined(__powerpc__)
RANGE(range, 0x00ffffff, 0x00ffffff, ResExcIoBlock);
#else
RANGE(range, 0x0000ffff, 0x0000ffff, ResExcIoBlock);

View File

@ -0,0 +1,57 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/misc/PortIO.S,v 1.1 2004/02/02 03:55:32 dawes Exp $ */
/* Port I/O functions for platforms with no inlining. */
#include "assyntax.h"
FILE("PortIO.s")
AS_BEGIN
GLOBL GLNAME(outb)
GLOBL GLNAME(outw)
GLOBL GLNAME(outl)
GLOBL GLNAME(inb)
GLOBL GLNAME(inw)
GLOBL GLNAME(inl)
SEG_TEXT
ALIGNTEXT4
GLNAME(outb):
MOV_L (REGOFF(4,ESP), EDX)
MOV_L (REGOFF(8,ESP), EAX)
OUT_B
RET
ALIGNTEXT4
GLNAME(outw):
MOV_L (REGOFF(4,ESP), EDX)
MOV_L (REGOFF(8,ESP), EAX)
OUT_W
RET
ALIGNTEXT4
GLNAME(outl):
MOV_L (REGOFF(4,ESP), EDX)
MOV_L (REGOFF(8,ESP), EAX)
OUT_L
RET
ALIGNTEXT4
GLNAME(inb):
MOV_L (REGOFF(4,ESP), EDX)
IN_B
RET
ALIGNTEXT4
GLNAME(inw):
MOV_L (REGOFF(4,ESP), EDX)
IN_L
RET
ALIGNTEXT4
GLNAME(inl):
MOV_L (REGOFF(4,ESP), EDX)
IN_L
RET

View File

@ -4,7 +4,7 @@
for Alpha Linux
*******************************************************************************/
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/misc/SlowBcopy.c,v 1.6 2003/04/07 16:23:39 eich Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/misc/SlowBcopy.c,v 1.7 2004/02/11 22:06:21 tsi Exp $ */
/*
* Create a dependency that should be immune from the effect of register
@ -26,13 +26,13 @@
void
xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
{
#if defined(__ia64__)
outb(0x80, 0x00);
#endif
while(len--)
{
*dst++ = *src++;
#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__)
#if !defined(__sparc__) && \
!defined(__powerpc__) && \
!defined(__mips__) && \
!defined(__ia64__)
outb(0x80, 0x00);
#endif
}

View File

@ -7,7 +7,7 @@
# so if you have anything to contribute, please visit the home page or
# send a diff -u against the most recent pci.ids to pci-ids@ucw.cz.
#
# Daily snapshot on Thu 2003-12-18 11:00:05
# Daily snapshot on Sun 2004-02-15 11:00:07
#
# Vendors, devices and subsystems. Please keep sorted.
@ -24,6 +24,12 @@
# Real TJN ID is e159, but they got it wrong several times --mj
0059 Tiger Jet Network Inc. (Wrong ID)
0070 Hauppauge computer works Inc.
# WinTV Personal Video Recorder 350 (video capture card)
4000 WinTV PVR-350
# WinTV Personal Video Recorder 250 (video capture card) - original release
4001 WinTV PVR-250 (v1)
# WinTV Personal Video Recorder 250 (video capture card)
4009 WinTV PVR-250
0100 Ncipher Corp Ltd
0675 Dynalink
1700 IS64PH ISDN Adapter
@ -168,11 +174,36 @@
1002 ATI Technologies Inc
4136 Radeon IGP 320 M
4144 Radeon R300 AD [Radeon 9500 Pro]
4145 Radeon R300 AE [Radeon 9500 Pro]
4146 Radeon R300 AF [Radeon 9500 Pro]
# New PCI ID provided by ATI developer relations (correction to above)
4145 R300 AE [Radeon 9700 Pro]
# New PCI ID provided by ATI developer relations (oops, correction to above)
4146 R300 AF [Radeon 9700 Pro]
4147 Radeon R300 AG [FireGL Z1/X1]
# Updated 2 letter ASIC code I initially missed in above entry submission
4148 Radeon R350 AH [Radeon 9800]
# New PCI ID provided by ATI developer relations
4149 Radeon R350 AI [Radeon 9800]
# New PCI ID provided by ATI developer relations
4150 RV350 AP [Radeon 9600]
# New PCI ID provided by ATI developer relations
4151 RV350 AQ [Radeon 9600]
# New PCI ID provided by ATI developer relations
4152 RV350 AR [Radeon 9600]
4158 68800AX [Mach32]
4164 Radeon R300 Secondary (DVI) output
# The PCI ID is unrelated to any DVI output.
4164 R300 AD [Radeon 9500 Pro] (Secondary)
# New PCI ID info provided by ATI developer relations
4165 R300 AE [Radeon 9700 Pro] (Secondary)
# New PCI ID info provided by ATI developer relations
4166 R300 AF [Radeon 9700 Pro] (Secondary)
# New PCI ID provided by ATI developer relations
4168 Radeon R350 [Radeon 9800] (Secondary)
# New PCI ID provided by ATI developer relations (correction to above)
4170 RV350 AP [Radeon 9600] (Secondary)
# New PCI ID provided by ATI developer relations (correction to above)
4171 RV350 AQ [Radeon 9600] (Secondary)
# New PCI ID provided by ATI developer relations (correction to above)
4172 RV350 AR [Radeon 9600] (Secondary)
4242 Radeon R200 BB [Radeon All in Wonder 8500DV]
1002 02aa Radeon 8500 AIW DV Edition
4336 Radeon Mobility U1
@ -246,20 +277,20 @@
475a 3D Rage IIC AGP
1002 0087 Rage 3D IIC
1002 475a Rage IIC AGP
4964 Radeon R250 Id [Radeon 9000]
4965 Radeon R250 Ie [Radeon 9000]
4966 Radeon R250 If [Radeon 9000]
10f1 0002 R250 If [Tachyon G9000 PRO]
148c 2039 R250 If [Radeon 9000 Pro "Evil Commando"]
1509 9a00 R250 If [Radeon 9000 "AT009"]
# New subdevice - 3D Prophet 9000 PCI by Hercules. AGP version probably would have same ID, so not specified.
1681 0040 R250 If [3D prophet 9000]
174b 7176 R250 If [Sapphire Radeon 9000 Pro]
174b 7192 R250 If [Radeon 9000 "Atlantis"]
17af 2005 R250 If [Excalibur Radeon 9000 Pro]
17af 2006 R250 If [Excalibur Radeon 9000]
4967 Radeon R250 Ig [Radeon 9000]
496e Radeon R250 [Radeon 9000] (Secondary)
4964 Radeon RV250 Id [Radeon 9000]
4965 Radeon RV250 Ie [Radeon 9000]
4966 Radeon RV250 If [Radeon 9000]
10f1 0002 RV250 If [Tachyon G9000 PRO]
148c 2039 RV250 If [Radeon 9000 Pro "Evil Commando"]
1509 9a00 RV250 If [Radeon 9000 "AT009"]
# New subdevice - 3D Prophet 9000 PCI by Hercules. AGP version probably would have same ID, so not specified.
1681 0040 RV250 If [3D prophet 9000]
174b 7176 RV250 If [Sapphire Radeon 9000 Pro]
174b 7192 RV250 If [Radeon 9000 "Atlantis"]
17af 2005 RV250 If [Excalibur Radeon 9000 Pro]
17af 2006 RV250 If [Excalibur Radeon 9000]
4967 Radeon RV250 Ig [Radeon 9000]
496e Radeon RV250 [Radeon 9000] (Secondary)
4c42 3D Rage LT Pro AGP-133
0e11 b0e8 Rage 3D LT Pro
0e11 b10e 3D Rage LT Pro (Compaq Armada 1750)
@ -312,15 +343,25 @@
4e44 Radeon R300 ND [Radeon 9700 Pro]
4e45 Radeon R300 NE [Radeon 9500 Pro]
1002 0002 Radeon R300 NE [Radeon 9500 Pro]
4e46 Radeon R300 NF [Radeon 9700]
# New PCI ID provided by ATI developer relations (correction to above)
4e46 RV350 NF [Radeon 9600]
4e47 Radeon R300 NG [FireGL X1]
4e48 Radeon R350 [Radeon 9800]
# New PCI ID provided by ATI developer relations
4e49 Radeon R350 [Radeon 9800]
# New PCI ID provided by ATI developer relations
4e50 RV350 [Mobility Radeon 9600 M10]
# New PCI ID provided by ATI developer relations
4e52 RV350 [Mobility Radeon 9600 M10]
4e64 Radeon R300 [Radeon 9700 Pro] (Secondary)
4e65 Radeon R300 [Radeon 9500 Pro] (Secondary)
1002 0003 Radeon R300 NE [Radeon 9500 Pro]
4e66 Radeon R300 [Radeon 9700] (Secondary)
# New PCI ID provided by ATI developer relations (correction to above)
4e66 RV350 NF [Radeon 9600] (Secondary)
4e67 Radeon R300 [FireGL X1] (Secondary)
4e68 Radeon R350 [Radeon 9800] (Secondary)
# New PCI ID provided by ATI developer relations
4e69 Radeon R350 [Radeon 9800] (Secondary)
5041 Rage 128 PA/PRO
5042 Rage 128 PB/PRO AGP 2x
5043 Rage 128 PC/PRO AGP 4x
@ -3413,7 +3454,8 @@
11bd 0006 DV500 Overlay
11bd 000a DV500 Overlay
1132 Mitel Corp.
1133 Eicon Technology Corporation
# This is the new official company name. See disclaimer on www.eicon.com for details!
1133 Eicon Networks Corporation
7901 EiconCard S90
7902 EiconCard S90
7911 EiconCard S91
@ -6238,9 +6280,14 @@
16be Creatix Polymedia GmbH
16ca CENATEK Inc
0001 Rocket Drive DL
16cd Densitron Technologies
# www.pikatechnologies.com
16df PIKA Technologies Inc.
16ec U.S. Robotics
3685 Wireless Access PCI Adapter Model 022415
16f6 VideoTele.com, Inc.
# www.internetmachines.com
1702 Internet Machines Corporation (IMC)
1705 Digital First, Inc.
170b NetOctave Inc
170c YottaYotta Inc.
@ -6279,6 +6326,9 @@
0601 VSM2 dual PMC carrier
0710 VS14x series PowerPC PCI board
0720 VS24x series PowerPC PCI board
# found e.g. on KNC DVB-S card
1894 KNC One
18fb Resilience Corporation
1a08 Sierra semiconductor
0000 SC15064
1b13 Jaton Corp
@ -6372,6 +6422,7 @@
4033 Addtron Technology Co, Inc.
1360 RTL8139 Ethernet
4143 Digital Equipment Corp
4144 Alpha Data
416c Aladdin Knowledge Systems
0100 AladdinCARD
0200 CPC
@ -6569,6 +6620,7 @@
0003 TURBOstor HFP-832 [HiPPI NIC]
5654 VoiceTronix Pty Ltd
5700 Netpower
5851 Exacq Technologies
6356 UltraStor
6374 c't Magazin fĂĽr Computertechnik
6773 GPPCI
@ -6587,6 +6639,10 @@
0008 Extended Express System Support Controller
0039 21145
0122 82437FX
0326 PCI Bridge Hub I/OxAPIC Interrupt Controller A
0327 PCI Bridge Hub I/OxAPIC Interrupt Controller B
0329 PCI Bridge Hub A
032a PCI Bridge Hub B
0482 82375EB
0483 82424ZX [Saturn]
0484 82378IB [SIO ISA Bridge]
@ -6639,7 +6695,18 @@
8086 1002 PRO/1000 MF Server Adapter
1012 82546EB Gigabit Ethernet Controller (Fiber)
8086 1012 PRO/1000 MF Dual Port Server Adapter
1013 82541EI Gigabit Ethernet Controller (Copper)
1014 82541ER Gigabit Ethernet Controller
1015 82540EM Gigabit Ethernet Controller (LOM)
1016 82540EP Gigabit Ethernet Controller (LOM)
1017 82540EP Gigabit Ethernet Controller (LOM)
# Update controller name from 82541EP to 82541EI
1018 82541EI Gigabit Ethernet Controller
1019 82547EI Gigabit Ethernet Controller (LOM)
101e 82540EP Gigabit Ethernet Controller (Mobile)
1026 82545GM Gigabit Ethernet Controller
1027 82545GM Gigabit Ethernet Controller
1028 82545GM Gigabit Ethernet Controller
1029 82559 Ethernet Controller
1030 82559 InBusiness 10/100
1031 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller
@ -6667,7 +6734,21 @@
1040 536EP Data Fax Modem
16be 1040 V.9X DSP Data Fax Modem
1043 PRO/Wireless LAN 2100 3B Mini PCI Adapter
1048 Intel(R) PRO/10GbE LR Server Adapter
1059 82551QM Ethernet Controller
# Updated controller name from 82547EI to 82547GI
1075 82547GI Gigabit Ethernet Controller
# Updated controller name from 82541EI to 82541GI
1076 82541GI Gigabit Ethernet Controller
# Update controller name from 82541EI to 82541GI
1077 82541GI Gigabit Ethernet Controller
1078 82541EI Gigabit Ethernet Controller
# Update from mistaken ID of 82546EB
1079 82546GB Gigabit Ethernet Controller
# Update from mistaken ID of 82546EB
107a 82546GB Gigabit Ethernet Controller
# Update from mistaken ID of 82546EB
107b 82546GB Gigabit Ethernet Controller
1130 82815 815 Chipset Host Bridge and Memory Controller Hub
1025 1016 Travelmate 612 TX
1043 8027 TUSL2-C Mainboard
@ -7069,6 +7150,7 @@
24dc 82801EB LPC Interface Controller
24dd 82801EB USB2
24de 82801EB USB
24df 82801EB (ICH5R) SATA (cc=RAID)
2500 82820 820 (Camino) Chipset Host Bridge (MCH)
1028 0095 Precision Workstation 220 Chipset
1043 801c P3C-2000 system chipset
@ -7109,12 +7191,26 @@
2571 82865G/PE/P Processor to AGP Controller
2572 82865G Integrated Graphics Device
2573 82865G/PE/P Processor to PCI to CSA Bridge
2576 82864G/PE/P Processor to I/O Memory Interface
2576 82865G/PE/P Processor to I/O Memory Interface
2578 82875P Memory Controller Hub
2579 82875P Processor to AGP Controller
257b 82875P Processor to PCI to CSA Bridge
257e 82875P Processor to I/O Memory Interface
25a1 Enterprise Southbridge ISA Bridge
25a2 Enterprise Southbridge PATA
25a3 Enterprise Southbridge SATA cc=IDE
25a4 Enterprise Southbridge SMBUS
25a6 Enterprise Southbridge AC'97 Audio
25a7 Enterprise Southbridge AC'97 Modem
25a9 Enterprise Southbridge USB 1.1 UHCI
25aa Enterprise Southbridge USB 1.1 UHCI
25ab Enterprise Southbridge Watchdog Timer
25ac Enterprise Southbridge IOxAPIC
25ad Enterprise Southbridge USB 2.0 EHCI
25ae Enterprise Southbridge Hublink PCI-X Bridge
25b0 Enterprise Southbridge SATA cc=RAID
3092 Integrated RAID
3200 GD31244 PCI-X SATA HBA
3340 82855PM Processor to I/O Controller
3341 82855PM Processor to AGP Controller
3575 82830 830 Chipset Host Bridge
@ -7126,6 +7222,18 @@
3578 82830 830 Chipset Host Bridge
3580 82852/855GM Host Bridge
3582 82852/855GM Integrated Graphics Device
3590 Server Memory Controller Hub
3591 Memory Controller Hub Error Reporting Register
3592 Server Memory Controller Hub
3594 Memory Controller Hub DMA Controller
3595 Memory Controller Hub PCI Express Port A0
3596 Memory Controller Hub PCI Express Port A1
3597 Memory Controller Hub PCI Express Port B0
3598 Memory Controller Hub PCI Express Port B1
3599 Memory Controller Hub PCI Express Port C0
359a Memory Controller Hub PCI Express Port C1
359b Memory Controller Hub Extended Configuration Registers
359e Workstation Memory Controller Hub
5200 EtherExpress PRO/100 Intelligent Server
5201 EtherExpress PRO/100 Intelligent Server
8086 0001 EtherExpress PRO/100 Server Ethernet Adapter
@ -7431,12 +7539,15 @@ d84d Exsys
dead Indigita Corporation
e000 Winbond
e000 W89C940
e159 Tiger Jet Network Inc.
# see : http://www.schoenfeld.de/inside/Inside_CWMK3.txt
e159 Individual Computers - Jens Schoenfeld
0001 Intel 537
0059 0001 128k ISDN-S/T Adapter
0059 0003 128k ISDN-U Adapter
0002 Tiger100APC ISDN chipset
e4bf EKF Elektronik GmbH
# Innovative and scalable network IC vendor
e55e Essence Technology, Inc.
ea01 Eagle Technology
# The main chip of all these devices is by Xilinx -> It could also be a Xilinx ID.
ea60 RME
@ -7481,6 +7592,8 @@ febd Ultraview Corp.
feda Broadcom Inc (nee Epigram)
a0fa BCM4210 iLine10 HomePNA 2.0
a10e BCM4230 iLine10 HomePNA 2.0
# IT & Telecom company, develops PCI Trunk cards <www.fedetec.es>
fede Fedetec Inc.
fffe VMWare Inc
0710 Virtual SVGA
ffff Illegal Vendor ID

View File

@ -1,6 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/ioport.c,v 1.4 2003/01/01 19:16:41 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/ioport.c,v 1.5 2004/01/05 16:42:10 tsi Exp $ */
/*
* Copyright 2002 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
* Copyright 2002 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that

View File

@ -26,8 +26,7 @@
*
* Author: Paulo CĂ©sar Pereira de Andrade <pcpa@conectiva.com.br>
*
* $XdotOrg: xc/programs/Xserver/hw/xfree86/xf86cfg/config.h,v 1.18 2003/12/19 02:05:38 dawes Exp $
* $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/config.h,v 1.18 2003/12/19 02:05:38 dawes Exp $
* $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/config.h,v 1.22 2004/02/14 17:53:49 dawes Exp $
*/
#include <X11/IntrinsicP.h>
@ -38,10 +37,12 @@
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
#include <unistd.h>
#if defined(sun) && defined(SVR4)
#ifdef sun
#undef index
#undef rindex
#include <strings.h>
#endif
#include <unistd.h>
#include <stdarg.h>

View File

@ -1,5 +1,4 @@
/* $XdotOrg$ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/vbe/vbe.h,v 1.3 2003/11/14 14:58:45 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/vbe/vbe.h,v 1.5 2004/02/02 03:55:32 dawes Exp $ */
/*
* XFree86 vbe module
@ -61,7 +60,8 @@ typedef struct vbeControllerInfoBlock {
CARD8 OemData[256];
} vbeControllerInfoRec, *vbeControllerInfoPtr;
#if defined(__GNUC__) || defined(__SUNPRO_C)
#if defined(__GNUC__) || defined(SCO) || defined(__USLC__) || \
defined(__SUNPRO_C)
#pragma pack() /* All GCC versions recognise this syntax */
#else
#pragma pack(0)

View File

@ -1,4 +1,4 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c,v 1.58 2003/11/03 05:11:53 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c,v 1.59 2004/02/11 22:06:22 tsi Exp $ */
/*
*
@ -764,6 +764,11 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
#if 0
hwp->writeAttr(hwp, 0x10, 0x01); /* graphics mode */
#endif
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
if (scrninfp->depth == 4) {
/* GJA */
hwp->writeGr(hwp, 0x03, 0x00); /* don't rotate, write unmodified */
@ -774,10 +779,7 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
#ifdef SAVE_FONT1
if (hwp->FontInfo1) {
hwp->writeSeq(hwp, 0x02, 0x04); /* write to plane 2 */
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x02); /* read plane 2 */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_tobus(hwp->FontInfo1, hwp->Base, FONT_AMOUNT);
}
#endif
@ -785,10 +787,7 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
#ifdef SAVE_FONT2
if (hwp->FontInfo2) {
hwp->writeSeq(hwp, 0x02, 0x08); /* write to plane 3 */
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x03); /* read plane 3 */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_tobus(hwp->FontInfo2, hwp->Base, FONT_AMOUNT);
}
#endif
@ -796,16 +795,10 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
#ifdef SAVE_TEXT
if (hwp->TextInfo) {
hwp->writeSeq(hwp, 0x02, 0x01); /* write to plane 0 */
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x00); /* read plane 0 */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_tobus(hwp->TextInfo, hwp->Base, TEXT_AMOUNT);
hwp->writeSeq(hwp, 0x02, 0x02); /* write to plane 1 */
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x01); /* read plane 1 */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_tobus((unsigned char *)hwp->TextInfo + TEXT_AMOUNT,
hwp->Base, TEXT_AMOUNT);
}
@ -849,8 +842,7 @@ vgaHWRestoreMode(ScrnInfoPtr scrninfp, vgaRegPtr restore)
for (i = 1; i < restore->numSequencer; i++)
hwp->writeSeq(hwp, i, restore->Sequencer[i]);
/* Ensure CRTC registers 0-7 are unlocked by clearing bit 7 or CRTC[17] */
/* Ensure CRTC registers 0-7 are unlocked by clearing bit 7 of CRTC[17] */
hwp->writeCrtc(hwp, 17, restore->CRTC[17] & ~0x80);
for (i = 0; i < restore->numCRTC; i++)
@ -958,39 +950,32 @@ vgaHWSaveFonts(ScrnInfoPtr scrninfp, vgaRegPtr save)
#if 0
hwp->writeAttr(hwp, 0x10, 0x01); /* graphics mode */
#endif
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
#ifdef SAVE_FONT1
if (hwp->FontInfo1 || (hwp->FontInfo1 = xalloc(FONT_AMOUNT))) {
hwp->writeSeq(hwp, 0x02, 0x04); /* write to plane 2 */
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x02); /* read plane 2 */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_frombus(hwp->Base, hwp->FontInfo1, FONT_AMOUNT);
}
#endif /* SAVE_FONT1 */
#ifdef SAVE_FONT2
if (hwp->FontInfo2 || (hwp->FontInfo2 = xalloc(FONT_AMOUNT))) {
hwp->writeSeq(hwp, 0x02, 0x08); /* write to plane 3 */
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x03); /* read plane 3 */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_frombus(hwp->Base, hwp->FontInfo2, FONT_AMOUNT);
}
#endif /* SAVE_FONT2 */
#ifdef SAVE_TEXT
if (hwp->TextInfo || (hwp->TextInfo = xalloc(2 * TEXT_AMOUNT))) {
hwp->writeSeq(hwp, 0x02, 0x01); /* write to plane 0 */
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x00); /* read plane 0 */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_frombus(hwp->Base, hwp->TextInfo, TEXT_AMOUNT);
hwp->writeSeq(hwp, 0x02, 0x02); /* write to plane 1 */
hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x01); /* read plane 1 */
hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_frombus(hwp->Base,
(unsigned char *)hwp->TextInfo + TEXT_AMOUNT, TEXT_AMOUNT);
}
@ -1476,7 +1461,7 @@ vgaHWVBlankKGA(DisplayModePtr mode, vgaRegPtr regp, int nBits,
regp->CRTC[22] = i & 0xFF;
ExtBits = i & 0xFF00;
}
return ExtBits >> 8;
return ExtBits >> 8;
}
/*

View File

@ -37,7 +37,7 @@
* instructions.
*
****************************************************************************/
/* $XFree86: xc/extras/x86emu/src/x86emu/ops2.c,v 1.6 2003/10/22 20:03:06 tsi Exp $ */
/* $XFree86: xc/extras/x86emu/src/x86emu/ops2.c,v 1.7 2004/02/06 17:15:28 tsi Exp $ */
#include "x86emu/x86emui.h"
@ -1746,16 +1746,16 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
START_OF_INSTR();
FETCH_DECODE_MODRM(mod, rh, rl);
switch (rh) {
case 3:
case 4:
DECODE_PRINTF("BT\t");
break;
case 4:
case 5:
DECODE_PRINTF("BTS\t");
break;
case 5:
case 6:
DECODE_PRINTF("BTR\t");
break;
case 6:
case 7:
DECODE_PRINTF("BTC\t");
break;
default:
@ -1780,13 +1780,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
case 4:
case 5:
store_data_long(srcoffset, srcval | mask);
break;
case 5:
case 6:
store_data_long(srcoffset, srcval & ~mask);
break;
case 6:
case 7:
store_data_long(srcoffset, srcval ^ mask);
break;
default:
@ -1805,13 +1805,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
case 4:
case 5:
store_data_word(srcoffset, srcval | mask);
break;
case 5:
case 6:
store_data_word(srcoffset, srcval & ~mask);
break;
case 6:
case 7:
store_data_word(srcoffset, srcval ^ mask);
break;
default:
@ -1833,13 +1833,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
case 4:
case 5:
store_data_long(srcoffset, srcval | mask);
break;
case 5:
case 6:
store_data_long(srcoffset, srcval & ~mask);
break;
case 6:
case 7:
store_data_long(srcoffset, srcval ^ mask);
break;
default:
@ -1858,13 +1858,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
case 4:
case 5:
store_data_word(srcoffset, srcval | mask);
break;
case 5:
case 6:
store_data_word(srcoffset, srcval & ~mask);
break;
case 6:
case 7:
store_data_word(srcoffset, srcval ^ mask);
break;
default:
@ -1886,13 +1886,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
case 4:
case 5:
store_data_long(srcoffset, srcval | mask);
break;
case 5:
case 6:
store_data_long(srcoffset, srcval & ~mask);
break;
case 6:
case 7:
store_data_long(srcoffset, srcval ^ mask);
break;
default:
@ -1911,13 +1911,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
case 4:
case 5:
store_data_word(srcoffset, srcval | mask);
break;
case 5:
case 6:
store_data_word(srcoffset, srcval & ~mask);
break;
case 6:
case 7:
store_data_word(srcoffset, srcval ^ mask);
break;
default:
@ -1939,13 +1939,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
switch (rh) {
case 4:
case 5:
*srcreg |= mask;
break;
case 5:
case 6:
*srcreg &= ~mask;
break;
case 6:
case 7:
*srcreg ^= mask;
break;
default:
@ -1964,13 +1964,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
switch (rh) {
case 4:
case 5:
*srcreg |= mask;
break;
case 5:
case 6:
*srcreg &= ~mask;
break;
case 6:
case 7:
*srcreg ^= mask;
break;
default:

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/xaa/xaaOverlay.c,v 1.1.4.3 2004/02/25 21:46:55 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaOverlay.c,v 1.15 2003/11/10 18:22:41 tsi Exp $ */
#include "misc.h"
@ -18,8 +18,8 @@
#include "mioverlay.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
static void
@ -168,11 +168,11 @@ XAAPaintWindow8_32(
yorg = pBgWin->drawable.y;
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
int index = pScreen->myNum;
if(WindowTable[index] == pBgWin) {
xorg -= xineramaDataPtr[index].x;
yorg -= xineramaDataPtr[index].y;
xorg -= panoramiXdataPtr[index].x;
yorg -= panoramiXdataPtr[index].y;
}
}
#endif

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/xaa/xaaPaintWin.c,v 1.1.4.2 2004/02/25 21:46:56 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPaintWin.c,v 1.11 2003/02/17 16:08:29 dawes Exp $ */
#include "misc.h"
@ -17,8 +17,8 @@
#include "xaawrap.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
void
@ -93,11 +93,11 @@ XAAPaintWindow(
yorg = pBgWin->drawable.y;
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
int index = pScreen->myNum;
if(WindowTable[index] == pBgWin) {
xorg -= xineramaDataPtr[index].x;
yorg -= xineramaDataPtr[index].y;
xorg -= panoramiXdataPtr[index].x;
yorg -= panoramiXdataPtr[index].y;
}
}
#endif

View File

@ -1,5 +1,5 @@
/*
* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPict.c,v 1.18 2003/04/23 18:35:34 eich Exp $
* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPict.c,v 1.19 2004/01/26 18:54:55 mvojkovi Exp $
*
* Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
*
@ -219,6 +219,9 @@ XAADoComposite (
ySrc += pSrc->pDrawable->y;
if(pMask) {
if(pMask->componentAlpha)
return FALSE;
/* for now we only do it if there is a 1x1 (solid) source */
if((pSrc->pDrawable->width == 1) && (pSrc->pDrawable->height == 1)) {

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c,v 1.1.4.2 2004/02/25 21:46:57 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c,v 1.5 2001/10/01 13:44:15 eich Exp $ */
#include "X.h"
@ -16,8 +16,8 @@
#include "mi.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
void
@ -45,11 +45,11 @@ cfb8_32PaintWindow(
xorg = pWin->drawable.x;
yorg = pWin->drawable.y;
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
int index = pWin->drawable.pScreen->myNum;
if(WindowTable[index] == pWin) {
xorg -= xineramaDataPtr[index].x;
yorg -= xineramaDataPtr[index].y;
xorg -= panoramiXdataPtr[index].x;
yorg -= panoramiXdataPtr[index].y;
}
}
#endif
@ -93,11 +93,11 @@ cfb8_32PaintWindow(
yorg = pBgWin->drawable.y;
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
int index = pWin->drawable.pScreen->myNum;
if(WindowTable[index] == pBgWin) {
xorg -= xineramaDataPtr[index].x;
yorg -= xineramaDataPtr[index].y;
xorg -= panoramiXdataPtr[index].x;
yorg -= panoramiXdataPtr[index].y;
}
}
#endif

View File

@ -28,7 +28,7 @@
* Authors: Kensuke Matsuzaki
* Harold L Hunt II
*/
/* $XFree86: xc/programs/Xserver/hw/xwin/winmultiwindowshape.c,v 1.2 2003/11/10 18:22:44 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xwin/winmultiwindowshape.c,v 1.3 2003/12/22 01:34:20 dickey Exp $ */
#ifdef SHAPE
@ -117,9 +117,9 @@ winReshapeMultiWindow (WindowPtr pWin)
if (!wBoundingShape (pWin))
return;
REGION_NULL(pScreen, &rrNewShape);
REGION_COPY(pScreen, &rrNewShape, wBoundingShape(pWin));
REGION_TRANSLATE(pScreen,
REGION_NULL(pWin->drawable.pScreen, &rrNewShape);
REGION_COPY(pWin->drawable.pScreen, &rrNewShape, wBoundingShape(pWin));
REGION_TRANSLATE(pWin->drawable.pScreen,
&rrNewShape,
pWin->borderWidth,
pWin->borderWidth);
@ -138,7 +138,7 @@ winReshapeMultiWindow (WindowPtr pWin)
if (!GetClientRect (pWinPriv->hWnd, &rcClient))
{
ErrorF ("winReshape - GetClientRect failed, bailing: %d\n",
GetLastError ());
(int) GetLastError ());
return;
}
@ -150,7 +150,7 @@ winReshapeMultiWindow (WindowPtr pWin)
if (!GetWindowRect (pWinPriv->hWnd, &rcWindow))
{
ErrorF ("winReshape - GetWindowRect failed, bailing: %d\n",
GetLastError ());
(int) GetLastError ());
return;
}
@ -165,7 +165,7 @@ winReshapeMultiWindow (WindowPtr pWin)
{
ErrorF ("winReshape - Initial CreateRectRgn (%d, %d, %d, %d) "
"failed: %d\n",
0, 0, rcWindow.right, iOffsetY, GetLastError ());
0, 0, (int) rcWindow.right, iOffsetY, (int) GetLastError ());
}
/* Loop through all rectangles in the X region */
@ -185,7 +185,7 @@ winReshapeMultiWindow (WindowPtr pWin)
pRects->y1 + iOffsetY - 1,
pRects->x2 + iOffsetX - 1,
pRects->y2 + iOffsetY - 1,
GetLastError (),
(int) GetLastError (),
pRects->x1, pRects->x2, iOffsetX,
pRects->y1, pRects->y2, iOffsetY);
}
@ -194,7 +194,7 @@ winReshapeMultiWindow (WindowPtr pWin)
if (CombineRgn (hRgn, hRgn, hRgnRect, RGN_OR) == ERROR)
{
ErrorF ("winReshape - CombineRgn () failed: %d\n",
GetLastError ());
(int) GetLastError ());
}
/* Delete the temporary Windows region */
@ -205,7 +205,7 @@ winReshapeMultiWindow (WindowPtr pWin)
pWinPriv->hRgn = hRgn;
}
REGION_UNINIT(pScreen, &rrNewShape);
REGION_UNINIT(pWin->drawable.pScreen, &rrNewShape);
return;
}

View File

@ -28,7 +28,7 @@
* Authors: Harold L Hunt II
* Kensuke Matsuzaki
*/
/* $XFree86: xc/programs/Xserver/hw/xwin/winwindow.c,v 1.9 2003/11/10 18:22:44 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xwin/winwindow.c,v 1.10 2003/12/22 01:34:20 dickey Exp $ */
#include "win.h"
@ -98,7 +98,7 @@ winCopyWindowNativeGDI (WindowPtr pWin,
int dx, dy;
int i, nbox;
WindowPtr pwinRoot;
BoxPtr pBoxDst, pBoxSrc;
BoxPtr pBoxDst;
ScreenPtr pScreen = pWin->drawable.pScreen;
winScreenPriv(pScreen);
@ -465,9 +465,7 @@ void
winReshapePRootless (WindowPtr pWin)
{
int nRects;
#if 0
ScreenPtr pScreen = pWin->drawable.pScreen;
#endif
RegionRec rrNewShape;
BoxPtr pShape, pRects, pEnd;
HRGN hRgn, hRgnRect;

View File

@ -83,4 +83,13 @@ typedef struct _CursorMetric {
unsigned short width, height, xhot, yhot;
} CursorMetricRec;
typedef struct {
int x, y;
ScreenPtr pScreen;
} HotSpot;
#ifdef XEVIE
extern HotSpot xeviehot;
#endif
#endif /* CURSORSTRUCT_H */

View File

@ -1,4 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/include/globals.h,v 1.4 2000/06/28 18:21:22 tsi Exp $ */
/* $XdotOrg: xc/programs/Xserver/include/globals.h,v 1.1.4.2 2004/02/25 21:47:00 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/include/globals.h,v 1.4 2000/06/28 18:21:22 tsi Exp $ */
#ifndef _XSERV_GLOBAL_H_
@ -42,11 +42,11 @@ extern Bool DPMSCapableFlag;
#endif
#ifdef XINERAMA
extern Bool noXineramaExtension;
extern Bool XineramaMapped;
extern Bool XineramaVisibilityNotifySent;
extern Bool XineramaWindowExposureSent;
extern Bool XineramaOneExposeRequest;
extern Bool noPanoramiXExtension;
extern Bool PanoramiXMapped;
extern Bool PanoramiXVisibilityNotifySent;
extern Bool PanoramiXWindowExposureSent;
extern Bool PanoramiXOneExposeRequest;
#endif

View File

@ -92,6 +92,17 @@ typedef void (*ProcessInputProc)(
DeviceIntPtr /*device*/,
int /*count*/);
typedef Bool (*DeviceHandleProc)(
DeviceIntPtr /*device*/,
void* /*data*/
);
typedef void (*DeviceUnwrapProc)(
DeviceIntPtr /*device*/,
DeviceHandleProc /*proc*/,
void* /*data*/
);
typedef struct _DeviceRec {
pointer devicePrivate;
ProcessInputProc processInputProc; /* current */
@ -145,6 +156,10 @@ typedef struct {
unsigned char id;
} LedCtrl;
extern int AllocateDevicePrivateIndex(void);
extern Bool AllocateDevicePrivate(DeviceIntPtr device, int index);
extern void ResetDevicePrivateIndex(void);
extern KeybdCtrl defaultKeyboardControl;
extern PtrCtrl defaultPointerControl;

View File

@ -285,6 +285,9 @@ typedef struct _DeviceIntRec {
#ifdef XKB
struct _XkbInterest * xkb_interest;
#endif
DevUnion *devPrivates;
int nPrivates;
DeviceUnwrapProc unwrapProc;
} DeviceIntRec;
typedef struct {

View File

@ -222,4 +222,8 @@ extern ScreenSaverStuffRec savedScreenInfo[MAXSCREENS];
extern int numSaveUndersViewable;
extern int deltaSaveUndersViewable;
#ifdef XEVIE
extern WindowPtr xeviewin;
#endif
#endif /* WINDOWSTRUCT_H */

View File

@ -1,4 +1,4 @@
/* $XdotOrg: xc/programs/Xserver/mi/miarc.c,v 1.1.4.3 2003/12/20 00:28:31 kaleb Exp $ */
/* $XdotOrg: xc/programs/Xserver/mi/miarc.c,v 1.1.4.4 2004/02/16 20:19:58 alanc Exp $ */
/* $XFree86: xc/programs/Xserver/mi/miarc.c,v 3.15 2003/12/06 18:46:28 dawes Exp $ */
/***********************************************************

View File

@ -1,5 +1,5 @@
/*
* Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
* Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@ -44,7 +44,7 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $XFree86: xc/programs/Xserver/mi/mibank.c,v 1.15 2003/11/10 18:39:16 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/mi/mibank.c,v 1.16 2004/01/05 16:42:10 tsi Exp $ */
/*
* This thing originated from an idea of Edwin Goei and his bank switching

View File

@ -1,5 +1,5 @@
/*
* Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
* Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@ -20,7 +20,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $XFree86: xc/programs/Xserver/mi/mibank.h,v 1.10 2003/01/01 19:16:42 tsi Exp $ */
/* $XFree86: xc/programs/Xserver/mi/mibank.h,v 1.11 2004/01/05 16:42:10 tsi Exp $ */
#ifndef __MIBANK_H__
#define __MIBANK_H__ 1

View File

@ -1,4 +1,4 @@
/* $XdotOrg$ */
/* $XdotOrg: xc/programs/Xserver/mi/miexpose.c,v 1.1.4.4 2004/02/25 21:47:02 kaleb Exp $ */
/* $XFree86: xc/programs/Xserver/mi/miexpose.c,v 3.10 2003/11/10 18:22:49 tsi Exp $ */
/***********************************************************
@ -69,8 +69,8 @@ SOFTWARE.
#include "globals.h"
#ifdef XINERAMA
#include "xinerama.h"
#include "xineramaSrv.h"
#include "panoramiX.h"
#include "panoramiXsrv.h"
#endif
/*
@ -427,19 +427,19 @@ miSendExposures(pWin, pRgn, dx, dy)
}
#ifdef XINERAMA
if(!noXineramaExtension) {
if(!noPanoramiXExtension) {
int scrnum = pWin->drawable.pScreen->myNum;
int x = 0, y = 0;
XID realWin = 0;
if(!pWin->parent) {
x = xineramaDataPtr[scrnum].x;
y = xineramaDataPtr[scrnum].y;
x = panoramiXdataPtr[scrnum].x;
y = panoramiXdataPtr[scrnum].y;
pWin = WindowTable[0];
realWin = pWin->drawable.id;
} else if (scrnum) {
XineramaRes *win;
win = XineramaFindIDByScrnum(XRT_WINDOW,
PanoramiXRes *win;
win = PanoramiXFindIDByScrnum(XRT_WINDOW,
pWin->drawable.id, scrnum);
if(!win) {
DEALLOCATE_LOCAL(pEvent);

Some files were not shown because too many files have changed in this diff Show More