WineHQ

Wine Developer's Guide: Difference between revisions

(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 15:55, 15 January 2019

This page was last edited on 15 January 2019, at 15:55.