Seite 1 von 1
Resize für OpenWindowScreen - Gibts das überhaupt?
Verfasst: 06.05.2014 16:38
von cdx
Hi,
benutze die interne PB 3D engine und möchte meine Grafikausgabe in z.B. einen ContainerGadget vollführen. Dieses Gadget möchte ich dann entsprechend mit ResizeGadget skalieren können und die 3D Ausgabe muss sich entsprechend von der Größe her anpassen!
Habe nichts dazu gefunden bzgl. dem resize der Grafikausgabe ... geht das mit der PB 3D engine überhaupt?
Danke und Grüße,
cdx
Re: Resize für OpenWindowScreen - Gibts das überhaupt?
Verfasst: 06.05.2014 16:48
von bobobo
Autostretch kaputt? Das ist eine Option im OpenWindowedscreen
Re: Resize für OpenWindowScreen - Gibts das überhaupt?
Verfasst: 06.05.2014 17:05
von cdx
I know about that but it just does not work

... try this and you will see what I mean (black square is the 3D engine output - pink one is the backcolor of the container gadget).
Paste that code, run it and resize the window!
Code: Alles auswählen
If(InitEngine3D())
InitSprite()
MainWindow = OpenWindow(#PB_Any, 0, 0, 400, 400, "Test", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
Container = ContainerGadget(#PB_Any, 10, 10, 100, 100)
SetGadgetColor(Container, #PB_Gadget_BackColor, RGB(255,0,128))
CloseGadgetList()
OpenWindowedScreen(WindowID(Container), 0, 0, WindowWidth(Container), WindowHeight(Container), 1, 0, 0)
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
End
Case #PB_Event_SizeWindow
ResizeGadget(Container, 10, 10, WindowWidth(MainWindow, #PB_Window_InnerCoordinate) - 20, WindowHeight(MainWindow, #PB_Window_InnerCoordinate) - 20)
EndSelect
RenderWorld()
FlipBuffers()
ForEver
EndIf
Re: Resize für OpenWindowScreen - Gibts das überhaupt?
Verfasst: 06.05.2014 18:07
von bobobo
Läuft gar nicht in 5.22
WindowId(contain..) mag dort nicht.
hier ein etwas getuntes Demo aus der PB Hilfe
Code: Alles auswählen
If InitSprite() = 0
MessageRequester("Error", "Can't open screen & sprite environment!", 0)
End
EndIf
If OpenWindow(0, 0, 0, 320, 200, "A screen in a window...", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
CreateStatusBar(0, WindowID(0))
AddStatusBarField(320)
StatusBarText(0, 0, "Automatically zoomed screen area when changing window size...")
If OpenWindowedScreen(WindowID(0), 10, 10, 320, 200, #True, 20, 30)
CreateSprite(0, 50, 50) ; Create an empty sprite, will be whole black
Repeat
; It's very important to process all the events remaining in the queue at each frame
;
Repeat
Event = WaitWindowEvent(10)
If Event = #PB_Event_CloseWindow
End
EndIf
Until Event = 0
FlipBuffers()
ClearScreen(RGB(0, 0, 200)) ; A blue background
DisplaySprite(0, 10, 10) ; Display our black box at the left-top corner
DisplaySprite(0, 260, 10) ; Display our black box at the right-top corner
ForEver
Else
MessageRequester("Error", "Can't open windowed screen!", 0)
EndIf
EndIf
wenn es platte Grafik sein soll dann tut es doch auch ein Canvasgadget, das lässt sich dann leichter resizen per resizegadget(..)
Re: Resize für OpenWindowScreen - Gibts das überhaupt?
Verfasst: 06.05.2014 19:10
von cdx
Dabke für die Antwort ... hab ich mir schon fast gedacht nachdem ich alles durchforstet habe. Brauche es für ein Tool wo ich etwas 3D mache, ist also von nöten.
Danke und Grüße,
cdx
Re: Resize für OpenWindowScreen - Gibts das überhaupt?
Verfasst: 07.05.2014 09:04
von Chimorin
Die Autostretchfunktion geht in Verbindung mit der OGRE-Engine nicht.