   Textures, SPRITES, etc...
  When I load a textured bitmap, it changes size when I draw it to the backbuffer. I don't understand. Does anyone know anythinga about this? Thanks!   
  If the images dimensions are not powers of two (256x256, 512x512, etc.), then DX will resize it to the next closest power of two. This will cause your image to stretch in one or both dimensions.;  See D3DXCreateTextureFromFileEx - You can pass a D3DXIMAGE_INFO structure to it to get the actual size of the image, and you can get use IDirect3DTexture9::GetLevelDesc(0) to find out what size D3DX created the texture at. You can use those two values to work out the texture coordinates you should use.Or, just use power of 2 textures [smile]   ;  I will defiently try that. Here is some of the code that might help you understand the problem better.//set Direct3D presentation parameters   ZeroMemory(&d3dpp, sizeof(d3dpp));   d3dpp.Windowed = (!fullscreen);d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;d3dpp.BackBufferFormat = D3DFMT_R5G6B5;d3dpp.BackBufferCount = 1;d3dpp.BackBufferWidth = width;d3dpp.BackBufferHeight= height;d3dpp.hDeviceWindow = hWnd;d3dpp.EnableAutoDepthStencil = TRUE;d3dpp.AutoDepthStencilFormat = D3DFMT_D16;d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;....//creat the new texture by loading a btimap image fileD3DXCreateTextureFromFileEx(d3ddev,//Direct 3d device objectfilename,//bitmap filenameinfo.Width,//bitmap image widthinfo.Height,//bitmap image height1,//mip-map levles (1 for no chain)D3DPOOL_DEFAULT,//the type of surface (standard)D3DFMT_UNKNOWN,//surface format (default)D3DPOOL_DEFAULT,//memory class for the textureD3DX_DEFAULT,//image filterD3DX_DEFAULT,//mip filtertranscolor,//color key for transparency&info,//bitmap file info (from loaded file)NULL,//color palette&texture);//destination texture   ;  Thanks fellas. I changed the dimensions of the bitmap and it totally worked! like you had mentioned, DirectX must have been streteching the bitmap out since it wasn't a power of 2 bitmap!   