Jump to content
  • Advertisement
Sign in to follow this  

DirectShow overlay problem with some cards

This topic is 4763 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm quite new to DirectShow programming, and haven't gone too deep yet. This particular problem, though, i've been struggling with for a few days now on and off, so i thought it was time to ask for some help. Basically, i have an application that uses the colour-key based overlay function of a lot of graphics cards for a certain feature. It displays graphics and text with the background set to the value of the colour key (usually 0x100010), so that the video shows through. (I'd like to do it in a more elegant manner with proper blending and such, but unfortunately i don't have access to the way a lot of the foreground stuff is rendered to the screen.) This is tested and working fine on ATI and nVidia cards. However, yesterday i got the chance to try my application on some Intel graphics cards, and it doesn't work - it doesn't seem to be using a colour-key at all. The cards *claim* in the specs to support this same kind of overlay feature... so what i'm guessing, is that when DirectShow completes my filter graph on these particular cards, it chooses a different video mixing method. All machines are XP with DirectX9, so i wrote the program to use the VideoMixingRenderer, as recommended on MSDN. However, as far as i can see the VMR doesn't let me choose the actual method by which the video is drawn on the screen. So, for testing on these Intel cards, i wrote a version with the old IVideoWindow interface, and manually inserted the OverlayMixer into the filter graph. After doing this, it seems no different at all. Something else to note about the differences between ATI/Intel: on the ATI card, when resizing the video window the aspect is kept and borders are added around the image. Using the *exact* same code on the Intel card, the image is stretched (using both VMR and the old interface). Neither of these is a problem, it's just a difference i thought may help in diagnosing it. Being new to DirectShow, i have a feeling maybe i'm missing out a step when trying to force overlay mode... basically, all i'm doing is this: - Create the filter graph - Create an OverlayMixer filter - AddFilter the OverlayMixer to the filter graph - Call RenderFile on the filter graph. - Do the various crap with IVideoWindow to hook it up to my app. Does anyone have any idea how i can force the Intel cards to use colour-key based overlay? :)

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!