Flackern beim Draw in 3D WindowScreen
Verfasst: 05.02.2021 15:55
Hallo,
ich habe da eine Sache. die mir total suspekt erscheint. Ich habe diesen kurzen ausschnitt aus meine Code.
Dieser abschnitt befindet sich in einem RenderThread. Der nur für die Darstellung der 3D Objekte zuständig ist.
Und so wurde das Fenster Initialisiert. Aus meiner Sicht sollte es kein Problem darstellen, DrawBox an der Stelle so auszuführen.
Allerdings verzeichne ich da erhebliche Störungen. Das Flackert nu so rumm, als wenn die das Draw auf einem Durchsichtigen Fenster
über dem Screen ausgeführt wird. Anstatt auf dem Screen selber. Den Screen zum zeichnen selber übergeben geht ja nich. Da dieser ja
in der Konstellation nicht existiert.
Jemand ne Idee ?????
Please help
Gruss TFT
ich habe da eine Sache. die mir total suspekt erscheint. Ich habe diesen kurzen ausschnitt aus meine Code.
Code: Alles auswählen
; Get Kabinen Position
LockMutex(KabineMutex)
KabinenPosition = KabinenPositionY
UnlockMutex(KabineMutex)
MoveNode(kabineAnkerAufzug1,0.0,KabinenPosition,0.0,#PB_Absolute)
RotateNode(cameraAnkerAufzug1,0.0,CameraAnkerDrehung.f,0.0,#PB_Absolute)
MoveCamera(camera_1,0.0,0.0,CameraEntfernung,#PB_Absolute)
RenderTime = RenderWorld()
;LockMutex(AnzeigeMutex)
;If AnzeigeKabinenPosition <> 0
StartDrawing(WindowOutput(#Fenster3D_1))
DrawingFont(FontID(font))
;DrawAlphaImage(ImageID(AnzeigeKabinenPosition),0,0,215)
DrawingMode(#PB_2DDrawing_Default)
RoundBox(262,12,220,140,9,9,RGB(255,255,255))
DrawText(262+5,12+4,Str(Abs(KabinenPosition*1000)),RGB(0,0,0),RGB(255,255,255))
StopDrawing()
;EndIf
;UnlockMutex(AnzeigeMutex)
FlipBuffers()
Code: Alles auswählen
OpenWindow(#Fenster3D_1,DesktopX(#DisplayDesktop),DesktopY(#DisplayDesktop),DesktopWidth(#DisplayDesktop),DesktopHeight(#DisplayDesktop),"3D_Arbeitsfenster",#PB_Window_BorderLess )
Define screen = OpenWindowedScreen(WindowID(#Fenster3D_1),0,0,DesktopWidth(#DisplayDesktop),DesktopHeight(#DisplayDesktop),0,0,0,#PB_Screen_SmartSynchronization )
ShowCursor_(#False)
ReleaseState = #False
cameraAnkerAufzug1 = CreateNode(#PB_Any,0,0,0)
kabineAnkerAufzug1 = CreateNode(#PB_Any,0,0,0)
schachtAnkerAufzug1 = CreateNode(#PB_Any,0,0,0)
camera_1 = CreateCamera(#PB_Any,0,0,100,100)
CameraBackColor(camera_1,RGB(0,0,40))
AmbientColor(RGB(255,255,255))
AttachNodeObject(cameraAnkerAufzug1,CameraID(camera_1))
AttachNodeObject(kabineAnkerAufzug1,NodeID(cameraAnkerAufzug1))
MoveCamera(camera_1,0,0,5,#PB_Parent)
Allerdings verzeichne ich da erhebliche Störungen. Das Flackert nu so rumm, als wenn die das Draw auf einem Durchsichtigen Fenster
über dem Screen ausgeführt wird. Anstatt auf dem Screen selber. Den Screen zum zeichnen selber übergeben geht ja nich. Da dieser ja
in der Konstellation nicht existiert.
Jemand ne Idee ?????
Please help
Gruss TFT