?
Solved

How to force a DX-Fullscreen App into windowed mode?

Posted on 2003-03-13
12
Medium Priority
?
33,226 Views
Last Modified: 2013-12-08
Can anyone here tell me if that is possible or not?

I know i CAN be done but HOW?

Please folks - Enlighten me


Thanks
0
Comment
Question by:rdrunner
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
  • 2
  • +5
12 Comments
 
LVL 1

Expert Comment

by:makkbru
ID: 8134891
Are you talking about programming a fullscreen app that can be changed into a window or changing for instance halflife into windowed mode....

if you are talking about programming you have to reinitialize the device with  windowed = true...
0
 
LVL 11

Author Comment

by:rdrunner
ID: 8134932
I mean the 1st.....

Forcing someone elses APP into a windowed mode...

0
 
LVL 1

Expert Comment

by:makkbru
ID: 8135255
sorry dont know how to do that.... u probably need a program to do that...
0
Will your db performance match your db growth?

In Percona’s white paper “Performance at Scale: Keeping Your Database on Its Toes,” we take a high-level approach to what you need to think about when planning for database scalability.

 
LVL 2

Expert Comment

by:TGGC
ID: 8154222
Just release your D3D Device and create a new one in the desired mode. IIRC correctly there's also an Reset() method.
0
 
LVL 1

Expert Comment

by:PurpleFlux
ID: 8168760
So this is a fullscreen DX application that you don't have the source to, if I understand you correctly.

The short answer is No, it is not possible.

The long answer is that without some sort of an emulator or wrapper, it is not possible.
In Linux, using Wine, you can run full screen DirectX applications in a window, the reason is that it's really still full screen but the whole screen is emulated inside a window.

The reasons for this inability is how you set up drawing in full-screen and windowed mode.  Besides just the resolutions and other problems, when you are in windowed mode your primary surface is still the whole screen.

Why is that a problem?  Well it's a problem because you can and *will* draw outside your window.  It can be useful for a screensaver or something, but generally it's not what you want to do.

To get around this you have to have support for it in the program (source code).  The programmer sets up a clipping object that keeps them from drawing outside a given area.  Also they have to keep track of where their area to draw is, because 0,0 is no long the top left of their window, but the top left of the screen.. perhaps they can only really start drawing at 250,200 or something.

I hope this helps you understand the situation.  Any clarifying questions?
0
 
LVL 11

Author Comment

by:rdrunner
ID: 8172741
Thats correct.. No source available....

I am only wondering about this since it was already done to some games (so tecnically it is possible -> DAOC/EQ). The only question i have left then is how do you emulate fullscreen in a window ;)
0
 
LVL 1

Accepted Solution

by:
PurpleFlux earned 1000 total points
ID: 8175131
Ok, lucky for me I have a friend on the DAOC development team.  
I asked him about the DAOC window utility, and he told me that even the first version (non expansion pack) had windowed support in the code but it wasn't enabled.  They only enabled it for the expansion pack.  The "utility" hacks the executable to enable that support.

I assume that EQ also had the windowed support in but disabled before as well.

So my assertion still stands that you have to have support in the code.  There is still the possibility of emulating a full screen surface like Wine under Linux, but I have no idea about how one would do that on windows.

I dont' know what exactly you need windowed mode for, but you might be better off with a second computer for IM & Email and whatnot if that's what it's about...

Hope this clears things up more :)

0
 
LVL 11

Author Comment

by:rdrunner
ID: 8175322
Looks like i have to settle for this ;)
0
 

Expert Comment

by:DeanBrown3D
ID: 8619837
This may be kinda obvious, but some graphics programmes allow you to press Alt-Enter to toggle between  full and windowed mode. Try this at least.

Dean
0
 
LVL 1

Expert Comment

by:likeachild
ID: 13351039
if you want to run windowed, your main resolution has to be larger than the App's resolution
0
 

Expert Comment

by:MiKo93
ID: 13413765
Well, you could maybe check a "proxy-dll" approach. See http://www.proxy.mikoweb.de
Using a proxy-dll, calls to DX are intercepted. You could maybe change the creation parameters of the device, thus trying to force it into windowd mode.
0
 
LVL 1

Expert Comment

by:bugmenotworksdamnit
ID: 14448058
Nothing is 'impossible.' Some things would require more work than others.

Recently a friend of mine did it to a game (www.darkages.com). The client is a forced windowed mode in 640x480. There is windowed mode built into the client, but enabled the command line option (hexing the exe) didn't work as they had a "check" to ensure it was in fullscreen.

How was it done? Using a little ASM/C, code was injected to the game (launched by CreateRemoteProcess) and a clipper was attached to the drawing window. The game used Blt already, so we didn't have to change from BltFast to Blt, but there were still a few issues we had to work with (such as making the cursor redraw on WM_PAINT messages and making it Sleep(0) as needed).

Nothing is impossible, learn ASM and you can do nearly anything you want with a little (ok, a good bit) research and poking around.
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

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…
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.
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Suggested Courses
Course of the Month9 days, 1 hour left to enroll

764 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