ich experimentiere gerade mit einem 3D - Fenster in einem OpenWindowedScreen herum.
Dabei versuche ich das Fenster an die aktuelle Desktop - Auflösung anzupassen (d.h. in meinem Fall 1900x1200), d.h. zu maximieren.
Grundlegend fangen wir das Event #PB_Event_MaximizeWindow ab und versuchen das 3D Fenster zu verändern. Dabei haben wir schon mehrere Versionen versucht, jedoch bekamen wir immer wieder die Fehlermeldung:
Das angegebene #Window3D wurde nicht initialisiert.
Leider sind wir uns beide nicht sicher, was genau damit gemeint ist, da die 3D Darstellung selbst ja erfolgt und erst abbricht, wenn wir
win3D = GetActiveWindow3D()
ResizeWindow3D(win3D, 0, 0, 1024, 768)
aufrufen. win3D ist inzwischen der letzte Versuch eine ganzen Reihe von Tests, die leider alle nicht funktioniert haben. Wir haben an dieser Stelle versucht die Auflösung einfach mal fix zu setzen, um zu sehen, ob sich evtl. was ändert, jedoch kam es niemals soweit. Auf das Event reagiert der Code jedoch richtig: mit einem END wird das Ganze sauber beendet.
Ich habe Unten den Code dran gehängt.
Hat irgendjemand eine Idee, was genau der Fehler sein könnte bzw. was wir falsch machen?
lg
W.
Code: Alles auswählen
#Window = 1
#MainWindow = 0
Declare UpdateEvents()
Declare Create3DStuff()
Declare InitEngineParts()
InitEngineParts()
If OpenWindow(#MainWindow, 0, 0, 800, 600, "Testefenster", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MaximizeGadget)
  
  OpenWindowedScreen(WindowID(#MainWindow), 0, 0,800, 600, 0, 0, 0) 
  OpenWindow3D(#Window, 100, 100, 300, 100, "")
  
  
  Create3DStuff()
  
  
  Repeat ;Hauptschleife
    
    UpdateEvents()    
      
    ExamineKeyboard()  
    RenderWorld() 
    FlipBuffers()
    
  Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  
  
  
  
EndIf
;---------------Funktionen!---------------------------------------------------
Procedure InitEngineParts()
  
  InitEngine3D()   
  InitSprite()
  InitKeyboard()
  InitMouse()
  
EndProcedure
Procedure Create3DStuff()
  
  CreateCamera(0, 0, 0, 100, 100)  ; Front camera
  MoveCamera(0,0,100,100, #PB_Absolute)   
  CameraLookAt(0,0,0,0)
  
  
  CreateCylinder(1,20,30) 
  CreateEntity(0, MeshID(1), #PB_Material_None) 
  MoveEntity(0,0,0,0)
  
  EntityRenderMode(0, #PB_Entity_DisplaySkeleton)
  CreateLight(0,RGB(0,255,0),0,100,0)
  
EndProcedure
Procedure UpdateEvents()
  
    Repeat ;Eventschleife
        Event = WindowEvent()
        win3D = GetActiveWindow3D()
        
        Select Event
          
          Case #PB_Event_CloseWindow
            Quit = 1
           
          Case #PB_Event_MaximizeWindow
            
            ResizeWindow3D(win3D, 0,  0,  1024, 768)
        EndSelect
        
        If Quit = 1 : End : EndIf  ; Quit the app immediately
      Until Event = 0 ;Ende Eventschleife 
      
EndProcedure