Severin, would be nice to see a video of this in action, your new apps that make screen switching easier.
TJ
How does dual monitor word on X1000
- amigasociety
- Posts: 306
- Joined: Thu Feb 02, 2012 7:09 pm
- Location: Northern California
- Contact:
Re: How does dual monitor word on X1000
Happy owner of several Amiga systems including:
AmigaOne X5000
Amiga A1222 Tabor
AmigaOne X5000
Amiga A1222 Tabor
Re: How does dual monitor word on X1000
@ssolie
They're not written as commodities yet, I just call them from fkey.
@amigasociety
I don't have the equipment or the bandwidth to do that but I can send you the beta versions although I haven't found a bug yet that occasionally locks the system. Probably due to changes in OS4 as I'm compiling OS3 68k exe's or maybe the ancient 3rd party library calls I've used... have to remove those and see what happens.
Anyway heres the code if anyone is interested:
SwapMonitor:
SwapScreen:
They're not written as commodities yet, I just call them from fkey.
@amigasociety
I don't have the equipment or the bandwidth to do that but I can send you the beta versions although I haven't found a bug yet that occasionally locks the system. Probably due to changes in OS4 as I'm compiling OS3 68k exe's or maybe the ancient 3rd party library calls I've used... have to remove those and see what happens.
Anyway heres the code if anyone is interested:
SwapMonitor:
Code: Select all
#MODEID_FILTER = $FF000000 & #MONITOR_ID_MASK
*toFrontScreen.Screen = 0
lock.l = LockIBase_ (0)
*myIntuitionBase.IntuitionBase = IntuitionBase
*myScreen.Screen = *myIntuitionBase\FirstScreen
If *myScreen
firstModeID.l = GetVPModeID_(*myScreen\ViewPort) & #MODEID_FILTER
*myScreen = *myScreen\NextScreen
EndIf
While *myScreen
toFrontModeID.l = GetVPModeID_(*myScreen\ViewPort) & #MODEID_FILTER
If (toFrontModeID><firstModeID)
*toFrontScreen = *myScreen
*myScreen = 0
Else
*myScreen = *myScreen\NextScreen
End If
Wend
UnlockIBase_ lock
If *toFrontScreen><0 Then ScreenToFront_ *toFrontScreen
End
Code: Select all
#MODEID_FILTER = $FF000000 & #MONITOR_ID_MASK
*toFrontScreen.Screen = 0
*toBackScreen.Screen = 0
count.b=0
lock.l = LockIBase_ (0)
*myIntuitionBase.IntuitionBase = IntuitionBase
*myScreen.Screen = *myIntuitionBase\FirstScreen
*toBackScreen = *myScreen
If *myScreen
firstModeID.l = GetVPModeID_(*myScreen\ViewPort) & #MODEID_FILTER
*myScreen = *myScreen\NextScreen
EndIf
While *myScreen
count + 1
toFrontModeID.l = GetVPModeID_(*myScreen\ViewPort) & #MODEID_FILTER
If (toFrontModeID=firstModeID) AND (*toFrontScreen=0)
*toFrontScreen = *myScreen
;*myScreen = 0
Else
*myScreen = *myScreen\NextScreen
End If
Wend
UnlockIBase_ lock
If *toFrontScreen><0
ScreenToFront_ *toFrontScreen
For i.b=1 To count
ScreenToBack_ *toBackScreen
Next
EndIf
End