Page 2 of 17

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 7:59 am
by RSBasic
Thank you very much for your new version. Image
Fred wrote:

Code: Select all

- Added: DPI aware support for Windows app (/DPIAWARE compiler switch and DPI Aware check in IDE)
Image

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 8:27 am
by DK_PETER
As a user, it pays off to have patience. When the excellent team finally releases a new version, they'll NEVER disappoint.
I simply LOVE the new 3D additions. Time for me to play. :wink:
And yes..Family is always the first priority.
A VERY big thank you to the entire team. Your hard work is truly and always appreciated.

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 9:01 am
by HanPBF
When the excellent team finally releases a new version, they'll NEVER disappoint.
D'accord...
A new release is good news.

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 9:12 am
by Fred
DK_PETER wrote:As a user, it pays off to have patience. When the excellent team finally releases a new version, they'll NEVER disappoint.
I simply LOVE the new 3D additions. Time for me to play. :wink:
And yes..Family is always the first priority.
A VERY big thank you to the entire team. Your hard work is truly and always appreciated.
As you regulary use 3D in PB, could you confirm that the performances are back to the level they used to be ?

ps: thanks for your kind words :)

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 10:44 am
by DK_PETER
@Fred
I've just been doing a lot of testing.
Everything is working perfectly and the speed boost is extremely good!
I even get a couple of frames extra than I get with 5.46.
I love the new version! :D

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 10:46 am
by applePi
Thank you Fred
the performance of PB 5.70b1 3D return speedy like was before it slow down in 5.5x and 5.6x
as a severe (and dangerous for PB 5.62) example the clothes demo posted by bobobo and Purebasium years ago freeze the IDE with PB 5.62 and even i can't exit the IDE normally. while in PB 5.70b it is usual like in PB 5.46 and we can use keys, mouse, and making waves by pressing space key and then exit
here is clothes demo again for 5.70b1 by bobobo and Purebasium

Code: Select all

;PB 5.21
;sowas wie ein Tuch
;
;Orginal Code from bobobo and Purebasium

InitEngine3D():InitSprite():InitKeyboard():InitMouse()
    ExamineDesktops()
    ex=DesktopWidth (0)*0.75
    ey=DesktopHeight(0)*0.75
    OpenWindow(0, 0,0, ex,ey, "press Space to make waves, use mouse and arrow keys for the camera  [Esc] quit",#PB_Window_ScreenCentered)
    OpenWindowedScreen(WindowID(0), 0, 0, ex, ey, 0, 0, 0)

  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures",#PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Scripts",#PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/desert.zip", #PB_3DArchive_Zip)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Models"  , #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/GUI", #PB_3DArchive_FileSystem)
  Parse3DScripts()
    

Define.f KeyX, KeyY, MouseX, MouseY
#CameraSpeed = 1
  
  maxx=30
  maxy=30
  linienan=0
  maus=0
  
  Structure Entities
    id.l
    x.f
    y.f
    z.f
    meshid.l
    matid.l
    scalex.l
    scaley.l
    scalez.l
    phys.l
    lineid1.l
    lineid2.l
  EndStructure
  
  Dim Netz.Entities(maxx,maxy)  ;Netz 10*10
  
    
  NewList ent.Entities()
  Structure balls
    id.l
    time.l
  EndStructure
  
  
  NewList ball.balls()
    
    CreateMaterial(0, LoadTexture(0, "Dirt.jpg"))
    CreateMaterial(1, LoadTexture(1, "doscarte.png"))
    CreateCube(0,0.8)
    CreateSphere(1,3)
    infotexture=CreateTexture(#PB_Any,300,150)
    
    fid=LoadFont(#PB_Any,"",8)
    StartDrawing(TextureOutput(infotexture))
      DrawingMode(#PB_2DDrawing_Transparent)
      Box(0,0,100,100,RGBA(0,0,0,0))
      DrawText(0,0,"in der Schleife wird gemalt",#Black)
    StopDrawing()
    CreateMaterial(2,TextureID(infotexture))
    infopanel=CreateEntity(#PB_Any,MeshID(0),MaterialID(2),20,55,0)
    ScaleEntity(infopanel,50,50,5,#PB_Absolute)
    
    CreateEntityBody(infopanel,#PB_Entity_StaticBody,0.5)
    EntityRenderMode(infopanel,#PB_Entity_DisplaySkeleton)
    ihh=12
    For x=0 To maxx
      For y=0 To maxy
        Netz(x,y)\id=id
        Netz(x,y)\lineid1=id+(maxx*maxy*2)
        Netz(x,y)\lineid2=id+(maxx*maxy*4) ; hier Addition eines Wertes, damit es eindeutig wird (bei gr??eren Netzen anpassen)
        id+1
        Netz(x,y)\x=x
        Netz(x,y)\y=y
        Netz(x,y)\z=0
        Netz(x,y)\meshid=MeshID(0)
        If y<maxy
          Netz(x,y)\phys=#PB_Entity_BoxBody
          Netz(x,y)\matid=MaterialID(1)
        Else
          If x=maxx-2 Or x=2
            Netz(x,y)\phys=#PB_Entity_StaticBody
            
          Else
            Netz(x,y)\phys=#PB_Entity_BoxBody
          EndIf
          
          Netz(x,y)\matid=MaterialID(0)
        EndIf
        CreateEntity(Netz(x,y)\id,Netz(x,y)\meshid,Netz(x,y)\matid,Netz(x,y)\x,Netz(x,y)\y,Netz(x,y)\z)
        CreateEntityBody(Netz(x,y)\id,Netz(x,y)\phys,0.1,0.001,0.001)
        ;EntityRenderMode(Netz(x,y)\id,#PB_Entity_CastShadow)
      Next y
    Next x
    For x=0 To maxx-1
      For y=0 To maxy
        pj=PointJoint(#PB_Any,EntityID(Netz(x,y)\id),0,0,0,EntityID(Netz(x+1,y)\id),-1,0,0)
        SetJointAttribute(pj,#PB_PointJoint_Damping,1)
        SetJointAttribute(pj,#PB_PointJoint_Tau,1)
      Next y
    Next x
    For x=0 To maxx
      For y=0 To maxy-1
        pj=PointJoint(#PB_Any,EntityID(Netz(x,y)\id),0,0,0,EntityID(Netz(x,y+1)\id),0,-1,0)
        SetJointAttribute(pj,#PB_PointJoint_Damping,1)
        SetJointAttribute(pj,#PB_PointJoint_Tau,1)
      Next y
    Next x
    
    CreateCamera(0, 0, 0, 100, 100)
    MoveCamera(0, 63, 38, 38,1)
    CameraLookAt(0, 15, 15, 0)
    SkyBox("desert07.jpg")
    wg.f=-0.981
    WorldGravity(wg)
    CreateLight(0, RGB(255, 255, 255), 0, 1, 0,#PB_Light_Directional )  ; Red light
    LightDirection(0, -1, -0.5, -0.25)
    geschw=200      
    WorldGravity(wg)
    
    Repeat
      
      ;WorldShadows(#PB_Shadow_Additive)
      If linienan=1
      For x=0 To maxx-1
        For y=0 To maxy
          CreateLine3D(netz(x,y)\lineid1,EntityX(Netz(x,y)\id),EntityY(Netz(x,y)\id),
                       EntityZ(Netz(x,y)\id),#Red,EntityX(Netz(x+1,y)\id),
                       EntityY(Netz(x+1,y)\id),EntityZ(Netz(x+1,y)\id),#Green)
        Next y
      Next x
      For x=0 To maxx
        For y=0 To maxy-1
          CreateLine3D(netz(x,y)\lineid2,EntityX(Netz(x,y)\id),EntityY(Netz(x,y)\id),
                       EntityZ(Netz(x,y)\id),#Blue,EntityX(Netz(x,y+1)\id),
                       EntityY(Netz(x,y+1)\id),EntityZ(Netz(x,y+1)\id),#Yellow)
        Next y
      Next x
      EndIf
      
      If ExamineMouse()
        MouseX = -MouseDeltaX() * 1* 0.05
        MouseY = -MouseDeltaY() * 1 * 0.05
      EndIf
      
      If ExamineKeyboard()
        If KeyboardPushed(#PB_Key_Space)
              ApplyEntityImpulse(Netz(maxx/2,maxy/2)\id,0,0,-20)
        EndIf
        If KeyboardReleased(#PB_Key_B)
          bally=0
        EndIf
        If KeyboardPushed(#PB_Key_F)
          geschw+1
        EndIf
        If KeyboardPushed(#PB_Key_G)
          geschw-1
          If geschw<10
            geschw=10
          EndIf
          
        EndIf
        
        If KeyboardPushed(#PB_Key_B) And bally=0
          bally=1
         AddElement(Ball())
         ball()\id=CreateEntity(#PB_Any,MeshID(1),MaterialID(0),CameraX(0),CameraY(0),CameraZ(0))
         ball()\time=500
          CreateEntityBody(ball()\id, #PB_Entity_SphereBody,10,1,1 )
          ;EntityRenderMode(ball()\id,#PB_Entity_CastShadow)
          ApplyEntityImpulse(ball()\id,CameraDirectionX(0)*geschw,CameraDirectionY(0)*geschw,CameraDirectionZ(0)*geschw)
        EndIf
        If pause <>1 ;die runout zeit darf bei pause nicht weiterlaufen
        ForEach ball()
          ball()\time-1
          If ball()\time<1
            FreeEntity(ball()\id)
            DeleteElement(ball())
          EndIf
        Next
        EndIf 
        
        If KeyboardPushed(#PB_Key_Subtract)
          wg.f=wg.f-0.1
        EndIf
        If KeyboardPushed(#PB_Key_Add)
          wg.f=wg.f+0.1
        EndIf
        
        If KeyboardPushed(#PB_Key_R)
          For x= 0 To maxx
            For y=0 To maxy
              MoveEntity(Netz(x,y)\id,x,y,z,#PB_Absolute)
            Next y
          Next x
        EndIf
        If KeyboardReleased(#PB_Key_M) 
          ;Hier wir es h?sslich
          If maus = 0 : maus=1 :Else: maus =0 :EndIf
          ShowGUI(255,maus) 
          ExamineDesktops()
          MouseLocate(DesktopWidth(0)/2, DesktopHeight(0)/2)
        EndIf
        
        InputEvent3D(MouseX(), MouseY(), MouseButton(#PB_MouseButton_Left))
        If KeyboardReleased(#PB_Key_P) 
          If pause = 0 : pause=1 :Else: pause =0 :EndIf
        EndIf
        
        If KeyboardPushed(#PB_Key_Left)
          KeyX = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Right)
          KeyX = #CameraSpeed 
        Else
          KeyX = 0
        EndIf
        
        If KeyboardPushed(#PB_Key_Up)
          KeyY = -#CameraSpeed 
        ElseIf KeyboardPushed(#PB_Key_Down)
          KeyY = #CameraSpeed 
        Else
          KeyY = 0
        EndIf
        
      EndIf
      
      If maus =0 ;only rotate the camera if the mouse looked
      RotateCamera(0, MouseY, MouseX, 0, #PB_Relative)
      EndIf
      
      MoveCamera  (0, KeyX, 0, KeyY)
      
      If pause =1
      RenderWorld(0)
      EndIf
        
      If pause <>1
        RenderWorld()
      EndIf 
      
      StartDrawing(TextureOutput(infotexture))
        
        DrawingMode(#PB_2DDrawing_AllChannels | #PB_2DDrawing_AlphaBlend)
        Box(0,0,300,300,RGBA(200,200,255,32))
        ih=0
        FrontColor(RGBA(255,255,0,255))
        BackColor(RGBA(200,200,255,64))
        DrawingFont(FontID(fid))
        ;DrawText(0,ih,"FPS:"+Str(Engine3DFrameRate(#PB_Engine3D_Current)))
        DrawText(0,ih,"FPS:"+Str(Engine3DStatus(#PB_Engine3D_CurrentFPS)))
        ih+ihh
        DrawText(0,ih,"Tuch besteht derzeit aus ")
        ih+ihh:DrawText(0,ih,Str(maxy*maxx)+" Elementen")
        ih+ihh:DrawText(0,ih,"Space : Tuch piksen")
        ih+ihh:DrawText(0,ih,"B: Einen Ball in Sichtrichtung schie?en")
        ih+ihh:DrawText(0,ih,"ADD/SUB (Nummernblock): Gravitation ?ndern")
        ih+ihh:DrawText(0,ih,"Gravitaion :"+StrF(wg,3))
        ih+ihh:DrawText(0,ih,"R: Reset des Tuches")
        ih+ihh:DrawText(0,ih,"M: Maus anzeigen/verdecken")
        ih+ihh:DrawText(0,ih,"Ball Geschw.(f+,g-):"+Str(geschw))
        ih+ihh:DrawText(0,ih,"P: Pause")
        
      StopDrawing()
      CreateMaterial(2,TextureID(infotexture))
      MaterialBlendingMode(2, #PB_Material_AlphaBlend)
      SetEntityMaterial(infopanel,MaterialID(2))
      RotateEntity(infopanel,0,-0.5,0,#PB_Relative)
      
      RenderWorld()
      FlipBuffers()
      
    ;Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
    Until WindowEvent() = #PB_Event_CloseWindow Or KeyboardReleased(#PB_Key_Escape)

End

also my animated tubes works okay like in 5.46 with the new version
viewtopic.php?f=36&t=67720

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 11:43 am
by Fred
Good ! Thanks for the feedback

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 12:28 pm
by fryquez
Thanks for the DPI Aware feature.
Any thoughts about PerMonitor Awareness? It can be set in the manifest, too.

Code: Select all

<dpiAware>True/PM</dpiAware>
<dpiAwareness>PerMonitorV2, PerMonitor</dpiAwareness>
High-DPI Scaling Improvements for Desktop Applications in the Windows 10 Creators Update (1703)

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 12:30 pm
by Dude

Code: Select all

;--------------------------------------------------------------
; ParticleScaleRate(particleID, scalerate.f) and other new functions
; -----------------------------------------------
The above example doesn't run on the x86 beta:

Code: Select all

[21:28:33] Waiting for executable to start...
[21:28:33] Executable type: Windows - x86  (32bit, Unicode)
[21:28:33] Executable started.
[21:28:34] [ERROR] Line: 19
[21:28:34] [ERROR] The specified #Texture is not initialised.

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 1:36 pm
by the.weavster
Fred wrote:First, a big thanks to Timo (Fr34k) who did a brand new subsystem for Linux: QT :)
Any chance of being able to target Qt on other platforms besides Linux?
Also some generic way of working with QObjects would be very cool :D .


P.S. at the risk of sounding a bit nit-picky, it's Qt not QT. When people state QT they usually mean QuickTime.

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 1:45 pm
by Dude

Code: Select all

Added: DPI aware support for Windows app (/DPIAWARE compiler switch and DPI Aware check in IDE)
Hmm, how does this work? See here: viewtopic.php?p=522806#p522806

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 2:20 pm
by skywalk
the.weavster wrote:
Fred wrote:First, a big thanks to Timo (Fr34k) who did a brand new subsystem for Linux: QT :)
Any chance of being able to target Qt on other platforms besides Linux?
Also some generic way of working with QObjects would be very cool :D
Yes, it would be great to expose Qt table and chart...

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 2:36 pm
by Kiffi
skywalk wrote:
the.weavster wrote:
Fred wrote:First, a big thanks to Timo (Fr34k) who did a brand new subsystem for Linux: QT :)
Any chance of being able to target Qt on other platforms besides Linux?
Also some generic way of working with QObjects would be very cool :D
Yes, it would be great to expose Qt table and chart...
for now it would be great if there was some kind of documentation or examples where i could read how to use it.

Greetings ... Peter

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 2:51 pm
by box_80
Thanks for the update. A lot of new features that I would like to try out.

Re: PureBasic 5.70 LTS beta 1 is out !

Posted: Thu May 31, 2018 2:53 pm
by HanPBF
Sorry, I am lost...
Qt means the Qt framework accessible from PureBasic???
This one? https://en.wikipedia.org/wiki/Qt_(software)