Solved

overlay text on full screen game

Posted on 2007-04-06
7
997 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This algorithm (in C#) will resize any image down to a given size while maintaining the original aspect ratio. The maximum width and max height are both optional but if neither are given, the original image is returned. This example is designed t…
As game developers, we quickly learn that Artificial Intelligence (AI) doesn’t need to be so tough.  To reference Space Ghost: “Moltar, I have a giant brain that is able to reduce any complex machine into a simple yes or no answer. (http://www.youtu…
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

920 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

16 Experts available now in Live!

Get 1:1 Help Now