Solved

overlay text on full screen game

Posted on 2007-04-06
7
990 Views
Last Modified: 2013-12-06
I am programming with VB6
I have a form (form1) that I want to overlay on the screen of full screen game
I do not wan to use proxy for directX
I want a solution like the Game Overlay program
do you know any dll or ActiveX control or any method to overlay my form while the game is running The game play only at full screen
info@kalarakis.com
0
Comment
Question by:KALARIUS
  • 3
  • 2
7 Comments
 
LVL 18

Expert Comment

by:JoseParrot
ID: 18868533
0
 

Author Comment

by:KALARIUS
ID: 18868966
hi

here is the problem
when I initialize the device
Set D3DDevice = D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, frmMain.hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, _
                                                        D3DWindow)
I get an error because the game have init the device for exlusive use
If I init the device and then start the game Then the game send me an error
I must find a way that both me and the game share the some handle.
I delive that the GameOverlay or xFire do the something like this .
Is any body know the way to share the handle? or something else?
0
 
LVL 18

Expert Comment

by:JoseParrot
ID: 18870963
In cases where the application gain full access to a resource, in this case, the graphic resource, it is like a full screen DOS application. The main problems with a window from application #2, over a full screen application #1, are:
1. Non standard resolution and/or refreshing rates of application #1 (the game) because, as it has control over the entire graphic board, it isn't constrained by Windows
2. Even restricted by Windows settings, the frame buffer used by the game can use different bitmapping of Windows itself, so conflicting on pixel format (8, 16, 24, 32 bits).
3. What if the game uses OpenGL?

If a so well tested and used tool like Game Overlay isn't capable of circumvect this problem, I think there is no dll or ActiveX component around capable of it.
So, my guess is: there is no solution to share the handle in a general way, that is, between a Windows application (VB, C++, etc.) and any game in full screen mode.
Please note: full screen isn't a window without borders. It is the console of Windows.

Jose
0
 

Author Comment

by:KALARIUS
ID: 18873460
jose

a) into the directX sdk you can find functions that return the resolution of the screen and the depth of the color.
 (D3D.CheckDeviceFormat(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, DispMode.Format, D3DUSAGE_DEPTHSTENCIL, D3DRTYPE_SURFACE, D3DFMT_D16))
b)My question is for DirectX not for openGL
c) The Game Overlay does not use "magic' to overlay text or bitmaps on the full screen the same does with xFire program What is the techinck of these program?
d) Look at the www.mikoweb.de there is a solution for my question. It use proxydll

I ask if there is a solution not to use proxydll because I use VB6 and Vista windows with directx 10
The solution of www.mikoweb.de (also include examples in C++ and vb6) cover until DirectX9
A good manual for DirectX is www.directx4vb.com by jack.Hoxley@Directx4vb.com

Kalarakis Michalis
0
 
LVL 18

Accepted Solution

by:
JoseParrot earned 500 total points
ID: 18876744
Yes, Kalarius, you're correct, we can obtain the status of graphics resources by calling CheckDeviceFormat. But, unfortunately, as far I know, the answer to the original question probably is NO, there is currently no dll, ocx, ActiveX components to do such job, in the described environment. As you're in DX10, Vista, VB6, there are some inconsistencies in such mixing. Mainly, because Microsoft has discontinued support to Visual Studio 6 in the first or second distribution of DX9, as far I remember, the february 2003 release. Of course, this doesn't mean that nothing will work in that mixed environment, but what you are looking for isn't an usual feature. Solution would be upgrading to VS2003 or 2005.
Also, as you have a message on exclusive use of graphics by the game, it could be interesting to check if the card supports overlay, if the chip supports it, if there is enough memory. If it wouldn't support overlay, such message could appear. Finally, check for drivers from the card manufacturer, related to DX10 or Vista.
About on how DirectDraw works (seems you already know), take a look at
http://www.virtualdub.org/blog/pivot/entry.php?id=91.
I understand your difficulties, because for sure you are pionnering in this subject.
Jose
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

One of Google's most recent algorithm changes affecting local searches is entitled "The Pigeon Update." This update has dramatically enhanced search inquires for the keyword "Yelp." Google searches with the word "Yelp" included will now yield Yelp a…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

8 Experts available now in Live!

Get 1:1 Help Now