3 Monitore und Engine3D, Absturz beim Beenden.
Verfasst: 11.09.2017 14:02
Hallo,
ich habe da ein Problem entdeckt, das für die meisten eher nicht relevant ist.
Mich aber sehr nervt.
Ich habe 3 Monitore, Monitor 1 ist in der Mitte, Monitor 2 ist rechts und Monitor 3 ist links mit
einem Negativ Offset.
Hier erstmal der Code
Wenn jetzt das Fenster in den rechten oder linken Monitor verschoben wird. Stürzt die
Engine ab. Was bei einem Programm ende mit einem Fehler endet.
Da es sein kann das ich etwas nicht berücksichtige was anderen total klar ist. Schreibe ich es erstmal hier rein.
Bevor ich es als Bug betitle.
Der Absturz erfolgt erst, wenn das Fenster beim Verschieben losgelassen wird.
Gruss TFT
ich habe da ein Problem entdeckt, das für die meisten eher nicht relevant ist.
Mich aber sehr nervt.
Ich habe 3 Monitore, Monitor 1 ist in der Mitte, Monitor 2 ist rechts und Monitor 3 ist links mit
einem Negativ Offset.
Hier erstmal der Code
Code: Alles auswählen
#EventForce = 1
Global Event,Quit
InitEngine3D()
InitSprite()
Procedure DebugLog(t.s)
If DebugLog
Debug(t)
EndIf
EndProcedure
Procedure Timer()
Select EventTimer()
Case #EventForce
; Dieser Code Teil muss in die TimerEvent Procedure, Weil sonst beim bewegen des Fensters
; Das Programm bei WaitEvent stehen bleibt. Ein bekanntes Problem ab W 7 durch die einfürung
; des Binding Systems
If RunTest < ElapsedMilliseconds()
RunTest = ElapsedMilliseconds()+1000
debuglog("Main Schleife läuft")
EndIf
;----------------------------------------------------------------------------------------
EndSelect
EndProcedure
OpenWindow(0, 0, 0, 640, 480, "Cube example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 0, 0, 0)
; Damit beim Windows Verschieben der Code nicht stehen bleibt.
AddWindowTimer(0, #EventForce , 100)
BindEvent(#PB_Event_Timer, @Timer(), 0)
; Light
CreateLight(#PB_Any, RGB(25, 25, 180), -5, 10, 5, #PB_Light_Point)
; Camera
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 2, 1, 3, #PB_Absolute | #PB_Local)
CameraLookAt(0, 0, 0, 0)
; Erstelle den Würfel und binde ihn an die Szene
CreateCube(0, 1)
CreateEntity(0, MeshID(0), #PB_Material_None)
Repeat
Repeat
Event = WindowEvent()
If Event
If EventWindow() = 0
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
EndSelect
Case #WM_KEYDOWN
Select EventwParam()
Case #ESC
Quit = 1
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
Default
EndSelect
EndIf
Else
Delay(1)
EndIf
Until Event = 0
If Quit = 1
If MessageRequester("Quit Requester","You are quite the programm ",#PB_MessageRequester_YesNo ) = #PB_MessageRequester_No
Quit = 0
EndIf
EndIf
RotateEntity(0, 1, -1, 0 ,#PB_Relative)
RenderWorld()
FlipBuffers()
Until Quit = 1
CloseWindow(#PB_All)
End
Engine ab. Was bei einem Programm ende mit einem Fehler endet.
Code: Alles auswählen
[11:05:32] Warte auf den Start des Executable...
[11:05:31] Executable-Typ: Windows - x86 (32bit, Unicode)
[11:05:32] Executable gestartet.
[11:05:39] [ERROR] Main.pb (Zeile: 51)
[11:05:39] [ERROR] Ungültiger Speicherzugriff. (Schreibfehler an der Adresse 359582440)
[11:05:48] Das Programm wurde beendet.
[11:06:34] Warte auf den Start des Executable...
[11:06:34] Executable-Typ: Windows - x86 (32bit, Unicode)
[11:06:34] Executable gestartet.
[11:06:47] [ERROR] Main.pb (Zeile: 25)
[11:06:47] [ERROR] Ungültiger Speicherzugriff. (Lesefehler an der Adresse 8)
[11:07:00] Das Programm wurde beendet.
[11:07:09] Warte auf den Start des Executable...
[11:07:09] Executable-Typ: Windows - x86 (32bit, Unicode)
[11:07:09] Executable gestartet.
[11:07:23] [ERROR] Main.pb (Zeile: 25)
[11:07:23] [ERROR] Ungültiger Speicherzugriff. (Lesefehler an der Adresse 23)
[11:08:09] Das Programm wurde beendet.
[13:48:43] Warte auf den Start des Executable...
[13:48:43] Executable-Typ: Windows - x86 (32bit, Unicode)
[13:48:43] Executable gestartet.
[13:48:50] [ERROR] Main.pb (Zeile: 97)
[13:48:50] [ERROR] Ungültiger Speicherzugriff. (Schreibfehler an der Adresse 4099286488)
Bevor ich es als Bug betitle.
Der Absturz erfolgt erst, wenn das Fenster beim Verschieben losgelassen wird.
Gruss TFT