<?xml version="1.0" ?>
<kc>

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="282" date="08 Jul 2005 00:00:00 -0800" />
<intro> <p>This is the 282nd issue of the Wine Weekly News publication.
Its main goal is to get lost in the woods. It also serves to inform you of what's going on around Wine. Wine is an open source implementation of the Windows API on top of X and Unix.  Think of it as a Windows compatibility layer.  Wine does not require Microsoft Windows, as it is a completely alternative implementation consisting of 100% Microsoft-free code, but it can optionally use native system DLLs if they are available.   You can find more info at <a href="http://www.winehq.org">www.winehq.org</a></p> </intro>
<stats posts="339" size="1319" contrib="85" multiples="52" lastweek="34">

<person posts="27" size="92" who="James Liggett" />
<person posts="26" size="77" who="Frank Richter" />
<person posts="25" size="98" who="Uwe Bonnes" />
<person posts="17" size="52" who="Felix Nawothnig" />
<person posts="15" size="34" who="Alexandre Julliard" />
<person posts="14" size="44" who="Tom Wickline" />
<person posts="14" size="43" who="Robert Shearman" />
<person posts="11" size="42" who="Vijay Kiran Kamuju" />
<person posts="8" size="30" who="Oliver Stieber" />
<person posts="8" size="21" who="Mike McCormack" />
<person posts="8" size="21" who="Detlef Riekenberg" />
<person posts="7" size="28" who="(wino)" />
<person posts="7" size="27" who="Robert Lunnon" />
<person posts="8" size="34" who="Marcus Meissner" />
<person posts="6" size="28" who="Jonathan Ernst" />
<person posts="6" size="21" who="Martin Fuchs" />
<person posts="6" size="18" who="Kevin Koltzau" />
<person posts="5" size="16" who="Kuba Ober" />
<person posts="5" size="15" who="Dmitry Timoshkov" />
<person posts="4" size="29" who="Eric Pouech" />
<person posts="4" size="17" who="Stefan Leichter" />
<person posts="4" size="11" who="Andreas Mohr" />
<person posts="3" size="150" who="Jose Alberto Reguero" />
<person posts="3" size="12" who="Maarten Lankhorst" />
<person posts="3" size="11" who="Marcelo Duarte" />
<person posts="3" size="10" who="Jules Richardson" />
<person posts="3" size="9" who="Ivan Gyurdiev" />
<person posts="3" size="9" who="Tony Lambregts" />
<person posts="3" size="9" who="Mike Hearn" />
<person posts="3" size="9" who="Jeremy Newman" />
<person posts="3" size="8" who="Hans Leidekker" />
<person posts="3" size="7" who="Nick Burns" />
<person posts="3" size="7" who="Steven Edwards" />
<person posts="2" size="27" who="Raphael" />
<person posts="2" size="8" who="Andrew Neil Ramage" />
<person posts="2" size="7" who="Ralf Reiterer" />
<person posts="2" size="6" who="Holly Bostick" />
<person posts="2" size="6" who="Adam D. Moss" />
<person posts="2" size="6" who="Jacek Caban" />
<person posts="2" size="6" who="Wesley Parish" />
<person posts="2" size="6" who="Stefan D&#246;singer" />
<person posts="2" size="6" who="=?iso-8859-1?Q?Peter_=C5strand?=" />
<person posts="2" size="5" who="Gerold J. Wucherpfennig" />
<person posts="2" size="5" who="Chris Morgan" />
<person posts="2" size="5" who="Hiji" />
<person posts="2" size="5" who="Dimi Paun" />
<person posts="2" size="5" who="Frank Richter" />
<person posts="2" size="5" who="Juan Lang" />
<person posts="2" size="5" who="Vitaliy Margolen" />
<person posts="4" size="8" who="Paul Vriens" />
<person posts="1" size="24" who="(wine-devel.1.tracyanne)" />
<person posts="1" size="7" who="Ray" />
<person posts="1" size="6" who="Martin Wolf" />
<person posts="1" size="5" who="Sijmen Mulder" />
<person posts="1" size="5" who="Dan Sawyer" />
<person posts="1" size="3" who="Christoph" />
<person posts="1" size="3" who="Chris Morgan" />
<person posts="1" size="3" who="Pierre d'Herbemont" />
<person posts="1" size="3" who="Scott Ritchie" />
<person posts="1" size="3" who="Evil" />
<person posts="1" size="3" who="Brian Vincent" />
<person posts="1" size="3" who="Sylvain Petreolle" />
<person posts="1" size="3" who="Huw D M Davies" />
<person posts="1" size="3" who="Vincent B&#233;ron" />
<person posts="1" size="3" who="Jakob Eriksson" />
<person posts="1" size="3" who="(peter)" />
<person posts="1" size="3" who="Anderson Lizardo" />
<person posts="1" size="3" who="David D. Hagood" />
<person posts="1" size="3" who="=?ISO-8859-1?Q?Alex_Villac=ED=ADs_Lasso?=" />
<person posts="1" size="3" who="Sascha Cunz" />
<person posts="1" size="3" who="Roger Young" />
<person posts="1" size="2" who="Gerald Pfeifer" />
<person posts="1" size="2" who="J. Grant" />
<person posts="1" size="2" who="Ge van Geldorp" />
<person posts="1" size="2" who="Jan Schiefer" />
<person posts="1" size="2" who="Maxime Bellenge" />
<person posts="1" size="2" who="Rene Rebe" />
<person posts="1" size="2" who="Joe Baker" />
<person posts="1" size="2" who="Hajime Segawa" />
<person posts="1" size="2" who="Dan Kegel" />
<person posts="1" size="2" who="Lionel Ulmer" />
<person posts="1" size="2" who="Troy Rollo" />

</stats>
<section 
	title="News: StartCom Linux ML 4.0.4"
	subject="News"
	archive="http://www.startcom.org/index.php?lang=en&amp;app=40"
	posts="1"
	startdate="01 Jul 2005 00:00:00 -0800"
	enddate="08 Jul 2005 00:00:00 -0800"
>
<topic>News</topic>
<mention>News</mention>

<p>A few weeks ago we mentioned a Red Hat based distribution called 
<a href="http://www.startcom.org">StartCom
Linux</a>.  This week they released a new version of their Multimedia Edition, 
<a href="http://www.startcom.org/index.php?lang=en&amp;app=40">ML-4.0.4</a>,
with a new version of Wine.  They've put together their own RPM's, but
don't be fooled by the 0.99 version number.  What you're actually getting
is wine-20050524.  
</p>
</section>
<section 
	title="DirectX9 Work"
	subject="DirectX9 Work"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/06/0.html"
	posts="20"
	startdate="12 Jun 2005 00:00:00 -0800"
	enddate="07 Jul 2005 00:00:00 -0800"
>
<topic>DirectX</topic>
<mention>Max</mention>
<mention>Jeremy White</mention>
<mention>cvs</mention>

<p>Oliver Stieber has been busy submitting DirectX patches to catch up
on some of the work he's done over the past six months or so.  To give
a summary of what's been worked on, here's what Oliver mentioned in
his recent patches:</p>

<p>1.</p>
<quote who="Oliver Stieber"><p>
This patch agains winecvs 2005-05-13 adds support for
Stateblocks, sampler states and swapchains to wined3d
There are a few spelling fixes and tidyups,
and a fix for some errors with cubtexture introduced
in the interface seperation patch.
</p><p>
With this patch the following demos now run correctly:
</p><p>
from <a href="http://www.codesampler.com/dx9src.htm">
http://www.codesampler.com/dx9src.htm</a>
<ul>
<li>dx9_primitive_types</li>
<li>dx9_texture</li>
<li>dx9_vertex_data</li>
<li>dx9_multitexture</li>
<li>dx9_texture_mipmapping</li>
<li>dx9_indexed_geometry</li>
<li>dx9_texture_filtering</li>
<li>dx9_initilization</li>
<li>dx9_texture_subloading</li>
<li>dx9_offscreen_rendering</li>
<li>dx9_1pass_emboss_bump_mapping</li>
<li>dx9_2pass_emboss_bump_mapping</li>
<li>dx9_tokamak_chailIGHTSn</li>
<li>dx9_effect_simple</li>
<li>dx9_texture_dot3_blending</li>
<li>dx9_point_light</li>
<li>dx9_spot_light</li>
<li>dx9_alpha_blending_texture</li>
</ul></p><p>

from <a href="http://triplebuffer.devmaster.net/tutorials.php">
http://triplebuffer.devmaster.net/tutorials.php</a>
<ul>
<li>tb_dx9_04</li>
<li>tb_dx9_06</li>
<li>tb_dx9_07</li>
<li>tb_dx9_08</li>
<li>tb_dx9_10</li>
<li>BumpMapping</li></ul></p><p>


from
<a href="http://www.clootie.ru/delphi/download_dx90.html#Direct3D">
http://www.clootie.ru/delphi/download_dx90.html#Direct3D</a><ul>
<li>CreateDevice</li>
<li>Verticies</li>
<li>Matricies</li>
<li>Textures</li>
<li>Lights</li>
</ul>
</p></quote>

<p>2.</p>
<quote who="Oliver Stieber"><p>
This patch adds support for Vertex declarations.
</p><p>
The parsing of vertex declarations has been tidied up,
d3d8 declarations are
converted into d3d9 declarations so that only one type
of declaration need to
be managed in the code. Vertex declarations are no
longer parsed into FVF's
since the fvf doesn't support everything vertex
declarations support.
</p><p>
There is a minor issue in that vertex shader constants
provided by d3d8 declarations aren't
parsed properly yet, but this will be impmeted with
vertx shaders.
</p></quote>

<p>3.</p>
<quote who="Oliver Stieber"><p>
this patch renames 
<ul>
_D3DCAPS9.MaxPixelShaderValue;</ul></p><p>
to the correct 
<ul>
_D3DCAPS9.PixelShader1xMaxValue;</ul></p><p>

To my knowlage this doesn't fix anything but does
enable code with the correct name to compile properly.
</p></quote>

<p>4.</p>
<quote who="Oliver Stieber"><p>
This patch adds relay tracing to texture, 
WINEDEBUG=d3d9 will now display the message 'relay'
whenever any member of IDirect3DTexture9 is called.
</p></quote>

<p>5.</p>
<quote who="Oliver Stieber"><p>
This patch disables the creation of invalid vertex
declarations in d3d9 preventing some applications from
crashing.
</p><p>
the patch will be superseded as soon as additions to
wined3d make it into cvs.
</p></quote>

<p>6.</p>
<quote who="Oliver Stieber"><p>
 This patch causses d3d9 to call wined3d for
GetDirect3D instead of using the ->direct3D instance,
which is no longer valid.
</p></quote>

<p>7.</p>
<quote who="Oliver Stieber"><p>
  This patch mostly implements swapchains in
 wined3d.
</p><p> 
 additionally a couple of minor issues that prevented
 anything from running have been fixes.
</p><p> 
 the non-power2 texture check in wined3d/device.c has
 been changed to ignore rendertargets
</p><p> 
 direct3d is no longer deleted in d3d9/device.c,
 because d3d9/device.c no longer holds a reference to
 a direct3d instance.
</p></quote>

<p>8.</p>
<quote who="Oliver Stieber"><p>
This patch tidies up a few texture bugs
<ul>
    <li>Makes all newly created surfces dirty, so that
they are loaded properly the first time around.</li>
    <li>Replaces some calls to cubetexture in basetexture
to calls to basetexture.</li>
    <li>Checks that the level isn't out of bounds in calls
to texture.</li></ul>
</p></quote>

<p>9.</p>
<quote who="Oliver Stieber"><p>
This patch adds support for samplers to wined3d, and
switches from using d3d9 constants to wined3d
constants so that there's no recursive dependencies
(and so that d3d8 doesn't need to know about the d3d9
constants)
</p><p>
Also fixed appended a \n onto the end of a trace call
in BaseTexture and Resource cleanup.
</p><p>
Note: The code for managing sampler and texture states
has been re-written in the current wined3d patch, the
new changes don't appear in this patch as other
architecture changes are required that are not yet stable.
</p></quote>

<p>10.</p>
<quote who="Oliver Stieber"><p>
   This patch changes the way caps are sent between
d3d9/d3d8 and wined3d to make it easier for wined3d to
support additional versions of Direct3D.
</p></quote>

<p>11.</p>
<quote who="Oliver Stieber"><p>
This patch implements rendertargets using either
textures, swapchains or standalone surfaces.
</p><p>
This patch is only dependand on winecvs but.....
</p><p>
When applying this patch along with the stateblock
patch the following lines in wined3d/stateblock.c :
</p></quote>

<p>12.</p>
<quote who="Oliver Stieber"><p>

This patch removes the old render target code from
d3d9 and replaces the
render target calls with relays to wined3d.
</p></quote>

<p>13.</p>
<quote who="Oliver Stieber"><p>
This patch against wine-cvs adds support adds support
for vertex decalrations to wined3d and d3d9.
</p></quote>

<p>14.</p>
<quote who="Oliver Stieber"><p>
This patch makes sure that the OpenGL visual created
for a window has a stencil buffer.
This is a requirement for stencil buffer support in d3d.
</p></quote>

<p>15.</p>
<quote who="Oliver Stieber"><p>
This patch relays all the pixel shader calls from d3d9 to wined3d
</p></quote>

<p>16.</p>
<quote who="Oliver Stieber"><p>
This patch check for a NULL vertex declaration being sent to 
IWineDeviceD3D_SetVertexDeclaration
</p><p>
This patch, combined with the other wined3d and d3d9 patches already sent in 
is enough to get Pirates working OOTB.
Pixelshaders need to be turned on in the registry or you'll have problems with 
missing textures.
Turn on 'disable shaders' in pirates settings, and turn down the detail. 
(don't worry vertex buffer objects bring the frame rate up to something more 
desirable).
</p></quote>

<p>That sound you hear is Jeremy White furiously applying patches trying
to get his copy of Pirates! to run.  </p>

</section>
<section 
	title="winecfg Usage Notes"
	subject="Re: [Wine]june 2005 release and 'registry' ?"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/07/0294.html"
	posts="9"
	startdate="08 Jul 2005 00:00:00 -0800"
	enddate="10 Jul 2005 00:00:00 -0800"
>
<topic>Configuration</topic>
<p>Dan Sawyer wanted to know how to manage DLL overrides now that we
don't have a config file:</p>
<quote who="Dan Sawyer"><p>
 The release notes state config file control has been moved to the registry 
 and that winecfg is active.  winecfg does not seem to recognize dll overrides.
 Has anyone else seen this? If so were you able to work around it?</p>
</quote>

<p>I agreed it wasn't really easy to figure out and described how it works:</p>
<quote who="Brian Vincent"><p>
What may not be obvious is the "Applications" tab in winecfg is tied
to the other tabs.  We should probably add a sentence in the
description of that tab to briefly explain it links to other ones
(inc. "Graphics").  In fact, I'm procrastinating, so maybe I'll just
try to submit a patch for that.
</p><p>
So if you want to change systemwide overrides:
<ol>
<li> Select "Default Settings" in the Applications tab.</li>
<li> Then move to the "Libraries" tab and enter the name of the DLL in
"New override" box, such as "msi.dll" and click on "Add".</li>
<li> "Edit" the load order as necessary in the box below.</li></ol></p><p>

If you want to change the override for one application, "Add" the new
application in the "Applications" tab, select it on that tab, and then
move to "Libraries" to create an override.  If you update to the
latest CVS you'll see a different Libraries tab than what was in
wine-20050628 and it follows what I described above.  The layout is
different in wine-20050628, but it's essentially the same concept.
</p></quote>

<p>Felix Nawothnig thought the design of winecfg could be better:</p>
<quote who="Felix Nawothnig"><p>


The current design is totally braindead from a usability standpoint:
<ul>
<li> As you pointed out it's not very intuitive that selecting an item in
  the first tab affects the semantics of the other tabs (even if it
  would be documented).</li>

<li> It's not clear which settings are global-only - we could disable the
  controls but it would still be confusing IMHO. Also the drives tab
  will probably never contain any per-app settings so we would have to
  disable the whole tab. Silly.</li>

<li> All per-app settings really need exactly one more option - "don't
  override" (inherit from global). This is not doable with the current
  design.</li></ul></p><p>

I'll submit a preliminary patch (introducing the not yet configurable
DSound settings) showing how I think this should be done later today.</p>
</quote>

<p>The discussion moved over to IRC and Mike Hearn wrote a summary
of that on wine-devel:</p>
<quote who="Mike Hearn"><p>

Felix and I talked this stuff over on IRC, I think we came to some
understanding on where winecfg is going and why it's designed the way it
is.
</p><p>
For everybody: generally, we should resist the temptation to do yet more
UI overhauls. Yes, the linked tabs thing is not ideal. It's more an
artifact of the Property Sheet control than anything else. However, a few
things which are less ideal are:
<ol>
<li> Treeviews: tried, didn't work very well. Treeviews have generally poor
  usability anyway</li>

<li> Tri-state checkboxes: not really clear what the third state means, but
  for now it may be a quick fix</li>

<li> Opening up new windows for each app: hard to implement in the code.</li>
</ol>
</p><p>
A much better way forward is simply to fix the damn bugs that winecfg
settings invariably exist to work around :)
</p><p>
Eg, even "Windows Version" will hopefully be fixed sometime later this
year (?) by switching us to 2K/XP mode by default and by nailing the last
DCOM problems. Desktop mode will eventually (I hope) become the
"winedesktop" program that was done years ago, I'm not sure what AJ plans
are here though.
</p><p>
Eventually nobody should have to use winecfg for anything. Let's spend our
time fixing the bugs and increasing automation rather than arguing about
the best way to represent a list of hacks in the UI :)
</p></quote>

<p>Alexandre replied to mention the Windows version should change
soon, sometime before Wine 0.9 (we're shooting for September 30th.)  
With regards to the winedesktop program, it's going to become part
of the as-yet unseen Explorer process that Alexandre is currently
working on.  </p>

</section>
<section 
	title="Printers and Network Folders"
	subject="Re: shell32: Printers folder"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/07/0253.html"
	posts="3"
	startdate="07 Jul 2005 00:00:00 -0800"
	enddate="08 Jul 2005 00:00:00 -0800"
>
<p>Huw Davies submitted a patch a while ago to add a special Printers
folder to Wine to match the folder of the same name on Windows.  It
was never committed and this week Detlef Riekenberg wanted to know why.
Huw explained the problem:</p>
<quote who="Huw Davies"><p>
I think Alexandre didn't want every special folder to have its own
implementation.  Mike also has a network neighbourhood folder that has
the same problems.  Basically, a lot of the shell folder code needs to
be tidied up with all of these special folder integrated into it.</p></quote>
<p>Detlef replied:</p>
<quote who="Detlef Riekenberg"><p>
I See, but I don't see any comment from Alexandre.
We need even more Window-handling in shell32.dll
See my stub for Printers_RegisterWindowW.
(Printer Properties)
</p><p>
Together with the other special Folders we have a big Part of
explorer.exe ready.</p></quote>
</section>
<section 
	title="Compressor for Cabinet.DLL"
	subject="cabinet.dll dev. - Using external compression libraries"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/07/0203.html"
	posts="3"
	startdate="06 Jul 2005 00:00:00 -0800"
>
<topic>Integration</topic>
<mention>cvs</mention>

<p>Gerold Wucherpfennig wanted to know how to go about adding some 
external code to cabinet.dll:</p>
<quote who="Gerold Wucherpfennig"><p>
I'd like to use an LGPL licensed LZX compressor for the compression part of
cabinet.dll. What's the best way to accomplish this?
<ol>
<li> copy and pasting the code as required.</li>
<li> dynamically loading an elf library at runtime</li>
<li> do configure checks at ./configure and link statically</li>
<li> do the same and link dynamically</li>
<li> checkin a windows-version of this LZX compressor to wine cvs and use 
  that at runtime.</li>
</ol></p><p>
Web site:
<ul><a href="http://www.speakeasy.org/~russotto/chm/">
http://www.speakeasy.org/~russotto/chm/</a></ul></p></quote>

<p>Steven Edwards voted for checking in the Windows version of the
compressor and explained,
<quote who="Steven Edwards">

If its not too big I would rather go this route to make it less trouble 
to share the dll with ROS.
</quote></p>

<p>Dan Kegel agreed including it with the Wine source was the way to go,
<quote who="Dan Kegel">
I had a look at the source for this compressor.
It's pretty small.
I recommend unpacking lzxcomp.tar.gz right into dlls/cabinet
and simply using the source files completely unchanged
if possible.</quote> </p>


</section></kc>
