Menu

#80 Explicit multi-head support

open
nobody
None
2
2014-08-25
2004-03-21
SD Snatcher
No

Hello,

I have a notebook with a nvidia geforce2 video onboard.
The TV-out is supported as a second head on it. When I
run openmsx on the 2nd head and try to switch to
fullscreen by pressing F12, openmsx happily goes to the
LCD screen (the 1st head). Openmsx seems to be
hardcoded to the 1st display of the system.

I know I can enable the mirroring option on nview, but
since this is done by copying every frame to the second
head, the performance is awful. Openmsx runs at mostly
half the speed it should by using mirroring.

And the second-head on the TV is very useful for using
openmsx as a development tool also. I could run the MSX
screen on the TV and the debugger interface on the LCD
screen.

Regards,
FRS

Discussion

  • Maarten ter Huurne

    Logged In: YES
    user_id=358343

    openMSX does its rendering through SDL. Switching to full
    screen is implemented by opening a new SDL surface with the
    "full screen" flag set. SDL doesn't give us any low-level control
    over full screen mode. So as long as we render only using SDL, it
    is not possible to implement your request.

    We are thinking about making a DirectX renderer in the future.
    However, no-one started coding it yet, so it might take a while
    before this becomes reality. I guess DirectX would allow the
    programmer to control which head is used for full screen, but I'm
    not sure since I'm not familiar with the DirectX API.

    You could try to ask the SDL people (www.libsdl.org) to add
    something to control which head is used for full screen. Or you
    could try if your OpenGL implementation allows you to specify
    this and then use the SDLGL renderer in openMSX.

     
  • SD Snatcher

    SD Snatcher - 2004-03-23

    Logged In: YES
    user_id=130840

    The OpenGL renderer of nvidia has an option to allow the
    programs to use the second head. I enabled it, but the
    problem is still happening on openMSX + "set renderer sdlgl"

    And even worse: It doen't work as a window also. The MSX
    screen is not updated and some wrong colors blocks appears
    over it.

    Yes, I'm using both screens at 16bit color depth. :)

    I also tried starting the program on the 2nd head in a try
    to avoid to move it running from on head to another, but it
    insists on openning it's window on the 1st head.

    I e-mailed slouken at libsdl about the fullscreen problem on
    the non-openGL version of the lib, let's wait to see what he
    says about.

     
  • Manuel Bilderbeek

    • labels: 420819 -->
    • priority: 5 --> 2
    • assigned_to: mthuurne --> nobody
    • summary: Full screen doesn't work on the second head on win32 --> Explicit multi-head support
     
  • Manuel Bilderbeek

    Logged In: YES
    user_id=78178

    Any news from the SDL guys yet?

    Since it's not a bug in openMSX itself and since we can
    probably only do something about it when there is a DirectX
    renderer, I'm lowering priority and moving it to Feature
    Requests.