DirectDrawRenderer=opengl - screen size changeable for final rendering?

Stefan Dösinger stefandoesinger at gmx.at
Thu Feb 8 16:19:19 CST 2007


> thats the point. i dont know how wine handles the ddraw-over-opengl
> scenario. i just had very blury graphics in JA2. nothing to wonder
> about as i assume at least one quad is drawn with the image as texture.
> so the filtering kicks in and voila we have bad image quality.
No, I think opengl ddraw rendering is still pretty buggy. I wrote the code to 
do it mainly for Direct3D7 games which blit their HUD onto the screen using 
DirectDraw blitting calls. I tested it with Prince of Persia 3D, Swat 3 and 
Battlezone 2. I have some fixes in my patch list I'm going to send in the 
next days to fix some readback bugs. (Half-Life 2 uses the blitting code to 
make screenshots and savegame images). Furthermore partial render target 
locking is completely broken in git, I have fixes for that too.

> assuming that my "render a quad" theory is right it would work to place
> a key in the registry, where i would tell the ogl-ddraw-renderer to use
> my res instead of the one the apps wants.
OpenGL DirectDraw rendering renders by setting up the projection matrix to 
have 0/0 at the top left of the screen and with/height at the bottom right. 
Then it calculates the source coordinates with Xsrc / Source->pow2Width and 
Ysrc / Source->pow2Height and draws a quad.

So yes, in theory we could scale things up by just setting a higher 
resolution. One could get nicer graphics with linear / bilinear / anisotropic 
texture filtering, but there are some issues:

* Color keying: Filtering will change the color values slightly, so mess up 
color keying
* Mouse input: We'd have to do the same for received mouse events
* readback: If the application locks the render target or reads it back into 
an offscreen texture, you have to undo filtering and scaling

It will be easier to just use multisampling on the final rendering. The nvidia 
driver has such an option to force multisampling. But that is I think 
simmilar to what your tft does. Of course for properly changed resolutions 
you have to run in fullscreen, not virtual desktop.

It would be a pretty messy thing to force a foreign resolution onto a game. 
You can try to do that of course, but I don't think such a patch would be 
accepted into wine.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20070208/860cab20/attachment.pgp


More information about the wine-devel mailing list