[futurebasic] Re: [FB] Screen Res Strangeness

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : November 2004 : Group Archive : Group : All Groups

From: Ben Jamin <benjamen@...>
Date: 21 Nov 2004 19:43:59 +1100
Damn those checkpoint countdown timers - how can
I sniper the enemy and watch a timer as well :-)

The resolution is correct, but you are looking at the wrong device.
I am fairly sure you are dealing with a 3D game.  When you switch
to the 3D card, it has its own settings.  It appears you
can get the info you need by using the DirectDisplay (DirectDraw?!) calls:

 CGDisplayCapture( kCGDirectMainDisplay );

  number = CFDictionaryGetValue( displayMode, kCGDisplayHeight ) ;
 CFNumberGetValue( number, kCFNumberLongType, &height ) ;

 number = CFDictionaryGetValue( displayMode, kCGDisplayWidth ) ;
 CFNumberGetValue( number, kCFNumberLongType, &width ) ;

 number = CFDictionaryGetValue( displayMode, kCGDisplayBitsPerPixel ) ;
 CFNumberGetValue( number, kCFNumberLongType, &depth ) ;

 number = CFDictionaryGetValue( displayMode, kCGDisplayRefreshRate ) ;
 CFNumberGetValue( number, kCFNumberLongType, &freq ) ;

 CGReleaseAllDisplays() ;


There is a code lisiting and notes here:

<http://developer.apple.com/documentation/GraphicsImaging/Conceptual/OpenGL/chap3/chapter_3_section_7.html>

It is C, but hopefully it will port easily - if you manage to work with
all the CoreFoundation stuff.
I don't think GETCPIXEL will work on the device, as it is not QuickDraw, but there
must be some OpenGL equivalent?


Jamin


On Sunday, 21 November 2004 11:35 AM, Darron Forehand <glo@...> wrote:
>Hi all,
>
>I'm writing a timer utility for an online game because it would be 
>helpful (and I really need to expand the FB^4 cells in my brain), but I 
>need to be able to tell what resolution the user has the game switch to 
>(I'm using GETCPIXEL to determine when the screen changes to a certain 
>scene and the timer should start).  Different players, of course, use 
>different screen resolutions, and I'm trying to make it work universally 
>for them.  BTW, the game is a full-screen one that doesn't allow you to 
>get back to the desktop when running it, so I'm using speech synthesis 
>to communicate the time status to the user.
>
>That said, I'm having some trouble.  I'm using
>
>Width=SYSTEM(_scrnWidth)
>Height=SYSTEM(_scrnHeight)
>
>which gives me an accurate resolution when my app is run.  It's checked 
>frequently to see when the game is started and when the game switches 
>the screen resolution, but for some reason it isn't picking this up.  If 
>I run my app without running the game and manually change the resolution 
>through the system preference all is well and Victoria (or whoever the 
>default voice is) will verbally tell me what the resolution has changed 
>to.  But if I run the game (which again uses the full screen and doesn't 
>allow you to get back to the desktop, etc.) and it switches resolution, 
>Victoria continues to tell me that the resolution is the same as I have 
>my system preferences set to (I run my regular screen at 800X600, but 
>have the game set to run it at 1024X768).
>
>So here's my question after all that (lol):  does the full screen mode 
>just not register a resolution switch for some reason (even though it is 
>switching and I hear the monitor click when it does)?  The game is World 
>War II Online, if anyone was curious. ;)
>
>Thanks,
>
>Darron Forehand
>
>--
>