3 Replies Latest reply on Dec 10, 2006 12:18 PM by Newsgroup_User

    Resolution Xtra 2.0 (Win) & 1.x (Mac) vs Buddy API

    BG Solutions Level 1
      Has anyone worked with these xtras? I'd like to be able to change the resolution on the fly but it must work under the following conditions:

      - Must be crossplatform

      - Can not cause a restart (and generally works well on a variety of platforms Win 2K - Vista, Mac OSX any flavor)

      - Must be able to select a new resolution setting that maintains the aspect ratio of the original setting, eg: if I want to switch to 800 x 600 but the project is on a wide screen laptop I want to select the nearest wide screen display mode that will accommodate the stage. It looks like all xtras have sufficient methods to pull this off.

      It's that restart question I have the most concern about. I'm already licensed for Buddy API but most of Buddy API's resolution methods are Win only and they all warn of a restart, there is no such warning with Resolution Xtra. Is the risk of a restart the same with these two products?

      Thanks,

      - Bob Gallo
        • 1. Re: Resolution Xtra 2.0 (Win) & 1.x (Mac) vs Buddy API
          Level 7
          The restart issue is not something that is controlled by the xtra in
          specific or Director in general. It is an issue with the graphic driver
          and/or OS. Win 95 and 98 were particularly bad in that the default
          drivers tended to require a restart. You, as the Director program
          maker, have absolutely no way of controlling if your client's machine
          will require a restart (unless you are setting up a kiosk with known
          hardware/software). So in answer to your question, yes. Both methods
          will have the same chance of requiring a restart.

          BuddyAPI's baSetDisplay and baSetDisplayEx commands have a "test" mode
          which lets you see if a restart will be required, so you can program it
          in yourself to check and then change the resolution only if a restart is
          not required.

          As far as making sure that the screen resolution aspect ration stays the
          same, that will also require a bit of coding. You need to use
          baScreenInfo("height") and baScreenInfo("width") to find out the current
          settings, from there, figure out the aspect ratio, then set it to a new
          setting with the given aspect ratio.

          All that being said, just be very careful when you are changing the
          screen resolution of random people's computers. In the case where your
          program may crash, that may cause the screen res to not get reset to
          their original one. Folks get upset about stuff like that (at least I
          know it really pisses me off when someone decides they know what is best
          for my computer and then mess up).

          After you change the screen res, then change it back once the program is
          done, sometimes it will cause all of the icons on the person's desktop
          to move over to the left side. Again, that will really upset folks who
          like to have their icons where they set them.

          It is often the best bet to just put up a message on the users screen
          saying that the program will look best at <insert your favourite
          resolution here>. Then the user will be able to change it by themselves
          if they choose to. Or you can say "Would you like me to change it now",
          allowing the user to opt out. It is totally up to you, but just remember
          that angering your users is generally considered a bad move.
          • 2. Re: Resolution Xtra 2.0 (Win) &amp; 1.x (Mac) vs Buddy API
            BG Solutions Level 1
            Thanks Mike,

            Yeah, I had a suspicion that the restart was hardware/OS specific and that the Resolution Xtra 2.0 web page was just glossing over the issue.

            As for the ethics of switching on the fly, I'm saving various settings options in an ini file. The user would have the option to turn switching on but the default would be off. My dilemma is that this project was handed to me well under way at a resolution of 800 x 600 which on contemporary monitors looks kinda small (I favor 1024 x 768 as a minimum spec). The project is text heavy so I don't want to just scale the drawRect. In the event of a crash I could offer to "repair" the user's resolution, this would be accomplished by recording the original resolution setting in the ini file and include a flag in the ini file for normal program exit ... on the next run if the normal exit flag isn't set we can suspect we're recovering from a crash and we can offer to restore the resolution to the recorded value, not the current value which is probably a hold over from the last run. What do you think, a reasonable approach or not worth the effort? I could just tell everyone to get glasses ;-)

            Of course, I have to admit, I didn't think about the icons jumping all over the screen. Games pull off resolution switching without messing with the desktop, I wonder how they get away with it?

            - Bob

            PS: Buddy API is a little unclear about the xplatform capability of baSetDisplay and baSetDisplayEx. The help files say these are both Win only but the website says baSetDisplay is Mac compatible but baSetDisplayEx isn't ... I don't have a Mac here at home so I can't easily test until I'm back in the office.
            • 3. Re: Resolution Xtra 2.0 (Win) &amp; 1.x (Mac) vs Buddy API
              Level 7
              I don't know how the games do it, but I have seen some 3rd party
              applications that act as a resolution switcher/launcher for projectors.
              Basically, it is a small stub movie that changes the resolution, then
              launches the projector and monitors the status of the projector. When
              the projector closed (or crashes), then this other program will set the
              resolution back to what it was to begin with. It shouldn't be too hard
              to write up something like that if you don't want to use a 3rd party
              proprietary solution. I can't think of the name of any of these, but
              I've seen loads... I suspect a google search will turn up a few.

              As far as x-plat, I have never tried using these commands on a Mac (I
              only used them on PC once and was unsatisfied with the results, and
              never tried again). I guess you'll just have to try it and see how well
              it works for you.

              Good luck.