I found in both COpenGLDriver.cpp and CD3D9Driver.cpp
at function draw2DImage().
core::rect<f32> tcoords;
tcoords.UpperLeftCorner.X = (((f32)srcRect.UpperLeftCorner.X)+0.5f) * ssw ;
tcoords.UpperLeftCorner.Y = (((f32)srcRect.UpperLeftCorner.Y)+0.5f) * ssh;
tcoords.LowerRightCorner.X = (((f32)srcRect.UpperLeftCorner.X +0.5f + (f32)srcRect.getWidth())) * ssw;
tcoords.LowerRightCorner.Y = (((f32)srcRect.UpperLeftCorner.Y +0.5f + (f32)srcRect.getHeight())) * ssh;
and
core::rect<float> npos;
npos.UpperLeftCorner.X = (f32)(trgRect.UpperLeftCorner.X+xPlus+0.5f) * xFact;
npos.UpperLeftCorner.Y = (f32)(yPlus-trgRect.UpperLeftCorner.Y+0.5f) * yFact;
npos.LowerRightCorner.X = (f32)(trgRect.LowerRightCorner.X+xPlus+0.5f) * xFact;
npos.LowerRightCorner.Y = (f32)(yPlus-trgRect.LowerRightCorner.Y+0.5f) * yFact;
This addition also in draw2DImage of directx versions.
It cause problem in my 3d card (Radeon 9500 pro) the 2d image is render incorrect it have some artifact at the bottom line, but my friend SiS card don't have this problem, I tried to update my display driver but nothing has changed. Then I remove those +0.5f stuff from above and it works!!! all artiface are gone (test both Radeon and SiS).
![Wink :wink:](./images/smilies/icon_wink.gif)
So I curious why add +0.5f in vertex and texture coord?,
and I don't sure that fix this spot is the right for my problem?,
and it will lead to some unseen bugs?.
Please correct me if what I done is wrong.
Any suggestion would be greatly appreaited.
![Smile :)](./images/smilies/icon_smile.gif)