Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
aef4e153
Commit
aef4e153
authored
Jun 13, 2000
by
Lionel Ulmer
Committed by
Alexandre Julliard
Jun 13, 2000
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
OpenGL documentation.
parent
bd86d18f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
160 additions
and
0 deletions
+160
-0
opengl
documentation/opengl
+160
-0
No files found.
documentation/opengl
0 → 100644
View file @
aef4e153
I What is needed to have OpenGL support in Wine
===============================================
Basically, if you have a Linux OpenGL ABI compliant libGL
(http://oss.sgi.com/projects/ogl-sample/ABI/) installed on your
computer, you should everything that is needed.
To be more clear, I will detail one step after another what the
configure script checks.
If, after Wine compiles, OpenGL support is not compiled in, you can
always check 'config.log' to see which of the following points failed.
I.1 Header files
----------------
The needed header files to build OpenGL support in Wine are :
- gl.h : the definition of all OpenGL core functions, types and
enumerants
- glx.h : how OpenGL integrates in the X Window environment
- glext.h : the list of all registered OpenGL extensions
The latter file (glext.h) is, as of now, not necessary to build
Wine. But as this file can be easily obtained from SGI
(http://oss.sgi.com/projects/ogl-sample/ABI/glext.h), and that all
OpenGL should provide one, I decided to keep it here.
I.2 OpenGL library thread-safety
--------------------------------
After that, the script checks if the OpenGL library relies or not on
the pthread library to provide thread safety (most 'modern' OpenGL
libraries do).
If the OpenGL library explicitely links in libpthread (you can check
it with a 'ldd libGL.so'), you need to force OpenGL support by
starting configure with the '--enable-opengl' flag.
The reason to this is that Wine contains some hacks done by Ove to
cohabit with pthread that are known to work well in most of the cases
(glibc 2.1.x). On the other hand, we never got Wine to work with glibc
2.0.6. Thus, I deemed preferable to play it safe : by default, I
suppose that the hack won't work and that it's the user's
responsability to enable it.
Anyway, it should be pretty safe to build with '--enable-opengl'.
I.3 OpenGL library itself
-------------------------
To check for the presence of 'libGL' on the system, the script checks
if it defines the 'glXCreateContext' function. There should be no
problem here.
I.4 glXGetProcAddressARB function
---------------------------------
The core of Wine's OpenGL implementation (at least for all extensions)
is the glXGetProcAddressARB function. Your OpenGL library needs to
have this function defined for Wine to be able to support OpenGL.
If your library does not provide it, you are out of luck.
(Note: this is not completely true as one could rewrite a
glXGetProcAddressARB replacement using 'dlopen' and friends,
but well, telling people to upgrade is easier :-) ).
II How to configure
===================
Configuration is quite easy : once OpenGL support has been built in
Wine, this internal OpenGL driver will be used each time an
application tries to load 'opengl32.dll'.
Due to restrictions (that do not exist in Windows) on OpenGL contexts,
if you want to prevent the screen to flicker when using OpenGL
applications (all games are using double-buffered contexts), you need
to set the following option in your .winerc / wine.ini in the [x11drv]
section :
DesktopDoubleBuffered = Y
and to run Wine with the '--desktop' option.
III How it all works
====================
(to be done later)
IV Known problems - shortcomings
=================================
IV.1 Missing GLU32.DLL
----------------------
GLU is a library that is layered upon OpenGL. There is a 100 %
corespondance between the libGLU.so that is used on Linux and
GLU32.DLL.
As for the moment, I did not create a set of thunks to support this
library natively in Wine (it would easy to do, but I am waiting for a
better solution than adding another autogenerated thunk file), you can
always download anywhere on the net (it's free) a GLU32.DLL file (by
browsing, for example, http://ftpsearch.lycos.com/).
IV.2 OpenGL not detected at configure time
------------------------------------------
See section (I) for a detailed explanation of the configure
requirements.
IV.3 When running an OpenGL application, the screen flickers
------------------------------------------------------------
See section (II) for how to create the context double-buffered and
thus preventing this flicker effect.
IV.4 Wine gives me the following error message :
------------------------------------------------
Extension defined in the OpenGL library but NOT in opengl_ext.c... Please report
(lionel.ulmer@free.fr) !
This means that the extension requested by the application is found in
the libGL used by Linux (ie the call to glXGetProcAddressARB returns a
non NULL pointer) but that this string was NOT found in Wine's
extension registry.
This can come from two causes :
- the opengl_ext.c file is too old and need to be generated again.
- use of obsolete extensions that are not supported anymore by SGI or
of 'private' extensions that are not registered. An example of the
former are 'glMTexCoord2fSGIS' and 'glSelectTextureSGIS' as used by
Quake 2 (and apparently also by old versions of Half Life). If
documentation can be found on these functions, they can be added to
Wine's extension set.
If you have this, run with --debugmsg +opengl and send me
(lionel.ulmer@free.fr) the TRACE.
Lionel Ulmer (lionel.ulmer@free.fr)
last modification : 2000/06/12
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment