Replace explicit settings of CFLAGS and LDFLAGS in favor of USES=localbase
(the former predating the latter by at least a decade alas with variation).
PR: 226396
Submitted by: John Hein <z7dr6ut7gs@snkmail.com>
to wine-mono.
Technically this is not required at this point, since the -devel and
regular ports provide the same versions temporarily, but it sets us up
for when the -devel ports are going to diverge again later.
__FreeBSD_version 1200057, so reduce the window of versions we need a
workaround for to just 1200056.
In the mid term I plan on removing this workaround, but let's keep it
in place for a bit longer for the sake of users on an affected snapshot.
PR: 224863
Thanks to: dim
This represents a year of development effort with over 6,000 individual
changes. Due to regular syncing from the wine-devel port to this one
changes mostly relate to pkg-plist and the two ports mostly differ by
wine-devel featuring a STAGING option to support the Wine Staging
patchset.
Highlights of this new release include Direct3D 10 and 11 support,
Direct3D command stream, and improved DirectWrite and Direct2D support.
The following is a more detailed list:
== Direct3D
- A significant number of Direct3D 10 and 11 features are implemented
in this release, including:
- Compute shaders.
- Hull and domain (tessellation) shaders.
- Stream output.
- Format capability queries.
- A large number of shader model 4 and 5 shader instructions.
- Shader model 4 and 5 interpolation modifiers.
- Shader model 4 and 5 clip and cull distances.
- Indirect draws and indirect compute dispatch.
- Structured buffers.
- Byte addressable buffers.
- Append and consume buffers.
- Unordered access view counters.
- Cube-map arrays.
- Layered rendering to 3-dimensional textures and texture arrays.
- Mip-map generation.
- Conservative depth output.
- Type-less (sub)resource copies.
- Depth bias.
- Support for OpenGL core contexts in Direct3D is improved, to the
point that core contexts are used by default for Direct3D 10 and 11
applications on AMD and Intel graphics cards. As a result, users of
those graphics cards in combination with Mesa OpenGL drivers should
no longer need to set the "MaxVersionGL" registry key to enable
Direct3D 10 and 11 support.
- The Direct3D graphics card database recognizes more graphics cards.
- New HKCU\Software\Wine\Direct3D registry key:
- "csmt" (REG_DWORD)
Enable (0x1) or disable (0x0, default) the multi-threaded command
stream feature described above.
- Deprecated HKCU\Software\Wine\Direct3D registry keys:
- "StrictDrawOrdering"
This has been superseded by the multi-threaded command stream feature.
- "OffscreenRenderingMode"
The "fbo" setting is the only remaining supported value. The
"backbuffer" setting, while still available, is no longer supported.
- Removed HKCU\Software\Wine\Direct3D registry keys:
- "AlwaysOffscreen"
This is always enabled in this release.
- "MultiSampling"
Use the "SampleCount" (REG_DWORD) setting to force a specific
multi-sample anti-aliasing sample count for swapchain render
targets instead.
== Graphics
- Drawing outlines of Direct2D geometry objects.
- Direct2D linear and radial gradient brushes.
- Direct2D compatibility with GDI.
- Bounds computation of Direct2D geometry objects.
- Simplification of Direct2D geometry objects.
- The OpenGL extension list is updated to OpenGL version 4.6.
- The system GLU library is only needed when the Nurbs renderer is
used, all other GLU functions are implemented internally.
- Metafile playback in GdiPlus supports most of the GdiPlus-specific
metafile record types, in addition to the standard metafile records.
- GdiPlus graphics operations take the GDI transform into account.
- Encoding image formats with a palette is supported in WindowsCodecs.
== Kernel
- The default Windows version is set to Windows 7.
- The full semantics of named pipes are implemented, including
message-mode pipes.
- Position Independent Executables are supported, both for the Wine binary
itself and also when starting external binaries.
- Serial and parallel port devices are created automatically, with the
corresponding symlinks in the dosdevices directory. The detected ports
can be overridden through the HKLM\Software\Wine\Ports key.
- Safe DLL search mode is implemented. It is enabled by default, and
can be disabled by setting the "SafeDllSearchMode" value to 0 under
HKLM\System\CurrentControlSet\Control\Session Manager.
- Safe process search mode is implemented. It is disabled by default
but can be requested by the application, and it can be forced by
setting the "SafeProcessSearchMode" value to 1 under
HKLM\System\CurrentControlSet\Control\Session Manager.
- Asynchronous I/O performance is improved by reducing the number of
server calls.
- Memory write watches work correctly when used concurrently with file
I/O on the same buffers.
- Virtual memory allocations can be arbitrarily large on 64-bit platforms.
== User interface
- The built-in mouse cursors are redesigned, and available in higher
resolution for high DPI screens.
- The Shell Explorer, the common dialogs, and the RichEdit control
properly scale on high DPI screens.
- The screen DPI value can be overridden by setting the "LogPixels"
value under HKEY_CURRENT_USER\Control Panel\Desktop.
- In desktop mode, higher display resolutions with various aspect
ratios are supported.
- Task Dialog common control.
- The Internal User Interface is supported in MSI.
- Double-buffered theme painting.
- The TWAIN library supports a user dialog for selecting the scanner
source.
- Device-independent bitmaps and metafiles can be stored into the OLE
Data Cache.
== Desktop integration
- The StartupWMClass field is set in generated desktop files so that
they can be matched to their respective Windows binary.
- Clipboard changes from other X11 applications are detected through
the Xfixes library instead of polling.
- The RichEdit control supports pasting metafiles.
- The Program Manager DDE protocol for manipulating program entries
and groups is implemented.
- The HID service for detecting Plug & Play devices is active by default.
== Text and fonts
- Contextual glyph substitution is supported in UniScribe.
- Character tables are based on version 10.0.0 of the Unicode Standard.
- The Nepali and Bangla (India) locales are supported.
- Font support is compatible with the new behaviors introduced in
FreeType version 2.8.1.
== DirectWrite
- Trailing line trimming signs in both character and word modes is
supported.
- Cluster wrapping mode.
- Uniform and proportional line spacing methods.
- Oblique and bold simulation is also supported in bitmap rendering mode.
- Per-factory cache is thread safe.
- Overhang metrics evaluation for layouts.
- In-memory font file loader is implemented and is available to
applications.
== D3DX
- Support for D3DX 9 preshaders is improved.
- Support for D3DX 9 application defined effect state managers
(ID3DXEffectStateManager).
- Using effect pools to share effect parameters between D3DX 9 effects.
== Internet and networking
- UDP/TCP listeners are implemented in Web Services.
- Web Services supports the .NET Binary Format, including the string
table extension.
- Web Services supports the .NET Message Framing Protocol.
- Asynchronous support is enabled for receiving messages in Web Services.
- HTML event handling is rewritten to support standard-compliant mode.
- Multiple new standard-compliant HTML APIs are supported. HTML document
mode support is improved to preserve compatibility with documents
expecting legacy behavior.
- The WebBrowser control supports MHTML files.
- Embedding HTML documents in .NET applications is better supported.
- WinHTTP correctly parses cookie attributes.
== Cryptography
- Cryptographic hashes are implemented internally instead of relying
on GnuTLS.
- AES encryption is supported.
- The Microsoft Root Certificate 2011 is added to the list of known
Microsoft certificates.
- The Mono and Gecko add-on packages are verified with SHA256 checksums.
== Built-in applications
- Registry importing and exporting in RegEdit is reimplemented for
better compatibility. Windows 3.1 registry files can also be imported.
Registry files are exported to Unicode format by default.
- RegEdit always shows the 64-bit view of the registry on 64-bit prefixes.
- The Reg.exe registry manipulation tool supports importing and exporting
registry files.
- The command interpreter implements the MKLINK command.
- The command interpreter supports escape characters in the prompt string.
- WineMine shows a confirmation dialog before resetting the best scores.
== Tools
- The IDL compiler (widl) handles C++ aggregate returns in an
MSVC-compatible way.
- The resource compiler (wrc) supports translating version resources
through the po files.
- The Wine debugger (winedbg) supports printing floating point and SSE
register state.
- All Perl scripts that parse XML use the standard XML::LibXML module.
- The obsolete wineinstall tool is removed.
== Miscellaneous
- XAudio supports float audio formats with more than 2 channels.
- The Scheduler and related classes are supported in the C++ runtime.
- SQL driver installation is supported in ODBC.
- The ProgramData well known directory is supported.
- The Mono engine is updated with upstream Mono fixes, and supports
the Mono profiler API version 2.
- The thread id is always displayed in debug traces.
since that compiler crashes.
(There may be a way to work around this in Wine, but that is unlikely
to be accepted for the stable release branch.)
PR: 224863
Configure --without-krb5 aka Kerberos support. This should not make a
real difference (and definitely not for clean builds), but makes this
explicit and also avoids a configure warning.
is partly to sync wine and wine-devel as closely as possible before the
pending new major release of Wine, partly to make builds more reproducible
outside of a strict build environment (there should be no change for "pure"
builds).
r454242 | gerald | 2017-11-15
[G]enerally disable PulseAudio support, not just for the
Wine Staging case (where this originally only existed). [1]
r458393 | gerald | 2018-01-08
Configure --without-udev since FreeBSD does not feature udev support
as such. (This should not be a practical change, but makes this explicit
and also avoids a configure warning.)
PR: 195765 [1]
Reported by: dbn [1]
- Various bug fixes
- Updates to the National Language Support files
- Documentation updates
On the way backport r454456 from emulators/wine-devel where it has sat
for seven weeks now:
Explicitly add x11 and xext to USE_XORG (when the X11 option is set),
both of which were pulled in implicitly so far. [1]
Reported by: Mk/Scripts/qa.sh via dbn@ [1]
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 under most circumstances.
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using Mk/bsd.octave.mk which in turn features USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++11-lang,
c++14-lang, c++0x, c11, or gcc-c++11-lib.
PR: 219275
lang/gcc which have moved from GCC 4.9.4 to GCC 5.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
This includes ports
- with USE_GCC=yes or USE_GCC=any,
- with USES=fortran,
- using using Mk/bsd.octave.mk which in turn has USES=fortran, and
- with USES=compiler specifying openmp, nestedfct, c++11-lib, c++14-lang,
c++11-lang, c++0x, c11, or gcc-c++11-lib.
PR: 216707
This represents over a year of development effort and around 6600
individual changes.
Support for Microsoft Office 2013 is a major highlight, and it
contains improvements across the board, as well as support for
many new applications and games.
== Text and fonts
- More DirectWrite features are implemented, including:
- Drawing of underlines.
- Renderer sees drawing effect associated with text segment.
- Support for color fonts in COLR/CPAL format.
- Initial font fallback support, builtin data for some of CJK ranges.
- Support for Wine-specific font replacement registry settings.
- Improved font metrics resolution in case of incomplete or
ambiguous font data.
- Support for EUDC font collection based on current registry
settings.
- Font embedding in PDF files is supported.
- The RichEdit control supports bulleted and numbered lists.
- Bold glyphs can be synthesized also for bitmap fonts.
- Character tables are based on version 9.0.0 of the Unicode Standard.
== Graphics
- Window, bitmap and GDI DC render targets are implemented in Direct2D.
- A wide range of optimizations make the DIB engine noticeably faster.
- GDI graphic paths are reimplemented for better compatibility; they
are also supported with enhanced metafiles.
- Gradients are supported in GDI enhanced metafiles.
- Metafiles are better supported in GdiPlus.
== User interface
- Clipboard support is reimplemented for better compatibility; copy & paste
of HTML text is also improved. Drag & drop works more smoothly.
- In desktop mode, the taskbar displays running applications and
allows switching between them.
- Version 4 of the system tray notification protocol is implemented.
- In desktop mode, some less common display resolutions like 640x400
and 1280x960 are supported.
- More user interface elements scale correctly with high-DPI screens.
== Direct3D
- More Direct3D 10 and 11 features are implemented, including:
- Several more shader model 4 and 5 shader instructions.
- Several more resource formats.
- Integer vertex shader inputs.
- Typeless resources.
- sRGB read/write support.
- Depth and stencil clears.
- Depth-only draws.
- Array textures.
- Index buffer offsets.
- Unordered access views.
- Primitive restart.
- The WineD3D graphics card database recognizes more graphics
cards. When available, the GLX_MESA_query_renderer GLX extension is
used to provide more accurate information about the graphics card.
- The (system) memory layout of texture resources more closely matches
Windows. This affects applications that write beyond the bounds of a
MIP-level, like for example League of Legends.
- The implementation of non-maskable multisample anti-aliasing is more
correct. In particular, when the ARB_internalformat_query extension
is available, only quality levels corresponding to specific sample
counts supported by the OpenGL implementation are reported to the
application. Previously, reporting a large number of non-maskable
multisample anti-aliasing quality levels would break some
applications.
- Direct3D 11 feature levels are supported.
- Retrieving a GDI device context from DXGI surfaces is
implemented. This is used for rendering to DXGI surfaces using GDI.
- More DXGI swapchain methods are implemented, particularly those
relating to switching display modes and switching to and from
fullscreen.
- When ARB_clip_control and ARB_viewport_array are both supported,
position fixups are slightly more efficient.
- The APPLE_client_storage extension is no longer used. It caused more
problems than it solved.
- New HKCU\Software\Wine\Direct3D registry keys:
- "CheckFloatConstants" (REG_SZ).
Setting this to "enabled" enables additional run-time bounds
checking on relatively addressed shader constant access. This
helps some (broken) applications, but comes at a performance cost.
- "MaxShaderModelHS", "MaxShaderModelDS" and "MaxShaderModelCS" (REG_DWORD).
These limit the maximum supported shader model for hull, domain,
and compute shaders respectively, analogous to the existing
"MaxShaderModelVS", "MaxShaderModelGS", "MaxShaderModelPS"
keys. Note that these shader types are new in shader model 5, so
setting this to anything lower than 5 will effectively disable
them.
- "SampleCount" (REG_DWORD).
Setting this registry key will force the multisample anti-aliasing
sample count to the specified value for swapchain render
targets. This allows anti-aliasing to be forced on applications
that do not otherwise support anti-aliasing themselves, but may
have no effect or break the application depending on the specific
application.
== DirectDraw
- Retrieving a GDI device context from a DirectDraw surface is
implemented in a more accurate way. In particular, retrieving a GDI
device context for a "client memory" surface will retrieve a GDI
device context that's backed by that same client memory.
- A number of fixes related to vertex transformation in early
DirectDraw versions have been made.
== D3DX
- The support for the D3DX 9 effect framework is more complete, in
particular:
- There is initial support for preshaders.
- Many more effect states are correctly applied.
- D3DX 10 and 11 asynchronous data loaders are implemented.
- The d3dx9 DLLs no longer forward to d3dx9_36, but are built from the
same source instead.
- The d3dcompiler DLLs no longer forward to d3dcompiler_43, but are
built from the same source instead.
== Sound and video
- GStreamer version 1.0 is supported for audio and video streams.
- DirectSound supports downmixing from 5.1 and 4.0 formats to stereo.
== Internet and networking
- The Web Services API is supported. The XML reader and writer are
implemented, along with support for serializing many common data
types. Basic support for making SOAP calls is also included. This
enables Microsoft Office 2013 online activation.
- The Gecko engine is updated to the version from Firefox 47.
- IDN name resolution is supported.
- Various SHA hashes are supported using GnuTLS.
- Looking up the host address prioritizes non-loopback interfaces,
which fixes a number of networked games.
- XML writing is faster for large files.
- Winsock supports the IP_DONTFRAGMENT socket option.
- Long URLs are handled correctly.
- JavaScript performance is improved. JSON is also supported.
== Internationalization
- There is proper support for the Persian locale.
- Uniscribe better supports right-to-left languages.
- Japanese Hiragana, Katakana and full-width/half-width character
mapping is implemented.
== 64-bit support
- The Mono engine has 64-bit support.
- C++ exceptions are handled correctly on x86-64, including nested
exceptions and collided unwinds.
- The debug registers are supported on x86-64.
== Built-in applications
- The 'winebrowser' helper application supports multiple arguments to
invoke the host browser or mailer.
- The 'reg' command-line registry utility supports the 'query'
command, all registry data types, and has more robust command line
handling.
- The 'winhlp32' help viewer properly displays tables and images.
- The 'wineconsole' tool better supports East-Asian fonts. Color
handling is also improved.
== Kernel
- A new driver architecture is in place for supporting HID devices.
This follows the Windows model, with platform-specific bus drivers
and HID minidrivers. It will be used in future releases to unify
support for HID devices, and potentially also for USB device
support.
- Loading multiple kernel drivers inside the same user-mode process is
supported. This is used for HID drivers.
- A directory cache is implemented, to allow returning files in the
expected order and avoid relying on platform-specific system calls.
- Many more API Set libraries (the oddly-named api-ms-win-* dlls) are
implemented.
- Interrupt 0x2d (used for debugger checks) is emulated.
== Miscellaneous
- Read interval timeouts are supported for serial ports.
- Variables starting with 'QT_' are filtered from the Unix environment
since they may have unwanted effects on Qt-based Windows applications.
- Support for joystick button mapping and force feedback effects is
improved.
- Many stream classes are implemented in MSVCIRT, the old I/O stream
C++ runtime.
- Windows Management Instrumentation (WMI) implements some more WBEM
classes.
- Most remaining OpenMP functions are implemented.
- Uninstallation support in MSI is improved.
== Configuration changes
- A number of DLLs are now built separately from a common source,
instead of forwarding to a master DLL. This means that native DLL
overrides need to be set on the specific version of the DLL being
loaded, instead of the master one. This applies to the d3dx9_*,
d3dcompiler_*, xaudio2_*, xapofx1_* and x3daudio1_* DLLs.
lang/gcc which have moved from GCC 4.8.5 to GCC 4.9.4 (at least under some
circumstances such as versions of FreeBSD or platforms).
In particular that is ports with USE_GCC=yes, USE_GCC=any, or one of
gcc-c++11-lib, openmp, nestedfct, c++11-lib as well as c++14-lang,
c++11-lang, c++0x, c11 requested via USES=compiler.
Include GNUTLS in the default options since apparently it does help
with Evernote and World of Warcraft.
And it also seems to help with Internet Explorer and Microsoft Office. [1]
Bump PORTREVISION.
PR: 208234
Reported by: crees [1]
Require/build with Xinerama support (which has been explicitly disabled
before to ensure reproducible builds). Without this, some programs would
incorrectly show full screen as a wide window covering 2 monitors.
PR: 210039
Submitted by: Henry Hu <henry.hu.sh@gmail.com>
- various bug fixes, and.
- a few more cards added to the GPU description table.
Similar to 1.8.3 and a bit surprisingly a new include file
include/wine/windows/ddk/ndis.h.
- various bug fixes;
- a lot of additional NVidia cards in the GPU description table; and
- updates to the National Language Support files.
A bit surprisingly given the nature of this maintenance release, also
a handfull of changes to the packaging list (such as a new include file
include/wine/windows/fontsub.h).
- Rename the LIBDANE option DANE because that's the name of the protocol
supported by libgnutls-dane and gnutls-cli. Also clarify the option
description.
- Add an IDN option.
- libgnutls-openssl has been removed in 3.4. Some ports used this library
in their LIB_DEPENDS but no port actually required it.
- Some old API functions have been removed. Ports that used these have been
updated or patched to use the new API.
- Add a patch to print/cups to prevent overlinking of libgnutls.so.
- Bump PORTREVISION on dependent ports.
net-im/jabber: This port used the old API to give users fine grained
control over which crypto algorithms were used via a configuration file.
It's not immediately obvious how to port this to the new API so the port
always uses the defaults now.
www/hydra: Mark BROKEN. This uses more removed calls than the other ports,
is said to be alpha quality and not fully functional and has been abandoned
10 years ago.
PR: 207768
Exp-run by: antoine
Approved by: portmgr (antoine)
print/cups and update it to 2.1.3. Also remove print/cups-pstoraster,
improve print/cups-filters, print/foomatic-* and update print/hplip to
3.16.2.
Long description:
First some background. When you hand a file to cups it sets up a chain of
filter programs that converts the file to something a printer understands.
Each filter has a cost associated with it and cups tries to find the
cheapest chain. Costs used to be configured in such a way that files were
first converted to PostScript. This could then be manipulated further (e.g.
putting multiple pages on one sheet) before finally being sent to a
PostScript printer or another filter like pstoraster which produces a raster
format understood by non-PostScript printer drivers. Nowadays most filters
have been moved from cups to cups-filters and they have been configured to
use PDF as an intermediate format instead of PostScript.
Merging of cups-base, cups-client and cups-image into print/cups:
- cups-image provides a library to work with the cups raster format. It is
only used to implement filters and printer drivers and these only exist
in the context of a cups server so there's no need to separate this from
cups-base.
- cups-client provides a library that allows applications to print via cups.
It is possible to use the library to access a remote cups server without
running a local cups server, but such a setup is discouraged and the
configuration file to set this up has been marked deprecated. It is
better to run a local cups server and let that talk to the remote cups
server because then you have the benefits of local job queuing in case the
remote server is down or busy. Given this and the fact that without
filters cups-base is now smaller than it used to be it makes sense to
merge the ports. The patch also adds options IPPTOOL, DOCS and NLS which
when disabled make the new cups package smaller than the current
cups-client package. Merging the ports also prevents problems with
options like ZEROCONF being configured differently in both ports.
- print/cups was a metaport that depended on cups-base and some filters.
There isn't really a need for such a metaport so cups-base can be renamed
to cups. The filters can be depended on by printer drivers such as hplip
if they need them.
Additional changes to the new print/cups:
- Clean up the patches. They seem to have been regenerated with post-patch
changes included.
- Add a patch to prevent intermediate conversion to PDF when a PostScript
file is sent to a PostScript printer when cups-filters is installed.
- Fix the PAM configuration file.
- Add a patch to let the server search /usr/local/share/ppd like on Linux so
other ports don't have to add links to it.
- Remove ulpt(4) helper scripts. The port uses libusb with ugen(4).
- Remove support for mDNSResponder. cups-filters only supports Avahi.
- Combine ICONS and XDG_OPEN options into an X11 option to support WITHOUT_X11.
- Optionally depend on colord for ICC profile support.
- Various smaller changes.
Changes to print/cups-filters:
- Let the cups_browsed rc.d script depend on cupsd and avahi_daemon instead
of LOGIN.
- Development of foomatic-filters has been moved to cups-filters so let this
port install foomatic related files and add foomatic-filters to CONFLICTS.
- Fix location of liblouis tables.
- Add patch to fix ICC support.
Changes to print/cups-pstoraster:
This port is essentially an old version of Ghostscript plus a cups filter.
It's no longer developed. This commit removes it and changes existing
dependencies to print/cups-filters which depends on print/ghostscript* and
includes a gstoraster filter that can handle both PostScript and PDF.
Changes to print/foomatic-db*:
Remove old MASTER_SITES and dependencies and eliminate PKGNAMEPREFIX.
Changes to print/foomatic-filters:
Install beh backend with its original name again and add cups-filters to
CONFLICTS.
Changes to print/hplip:
- Stop installing hpijs/foomatic-rip support. This is no longer supported
upstream.
- Stop installing hpcups PPDs. These are now automatically generated. The
bundled PPDs are generated for an older version of cups.
- Rename the QT option to X11 to support WITHOUT_X11.
- Simplify the patches now that ports are installed in a staging area.
- Add a patch to set SO_REUSEPORT (next to SO_REUSEADDR) on the mDNS socket
like avahi-daemon does. This fixes Zeroconf support for HP network
printers.
PR: 207746
Exp-run by: antoine
Approved by: portmgr (antoine)
Adjust emulators/wine to use this port instead of wine-mono-devel,
which we just upgraded a few hours ago.
Approved by: dbn (maintainer, pre-approved) [1]
1.8 release series. This represents 17 months of development and around
13,000 individual changes.
This port now also supports amd64.
It generally syncs with the emulators/wine-devel port (from where we
have been syncing various packaging changes over time), now configures
--without-gettext in addition to --without-gettextpo and still refers
to emulators/wine-gecko-devel and emulators/wine-mono-devel for the
time being, but remains without a dependency on sysutils/prelink.
At a more detailed level, changes include:
== Text and fonts
- DirectWrite is implemented, and works for a number of applications.
Functionality includes:
- Font file loading from system or custom font collections.
- Building font families by combining similar font faces.
- Font matching algorithm using weight/width/slope model.
- Basic text layout support.
- Bi-directional level resolution and line breaks resolution.
- GDI interoperability API, including rendering to DIB section base target.
- Rendering to arbitrary target with generic rendering interface.
- Generating black&white and grayscale alpha bitmaps.
- Bold glyphs can be synthesized for outline fonts.
- Multiple replacements can be specified for a single font by using a
multi-string entry under HKCU\Software\Wine\Fonts\Replacements.
- Vertical text uses the Unicode data tables for more accurate character
ranges support.
- Character tables are based on version 8.0.0 of the Unicode Standard.
- The built-in Wingdings font contains more glyphs.
- Unicode bracketing pairs are supported in Uniscribe.
- The RichEdit control uses Uniscribe for more accurate text rendering.
== Graphics
- Direct2D is supported. This includes:
- DXGI surface and WIC bitmap render targets.
- Geometries defined by straight lines and cubic Bézier curves.
- Drawing text.
- Bitmaps.
- Solid color brushes and bitmap brushes.
- Opacity brushes.
- PNG files can be encoded in interlaced mode.
- Gamma information can be loaded from PNG files.
- Animated GIFs are correctly supported in GdiPlus.
== Direct3D
- Direct3D 11 is supported, to about the same level as Direct3D 10.
- Simple applications using Direct3D 10 are supported. There are still
many unimplemented features. Direct3D 10 requires support for at
least OpenGL 3.2 and GLSL 1.50. Changes include:
- Several resource update operations are implemented.
- Many more shader model 4 opcode are recognized.
- Constant buffers are supported.
- The various resource views are implemented.
- The various state objects are implemented.
- Stateblocks are implemented.
- A number of new DXGI 1.1 interfaces are implemented. This benefits
Direct3D 10 and 11 applications.
- Direct3D applications correctly minimize and restore the display
mode on focus loss.
- Fixed function vertex blending is implemented. This requires GLSL support.
- Per-vertex point sizes are supported. This requires GLSL support.
- The wined3d graphics card database recognizes more graphics cards.
The graphics card detection code is simplified and improved. More
reasonable fallbacks are picked for unrecognized graphics cards.
- On drivers that support it, GL_ARB_texture_mirror_clamp_to_edge or
GL_EXT_texture_mirror_clamp are used to implement the "mirror once"
texture addressing mode.
- GL_ARB_depth_clamp is no longer required to correctly draw pre-transformed
vertices with disabled z-buffering. This helps older graphics cards that
can't correctly implement GL_ARB_depth_clamp.
- On drivers that support it, GL_ARB_blend_func_extended is used to
implement the D3DBLEND_SRCALPHASAT blend factor.
- On drivers that support it, GL_ARB_sampler_objects is used to apply
sampler states independently of the texture object they apply
to. This helps applications that bind the same texture to multiple
texture stages, but with different sampler states.
- On drivers that support it, GL_EXT_texture_snorm is used to support
signed (normalized) texture formats. These are typically used for
bump mapping. Previously these formats required either
GL_NV_texture_shader, or fixups when loading and using them.
- On drivers that support is, GL_ARB_timer_query is used to support
Direct3D 9 timestamp queries.
- Texture format restrictions are more strictly enforced. This allows
applications to fall back to a different format instead of continuing
with broken rendering.
- Direct3D 9 D3DTSS_CONSTANT texture stage constants are supported.
- Color keyed blits can be done by the graphics card. Previously these
needed to be done by the CPU.
- NV12 surfaces are supported. This is used by some applications for
playing back video.
- ATI1N textures and surfaces are supported, in addition to ATI2N
textures and surfaces. This requires support for
GL_ARB_texture_compression_rgtc from the OpenGL driver.
- When GLSL is supported, lighting for Direct3D 1-3 is more correct.
However, for most application the difference will only be very slight.
- The IDirect3DSwapChain9Ex interface is supported.
- OpenGL core contexts, OpenGL ES contexts, and multi-threaded OpenGL
command submission (known as "CSMT") have been added, however that
work is not finished yet.
== DirectDraw
- SetCooperativeLevel() works better, affecting DirectDraw exclusive
mode in particular.
- DirectDraw surface flipping is more correct. This affects applications
that use more than 1 back buffer in particular.
- DirectDraw palette handling is better supported. This mostly affects
older applications using 8-bpp display modes (but not exclusively.)
- "Client memory" surfaces are better supported, in particular related
to the handling of pitch and texture compression.
== Audio and video
- A Pulse Audio driver is implemented. It is selected automatically
when Pulse Audio is running.
- 5.1 surround sound is supported in DirectSound. Stereo is the
default, but other speaker configurations can be set through the
Audio tab in Winecfg.
- XAudio2 is implemented, based on the OpenAL Soft library.
- The OpenAL library defaults to the native version.
- The Video Mixing Renderer version 7 is implemented.
- AVI file encoding and compression is implemented.
== Kernel
- Wine can be configured to report the Windows version as 'Windows
8.1' and 'Windows 10'.
- Keyed event synchronization objects are implemented.
- The "init once" synchronization mechanism is supported.
- Condition variables are implemented.
- Slim Reader/Writer locks are implemented.
- Activation contexts are used for loading DLLs, type libraries, and
COM classes, avoiding the need for explicit registration.
- Windows devices support read and write operations in addition to I/O
controls. They can be remapped directly to existing Unix devices.
- Thread local storage is supported in dynamically loaded libraries.
- Process jobs are implemented.
- The Task Scheduler service is implemented.
- The UTF-7 encoding is supported.
- ATL thunk emulation supports a wider range of possible instructions.
- Process and thread affinity is supported even with a large number of
processors.
- Dynamic DST (Daylight Saving Time) is supported through the
registry. Timezone data is updated for a number of timezones.
- USER_SHARED_DATA access is emulated on x86-64 platforms.
- The new thread pool API is supported.
- OpenMP (parallel programming API) is implemented.
- Preliminary support for HID devices is implemented, but it's not
enabled yet.
== User interface
- There is an optional Start Menu in desktop mode, that can be enabled
on a per-desktop basis by setting "EnableShell" to "Y" under
HKCU\Software\Wine\Explorer\Desktops\<name>.
- The standard Open File dialog supports a drop-down menu for file
manipulations.
- 'My Documents' links to the XDG 'Documents' folder if it exists.
- Many more shell Known Folders are supported.
- Scrollbar theming is implemented. Theming of other controls also
works better.
- The Toolbar common control can save and restore its state.
== X11 driver
- X Drag & Drop protocol version 5 is supported.
- Flashing a window caption is implemented in the X11 driver using the
NET_WM_STATE_DEMANDS_ATTENTION style.
== OLE / COM
- OLE Storage files support file locking, and sizes larger than 4 GB.
- Type libraries are registered correctly on 64-bit setups.
- 32-bit type libraries can be loaded from 64-bit programs.
- The OLE data cache supports DIB images.
- The RPC interface to control Windows services is compatible with the
native version.
- OLE Accessible Objects are implemented for better accessibility support.
== Internet and networking
- The Gecko engine is updated to the version from Firefox 40. Many
more objects and properties are implemented in MSHTML.
- Internet proxies can be configured automatically.
- RPC over HTTP supports the NTLM and Negotiate authentication
schemes.
- The Web Services API is partially implemented.
- Download of Gecko and Mono add-ons can be canceled from the
progress dialog.
- Conditional compilation is supported in JavaScript.
- Arrays, math functions, and exception unwinding are implemented in
VBScript.
- Remote network shares can be configured using Samba's NetAPI library.
- The Packet Capture DLL is implemented.
- Network interface change notifications are implemented.
- IPv6 DNS addresses are supported in IphlpAPI.
- The Deflate content encoding is supported in Wininet.
- The TransmitFile API is implemented in Windows Sockets.
- The BITS file transfer service is better supported.
== Printing
- Vertical text is supported when printing through the PostScript driver.
- The PostScript driver generates standard glyph names when possible.
- Monochrome printers are better supported, in particular when
printing color images.
- Collation is supported in the PostScript driver.
== Miscellaneous
- Windows Management Instrumentation (WMI) implements several more
WBEM system classes.
- Applying installation patches is better supported in MSI.
- Hyperlink controls are supported in installers.
- More recent versions of the C/C++ runtimes are supported, including
the new UCRTBASE library. The old MSVCIRT C++ runtime is also
partially implemented.
- Version 9, 10, and 11 of ATL (Active Template Library) are
implemented.
- The Windows Scripting Runtime supports many more classes, including
file and folder collections and dictionaries.
- Writing XML files is implemented.
- The Invariant locale is supported.
== Built-in applications
- The 'taskmgr' application displays whether processes are running
under WoW64.
- The 'regedit' tool better supports import/export of registry files.
- The 'wineconsole' tool supports configuring the insert/overwrite
mode in the settings dialog.
== Known issues
- Since the support for OpenGL core contexts in WineD3D is not
complete enough yet, Direct3D 10 and 11 need to be supported in a
legacy context / the compatibility profile, which means that they
currently don't work on Mesa.
- Setting the PULSE_LATENCY_MSEC variable was sometimes necessary with
the Alsa audio driver, but it can cause trouble with the Pulse
driver. It is recommended to unset the variable.