PureBasic 5.70 LTS is out !

Developed or developing a new product in PureBasic? Tell the world about it.
User avatar
RSBasic
Moderator
Moderator
Posts: 1218
Joined: Thu Dec 31, 2009 11:05 pm
Location: Gernsbach (Germany)
Contact:

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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
Image
Image
User avatar
DK_PETER
Addict
Addict
Posts: 898
Joined: Sat Feb 19, 2011 10:06 am
Location: Denmark
Contact:

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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.
Current configurations:
Ubuntu 20.04/64 bit - Window 10 64 bit
Intel 6800K, GeForce Gtx 1060, 32 gb ram.
Amd Ryzen 9 5950X, GeForce 3070, 128 gb ram.
HanPBF
Enthusiast
Enthusiast
Posts: 563
Joined: Fri Feb 19, 2010 3:42 am

Re: PureBasic 5.70 LTS beta 1 is out !

Post by HanPBF »

When the excellent team finally releases a new version, they'll NEVER disappoint.
D'accord...
A new release is good news.
Last edited by HanPBF on Fri Jun 01, 2018 6:52 am, edited 1 time in total.
Fred
Administrator
Administrator
Posts: 16620
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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 :)
User avatar
DK_PETER
Addict
Addict
Posts: 898
Joined: Sat Feb 19, 2011 10:06 am
Location: Denmark
Contact:

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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
Current configurations:
Ubuntu 20.04/64 bit - Window 10 64 bit
Intel 6800K, GeForce Gtx 1060, 32 gb ram.
Amd Ryzen 9 5950X, GeForce 3070, 128 gb ram.
applePi
Addict
Addict
Posts: 1404
Joined: Sun Jun 25, 2006 7:28 pm

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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
Fred
Administrator
Administrator
Posts: 16620
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Re: PureBasic 5.70 LTS beta 1 is out !

Post by Fred »

Good ! Thanks for the feedback
fryquez
Enthusiast
Enthusiast
Posts: 362
Joined: Mon Dec 21, 2015 8:12 pm

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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)
Dude
Addict
Addict
Posts: 1907
Joined: Mon Feb 16, 2015 2:49 pm

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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.
User avatar
the.weavster
Addict
Addict
Posts: 1537
Joined: Thu Jul 03, 2003 6:53 pm
Location: England

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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.
Dude
Addict
Addict
Posts: 1907
Joined: Mon Feb 16, 2015 2:49 pm

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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
User avatar
skywalk
Addict
Addict
Posts: 3972
Joined: Wed Dec 23, 2009 10:14 pm
Location: Boston, MA

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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...
The nice thing about standards is there are so many to choose from. ~ Andrew Tanenbaum
User avatar
Kiffi
Addict
Addict
Posts: 1353
Joined: Tue Mar 02, 2004 1:20 pm
Location: Amphibios 9

Re: PureBasic 5.70 LTS beta 1 is out !

Post 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
Hygge
box_80
Enthusiast
Enthusiast
Posts: 112
Joined: Mon Sep 03, 2012 8:52 pm

Re: PureBasic 5.70 LTS beta 1 is out !

Post by box_80 »

Thanks for the update. A lot of new features that I would like to try out.
HanPBF
Enthusiast
Enthusiast
Posts: 563
Joined: Fri Feb 19, 2010 3:42 am

Re: PureBasic 5.70 LTS beta 1 is out !

Post by HanPBF »

Sorry, I am lost...
Qt means the Qt framework accessible from PureBasic???
This one? https://en.wikipedia.org/wiki/Qt_(software)
Post Reply