?
Solved

overlay text on full screen game

Posted on 2007-04-06
7
Medium Priority
?
1,124 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
5 Comments
 
LVL 18

Expert Comment

by:Jose Parrot
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:Jose Parrot
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:
Jose Parrot earned 2000 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

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Article by: Nadia
Suppose you use Uber application as a rider and you request a ride to go from one place to another. Your driver just arrived at the parking lot of your place. The only thing you know about the ride is the license plate number. How do you find your U…
Article by: Nadia
Linear search (searching each index in an array one by one) works almost everywhere but it is not optimal in many cases. Let's assume, we have a book which has 42949672960 pages. We also have a table of contents. Now we want to read the content on p…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an anti-spam), the admin…
Suggested Courses

839 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