Direct3D::Present on XP ignoring window stacking
-
Tuesday, May 29, 2012 1:32 AM
Might be a driver thing. But I've noticed lately on an XP box that whenever a region of a window is filled in by Direct3D, the presented/blit'd region just seems to draw itself to the screen regardless of what is there. As in, if another window is above the window being drawn, the topmost window will be drawn over even though it is not doing the drawing, and even though it belongs to another application altogether.
This could well be a driver thing. But I've noticed I can eliminate this in my own applications by doing the following on every top-level window:
SetClassLong(winclass,GCL_STYLE,GetClassLong(winclass,GCL_STYLE)&~CS_CLASSDC|CS_PARENTDC);
It makes things easier for myself, and any users that might be in the same boat. But the effect still occurs across other apps (web browsers seem to be the main source of the overdraw, most likely composing their document viewports with Direct3D) and still occurs within windows, menus and child windows etc.
Could a system wide hook change the styles of all of the windows safely?
EDITED: This PC is an ATOM/ION2 board.
Dunno why Microsoft stuck the underscore in my screen name. It won't wash out. I apologize, but I only post here in times of severe desperation :( Anyone else find the line/paragraph spacing in these forums very difficult to read?
- Edited by Mick P. _ Tuesday, May 29, 2012 1:35 AM
All Replies
-
Tuesday, May 29, 2012 7:58 AMDid you test it in one non-Atom platform? And with other video card,with higher DirectX.
-
Tuesday, May 29, 2012 6:50 PM
^I only have one computer with XP installed. I think on XP everything will be Direct3D9 because D3D10 was Vista only and I do not think Microsoft has or intends to backport any future versions of D3D to XP.
Atom/Ion is a board with an Intel Atom CPU and Nvidia Ion GPU on the same board, if not the same chipset. I will try to install newer drivers. I am I think just trying to find some insight into the situation. The ability to use SetClassLong to get back appropriate functionality I thought would be a good hint, if this is not a well known issue with XP.
Unfortunately I was not able to come up with a web search expression that would filter out enough noise to turn up anything useful.
EDITED: I do not think the XP drivers would have been neglected by Intel/Nvidia, because the chipset is generally not recommended to use with Vista (or 7/8; because the OSes are too resource intensive for the Atom/Ion architecture)
Dunno why Microsoft stuck the underscore in my screen name. It won't wash out. I apologize, but I only post here in times of severe desperation :( Anyone else find the line/paragraph spacing in these forums very difficult to read?
- Edited by Mick P. _ Tuesday, May 29, 2012 6:53 PM
-
Wednesday, May 30, 2012 1:21 AM
Updated drivers. Offending effect is still there. Seems like its probably not drivers related to me.
Maybe there is just one big device context for the entire screen for some reason? I happened to see a 0 HDC being passed to WM_PAINT for a child window (Spy++) a while ago. I don't know if that is normal, but it seems odd.
Dunno why Microsoft stuck the underscore in my screen name. It won't wash out. I apologize, but I only post here in times of severe desperation :( Anyone else find the line/paragraph spacing in these forums very difficult to read?


