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