Re: State management in D3D

2006-09-10 Thread Ivan Gyurdiev
I guess that seems like a large undertaking, and those are all doomed to 
failure.. but it doesn't have to be.


The key idea that I care about seems to be to move GL code from device.c 
into the data structure object, and figure out a way to apply a set of 
delayed states at draw time. We don't have to replace everything right 
now - we could have 2 coexisting data structures and slowly move things 
from one to the other, but I wanted to see if people agree with that idea.


I don't like the way things are done right now - Set* functions can do 
one of two things - record to a stateblock, or apply state. Then the 
stateblock calls the Set* functions itself when it's applied - seems 
very ugly to me [ and also in certain places we're forced to disable 
recording to get a state applied immediately using a Set* function ].





State management in D3D

2006-09-10 Thread Ivan Gyurdiev

State management in D3D... is currently kind of a mess.
Stefan D. posted a message about this some time ago, but I can't find it 
right now...


- some states are applied immediately (via Set* calls)
- some are applied at draw time (like shaders, textures, transforms, ...)
- some are recorded into a stateblock structure, and applied when the 
app says apply().

- the GL code is all over the place, tightly coupled to the d3d code.

===
There's a number of projects going on at the moment, from what I understand:

- Roderick is working on making wined3d -> wgl
- Stefan D. has expressed concern about multithreaded d3d (where  the 
D3D device state is shared, but not necessarily the GL one - or can GL 
contexts be shared between multiple threads?)
- I'm trying to get FBOs to work, where the FBO needs to be bound once 
both the render and stencil target have been assigned (that's 2 calls 
from the app in any order) - i.e I need those states to be applied in a 
delayed fashion, before draw
- Henri Verbeet wants multiple render target support added to that 
(meaning the FBO needs to be bound once *all* render targets are 
assigned in addition to the depth/stencil one).


All of the above have a common theme - better state management is 
needed, with more encapsulation, and better separation between D3D and GL.
So, let's come up with a plan, and try to implement it. How about we 
redesign the stateblock object like this:


- remove deltas. I.E. if a SetLightEnable() command is sent, fetch the 
light, enable it, then save the light back - store only state, and no 
deltas.
 This should make the recording stateblock (updateStateBlock) the same 
as the initial device stateblock, which stores states


- provide a uniform internal interface for accessing states inside the 
stateblock - like:

 SetState(stateblock, ID_XYZ, (void*) state_data);
 GetState(stateblock, ID_XYZ, (void**) state_data);
 CaptureState(stateblock, ID_XYZ);
 ApplyState(stateblock, ID_XYZ);

ID_XYZ could be an individual state, or a "trigger" keyword, which will 
refer to a whole group of states.

Those would be private functions in addition to the standard interface.

- provide a fn pointer table inside the stateblock [ which can be 
directed to OGL or WGL or AGL ],
 which, for each ID_XYZ, maps a get and set function using the same 
interface


- move all device.c GL code into those functions

- now all device.c Get* and Set* requests will do is:
  - error checking
  - recording into updateStateBlock
  - or writing to stateBlock (which may be applied later, at our 
discretion).


- apply() would just loop through all the IDs and call the corresponding 
function pointer if the states are marked dirty (we'll keep the 'dirty' 
field)


- capture() would do the same in the get* direction.

- new object can be instantiated per device, or per device per thread to 
address multithreading.

 It could have an associated glContext, and can be locked as necessary.

- it would use ideas from the d3d9 test framework for stateblock, except 
of course more competently written, and cleaner :)









Low-level coding

2006-09-10 Thread Aaron Slunt
Hi,I was interested in starting to play with wine and maybe even build a few functions for it...but then I realized that it's low-level coding, something I'm not familiar with (higher level is more of my expertise). Correct me if I'm wrong, I could be looking at the wrong files :S. Does anyone  have any good places to go to to learn about low-level coding, and afterwards coding for wine specifically?
Thanks.-- Tired of being hammered by spyware, or want to browse the internet in a whole new way? Download Firefox and enjoy a much better internet experience.
http://getfirefox.com/



Re: Making people aware about appdb and outdated Wine versions.

2006-09-10 Thread Nick Law



killertux killertux wrote:

Hello, I have problem...

It's know as dublication of effort. Basicly there are sites that 
"compeate" with appdb it
means HOWTOS, test result and everyting else are distributed in few 
thousands forums, wikis etc...


Solution is that Wine should advertice Wine AppDB so people would 
actully use it rather than
unoffical sites. So I would like to see some AppDB "adverticement" in 
winecfg.


Winecfg about section is one good place to inform wonders of appdb but 
even better would
be popup window when starting winecfg(at lest in first run) that 
informs about appdb.
Normal users obtain copy of Wine trought their package manager and 
that means they

do not know about appdb unless they they read it somewhere.

This change must be done in order to kill useless stuff like this:
http://forums.gentoo.org/viewtopic-t-496836.html

Second: Old version of Wine are still quite used because of package 
managers just
offers "stable" Wine versions over the "unstable" ones so I would like 
to see another
popup or warning in winecfg that informs user that their Wine is 
getting old...
so after specific number of days(from release of Wine version X) 
counter gives some

warnings about old Wine version.
  
I agree with your comments above however in addition having read the 
Gentoo thread you mention, I also see what the first comment is getting 
at. That it's very time consuming to find which apps have Platium or 
Gold Status with looking at every page & version in the AppDB. The APPDB 
is really lacking a STATS page. i.e. A page that shows the number of 
apps that have results reported where maybe 80% results are Platinum or 
gold etc and the ability to see what apps are classied as Platinum or 
Gold with drawling through thousands of appdb pages to find the Gold 
Apps. The Stats page should be fully automated requiring nobody to 
update it,  the system just calculates the stats from the user entered 
results at the results.


The Stats Page should include information like ...

1. Number of Applications.
2. Number of Applications with 100% of results reporting platinum 
status. Click here to see the > [LIST]
3. Number of Applications with >50% of results reporting platinum 
status. Click here to see the > [LIST]
4. Number of Applications with 100% of results reporting gold status. 
Click here to see the > [LIST]
5. Number of Applications with >50% of results reporting gold status. 
Click here to see the > [LIST]
6. Number of Applications with 100% of results reporting Bronze status. 
Click here to see the > [LIST]
7. Number of Applications with >50% of results reporting Bronze status. 
Click here to see the > [LIST]
8. Number of Applications with 100% of results reporting garbage status. 
Click here to see the > [LIST]
9. Number of Applications with >50% of results reporting garbage status. 
Click here to see the > [LIST]

10. Number of apps with no results.
11. Which Distros are used the most > Click here to see the graph > [GRAPH]
12. List Apps that are the most active as determined from the number of 
comments. Click here to see the [LIST]

...
...
...
etc


You could even have the percentage selectable rather than just 50% or 100%.

A further page with graphs showing trends would also be useful. You 
could instantly then see more and more APPS getting Gold or Platinum 
status over time ( or not )


the [LIST] should be the Application Name and you should be able to 
click on it to take you straight to the page..


...
:-) Sounds like a neat little project for somebody into PHP & Mysql

Regards
Nick Law
WoW AppDB  SM





Re: Jonathan Ernst : winecfg: French translation update.

2006-09-10 Thread Jonathan Ernst
Le dimanche 10 septembre 2006 à 20:56 +0200, Frank Richter a écrit :
> On 10.09.2006 10:28, Alexandre Julliard wrote:
> > -LTEXT   "This library is free software; you can redistribute 
> > it and/or modify it under the terms of the GNU Lesser General Public 
> > License as published by the Free Software Foundation; either version 2.1 of 
> > the License, or (at your option) any later version.",
> > +LTEXT   "Cette biblioth�que est un logiciel libre�; vous 
> > pouvez la redistribuer et/ou la modifier conform�ment aux dispositions de 
> > la Licence Publique G�n�rale GNU, telle que publi�e par la Free Software 
> > Foundation�; version 2.1 de la licence, ou encore (� votre choix) toute 
> > version ult�rieure."
> >  IDC_STATIC,119,44,124,72
> 
> It seems that all (L)GPL translations are marked "unofficial" by the
> FSF. That's why I though it wouldn't be bad to put in a translated "This
> library is ..." but keep the original English notice as well for the
> German translation.
> 
> -f.r.
>

Hi Frank,

At least in the GNOME translation project we are now translating these
legal things as well even if they are "unofficial". 

By the way, in that case, the license is not translated, only the fact
that Wine is free software and that you have to read the LGPL, so I
think that we don't need to put both French and English text.

Regards,

Jonathan





signature.asc
Description: Ceci est une partie de message	numériquement signée



Re: Re: Making people aware about appdb and outdated Wine versions.

2006-09-10 Thread Matt Finnicum

On 9/10/06, Tom Wickline <[EMAIL PROTECTED]> wrote:

If they have any common sense about them they will see that the
application database is advertised on the winehq front page and go
there on there own. You get out of Wine what you put into it!


Most users, as far as I can tell, never goto winehq. They get wine
from their distro's package manager, and then when it breaks head to
their distro's support / community.
- Hide quoted text -


As for people contributing to third party forum's and wiki's, that is
a double edged sword its nice that they contribute there findings so
others can play a game or use a app. I personally don't feel we should
discourage people from posting there findings to other sites.

But at the same time it would be nice if they contributed that
information to our wiki or application database.





Page Fault when try to start Railroad Tycoon

2006-09-10 Thread Roland Kaeser
HelloI'm currently on testing my apps for 0.9.20 and getting the following error when try to run a cleanly installed RailRoad Tycoon 3 (on new wine dir). Can somebody help me to figure out the problem? I use a Matrox Parhelia with Tripple-Monitor Configuration.ThanksRoland Kaesererr:x11drv:X11DRV_CreateWindow invalid window width 1919249263err:x11drv:X11DRV_CreateWindow invalid window height 1952540704err:ole:CoInitializeEx Attempt to change threading model of this apartment from multi-threaded to apartment threadedfixme:d3d:IWineD3DDeviceImpl_CreateAdditionalSwapChain The app requests more than one back buffer, this can't be supported properly. Please configure the application to use double buffering(=1 back buffer) if
 possibleerr:x11settings:X11DRV_ChangeDisplaySettingsEx No matching mode found! (desktop)fixme:d3d:IWineD3DDeviceImpl_GetAvailableTextureMem (0x18b400) : stub, simulating 64MB for now, returning 64MB leftfixme:d3d:IWineD3DDeviceImpl_ValidateDevice (0x18b400) : stubfixme:d3d:IWineD3DDeviceImpl_ValidateDevice (0x18b400) : stubwine: Unhandled page fault on read access to 0x1874 at address 0x7e03d9c1 (thread 000e), starting debugger...WineDbg starting on pid 0xdUnhandled exception: page fault on read access to 0x1874 in 32-bit code (0x7e03d9c1).Register dump: CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033 EIP:7e03d9c1 ESP:003100a8 EBP:0001 EFLAGS:00210206(   - 00  - RIP1) EAX:1860 EBX:7e3b6efc ECX:7c29daf0 EDX: ESI: EDI:7c2957e0Stack dump:0x003100a8:  7df65d78 7c29da6c 7c29ee94 0x003100b8:  3f80 7e04ac27
 00310340 0x003100c8:  7e3b6efc 7c2bf3d0 7e40b7ac 003102240x003100d8:  7dfb58ba 7c2957e0 7c2c11ec 7e1f5fb50x003100e8:  0001   7e3b6efc0x003100f8:   7e3b6efc  fixme:ntdll:RtlNtStatusToDosErrorNoTeb no mapping for c119Backtrace:=>1 0x7e03d9c1 in libgl.so.1 (+0x1199c1) (0x7e03d9c1)  2 0x (0x)0x7e03d9c1: movl    0x14(%eax),%edxModules:Module  Address Debug info  Name (91 modules)PE  40-da2000   Deferred    rt3cPE  2110-21164000   Deferred   
 mss32PE  3000-30072000   Deferred    binkw32ELF 7bf0-7bf03000   Deferred    ELF 7d543000-7d559000   Deferred    midimap  \-PE  7d55-7d559000   \   midimapELF 7d57f000-7d597000   Deferred    msacm32  \-PE  7d59-7d597000   \  
 msacm32ELF 7d597000-7d5d7000   Deferred    wineoss  \-PE  7d5a-7d5d7000   \   wineossELF 7d6ed000-7d6f7000   Deferred    libnss_files.so.2ELF 7d6f7000-7d81d000   Deferred    libcrypto.so.0.9.8ELF 7d81d000-7d85a000   Deferred    libssl.so.0.9.8ELF 7d85a000-7d878000   Deferred    libcups.so.2ELF
 7d90d000-7d93f000   Deferred    uxtheme  \-PE  7d91-7d93f000   \   uxthemeELF 7d941000-7d95d000   Deferred    imm32  \-PE  7d95-7d95d000   \   imm32ELF 7d9a3000-7d9a6000   Deferred    libxrandr.so.2ELF 7d9a6000-7d9ae000   Deferred    libxrender.so.1ELF
 7d9ae000-7d9b3000   Deferred    libxfixes.so.3ELF 7d9b3000-7d9bc000   Deferred    libxcursor.so.1ELF 7d9bc000-7d9d9000   Deferred    ximcp.so.2ELF 7d9d9000-7d9db000   Deferred    xlcutf8load.so.2ELF 7d9db000-7da6a000   Deferred    winex11  \-PE  7d9f-7da6a000   \   winex11ELF 7dc36000-7dc55000  
 Deferred    libexpat.so.1ELF 7dc55000-7dc8e000   Deferred    libfontconfig.so.1ELF 7dc8e000-7dca   Deferred    libz.so.1ELF 7dca-7dd0d000   Deferred    libfreetype.so.6ELF 7dd0d000-7dd27000   Deferred    wsock32  \-PE  7dd1-7dd27000   \   wsock32ELF 7dd27000-7dd4   Deferred   
 version  \-PE  7dd3-7dd4   \   versionELF 7dd4-7dd6d000   Deferred    ws2_32  \-PE  7dd5-7dd6d000   \   ws2_32ELF 7dd6d000-7ddb9000   Deferred    dsound  \-PE  7dd8-7ddb9000   \   dsoundELF 7ddb9000-7ddf   Deferred   
 dinput  \-PE  7ddc-7ddf   \   dinputELF 7deae000-7df24000   Deferred    libglu.so.1ELF 7df24000-7e40c000   Export  libgl.so.1ELF 7e40c000-7e503000   Deferred    libx11.so.6ELF 7e503000-7e511000   Deferred    libxext.so.6ELF 7e511000-7e529000   Deferred    libice.so.6ELF
 7e529000-7e532000   Deferred    libsm.so.6ELF 7e533000-7e547000   Deferred    lz32  \-PE  7e54-7e547000   \   lz32ELF 7e547000-7e55f000   Deferred    dinput8  \-PE  7e55-7e55f000   \   dinput8ELF 7e55f000-7e613000   Deferred    wined3d  \-PE  7e57-7e613000 

Re: Re: Making people aware about appdb and outdated Wine versions.

2006-09-10 Thread Tom Wickline

On 9/10/06, killertux killertux <[EMAIL PROTECTED]> wrote:

OK, if not popup then fixme or someting like if there is problems they
can go
to Wine AppDB to get some compatibility help.



If they have any common sense about them they will see that the
application database is advertised on the winehq front page and go
there on there own. You get out of Wine what you put into it!

As for people contributing to third party forum's and wiki's, that is
a double edged sword its nice that they contribute there findings so
others can play a game or use a app. I personally don't feel we should
discourage people from posting there findings to other sites.

But at the same time it would be nice if they contributed that
information to our wiki or application database.




Re: Re: Making people aware about appdb and outdated Wine versions.

2006-09-10 Thread killertux killertux
OK, if not popup then fixme or someting like if there is problems they 
can go
to Wine AppDB to get some compatibility help.

>> --SNIP--
>> Second: Old version of Wine are still quite used because of package
>> managers just offers "stable" Wine versions over the "unstable" 
ones so I would like
>> to see another popup or warning in winecfg that informs user that 
their Wine is
>> getting old... so after specific number of days(from release of 
Wine version X)
>> counter gives some warnings about old Wine version.
>
>Having a popup (or anything that requires user interaction) could get
>really irritating - there are situations where people would use an
>older version of wine on purpose. Like if a large organization uses 
it
>to run one specific app, and has a specific version that works
>perfectly, they might not have any reason to update.
>
>How about a fixme when wine is run, informing them that the version
>they are running was released X long ago, and that if they have any
>issues they should try a newer version?
>
>It'd be nice, too, if people then reported bugs with that on the top
>of the output - it could save a lot of work chasing down already-
fixed
>issues.
>
>--Matt
>






Re: Making people aware about appdb and outdated Wine versions.

2006-09-10 Thread Matt Finnicum

--SNIP--
Second: Old version of Wine are still quite used because of package
managers just offers "stable" Wine versions over the "unstable" ones so I would 
like
to see another popup or warning in winecfg that informs user that their Wine is
getting old... so after specific number of days(from release of Wine version X)
counter gives some warnings about old Wine version.


Having a popup (or anything that requires user interaction) could get
really irritating - there are situations where people would use an
older version of wine on purpose. Like if a large organization uses it
to run one specific app, and has a specific version that works
perfectly, they might not have any reason to update.

How about a fixme when wine is run, informing them that the version
they are running was released X long ago, and that if they have any
issues they should try a newer version?

It'd be nice, too, if people then reported bugs with that on the top
of the output - it could save a lot of work chasing down already-fixed
issues.

--Matt




Making people aware about appdb and outdated Wine versions.

2006-09-10 Thread killertux killertux
Hello, I have problem...

It's know as dublication of effort. Basicly there are sites that 
"compeate" with appdb it
means HOWTOS, test result and everyting else are distributed in few 
thousands forums, wikis etc...

Solution is that Wine should advertice Wine AppDB so people would 
actully use it rather than
unoffical sites. So I would like to see some AppDB "adverticement" in 
winecfg.

Winecfg about section is one good place to inform wonders of appdb but 
even better would
be popup window when starting winecfg(at lest in first run) that 
informs about appdb.
Normal users obtain copy of Wine trought their package manager and 
that means they
do not know about appdb unless they they read it somewhere.

This change must be done in order to kill useless stuff like this:
http://forums.gentoo.org/viewtopic-t-496836.html

Second: Old version of Wine are still quite used because of package 
managers just
offers "stable" Wine versions over the "unstable" ones so I would like 
to see another
popup or warning in winecfg that informs user that their Wine is 
getting old...
so after specific number of days(from release of Wine version X) 
counter gives some
warnings about old Wine version.




Re: Jonathan Ernst : winecfg: French translation update.

2006-09-10 Thread Frank Richter
On 10.09.2006 10:28, Alexandre Julliard wrote:
> -LTEXT   "This library is free software; you can redistribute it 
> and/or modify it under the terms of the GNU Lesser General Public License as 
> published by the Free Software Foundation; either version 2.1 of the License, 
> or (at your option) any later version.",
> +LTEXT   "Cette biblioth�que est un logiciel libre�; vous pouvez 
> la redistribuer et/ou la modifier conform�ment aux dispositions de la Licence 
> Publique G�n�rale GNU, telle que publi�e par la Free Software Foundation�; 
> version 2.1 de la licence, ou encore (� votre choix) toute version 
> ult�rieure."
>  IDC_STATIC,119,44,124,72

It seems that all (L)GPL translations are marked "unofficial" by the
FSF. That's why I though it wouldn't be bad to put in a translated "This
library is ..." but keep the original English notice as well for the
German translation.

-f.r.





Can't compile wine at Linux-ppc

2006-09-10 Thread Peter Lemenkov

Hello, All!

The last wine version which at least compiles fine is 0.9.17.

Since then I can't even compile Wine. It fails with the next message


../../tools/widl/widl -I. -I. -I../../include -I../../include
-D__WINESRC__ -D_SHDOCVW_  -t -T shdocvw_v1.tlb shdocvw_v1.idl
warning: create_msft_typeinfo: ignoring attr 46
warning: create_msft_typeinfo: ignoring attr 46
warning: add_func_desc: ignoring attr 5
error: encode_type: VT_USERDEFINED - unhandled type 17
make[2]: *** [shdocvw_v1.tlb] Error 2
make[2]: Leaving directory `/home/petro/work/projects/wine/dlls/shdocvw'
make[1]: *** [shdocvw] Error 2
make[1]: Leaving directory `/home/petro/work/projects/wine/dlls'
make: *** [dlls] Error 2



I have no clue how to debug this situation, so I wold ask you: how to
fix this strange situation?
--
With best regards!