Difference between revisions of "Wine Developer's Guide"

From WineHQ Wiki
Jump to: navigation, search
(Add a step to describe how to build Wine.)
(Simplify this TOC; this will allow the individual pages to drift, without requiring maintenance on this page. Also makes it easier to add/remove pages here.)
Line 2: Line 2:
 
== Table of Contents ==
 
== Table of Contents ==
 
=== I. Developing Wine ===
 
=== I. Developing Wine ===
<ul>
+
#[[Building Wine|Building Wine]]
====[[Building Wine|1. Building Wine]]====
+
#[[Wine Developer's Guide/Debugging Wine|Debugging Wine]]
====[[Wine Developer's Guide/Debugging Wine|2. Debugging Wine]]====
+
#[[Wine Developer's Guide/Debug Logging|Debug Logging]]
<ol>
+
#[[Wine Developer's Guide/Other Debugging Techniques|Other Debugging Techniques]]
<li>[[Wine_Developer's_Guide/Debugging_Wine#Introduction|Introduction]]
+
#[[Wine Developer's Guide/Coding Practice|Coding Practice]]
<li>[[Wine_Developer's_Guide/Debugging_Wine#WineDbg modes of invocation|WineDbg modes of invocation]]
+
#[[Wine_Developer's_Guide/Writing_Conformance_Tests|Writing Conformance Tests]]
<li>[[Wine_Developer's_Guide/Debugging_Wine#Using the Wine Debugger|Using the Wine Debugger]]
+
#[[Wine Developer's Guide/Documenting Wine|Documenting Wine]]
<li>[[Wine_Developer's_Guide/Debugging_Wine#Useful memory addresses|Useful memory addresses]]
 
<li>[[Wine_Developer's_Guide/Debugging_Wine#Configuration|Configuration]]
 
<li>[[Wine_Developer's_Guide/Debugging_Wine#WineDbg Expressions and Variables|WineDbg Expressions and Variables]]
 
<li>[[Wine_Developer's_Guide/Debugging_Wine#WineDbg Command Reference|WineDbg Command Reference]]
 
<li>[[Wine_Developer's_Guide/Debugging_Wine#Other debuggers|Other debuggers]]
 
</ol>
 
====[[Wine Developer's Guide/Debug Logging|3. Debug Logging]]====
 
<ol>
 
<li>[[Wine_Developer's_Guide/Debug_Logging#Debugging_classes|Debugging classes]]
 
<li>[[Wine_Developer's_Guide/Debug_Logging#Debugging_channels|Debugging channels]]
 
<li>[[Wine_Developer's_Guide/Debug_Logging#Are_we_debugging?|Are we debugging?]]
 
<li>[[Wine_Developer's_Guide/Debug_Logging#Helper_functions|Helper functions]]
 
<li>[[Wine_Developer's_Guide/Debug_Logging#Controlling_the_debugging_output|Controlling the debugging output]]
 
<li>[[Wine_Developer's_Guide/Debug_Logging#A_Few_Notes_on_Style|A Few Notes on Style]]
 
</ol>
 
====[[Wine Developer's Guide/Other Debugging Techniques|4. Other Debugging Techniques]]====
 
<ol>
 
<li>[[Wine_Developer's_Guide/Other_Debugging_Techniques#Understanding_undocumented_APIs|Understanding undocumented APIs]]
 
<li>[[Wine_Developer's_Guide/Other_Debugging_Techniques#How_to_do_regression_testing_using_Git|How to do regression testing using Git]]
 
<li>[[Wine_Developer's_Guide/Other_Debugging_Techniques#Which_code_has_been_tested?|Which code has been tested?]]
 
</ol>
 
====[[Wine Developer's Guide/Coding Practice|5. Coding Practice]]====
 
<ol>
 
<li>[[Wine_Developer's_Guide/Coding_Practice#Patch_Format|Patch Format]]
 
<li>[[Wine_Developer's_Guide/Coding_Practice#Some notes about style|Some notes about style]]
 
<li>[[Wine_Developer's_Guide/Coding_Practice#Quality Assurance|Quality Assurance]]
 
<li>[[Wine_Developer's_Guide/Coding_Practice#Porting Wine to new Platforms|Porting Wine to new Platforms]]
 
<li>[[Wine_Developer's_Guide/Coding_Practice#Adding New Languages|Adding New Languages]]
 
</ol>
 
====[[Wine_Developer's_Guide/Writing_Conformance_Tests|6. Writing Conformance Tests]]====
 
<ol>
 
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Introduction|Introduction]]
 
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#What to test for?|What to test for?]]
 
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Running the tests in Wine|Running the tests in Wine]]
 
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Cross-compiling the tests with MinGW-w64|Cross-compiling the tests with MinGW-w64]]
 
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Building and running the tests on Windows|Buiding and running the tests on Windows]]
 
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Inside a Test|Inside a Test]]
 
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Writing good error messages|Writing good error messages]]
 
<li>[[Wine_Developer's_Guide/Writing_Conformance_Tests#Handling platform issues|Handling platform issues]]
 
</ol>
 
====[[Wine Developer's Guide/Documenting Wine|7. Documenting Wine]]====
 
<ol>
 
<li>[[Wine_Developer's_Guide/Documenting_Wine#An_Overview_Of_Wine_Documentation|An Overview Of Wine Documentation]]
 
<li>[[Wine_Developer's_Guide/Documenting_Wine#Writing_Wine_API_Documentation|Writing Wine API Documentation]]
 
</ol>
 
</ul>
 
 
 
 
=== II. Wine Architecture ===
 
=== II. Wine Architecture ===
<ul>
+
#[[Wine Developer's Guide/Architecture Overview|Overview]]
====[[Wine Developer's Guide/Architecture Overview|8. Overview]]====
+
#[[Wine Developer's Guide/Kernel modules|Kernel modules]]
<ol>
+
#[[Wine Developer's Guide/Windowing system|Windowing system]]
<li>[[Wine Developer's Guide/Architecture Overview#Wine Overview|Wine Overview]]
+
#[[Wine Developer's Guide/COM in Wine|COM in Wine]]
<li>[[Wine Developer's Guide/Architecture Overview#Standard Windows Architectures|Standard Windows Architectures]]
+
#[[Wine Developer's Guide/Wine and OpenGL|Wine and OpenGL]]
<li>[[Wine Developer's Guide/Architecture Overview#Wine architecture|Wine architecture]]
+
#[[Wine Developer's Guide/Outline of DirectDraw Architecture|Outline of DirectDraw Architecture]]
</ol>
+
#[[Wine Developer's Guide/Wine and Multimedia|Wine and Multimedia]]
====[[Wine Developer's Guide/Kernel modules|9. Kernel modules]]====
 
<ol>
 
<li>[[Wine_Developer's_Guide/Kernel_modules#The_Wine_initialization_process|The Wine initialization process]]
 
<li>[[Wine_Developer's_Guide/Kernel_modules#Detailed memory management|Detailed memory management]]
 
<li>[[Wine_Developer's_Guide/Kernel_modules#Multi-processing in Wine|Multi-processing in Wine]]
 
<li>[[Wine_Developer's_Guide/Kernel_modules#Multi-threading in Wine|Multi-threading in Wine]]
 
<li>[[Wine_Developer's_Guide/Kernel_modules#Structured Exception Handling|Structured Exception Handling]]
 
<li>[[Wine_Developer's_Guide/Kernel_modules#File management|File management]]
 
<li>[[Wine_Developer's_Guide/Kernel_modules#NTDLL module|<tt>NTDLL</tt> module]]
 
<li>[[Wine_Developer's_Guide/Kernel_modules#KERNEL32 Module|<tt>KERNEL32</tt> Module]]
 
</ol>
 
====[[Wine Developer's Guide/Windowing system|10. Windowing system]]====
 
<ol>
 
<li>[[Wine Developer's Guide/Windowing system#USER32 Module|<tt>USER32</tt> Module]]
 
<li>[[Wine Developer's Guide/Windowing system#X Windows System interface|X Windows System interface]]
 
</ol>
 
====[[Wine Developer's Guide/COM in Wine|11. COM in Wine]]====
 
<ol>
 
<li>[[Wine Developer's Guide/COM in Wine#Writing COM Components for Wine|Writing COM Components for Wine]]
 
<li>[[Wine Developer's Guide/COM in Wine#A brief introduction to DCOM in Wine|A brief introduction to DCOM in Wine]]
 
</ol>
 
====[[Wine Developer's Guide/Wine and OpenGL|12. Wine and OpenGL]]====
 
<ol>
 
<li>[[Wine Developer's Guide/Wine and OpenGL#What is needed to have OpenGL support in Wine|What is needed to have OpenGL support in Wine]]
 
<li>[[Wine Developer's Guide/Wine and OpenGL#How it all works|How it all works]]
 
<li>[[Wine Developer's Guide/Wine and OpenGL#Known problems|Known problems]]
 
</ol>
 
====[[Wine Developer's Guide/Outline of DirectDraw Architecture|13. Outline of DirectDraw Architecture]]====
 
<ol>
 
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#DirectDraw inheritance tree|DirectDraw inheritance tree]]
 
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#DirectDrawSurface inheritance tree|DirectDrawSurface inheritance tree]]
 
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#Interface Thunks|Interface Thunks]]
 
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#Logical Object Layout|Logical Object Layout]]
 
<li>[[Wine Developer's Guide/Outline of DirectDraw Architecture#Creating Objects|Creating Objects]]
 
</ol>
 
====[[Wine Developer's Guide/Wine and Multimedia|14. Wine and Multimedia]]====
 
<ol>
 
<li>[[Wine Developer's Guide/Wine and Multimedia#Overview|Overview]]
 
<li>[[Wine Developer's Guide/Wine and Multimedia#Multimedia architecture|Multimedia architecture]]
 
<li>[[Wine Developer's Guide/Wine and Multimedia#Low level layers|Low level layers]]
 
<li>[[Wine Developer's Guide/Wine and Multimedia#Mid level drivers (MCI)|Mid level drivers (MCI)]]
 
<li>[[Wine Developer's Guide/Wine and Multimedia#High level layers|High level layers]]
 
<li>[[Wine Developer's Guide/Wine and Multimedia#MS ACM DLLs|MS ACM DLLs]]
 
<li>[[Wine Developer's Guide/Wine and Multimedia#MS Video DLLs|MS Video DLLs]]
 
<li>[[Wine Developer's Guide/Wine and Multimedia#Multimedia configuration|Multimedia configuration]]
 
</ol>
 
  
 
===List of Tables===
 
===List of Tables===
Line 136: Line 43:
 
:[[Wine Developer's Guide/Wine and Multimedia#13-3|13-3. Wine VIDC drivers]]
 
:[[Wine Developer's Guide/Wine and Multimedia#13-3|13-3. Wine VIDC drivers]]
 
:[[Wine Developer's Guide/Wine and Multimedia#13-4|13-4. Wine multimedia configuration scheme]]
 
:[[Wine Developer's Guide/Wine and Multimedia#13-4|13-4. Wine multimedia configuration scheme]]
</ul>
 
  
 
== Authors ==
 
== Authors ==

Revision as of 10:55, 15 January 2019