D3D9 Texture isn't the right size

Started by
2 comments, last by ongamex92 10 years, 9 months ago

Hey, I have a chess board texture. It's dimensions are "512 x 512"

when I load in the texture it tells me the dimensions are "512 x 512"

but when displayed on the screen, it shows it as about "471 x 496"

I'm using the D3D9 sprite manager


ID3DXSprite *pSpriteMan;
 
// I'm not scaling the image AT ALL

To expand on this, I have all my chess pieces positioned exactly "64 x 64" away from each other, and each chess piece texture is "64 x 64"

they fit perfectly on the board....

What's going on here?

I bring this up because, I'm trying to click on a chess piece, but I don't get the exact piece that i'm trying to click because of this small little offset

EDIT:

I was thinking and I remember this same situation happening to me once before in a 3D engine I was working on, I thought I was just doing something wrong with my math somewhere but now I realize it wasn't me. Because the mouse clicks were offset in the 3D game as well, and the farther away from the top left of the screen the worse it was.

Advertisement

Are you sure your backbuffer isn't stretched in any way?

I haven't touched the back buffer in this, no need to =S. I just init direct X with no special flags, I did everything as basic as possible.


// This is the only time I ever touch the  back buffer.
d3dpp.BackBufferWidth = WindowWidth;
d3dpp.BackBufferHeight = WindowHeight;

EDIT:

Wait that actuall makes sense now, i set the back buffer size to the same as the window. But the RECT inside the window where the backbuffer gets displayed is scaled down a bit do to the menu and borders... Am I correct?

DOUBLE EDIT:

I applied the offset to the backbuffer width and height and now it's perfect. Thanks Zaoshi you were right.

Yes the client area is smaller than WindowWidth and WindowHeight

This topic is closed to new replies.

Advertisement