Anyone have any comments, or something they believe I should add before I send the patch?
Tom
Wine Status - Known To Do's
Window management
- Rewrite Wine's window management code to be able to change the visual of an X window once the window has been created.
- In Desktop Mode all processes started from one wine invocation should be confined to one desktop window.
- Window management needs proper inter-process handling of activation, focus, repaint.
- Workaround for the "no keyboard without Desktop mode" problem.
National Language Support
- We currently lack a way to model heirachical resources like those required by calendar information (each locale has a varaible number of calendars, with different attributes). This is a show stopper for completing the NLS Api (Get/EnumCalendarInfo etc).
- Our text output needs to substitute fonts on the fly when characters to be printed cannot be represented in the current font.
- Make sure ASCII functions call the Unicode one and not the other way around.(probably will stay forever.)
- Add localization to more languages.(probably will stay forever.)
- Add localization to more parts of Wine.(probably will stay forever.)
- Better support of Chinese, Korean, Japanese...(currently in works)
x11drv
- Add support for keyboard layout APIs.
NTDLL
- Implement security APIs and make them use native OS security facilities.
Kernel32
- Split 16/32 function, finish moving stuff into ntdll (review FS & device support)
- Implement non-local named pipes and mailslots over SMB
- Implement SMB over Netbios
opengl32
- Support all WGL extensions which have GLX counterparts (like PBuffers or render to texture for example).
comdlg32
- add a Network Neighborhood-style browser to the file dialog
netapi32
- Implement the Net* functions using rpcrt4
- Implement NetServerEnum and NetShareEnum using SMB
- Netbios support for IPX
Winsock
- SIO_GET_INTERFACE_LIST support for IPX
- IPv6 support
- More unit tests, e.g. for asynchronous IO.
- Make sure OOB data is handled properly.
- WS2: Implement service programming interface (SPI), use for supporting other services.
- Try to provide more services such as IrDA natively.
- Fix stubs left in ws2_32.spec
cabinet
- Compression API's remain unimplemented
RPCRT4
- Implment the undocumented "NT Ports" API (aka "LPC") used by native NT
- Fill out the matrix of per-type /Oi marshalling API's.
- Some real RPC tests,although there are some tests of some peripheral rpcrt4 API's -- no actual RPC's are tested.
- Implement /Oicf "stubless" marshalling
- Implement full stub/proxy support for widl
- Invent, propose, and evangelize some solution to the Samba-vs-wine TCP/IP RPC port-grabbing problem.
- Get Wine's DCOM to use wine's RPC as appropriate.
- Fix the wire protocol
DirectX
[DirectShow] - Filter manager (IGraphBuilder) - Video renderer - Audio renderer - Registry entries [DirectDraw] - YUV overlays - Support for FOURCC surface [D3D] - Begin to share most of the openGL code between d3d8 and d3d9, begining with shaders, textures and state blocks - Abstract APIs to be usable by ddraw - Implement a better drawing pipeline thinking about hardware and software shaders - Compressed texture support - Improve Z Buffer support - Multi texturing (and more generally, OpenGL extension handling) - Off screen rendering - Proper color keying - Finish migration of D3D1-7 code to use d3dcore - Add hardware vertex shader and pixel shader support - LOD support - Multisampling (antialising) support - Palette texturing fixes (not really tested) - Swapchain support - Better device management (mainly caps) - index/vertex buffer hardware support - Surface->DC handling - Real Preloading support (using a memory manager) - UpdateTexture/UpdateSurface - various optimisations [DirectSound] - Hardware accelerated direct sound capture driver support using the Windows CE2 HAL API - 3D buffer support in software is present but incomplete. - 3D buffer hardware support - Sound effects on buffers - Capture effects - Full duplex support is stubbed out but not functional. - DX9 support for new PCM formats (24/32 bit and float samples) and for more than 2 channels is not present. [DirectMusic] - DMusicPerformance scanning of files [DirectInput] - Improve DX8 support (especially joystick) [DirectPlay] - Add support for DX8 [MSDMO] - DMOGetTypes() - Not implemented - DMOGuidToStrA() - Not implemented - DMOGuidToStrW() - Not implemented - DMOStrToGuidA() - Not implemented - DMOStrToGuidW() - Not implemented [DevEnum] - Support the creation of special filters (Midi renderer, DSound renderer, WaveOut, WaveIn) and support the binding to these filters.
Sound Drivers
- ALSA driver (on final 1.0 interface)
- Improve the jack audio server, e.g. WaveIn & Resampling.
- Implement the audio compression codecs.
- Fix Sound Blaster emulation.
Video
avifil32: (sorted by decreasing priority) * make the whole library thread save * interface for AVI files: - native version has problems with reading our files (Is it still so?) * API for clipboard: - only stubs. (native version doesn't work). * AVIFileProxy is missing. * We have no implementation for IAVIStreaming, which doesn't result in missing functionality, but in possible performance loss. Even the native version has such an interface only for the AVI file handler. msvfw32: * DrawDib needs some work: - Some flags are ignored - handle palette * semi-stub implementation for file dialogs with AVI preview. Need to use OFN_ENABLEHOOK flag. * stub implementation for codec-selection-dialog * resources are missing (also see the 2 above points) * StretchDib method is missing * many 16-bit methods are missing * MCIWnd: - Bug: shouldn't open device with filename if none given. - Bug: Windows stays empty when opening of device fails. avicap32: "Video Capture" * only stub DLL.
FreeBSD
- Add support for MZ_SUPPORTED
DOS
- VM86 emulation still has races in irq handling.
- DPMI supports now irqs but still not interrupt reflection.
- Obsolete Win32s VxDs need to be deleted.
- VxD handling should be rewritten so that it no longer uses a separate 16-bit DLL.
- If Win16 program uses real mode code, there are code paths where Wine fails to properly initialize DOS memory.
- DOS memory management code needs restructuring.
- Ioport emulation code should be migrated to winedos.
- VESA emulation is missing many important functions.
- Bitplane VGA modes are totally unsupported.
- Many DOS7 extensions are missing.
- System timer code only supports simple cases.
- DOS4GW does not work.
- NTDLL still has lots of DOS emulation code.
GDI
- DIB engine
GDB
- Add the MSC/PDB info support to gdb
Winedbg
- Make winedbg use dbghelp DLL
- Speed up PDB support
DDE
- Enhance memory management issues (interprocess sending)
OLE
- Handle apartments properly in CoCreateInstance, etc.
- Type library handling (parsing them is not yet complete and saving them is not implemented at all)
- Implement ICreateTypeLib support
- Implement Var* (e.g. VarMod) and variant conversion routines
- User defined types (e.g. IRecordInfo)
- Custom marshalling functions for various data types
- Implement missing features in OLE*.
Native Programs
- Winhelp: fix invocation thru WinHelp
File Management
- Implement NT file namespace
- UNC support
- Allow flexibility in FS "mounting" (for example, SMB shares)
Fonts
- Support for non-TT fonts (eg Type1, bitmap,....)
- Subpixel rendering - a.k.a. ClearType
- Reduce per font startup time
Printers
- Write a printer configuration applet
Tools
- Wine installation process should install and configure wine
- Perform Windows' reboot operations automatically when required
- Winemaker fixes
- Run C regression tests on Windows with MSVC
- Work on WRC as it does not find system headers
Instructions
- Documentation updates
Aspect or Component
- Review of Wine Server Protocol
- Finalize Server Protocol
- Visual C++'s native COM support
- Create replacement of browser component (Internet Explorer/IExplore)
Porting issues for Mingw/Cygwin/MS_VC
- Better separation of win16/32 code
- Remove/rewrite win16/9x API dependency on newer code
- Remove/rewrite wineisms from code
- Rewrite/fix unixisms in most WINE dlls
- Documentation fixes
Low priority items
- VxD support with dynamic loading
For the full 0.9 Bug List, please see Tasklets
For the full 1.0 Bug List, please see Tasklist