D2D and D3D10 and Win7

Started by
6 comments, last by Telanor 10 years, 2 months ago

Hi guys

I have played around with MS samples of this(http://msdn.microsoft.com/en-us/library/windows/desktop/dd371004(v=vs.85).aspx) and they work fine on my win7 install.

However when I try to mimic their setup for my own work, I get this message through the debug output right after I call EndDraw with the D2D render target:

D3D11 INFO: ID3D11DeviceContext::OfferResources: OfferResources is not supported on operating systems older than Windows 8. It is valid to call OfferResources, and an offerred resource must still be acquired with ReclaimResources before using it, however there is no benefit to calling OfferResources on this operating system besides testing the code path for Windows 8. [ EXECUTION INFO #3146071: OFFERRELEASE_NOT_SUPPORTED]

and the end result is that I get a blank screen. It makes no sense because I am using D3D10_1 not D3D11.

Any ideas?

Advertisement

Anyone run into this problem as well? Can D2D render on a D3D10.1 texture without any extra upgrades to Win7? Any ideas as to what can cause this?

Update: it appears my Direct2D system is using IDXGI1.2 when I want it to use IDXGI1.1 (I believe that's the correct version?). How do I go about forcing it to work with a older version?

Thanks

JB

Yo

Not to get too pushy but would really appreciate some sort of feedback from anyone who might have the slightest idea of whats happening here. The deadline my boss put on this project is getting close and this is the only problem holding things back...

Thanks

JB

Well as it says on the MSDN, OfferResources is a DX11.1+ only function. It apparently doesn't even do anything on 11.1 for Win7. I don't see that function being used in the sample, which would be why it works. I've never had to use it before either, what are you using it for?

Also, if you're using that function, you're using DX11.1, not DX10. If you want DX10, your device should be an ID3D10Device.

That's what is odd. I am not using DX11 at all. My D3D devices are all D3D10.1. Its when the IDirect2D1RenderTarget::EndDraw method is called that I get the message regarding OfferResources, which is leading me to wonder if the Direct2D interface is somehow using a newer version of DXGI. That's also why I am stuck...It just doesn't make sense.

Update: Weird....I noticed that the d3d10_1.h file is included in the d2d1.h file so I removed the d3d10_1 header from my project and now everything works just fine. Beats me....

So you weren't even calling that function that it was complaining about? How strange. Glad you figured it out though.

This topic is closed to new replies.

Advertisement