Multi task in Full Screen Mode on Extended Desktop?

Hi,
I want to know whether or not i can multitask while i have a full screen app running? For example, if i have a film playing full screen on my TV, using VLC Player, can i use Safari on my Macbook Pro? My current work-around is just making the video as big as i can, but i would rather have it full screen.
Thanks for any Suggestions.
(My Setup)
13" Early 2011 MacBook Pro 320GB HDD + 8GB RAM + Dual Core i5 processor running Mac OS X 10.7.4
Connected by HDMI to
40" LCD LG TV

Hi,
I want to know whether or not i can multitask while i have a full screen app running? For example, if i have a film playing full screen on my TV, using VLC Player, can i use Safari on my Macbook Pro? My current work-around is just making the video as big as i can, but i would rather have it full screen.
Thanks for any Suggestions.
(My Setup)
13" Early 2011 MacBook Pro 320GB HDD + 8GB RAM + Dual Core i5 processor running Mac OS X 10.7.4
Connected by HDMI to
40" LCD LG TV

Similar Messages

  • Full screen applictions and extended desktop

    I just got my 20" iMac and have connected a 19" LCD to it in extended desktop. My only problem is that when i run a full screen application (like WoW or Front Row) the second monitor shuts off. I don't want this to happen, I want it to stay on and still be able to move the mouse over to it and use the programs that i have opened on it. does anyone know of a way to make this happen?
    Thank you!

    well i found out that the next patch will fix the problem in WoW, but that still leaves front row... is there some patch or hack for front row to add dual monitor support?

  • Any 3rd party utilities that fix full screen mode for multi-monitor users?

    I am a multi-monitor user.  As multi-monitor users know, full screen mode is basically useless since if you try to go full screen on one monitor, it causes the other monitor to go blank and become unusable (at least with most programs).  Are there any 3rd party utitilities or fixes for this?
    Thanks

    Spaces, which is what this functionality stems from, was limited in that it used your entire setup and switched all of the screens over; space to space. I never used spaces because I always had multiple monitors and I was always working with multiple apps simultaneously that I wanted to be able to reference while working on the others.
    Now they call Spaces, "mission control" and changed the appearance of it, but the functionality remained the same, each workstation comprised all of your monitors, and would switch over all of them when switching to a new "Desktop".
    Fullscreen apps wrongly assumes that it can take the functionality of the afformentioned MS/Spaces and use it for one app, negating the whole idea of why someone would have multiple screens (real estate to work with other applications).
    If they stop considering multiple monitors as one Workspace, they can then make it so they are asynchronous "tablets" instead of one conjoined entity.
    So, you say people have been asking about this for 2 years, I've been asking for this for 5!
    The issue here is, the only answer is to not use it. Making Mission Control and Fullscreen apps completely ignored by people like us, where I could be using both functions to glide around my work station and three monitors, mixing and matching which apps I want to be viewed on each separate monitor, to perform one single task; together.
    It would actually reward people who wanted to utilize Thunderbolt technology and have more then one monitor.
    There is no telling why apple chose to push out something that would only support the casual user, with one display, but the only direct way to let apple know that we feel limited by the OS is to send feedback. Even though it seems that we are powerless in this situation, I hope that they do consider how to make this function better.
    </rant>

  • The itunes window on my desktop fails to display the bottom most portion of the screen unless I go into full screen mode.  Why?

    As a follow up to provide more detailed information.
    I have a MacBook as well running 10.6.8.
    When I open itunes, the window I expect to come up does.  It has a scroll that allows me to view all of my playlists, as well as hit the new playlist icon at the bottom of the screen, etc.
    On my Macbook Pro running 10.7.4, when I open itunes, there's no scroll bar, no icons at the bottom most portion of the screen.  The only way that I can see the new playlist icon AND be able to view/scroll through all of my playlists is to enter full screen mode....very inconvenient as the window is now fixed (can't be moved out of the way) without exiting full screen mode.
    I'm a multi-tasker...rearranging windows, making one application active while another moves into the background, is my typical work situation.
    Thanks in advance for any help that you can offer.
    Michael

    This issue can be caused by the Babylon Toolbar 1.1.8 extension
    See:
    *https://support.mozilla.com/kb/Troubleshooting+extensions+and+themes

  • After  watch a video in "full screen mode" and the video shrinks back into the eBook view, HALF of the TOP Title Bar DISAPPEARS, But it does not happen with ios 6.1

    After  watch a video in "full screen mode" and the video shrinks back into the eBook view, HALF of the TOP Title Bar DISAPPEARS, But it does not happen with ios 6.1

    The Mac has never needed "Full Screen". It has done multiple screen Extended Desktop since 1987.
    Full screen is an iPhone feature, carried into this verion with the mult-touch gestures and other so-called "unifying" features.

  • How do i get firefox to not be in full screen mode without a mouse or keyboard?

    for some reason Firefox switched to full screen mode and i can't get out of it. I'm using Firefox on a tablet PC running windows 8.1 so using F11 or a mouse is not an option. at least i assume it's full screen mode. i can't see my bookmarks bar, my address bar, or even the windows task menu at the bottom of the screen, where my virtual keyboard is located at. i can get to the settings menu (i have Firefox set to start on a new page) but i can't find bookmark bar, address bar, or full screen settings there. I tried using IE11 to uninstall Firefox and reinstall it but it kept the setting. A "turn off full screen mode" button in the settings would be super helpful or a "force show address bar" button.

    By the way, if Firefox is ''stuck'' in full screen mode, I think you could clear that by removing the settings file which stores window dimensions. Here's how:
    Open your current Firefox settings (AKA Firefox profile) folder using either
    * "3-bar" menu button > "?" button > Troubleshooting Information
    * (menu bar) Help > Troubleshooting Information
    * type or paste about:support in the address bar and press Enter
    In the first table on the page, click the "Show Folder" button. This should launch a new window listing various files and folders in Windows Explorer.
    ''If none of those is available: Use the Run command (or maybe the charms bar search box), type or paste the following and tap Run/Search or Enter on the virtual keyboard:''
    %APPDATA%\Mozilla\Firefox\Profiles
    ''Then double-tap into your most recently updated semi-randomly-named profile folder.''
    Leaving that window open, switch back to Firefox and Exit, either:
    * "3-bar" menu button > "power" button
    * (menu bar) File > Exit
    ''If neither of those is available, try using one of the standard Windows ways of exiting a program.''
    Pause while Firefox finishes its cleanup, then rename '''xulstore.json''' to something like xulstore.old. If you see a file named localstore.rdf, rename that one to localstore.old.
    Start Firefox back up again. Do windows display normally again?

  • X800-XT Mac Edition and Photoshop CS2 in Full Screen Mode

    I recently installed a new ATI X800XT AGP Retail card into my Dual 2-Gig G5 Mac. I have (2) Sony CRTs connected to this card - a 21" Artisan and a 24" GDM-FW900. So far I have only found one problem and this involves Full-Screen Mode in Photoshop CS2 under a certain condition.
    All of the following conditions must be met to reproduce this anomoly, but it is at least consistent and happens 100% of the time. Here are the conditions:
    (1) Open any image in Photoshop CS2
    (2) Zoom in on the image until the image area exceeds the boindaries of the screen.
    (3) Go into Full-Screen Mode (without Menu Bar showing) but hitting the "F" key twice.
    (4) Hit the Tab key to hide toolbars (the image should now fill the screen and extend off all four borders.
    (5) Now - holding down the spacebar to get the hand tool - pan the umage around the screen with the grabber hand. You will notice that the image will not refresh properly.
    (6) One other condition must be met - you must perform this while on the main monitor which normally has the OSX Menu Bar present. Note: changing the menu bar to the other monitor causes this problem to migrate to that monitor only.
    Can anyone else reproduce this?
    G5-Dual-2Gig   Mac OS X (10.4.6)   4.5 Gig Ram

    Post this over at the Adobe forums to see if it's just a CS2 problem.
    Also you might want to file a bug report with them.

  • Set full screen mode

    Hi everyone
    It may not seem a JMF problem but i am hoping for some help.
    I am just trying to implment full screen on jmf player panel, i tried but the nothing is shown but a black screen
    the following is the code of whole program:-
    import java.awt.*;
    import java.awt.Rectangle;
    import java.awt.Dimension;
    import java.awt.event.*;
    import javax.media.*;
    import javax.media.Player;
    public class MyPlayer extends Frame implements ControllerListener
         private Player player;
         private Panel panel;
         private String [] urls;
         int currentsong = 0;
         MediaLocator ml;
         int flag = 0;
         int videoWidth = 320, videoHeight = 200, controlHeight = 30;
         Dimension size;
         Component visual, control;
         private Dimension dimFrameSizeBeforeFullScreen = null;
         private Window windowFullScreen = null;
         public static void main(String[] args)
              String[] files = { "Khalid_Diana.mpg", "11.mpg", "Taha.mpg" };
              MyPlayer Medialist = new MyPlayer(files );
              Medialist.nextMedia(0);
         public void setFullScreen() {
              System.out.println("Full Screen");
              Dimension dimScreen;
              Dimension dimPrefSize = new Dimension(500,300);
              Rectangle rectVideo;
              panel = new Panel();
              panel.setLayout(new BorderLayout());
              //if (panel == null)
              //     return;
              dimScreen = Toolkit.getDefaultToolkit().getScreenSize();
              System.out.println("Screen Size: " + dimScreen.toString());
              if (windowFullScreen == null)
                   windowFullScreen = new Window(this);
                   windowFullScreen.setLayout(null);
                   windowFullScreen.setBackground(Color.black);
              windowFullScreen.setBounds(0, 0, dimScreen.width, dimScreen.height);
              rectVideo = new Rectangle(0, 0, dimScreen.width, dimScreen.height);
              if ((float)dimPrefSize.width / dimPrefSize.height >= (float)dimScreen.width / dimScreen.height){
                   rectVideo.height = (dimPrefSize.height * dimScreen.width) / dimPrefSize.width;
                   rectVideo.y = (dimScreen.height - rectVideo.height) / 2;
              else{
                   rectVideo.width = (dimPrefSize.width * dimScreen.height) / dimPrefSize.height;
                   rectVideo.x = (dimScreen.width - rectVideo.width) / 2;
              Toolkit.getDefaultToolkit().sync();
              windowFullScreen.add(panel);
              panel.setBounds(rectVideo);
              windowFullScreen.setVisible(true);
              windowFullScreen.validate();
         public MyPlayer(String[] files)
              addWindowListener(new WindowAdapter()
                   public void windowClosing(WindowEvent e)
                        if (player!=null) player.close();
                        System.exit(0);
                   try{
                        Thread.sleep(2000);
                        setFullScreen();
                   }catch (Exception e){
              urls = files;
              //setTitle("Player");
              //panel.setBackground(Color.BLACK);
              //add(panel);
              //setLocation(300,250);
              //setSize(500, 500);
              //setResizable(false);
              //setVisible(true);
         public void nextMedia(){ nextMedia(0);}
         public void nextMedia(int index)
              try
                   ml = new MediaLocator("file:D:/Temp/" + urls[index]);
                   player = Manager.createPlayer(ml);
                   player.addControllerListener(this);
                   player.start();
              catch(Exception x) { x.printStackTrace(); }
         public void controllerUpdate(ControllerEvent ce)
              if (ce instanceof RealizeCompleteEvent)
                   visual=player.getVisualComponent();
                   if (visual !=null)
                      // size=visual.getPreferredSize();
                        //videoWidth=size.width;
                        //videoHeight=size.height;
                        panel.add( "Center", visual);
                   else {
                      // do nothing
                   if ((control=player.getControlPanelComponent())!=null)
                        //controlHeight=control.getPreferredSize().height;
                        //panel.add("South", control);
                   //setSize(videoWidth+10, videoHeight+controlHeight+30);
                   //validate();
                   //repaint();
              else if(ce instanceof EndOfMediaEvent) {
                   player.close();
                   player.deallocate();
                   panel.removeAll();
                   nextMedia(currentsong=(currentsong+1)% urls.length);
              //System.out.println("\n " + urls[currentsong] + " : " + ce.toString() );
              //else if ( ce instanceof FormatChangeEvent){}
    }Thanks in advance

    My problem is solved !
    Following is code of how to set full screen mode:-
    mport java.awt.*;
    //import java.awt.Rectangle;
    import java.awt.Dimension;
    import java.awt.event.*;
    import javax.media.*;
    import javax.media.Player;
    import javax.swing.*;
    public class MyPlayer extends JFrame implements ControllerListener
         private Player player;
         private Panel panel;
         private String [] urls;
         int currentsong = 0;
         MediaLocator ml;
         int flag = 0;
         int videoWidth = 1024, videoHeight = 768, controlHeight = 30;
         Dimension size;
         Component visual, control;
         private Dimension dimFrameSizeBeforeFullScreen = null;
         private Window windowFullScreen = null;
         Container content = getContentPane();
         public static void main(String[] args)
              String[] files = { "Khalid_Diana.mpg", "11.mpg", "Taha.mpg" };
              MyPlayer Medialist = new MyPlayer(files );
              Medialist.nextMedia(0);
         public MyPlayer(String[] files)
              setBackground(Color.BLACK);
              setUndecorated(true);
              Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
              System.out.println("\n\n The Screen DIM: " + screenSize);
              content.setBounds(0, 0, screenSize.width, screenSize.height);
              addWindowListener(new WindowAdapter()
                   public void windowClosing(WindowEvent e)
                        if (player!=null) player.close();
                        System.exit(0);
              urls = files;
              setTitle("Player");
              panel = new Panel();
              panel.setLayout(new BorderLayout());
              panel.setBackground(Color.BLACK);
              add(panel);
              pack();
              //setLocation(300,250);
              setSize(1024, 768);
              //setResizable(false);
              setVisible(true);
         public void nextMedia(){ nextMedia(0);}
         public void nextMedia(int index)
              try
                   ml = new MediaLocator("file:D:/Temp/" + urls[index]);
                   player = Manager.createPlayer(ml);
                   player.addControllerListener(this);
                   player.start();
              catch(Exception x) { x.printStackTrace(); }
         public void controllerUpdate(ControllerEvent ce)
              if (ce instanceof RealizeCompleteEvent)
                   visual=player.getVisualComponent();
                   if (visual !=null)
                       size=visual.getPreferredSize();
                        videoWidth = size.width;
                        videoHeight = size.height;
                        panel.add(visual, BorderLayout.CENTER);
                   else {
                      // do nothing
                   if ((control=player.getControlPanelComponent())!=null)
                        //controlHeight=control.getPreferredSize().height;
                        //panel.add("South", control);
                   validate();
                   repaint();
              else if(ce instanceof EndOfMediaEvent) {
                   player.close();
                   player.deallocate();
                   panel.removeAll();
                   nextMedia(currentsong=(currentsong+1)% urls.length);
              //System.out.println("\n " + urls[currentsong] + " : " + ce.toString() );
              //else if ( ce instanceof FormatChangeEvent){}
    }By the way thanks Stefan for being supportive

  • Large gray 'band' along bottom of monitor when in full screen mode

    No doubt this is something that's very simple to resolve but...
    For some reason I'm having a large gray empty 'band' (i.e. rectangular strip) appear along the bottom of my monitor's window in "Full Screen Mode With Menu Bar."
    This has only started happening in the last couple of days and I don't recall it ever happening before (no matter what screen mode I've been in).
    The only way I've been able to temporarily eliminate this is to replace my Photoshop preference files from a backup.
    Again... probably some very simple setting... but even then... I don't see what I've been doing recently that I haven't done thousands of times before that would cause this.
    The last time it occurred I had simply dragged a layer from one file to another file and BAM... the gray strip appeared again when I went to full screen.
    Any suggestions?
    Thanks.
    Ron
    Message was edited by: Ron Lanham

    Boilerplate-text:
    Are Photoshop and OS fully updated?
    As with all unexplainable Photoshop-problems you might try trashing the prefs (after making sure all customized presets like Actions, Patterns, Brushes etc. have been saved and making a note of the Preferences you’ve changed) by pressing command-alt-shift on starting the program or starting from a new user-account.
    System Maintenance (repairing permissions, purging PRAM, running cron-scripts, cleaning caches, etc.) might also be beneficial, Onyx has been recommended for such tasks.
    http://www.apple.com/downloads/macosx/system_disk_utilities/onyx.html
    Weeding out bad fonts never seems to be a bad idea, either. (Validate your fonts in Font Book and remove the bad ones.)
    If 3rd party plug-ins are installed try disabling them to verify if one of those may be responsible for the problem.
    Does turning off OpenGL in the Performance Preferences and restarting Photoshop have any bearing on the issue?

  • Running application in full screen mode

    Hi, everyone. I want to write an application (extends JFrame) which runs in full screen mode. It normally runs as a window with minimize, maximize, and close buttons on the top right corner of the window. I want to run it in full screen mode, or at least disable the maximize button so that users are not allowed to resize the window.
    Thanks a lot!
    Davidson

    I have read throught the tutorial http://java.sun.com/docs/books/tutorial/extra/fullscreen/ . but it syas "full-screen exclusive mode is a powerful feature of J2SETM version 1.4" ==> is the the feature only in J2SE 1.4? Does J2SE 1.3.1 support this feature? (I am currently using J2SE1.3.1)

  • JDK 1.4.2 and full-screen mode

    Hi all,
    I'm messing around with a 2D-elite clone using Java 1.4 full-screen mode. After a few hours of work I am happily zapping asteroids and aliens at a zippy 140 FPS.
    I then switch from JDK 1.4.0_01 to 1.4.2_01 in the hope of getting some extra speed. Without making any other changes to the code, things suddenly start crawling along at <30 FPS.
    I am using BufferStrategy in combination with a VolatileImage to draw everything on. Did I miss any important changes in the newest release of the JDK or am I doing something fundamentally wrong?
    Raf

    Hi Abuse,
    Thanks for answering. First of all, my speed calculations are a bit crufty. In my main thread, I do a System.currentTimeMillis() every 1000th call. I consider 10^6 / (this time in ms - last time in ms) to be the speed in FPS. It's probably wildly off, but the difference in speed between the two JDKs is noticeable even without the numbers.
    Posting all of the code is going to be a bit difficult because there's quite a few classes in the project. However, I'll try to isolate the relevant code below.
    At this point, I'm not entirely convinced that the drawing is the problem. I'm using a shoddy integrated video card which may be causing the issues, but even if I only draw the background starfield I see a significant drop in speed. I'll try to disable some code here and there in the hope of finding something more specific.
    I'm playing some music in the background and there is rather a lot of collision-handling code going on, maybe that's the bottle-neck. When you bump into stuff, the trajectory of your ship and whatever you rammed is altered depending on weight, velocity and angle. It's a lot of fun to watch but still quite buggy at this point. (I've got a planet on-screen which acts rather like a beach-ball when I ram it).
    Anyhow, here's the rendering code:
    This class takes care of the initialization of the full-screen mode.
    Actual drawing is done in the Level class below.
    public class Main implements Runnable {
        private long lastTime = System.currentTimeMillis();
        double frameCount = 0;
        public static final int BUFFER_COUNT = 1;
        private JFrame frame;
        BufferStrategy bufferStrategy;
        GraphicsDevice device;
        private BigScreen screen;
        private static final int DRAW_DELAY = 5;
        public static void main(String[] args) {
            Main main = new Main();
        public Main() {
            this.initializeSettings();
            this.initializeGUI();
            new Thread(this).start();
            new Thread(new HouseKeeping()).start();
        private void initializeSettings() {
            Tools.loadEntityTypes();
            SoundManager.getHandle().playMusic();
        private void initializeGUI() {
            GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
            device = env.getDefaultScreenDevice();
            GraphicsConfiguration gc = device.getDefaultConfiguration();
            frame = new JFrame(gc);
            frame.setTitle("Elite 2D");
            frame.setUndecorated(true);
            frame.setResizable(false);
            frame.setIgnoreRepaint(true);
            frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
            device.setFullScreenWindow(frame);
            Level.getHandle().setDimensions((int) device.getDefaultConfiguration().getBounds().getWidth(),
                    (int) device.getDefaultConfiguration().getBounds().getHeight());
            BufferCapabilities bc = new BufferCapabilities(new ImageCapabilities(true),
                    new ImageCapabilities(true),
                    BufferCapabilities.FlipContents.BACKGROUND
            try {
                frame.createBufferStrategy(BUFFER_COUNT, bc);
            } catch (AWTException e) {
                e.printStackTrace();
            bufferStrategy = frame.getBufferStrategy();
            int width = device.getDisplayMode().getWidth();
            int height = device.getDisplayMode().getHeight();
            screen = new BigScreen(width, height, gc.createCompatibleVolatileImage(width, height));
            frame.getContentPane().add(screen);
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
                public void windowDeiconified(WindowEvent e) {
                    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
                    device = env.getDefaultScreenDevice();
                    GraphicsConfiguration gc = device.getDefaultConfiguration();
                    device.setFullScreenWindow(null);
                    device.setFullScreenWindow(frame);
                    BufferCapabilities bc = new BufferCapabilities(new ImageCapabilities(true),
                            new ImageCapabilities(true),
                            BufferCapabilities.FlipContents.COPIED
                    try {
                        frame.createBufferStrategy(BUFFER_COUNT, bc);
                    } catch (AWTException awt) {
                        awt.printStackTrace();
            // Set the cursor to a transparent image
            Image image = Toolkit.getDefaultToolkit().createImage(
                    new MemoryImageSource(16, 16, new int[16 * 16], 0, 16));
            Cursor transparentCursor = Toolkit.getDefaultToolkit().createCustomCursor(image,
                    new Point(0, 0), "invisiblecursor");
            frame.setCursor(transparentCursor);
            screen.setFocusable(false);
            frame.addKeyListener(getKeyListener());
        public KeyAdapter getKeyListener() {
            return new KeyAdapter() {
                public void keyPressed(KeyEvent e) {
                    Level.getHandle().getPlayer().handleKeyUp(e.getKeyCode());
                public void keyReleased(KeyEvent e) {
                    Level.getHandle().getPlayer().handleKeyDown(e.getKeyCode());
        public void run() {
            while (true) {
                if (frameCount++ % 1000 == 0) {
                    long thisTime = System.currentTimeMillis();
                    // aantal ms voor 1000 frames
                    // 1000 * (aantal frames / seconde)
                    double fps = thisTime - lastTime;
                    lastTime = thisTime;
                    Level.getHandle().getConsole().addConsoleMessage("FPS : " + 1000000 / fps);
                Graphics g = bufferStrategy.getDrawGraphics();
                screen.paintSurroundings();
                g.drawImage(screen.background, 0, 0, null);
                g.dispose();
                bufferStrategy.show();
                try {
                    Thread.sleep(DRAW_DELAY);
                } catch (InterruptedException e) {
                } catch (IllegalStateException i) {
        public Rectangle getScreenDimensions() {
            return frame.getGraphicsConfiguration().getBounds();
        public void exitFullScreen() {
            device.setFullScreenWindow(null);
    } // End class Main// The rendering-code in Level is done in the updateStatus-method.
    // Once again, rendering is delegated to the current SolarSystem class.
    public class Level {
        private static Level handle;
        public SolarSystem currentSolarSystem;
        private Console console;
        private int width, height;
        private Ship player;
        // All ships within this radius of the player get to act
        private static final int ACTION_RADIUS = 5000;
        // All entities within this radius of the player qualify for drawing
        private static final int VISIBILITY_RADIUS = 2000;
        private Level() {
            console = new Console();
            currentSolarSystem = new SolarSystem();
            Equipment[] weapons = new Equipment[3];
            weapons[0] = new BeamWeapon(Color.red, 1000, 0.02, 0.1);
            weapons[1] = new PulseWeapon(Color.blue, 500, 0, 400, 1);
            weapons[2] = new MissileLauncher();
            player = new Ship(100, 100, weapons, currentSolarSystem);
            currentSolarSystem.addEntity(new Entity(1000, 1000, Tools.getEntityType("planet"), currentSolarSystem));
            for (int i = 0; i < 20; i++) {
                Entity asteroid = Tools.getEntityType("asteroid").createEntity(200 * i, 0, currentSolarSystem);
                asteroid.setSpeed(Tools.getRandom(asteroid.getMaxSpeed()));
                asteroid.setAccelerationAngle(Tools.getRandom(Tools.TWOPI));
                currentSolarSystem.addEntity(asteroid);
            for (int i = 0; i < 5; i++) {
                currentSolarSystem.addEntity(Tools.getEntityType("enemy").createEntity(
                        Tools.getRandom(-1000, 1000), Tools.getRandom(-1000, 1000), currentSolarSystem));
        public SolarSystem getActiveSolarSystem() {
            return this.currentSolarSystem;
        public Console getConsole() {
            return this.console;
        public void setDimensions(int x, int y) {
            this.width = x;
            this.height = y;
        public int getWidth() {
            return this.width;
        public int getHeight() {
            return this.height;
        public static Level getHandle() {
            if (handle == null) {
                handle = new Level();
            return handle;
        public ArrayList getEntitiesInRectangle(int x1, int y1, int w1, int h1) {
            ArrayList intersects = new ArrayList();
            for (int i = 0; i < currentSolarSystem.getEntities().size(); i++) {
                Entity e = (Entity) currentSolarSystem.getEntities().get(i);
                if ((x1 + w1 > e.getX()) && (e.getX() + e.getWidth() > x1) && (y1 + h1 > e.getHeight())
                        && (e.getY() + e.getHeight() > y1)) {
                    intersects.add(e);
            return intersects;
        public ArrayList getEntitiesInLine(double x1, double y1, double x2, double y2) {
            ArrayList intersects = new ArrayList();
            Line2D line = new Line2D.Double(x1, y1, x2, y2);
            for (int i = 0; i < currentSolarSystem.getEntities().size(); i++) {
                Entity e = (Entity) currentSolarSystem.getEntities().get(i);
                // System.out.println(e.getBoundingShape() + " vs " + x1 + "x" + y1 + ", " + x2 + "x" + y2);
                if (line.intersects(e.getBoundingShape().getBounds2D())) {
                    intersects.add(e);
            return intersects;
        public Entity getNearestEntityToLineOrigin(double x1, double y1, double x2, double y2) {
            double closestIndex = 0;
            Entity closestEntity = null;
            Line2D line = new Line2D.Double(x1, y1, x2, y2);
            for (int i = 0; i < currentSolarSystem.getEntities().size(); i++) {
                Entity e = (Entity) currentSolarSystem.getEntities().get(i);
                // System.out.println(e.getBoundingShape() + " vs " + x1 + "x" + y1 + ", " + x2 + "x" + y2);
                if (line.intersects(e.getBoundingShape().getBounds2D())) {
                    double distance = Tools.getDistance(x1, y1, e);
                    if (closestEntity == null) {
                        closestEntity = e;
                        closestIndex = distance;
                    } else if (distance < closestIndex) {
                        closestEntity = e;
            return closestEntity;
        public Ship getPlayer() {
            return player;
        public void updateStatus(Graphics g, int width, int height) {
            getActiveSolarSystem().updateStatus(g, getPlayer(), width, height);
            getConsole().showConsoleMessages(g);
    }Draws a starfield and all visible entities in sight. So far I'm just
    drawing all entities in the solar system. Seems to be faster than
    figuring out whether objects are near the player for <100 objects.
    public class SolarSystem {
        private static final int BIG_STARS = 20;
        private static final int MAX_STARS = 1000;
        private static final int STAR_AREA = 1400;
        private int[][] stars;
        private ArrayList entities;
        private ArrayList explosions;
        public SolarSystem() {
            entities = new ArrayList();
            explosions = new ArrayList();
            this.initializeStarField();
        public ArrayList getEntities() {
            return entities;
        public ArrayList getExplosions() {
            return explosions;
        public void addEntity(Entity e) {
            entities.add(e);
        public void removeEntity(Entity e) {
            entities.remove(e);
        public void addExplosion(int x, int y, int size, int max) {
            // System.out.println("Adding explosion at " + x + " " + y);
            explosions.add(new Explosion(x, y, size, max));
        public void updateStatus(Graphics g, Ship player, int width, int height) {
            this.pollEntities(player);
            this.drawScene(g, player, width, height);
        private void drawScene(Graphics g, Ship player, int width, int height) {
            // Make sure nothing extraneous gets drawn
            g.clipRect(0, 0, width, height);
            // Clear the surface and set the background
            g.setColor(Color.black);
            g.fillRect(0, 0, width, height);
            // Draw explosions & remove from the buffer if needed
            Explosion[] expl = (Explosion[]) getExplosions().toArray(new Explosion[explosions.size()]);
            int centerX = (int) player.getX();
            int centerY = (int) player.getY();
            int widthOffset = centerX + width / 2;
            int heightOffset = centerY + height / 2;
            this.drawStarField(g, player);
            for (int i = expl.length - 1; i >= 0; i--) {
                Explosion ex = expl;
    g.setColor(new Color(Math.max(255 - ex.size, 0), 0, 0));
    g.drawOval(ex.x - widthOffset, ex.y - heightOffset, ex.size, ex.size);
    if (ex.size < ex.max) {
    ex.size += 2;
    ex.x--;
    ex.y--;
    explosions.set(i, ex);
    } else {
    explosions.remove(i);
    // todo - can we re-use the active entities table here?
    Entity[] entities = getVisibleEntities(player);
    for (int i = 0; i < entities.length; i++) {
    entities[i].drawEntity((int) (entities[i].getX() - player.getX() + width / 2),
    (int) (entities[i].getY() - player.getY() + height / 2), g);
    player.drawEntity(width / 2, height / 2, g, entities, width, height);
    private void drawStarField(Graphics g, Ship player) {
    g.setColor(new Color(255, 255, 255));
    int starX = ((int) player.getX() % STAR_AREA);
    int starY = ((int) player.getY() % STAR_AREA);
    for (int i = 0; i < BIG_STARS; i++) {
    g.fillOval((stars[i][0] - starX) % STAR_AREA, (stars[i][1] - starY) % STAR_AREA, 3, 3);
    for (int i = BIG_STARS; i < MAX_STARS; i++) {
    g.drawLine((stars[i][0] - starX) % STAR_AREA, (stars[i][1] - starY) % STAR_AREA,
    (stars[i][0] - starX) % STAR_AREA, (stars[i][1] - starY) % STAR_AREA);
    * Includes the player as an active entity
    * @param player
    * @return
    private Entity[] getActiveEntities(Ship player) {
    Entity[] activeEntities = (Entity[]) entities.toArray(new Entity[entities.size() + 1]);
    activeEntities[activeEntities.length - 1] = player;
    return activeEntities;
    private void pollEntities(Ship player) {
    this.purgeDestroyedObjects();
    Entity[] activeEntities = this.getActiveEntities(player);
    for (int i = 0; i < activeEntities.length; i++) {
    activeEntities[i].resolveAction();
    // todo - Handle gravitational pull
    //if (activeEntities[i].hasGravitationalPull()) {
    // Handle collisions
    for (int i = activeEntities.length - 1; i >= 0; i--) {
    if (activeEntities[i] != null && !activeEntities[i].isTransparent() && !activeEntities[i].isDestroyed()) {
    for (int j = i - 1; j >= 0; j--) {
    if (activeEntities[i] != null && activeEntities[j] != null &&
    !activeEntities[j].isTransparent() && Tools.entitiesCollide(activeEntities[i], activeEntities[j])) {
    handleCollision(activeEntities[i], activeEntities[j]);
    // todo - seems redundant - remove by avoiding player ?
    if (activeEntities[i].isDestroyed()) {
    // System.out.println("Removing " + activeEntities[i]);
    activeEntities[i] = null;
    if (activeEntities[j].isDestroyed()) {
    // System.out.println("Removing " + activeEntities[j]);
    activeEntities[j] = null;
    private void purgeDestroyedObjects() {
    for (int i = entities.size() - 1; i >= 0; i--) {
    if (((Entity) entities.get(i)).isDestroyed()) {
    entities.remove(i);
    private void handleCollision(Entity one, Entity two) {
    // Base damage is a factor of total speed & angle.
    double collisionFactor = Math.abs(Math.sin((one.getAccelerationAngle() - two.getAccelerationAngle()) / 2));
    double explosiveDamage = 0;
    if (one.explodesOnImpact()) {
    one.onDestroy();
    explosiveDamage += one.getExplosiveDamage();
    if (two.explodesOnImpact()) {
    two.onDestroy();
    explosiveDamage += two.getExplosiveDamage();
    one.applyDamage(explosiveDamage + (collisionFactor * two.getMass() / one.getMass()));
    two.applyDamage(explosiveDamage + (collisionFactor * one.getMass() / two.getMass()));
    // Introducing the FACTOR-variable also causes stickiness (two objects glued together after collision)
    // FACTOR determines how much of the energy is transfered from entity 1 to 2, and how much remains
    double FACTOR = 0.9;
    // Don't delete v1 and a1!
    double v1 = one.getSpeed();
    double a1 = one.getAccelerationAngle();
    double spinFactor = Math.cos(one.getAccelerationAngle() - two.getAccelerationAngle());
    if (!one.isDestroyed()) {
    one.setSpeed(two.getSpeed() * FACTOR + one.getSpeed() * (1 - FACTOR));
    one.setAccelerationAngle(two.getAccelerationAngle());
    one.applySpin(spinFactor);
    if (!two.isDestroyed()) {
    two.setSpeed(v1 * FACTOR + two.getSpeed() * (1 - FACTOR));
    two.setAccelerationAngle(a1);
    two.applySpin(-spinFactor);
    public Entity[] getVisibleEntities(Entity center) {
    return (Entity[]) entities.toArray(new Entity[entities.size()]);
    private void initializeStarField() {
    stars = new int[MAX_STARS][2];
    for (int i = 0; i < MAX_STARS; i++) {
    setStar(i);
    private void setStar(int index) {
    stars[index][0] = Tools.getRandom(STAR_AREA) + STAR_AREA;
    stars[index][1] = Tools.getRandom(STAR_AREA) + STAR_AREA;
    Finally, the Entity class. All in-game objects extend Entity. Rendering is done in the drawEntity-method. Each Entity has an EntityType which contains parameters like the weight, maximum acceleration and turn rate etc... Images are also stored in EntityType.
    public class Entity {
        public static final double TWOPI = Math.PI * 2;
        protected double speed;
        protected double turnRate;
        protected double x, y;
        protected double heading;
        protected double accelerationAngle;
        protected boolean destroyed = false;
        protected double energy;
        protected EntityType type;
        private Equipment activeEquipment;
        private SolarSystem solar;
        public Entity(int xPos, int yPos, EntityType type, SolarSystem solar) {
            this.x = xPos;
            this.y = yPos;
            this.type = type;
            this.energy = this.getEntityType().getEnergy();
            this.solar = solar;
         * Basic entity drawing function doesn't taken rotation into account
        public void drawEntity(int xLocation, int yLocation, Graphics g) {
            if (this.getActiveEquipment() != null && this.getActiveEquipment().isActive()) {
                this.getActiveEquipment().applyEffect(this, g);
    //        Level.getHandle().getConsole().addConsoleMessage(xLocation + "x" + yLocation);
            g.drawImage(getIcon(), xLocation, yLocation, null);
        public Shape getBoundingShape() {
            return new Rectangle((int) getX(), (int) getY(), getWidth(), getHeight());

  • Why is one of my dual screen grayed out when in full screen mode on the other?

    I just added a second monitor for an extended desktop. When I go into full screen mode on one the other greys out. Is there a way to fix this or am i stuck? thanks!!!

    No that is just the way it is. Apple still can't figure out how to do full screen apps. When you put any app into full screen mode it make a second desktop to run that app on. When that happen the second monitor, in a dual monitor setup, has nothing to do as everything is on the main monitor in different desktops.
    You'll have to just expand the app to the max window size instead of going into full screen. Then you can drag/place different apps on each monitor.

  • Version 7.2.0 full screen mode does not appear in external display

    I just upgraded to Version 7.2.0. The new full screen mode is fabulous. But, when the video starts, it moves the QuickTime window from my giant, external monitor to my laptop monitor. Is there some way to view video in full screen mode on my external monitor?
    Cheers,
    Greg
    MacBook Pro   Mac OS X (10.4.10)  

    Here's a solution I thought should work for QuickTime(not pro):
    When you plug in an external monitor and choose to extend your desktop there is an extra tab in the "Display Settings" window for "arrangement". So, obviously on this page you can arrange your screens and decide which side you want your external monitor to extend your desktop on. Also, you can hold and drag the menu bar giving you the option of putting the menu bar on your external screen. So, one would think that the display that has the menu bar on it should be used as your default display. So, you would also think that QuickTime Player, when put into full screen mode, would use your "default" display to go into full screen. This seems logical, and possibly even desired behavior from a computer.
    However, this is not the case. When I gave this a try no matter where you put your menu bar the QuickTime Player will always open its full screen mode in your MacBook Pro's display. What I propose is some how (though I'm unsure of how to do this) contact apple with a feature request that would allow you to explicitly set a default display and to have all applications use that display for when it goes into full screen.

  • Full screen mode and secondary display

    I am using Aperture with two monitors. The primary viewer is set to 'multi', and the secondary viewer is set to 'alternate'.
    When I enter full-screen mode (F), the picture is displayed on the secondary viewer and the filmstrip is displayed on the primary viewer. I want the picture to be displayed on the primary viewer (as it is of better quality). How can I achieve this?
    Thanks!
    Fabrice

    You have to switch the primary and secondary monitors using System Preferences >Displays > Arrangement.
    Drag the menu bar stripe to the monitor you want to make (temporarily) the primary. Drag it back later.
    I have looked for quick way to script this through Apple script but not yet found a way to do it.

  • PS CS6, Full Screen Mode with Menu Bar, Zoom, Brush, Auto Pan

    There seems to be a functionality that was lost (or I can't find it) in CS6 that was in earlier versions.  When I am In Full Screen Mode with Menu and the image I am editing is zoomed in, I used to be able to shift+click my brush to extend a line.  That line would automatically reposition the image when I got to the edge of the screen.  Does anyone know if that functionality is gone or do I need to turn "something on”?
    1. I open a file
    2. I ender Full Screen Mode with Menu Bar
    3. I enlarge the photo so that its boundaries are beyond the edge of the screen
    4. I enter mask mode (doesn't matter what mode)
    5. With my brush tool I start to paint a line by holding the "shift" key and "left-click"
    6. I get to the edge of the screen
    * this is where PS would reposition the image automatically and I could keep painting my line

    Which operating system are you using?

Maybe you are looking for