   Best option for splash screen
  I need a simple splash screen so I am loading the texture into a sprite:D3DXCreateSprite(Game->Device, &d3dspt);D3DXCreateTextureFromFileEx(Game->Device,    // the device pointer"../../../../../Pictures/Textures/Physics Sandbox/Physics_Engine_Splash.bmp",    // the new file name800, //D3DX_DEFAULT,    // default width600, //D3DX_DEFAULT,    // default heightD3DX_DEFAULT,    // no mip mappingNULL,    // regular usageD3DFMT_A8R8G8B8,    // 32-bit pixels with alphaD3DPOOL_MANAGED,    // typical memory handlingD3DX_DEFAULT,    // no filteringD3DX_DEFAULT,    // no mip filteringD3DCOLOR_XRGB(255, 0, 255),    // the hot-pink color keyNULL,    // no image info structNULL,    // not using 256 colors&sprite);    // load to sprite and drawing it:d3dspt->Begin(D3DXSPRITE_ALPHABLEND);D3DXVECTOR3 centre(0.0f, 0.0f, 0.0f), position(0.0f, 0.0f, 0.0f);d3dspt->Draw(sprite, NULL, &centre, &position, D3DCOLOR_ARGB(255,255,255,255));d3dspt->End();The backbuffer is 800x600, the sprite is told to load it at 800x600 and the image itself is sized 800x600 though I only get a portion of the image on the screen.Apparently this is something to do with half-pixels but I don't really understand that.I read somewhere that it prefers images sized to the power of 2 so I changed the image size to 1024x1024 and got no difference.What would be the best way to do this?   
  When you call D3DXCreateTextureFromFileEx, let it give you back an image info structure. Then use the original width/height values from that structure when specifying the source rectangle in your Sprite::Draw call. That should make it work regardless of the image size.I suspect when you changed the image size to 1024x1024, you just changed the image size without actually scaling the image up. In that case, you would still have issues.You really should stick to power-of-two texture sizes anyway. It saves you heartache later.;  I'm getting a blank screen now:d3dspt->Begin(D3DXSPRITE_ALPHABLEND);D3DXVECTOR3 centre(0.0f, 0.0f, 0.0f), position(0.0f, 0.0f, 0.0f);RECT* rect = NULL; rect = new RECT();rect->top = rect->left = 0.0f;rect->bottom = imageinfo.Width;rect->top    = imageinfo.Height;d3dspt->Draw(sprite, rect, &centre, &position, D3DCOLOR_ARGB(255,255,255,255));d3dspt->End();;  You borked up the rectangle:rect->top = rect->left = 0;rect->right = image.Width;rect->bottom = image.Height;;  Ah, idiot error.But still doesn't change, tried it with 1024x1024 and back to 800x600.Why are these trivial things so difficult?I think I'll try a vertexbuffer and skin the image as a texture.   ;  Getting nothing:init:buffer = NULL;texture = NULL;struct TEXVERTEX splash_verts[] ={    {800, 0, 0, 0xffffffff, 1, 0,},    { 0, 0, 0, 0xffffffff, 0, 0,},    { 800, 0, 600, 0xffffffff, 1, 1,},    { 0, 0, 600, 0xffffffff, 0, 1,},};Game->Device->CreateVertexBuffer(4*sizeof(TEXVERTEX), 0, TEXTUREFVF, D3DPOOL_MANAGED, &buffer, NULL);VOID* pVoid; // lock t_buffer and load the vertices into it    buffer->Lock(0, 0, (void**)&pVoid, 0);    memcpy(pVoid, splash_verts, sizeof(splash_verts));    buffer->Unlock();D3DXCreateTextureFromFile(Game->Device,"../../../../../Pictures/Textures/Physics Sandbox/Physics_Engine_Splash.bmp",&texture);draw:D3DXMATRIX Ortho2D, ide;    D3DXMatrixOrthoLH(&Ortho2D,FLOAT(800),FLOAT(600),-0.5f,1.0f);D3DXMatrixIdentity(&ide);Game->Device->SetTransform(D3DTS_PROJECTION, &Ortho2D);Game->Device->SetTransform(D3DTS_WORLD   , &ide);Game->Device->SetTransform(D3DTS_VIEW   , &ide);Game->Device->SetStreamSource(0, buffer, 0, sizeof(TEXVERTEX));    // set the textureGame->Device->SetTexture(0, texture);    // draw the textured squareGame->Device->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);Game->Device->SetTexture(0, NULL); // reset texture...losing will to live...   ;  D3DXMatrixOrthoLH with a width of 800 and height of 600 creates a projection such that left side of the screen will be -400, and the bottom will be -300.  If you want to go from 0 to 800 and 600, use the OffCenter version of that function.   ;  If you're using DX9, try working through the following samples:D3DXSPRITE example at codesampler.comSample Game using D3DXSPRITE at codesampler.comwww.codesampler.com isn't a bad site for getting started.   