在控制其大小的同时将图像放在窗口上 - directX,c ++

时间:2013-03-28 02:02:52

标签: image textures direct3d image-size

所有代码都是伪

我的图片尺寸为1024 x 768。

这是一个jpg

我有一个1024 x 768的窗口。

我创建一个精灵,为它获取一个纹理,然后将其绘制到屏幕上。

例如:

D3DXCreateSprite( gfx.d3dDevice, &sprite );
D3DXCreateTextureFromFile( gfx.d3dDevice, _fileName, &gTexture );
....
pos.x = 0.0f;
pos.y = 0.0f;
pos.z = 0.0f;
sprite->Draw( scenes[ 0 ]->backgroundImage->gTexture, NULL, NULL, &pos, 0xFFFFFFFF );

当它出现在屏幕上时,图片会变形并且看起来不应该如何:

enter image description here

我的问题是:

当纹理,精灵或绘图函数似乎都没有它的功能时,如何控制图像输出的大小..?

我想也许这与Rect有关但只是剪辑图片// shrugs //

可能是我需要使用的:

1 个答案:

答案 0 :(得分:2)

result = D3DXCreateTextureFromFileEx( 
    gfx.d3dDevice, 
    _fileName, 
    1024, 
    768, 
    D3DX_DEFAULT, 
    0, 
    D3DFMT_UNKNOWN, 
    D3DPOOL_MANAGED, 
    D3DX_DEFAULT, 
    D3DX_DEFAULT, 
    0, 
    NULL, 
    NULL, 
    &gTexture 
);

D3DXCreateTextureFromFileEx允许创建一个没有任何大小变形的纹理: